(57)【要約】【課題】リグレッションテストを効率的に行うためのテストケースを抽出する。【解決手段】抽出システム１０は、リグレッションテストを実行するためのテストケースを抽出するシステムである。プロセッサ１１は、更新の前後のソースコードを比較して、更新後のソースコードを構成する関数のうち、更新前のソースコードの記述と相違する記述を含む関数を特定する。また、プロセッサ１１は、特定された関数に関連付けられてキーワード格納部２４に記憶されているキーワードを特定する。そして、プロセッサ１１は、特定されたキーワードに基づいて、テストケースを抽出する。【選択図】図１
2013149094.tif 000002
【特許請求の範囲】
【請求項１】
第１ソースコードのリグレッションテストを実行するためのテストケースを抽出する抽出システムであって、
前記第１ソースコードと、前記第１ソースコードと異なる第２ソースコードとを比較して、前記第１ソースコードを構成するユニットのうち、前記第２ソースコードの記述と相違する記述を含む前記ユニットを特定するユニット特定手段と、
前記ユニット特定手段によって特定された前記ユニットに関連付けられたキーワードを特定するキーワード特定手段と、
前記キーワード特定手段によって特定されたキーワードに基づいて、前記テストケースを抽出するテストケース抽出手段と、
を備える抽出システム。
【請求項２】
前記テストケース抽出手段は、
前記キーワード特定手段によって特定されたキーワードと、抽出の候補となるテストケース候補に関連付けられたキーワードとの比較結果に基づいて、前記テストケース候補から前記テストケースを抽出する、
請求項１に記載の抽出システム。
【請求項３】
前記第１ソースコードは、更新された前記第２ソースコードである、
請求項１又は２に記載の抽出システム。
【請求項４】
前記テストケース抽出手段によって抽出された前記テストケースを表示する表示手段、
を備える請求項１乃至３のいずれか１項に記載の抽出システム。
【請求項５】
第１ソースコードのリグレッションテストを実行するためのテストケースを抽出する抽出方法であって、
前記第１ソースコードと、前記第１ソースコードと異なる第２ソースコードとを比較して、前記第１ソースコードを構成するユニットのうち、前記第２ソースコードの記述と相違する記述を含む前記ユニットを特定するユニット特定ステップと、
前記ユニット特定ステップにおいて特定された前記ユニットに関連付けられたキーワードを特定するキーワード特定ステップと、
前記キーワードに基づいて、前記テストケースを抽出するテストケース抽出ステップと、
を含む抽出方法。
【請求項６】
コンピュータを、
第１ソースコードと、前記第１ソースコードと異なる第２ソースコードとを比較して、前記第１ソースコードを構成するユニットのうち、前記第２ソースコードの記述と相違する記述を含む前記ユニットを特定するユニット特定手段、
前記ユニット特定手段によって特定された前記ユニットに関連付けられたキーワードを特定するキーワード特定手段、
前記キーワードに基づいて、前記第１ソースコードのリグレッションテストを実行するためのテストケースを抽出するテストケース抽出手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、抽出システム、抽出方法、及びプログラムに関する。
【背景技術】
【０００２】
ソフトウェアの開発の際には、テスター（試験者）が、テストケースをソフトウェアに実行させることで種々のソフトウェアテストを行う。このテストケースは、ソフトウェアテストの内容に応じて、あらかじめ用意された候補から抽出されることが多い。
【０００３】
例えば、ソフトウェアのソースコードの一部が更新されたときには、この更新によってソフトウェア全体が受ける影響を試験するためのリグレッションテストが行われる。この場合には、ソースコードの更新された部分と一定の関係を有するテストケースが抽出される。
【０００４】
従来、リグレッションテストのためのテストケースは、テスター自身が抽出していた。しかし、更新箇所が多い場合や、候補が多数ある場合に、このような抽出は非効率的であった。そこで、テストケースを機械的に抽出する技術が提案されている（例えば、特許文献１を参照）。
【０００５】
特許文献１に記載のシステムは、ソースコードのうち、更新された部分のＳｔａｔｅｍｅｎｔとある程度強い依存関係を有するＳｔａｔｅｍｅｎｔを取得する。そして、このシステムは、取得されたＳｔａｔｅｍｅｎｔを実行するテストケースを、あらかじめ保持された候補の中から抽出する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−２０４４０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載のシステムは、ソースコードから読み取ることのできる依存関係に基づいてテストケースを抽出していた。しかしながら、ソースコードから読み取ることが困難な情報（例えば、コーディング作業者、仕様書、その他テスターが有する知識）に基づいてテストケースを抽出すると、リグレッションテストをより効率的に行うことができる場合がある。このような場合に、特許文献１に記載のシステムは、リグレッションテストを効率的に行うためのテストケースを抽出することができないおそれがあった。
【０００８】
本発明は、上記の事情に鑑みてなされたもので、リグレッションテストを効率的に行うためのテストケースを抽出することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明の抽出システムは、
第１ソースコードのリグレッションテストを実行するためのテストケースを抽出する抽出システムであって、
前記第１ソースコードと、前記第１ソースコードと異なる第２ソースコードとを比較して、前記第１ソースコードを構成するユニットのうち、前記第２ソースコードの記述と相違する記述を含む前記ユニットを特定するユニット特定手段と、
前記ユニット特定手段によって特定された前記ユニットに関連付けられたキーワードを特定するキーワード特定手段と、
前記キーワード特定手段によって特定されたキーワードに基づいて、前記テストケースを抽出するテストケース抽出手段と、
を備える。
【発明の効果】
【００１０】
本発明によれば、リグレッションテストを効率的に行うためのテストケースを抽出することができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態に係る抽出システムの構成を示す図である。
【図２】キーワード格納部に格納されるテーブルを示す図である。
【図３】リストファイルの内容を示す図である。
【図４】プロセッサにより実行される登録処理を示すフロー図である。
【図５】出力部に表示される登録ＵＩを示す図である。
【図６】プロセッサにより実行される抽出処理を示すフロー図である。
【図７】出力部に表示される抽出ＵＩを示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態を、図面を参照しつつ詳細に説明する。
【００１３】
本実施形態に係る抽出システム１０は、所定のソースコードのリグレッションテストを実行するためのテストケースを抽出するシステムである。詳しくは、抽出システム１０は、ユニットの識別子に関連づけられたキーワードに基づいて、テストケースの識別子を抽出する。
【００１４】
ユニットは、ソースコードを構成する特定の記述である。ソースコードは、複数のユニットから構成されたり、ユニットを含まなかったりする。本実施形態に係るユニットは、関数（サブルーチン）を示す記述である。以下では、この記述を単に関数という。また、本実施形態に係るユニットの識別子は、関数名である。関数名は、一般的に、関数に含まれていて、関数の最初に記述されていることが多い。
【００１５】
また、本実施形態に係るテストケースの識別子は、テスターによってあらかじめ付けられたテストケース名である。
【００１６】
抽出システム１０は、図１に示されるように、プロセッサ１１、主記憶部１２、補助記憶部１３、入力部１４、出力部１５、送受信部１６、及び内部バス１７を有している。主記憶部１２、補助記憶部１３、入力部１４、出力部１５及び送受信部１６はいずれも内部バス１７を介してプロセッサ１１に接続されている。
【００１７】
プロセッサ１１は、ＣＰＵ（Central Processing Unit）等から構成され、補助記憶部１３に記憶されるプログラム１８に従って、後述の処理を実行する。
【００１８】
主記憶部１２は、ＲＡＭ（Random Access Memory）等から構成され、補助記憶部１３に記憶されるプログラム１８をロードし、プロセッサ１１の作業領域として用いられる。
【００１９】
補助記憶部１３は、フラッシュメモリ、ハードディスク等の不揮発性メモリから構成され、プログラム１８を記憶する。また、補助記憶部１３は、プロセッサ１１の指示に従って、プロセッサ１１が利用するデータをプロセッサ１１に供給し、プロセッサ１１から供給されたデータを記憶する。
【００２０】
また、補助記憶部１３は、ソースコード格納部２１、構成関数格納部２２、更新関数格納部２３、キーワード格納部２４、テストケース格納部２５を有している。
【００２１】
ソースコード格納部２１は、ソースコードを示すソースコードファイルを格納する。詳しくは、ソースコード格納部２１は、ソースコードの更新によって生じる複数のバージョンのソースコードそれぞれを示すソースコードファイルを格納する。
【００２２】
構成関数格納部２２は、所定のソースコードを構成する関数の関数名を格納する。
【００２３】
更新関数格納部２３は、所定の記述を含む関数の関数名を格納する。この所定の記述は、例えば、所定の２個のソースコードで相違する記述や、一方のソースコードにのみ含まれる記述である。
【００２４】
キーワード格納部２４は、関数名と、テストケース名と、関数名及びテストケース名のうち少なくとも一方に関連づけられたキーワードとを記憶する。キーワード格納部２４は、例えば、図２に示されるテーブルを格納する。なお、図中の「――」は、空欄を示し、キーワードに関連づけられる関数名又はテストケース名が記憶されていないことを示す。キーワード格納部２４に格納されるデータは、後述の登録処理においてテスターにより格納される。また、キーワード格納部２４に格納されるテストケース名は、後述の抽出処理において抽出されるテストケース名の候補となる。
【００２５】
テストケース格納部２５は、テストケース名が列記されたリストファイルを格納する。このリストファイルに列記されたテストケース名は、後述の登録処理において登録されるテストケース名の候補となる。また、このリストファイルは、図３に示されるように、１行ごとに１個のテストケース名が記述されたテキストファイルであって、テスターによってあらかじめ用意される。
【００２６】
入力部１４は、キーボード及びマウス等のポインティングデバイス等と、キーボード及びポインティングデバイス等を内部バス１７に接続するインタフェース装置等から構成される。入力部１４は、テスターから入力された情報を、内部バス１７を介してプロセッサ１１へ通知する。
【００２７】
出力部１５は、ＬＣＤ（Liquid Crystal Display）等から構成される。出力部１５は、プロセッサ１１の指示に従って、種々の情報をユーザに提供する。出力部１５は、例えば、テスターが抽出システム１０に情報を入力するための画面を表示する。
【００２８】
送受信部１６は、モデム又は網終端装置、及びそれらと接続するシリアルインタフェース又はＬＡＮインタフェース等から構成される。送受信部１６は、抽出システム１０が接続されるネットワーク等とプロセッサ１１との通信を中継する。
【００２９】
続いて、プロセッサ１１により実行される登録処理について、図４を用いて説明する。
【００３０】
まず、プロセッサ１１は、登録ＵＩ（User Interface）表示データを出力部１５へ送信する。これにより、出力部１５には、図５に示される登録ＵＩ３０が表示される。
【００３１】
次に、プロセッサ１１は、ソースコードファイルが指定されたか否かを判定する（ステップＳ１２）。具体的には、プロセッサ１１は、図５に示されるボタン３１がクリック（押下）された場合に、ソースコードファイルをテスターが特定するためのダイアログボックスを、出力部１５に表示させる。プロセッサ１１は、このダイアログボックスを用いて特定されたソースコードファイルを、ソースコード格納部２１から読み込むことができたときに、ソースコードファイルが指定されたと判定する。
【００３２】
ソースコードファイルが指定されたと判定した場合（ステップＳ１２；Ｙｅｓ）、プロセッサ１１は、リストファイルが指定されたか否かを判定する（ステップＳ１３）。具体的には、プロセッサ１１は、図５に示されるボタン３２がクリックされた場合に、リストファイルをテスターが特定するためのダイアログボックスを出力部１５に表示させる。プロセッサ１１は、このダイアログボックスを用いて特定されたリストファイルを、テストケース格納部２５から読み込むことができたときに、リストファイルが指定されたと判定する。
【００３３】
リストファイルが指定されたと判定した場合（ステップＳ１３；Ｙｅｓ）、プロセッサ１１は、指定されたソースコードファイルから関数名を取得する（ステップＳ１４）。具体的には、プロセッサ１１は、ソースコードファイルに記述されたソースコードを解析して、ソースコードを構成している関数の関数名をすべて取得する。また、プロセッサ１１は、取得した関数名を構成関数格納部２２に格納する。
【００３４】
次に、プロセッサ１１は、指定されたリストファイルからテストケース名を取得する（ステップＳ１５）。具体的には、プロセッサ１１は、指定されたリストファイルの内容を解析して、テストケース名をすべて取得する。
【００３５】
その後、プロセッサ１１は、関数名及びテストケース名を出力部１５に提示させる（ステップＳ１６）。これにより、ステップＳ１４で取得された関数名の一覧が、図５に示される関数名エリア３３に表示される。また、ステップＳ１５で取得されたテストケース名の一覧が、テストケース名エリア３４に表示される。
【００３６】
また、関数名及びテストケース名は、テスターが選択することができる状態で表示される。これにより、テスターは入力部１４を利用して、任意の関数名やテストケース名を選択することができる。図５には、テスターによって選択されて、背景色が反転している状態の「関数Ｂ」という関数名が示されている。一方、図５に示される例では、テストケース名はいずれも選択されていない。
【００３７】
プロセッサ１１は、図５に示される登録ボタン３５がクリックされたか否かを判定する（ステップＳ１７）。
【００３８】
登録ボタン３５がクリックされたと判定した場合（ステップＳ１７；Ｙｅｓ）、プロセッサ１１は、キーワード入力があるか否かを判定する（ステップＳ１８）。具体的には、プロセッサ１１は、ボックス３６に入力された何らかの文字列を取得したか否かを判定する。なお、図５には、２個のキーワードが入力された状態が示されている。
【００３９】
キーワードが入力されていると判定した場合（ステップＳ１８；Ｙｅｓ）、プロセッサ１１は、どの識別子が選択されているかを判定する（ステップＳ１９）。具体的には、プロセッサ１１は、関数名及びテストケース名それぞれが選択されている状態にあるか否かを判定する。
【００４０】
選択されている識別子がないと判定した場合（ステップＳ１９；なし）、プロセッサ１１は、ステップＳ１１以降の処理を繰り返す。また、キーワード入力がないと判定した場合（ステップＳ１８；Ｎｏ）、登録ボタンがクリックされていないと判定した場合（ステップＳ１７；Ｎｏ）、リストファイルが指定されていないと判定した場合（ステップＳ１３；Ｎｏ）、及びソースコードファイルが指定されていないと判定した場合（ステップＳ１２；Ｎｏ）、プロセッサ１１は、ステップＳ１１以降の処理を繰り返す。
【００４１】
関数名のみが選択されていると判定した場合（ステップＳ１９；関数名のみ）、プロセッサ１１は、入力されたキーワードと、選択されている関数名とを関連づけて、キーワード格納部２４に格納する（ステップＳ２０）。そして、プロセッサ１１は、登録処理を終了する。
【００４２】
テストケース名のみが選択されていると判定した場合（ステップＳ１９；テストケース名のみ）、プロセッサ１１は、入力されたキーワードと、選択されているテストケース名とを関連づけて、キーワード格納部２４に格納する（ステップＳ２１）。そして、プロセッサ１１は、登録処理を終了する。
【００４３】
関数名及びテストケース名の双方が選択されていると判定した場合（ステップＳ１９；関数名及びテストケース名の双方）、プロセッサ１１は、入力されたキーワードと、選択されている関数名と、選択されているテストケース名とを相互に関連づけて、キーワード格納部２４に格納する（ステップＳ２２）。そして、プロセッサ１１は、登録処理を終了する。
【００４４】
続いて、プロセッサ１１により実行される抽出処理について、図６を用いて説明する。
【００４５】
まず、プロセッサ１１は、抽出ＵＩ表示データを出力部１５へ送信する（ステップＳ３１）。これにより、出力部１５には、図７に示される抽出ＵＩ４０が表示される。
【００４６】
次に、プロセッサ１１は、図７に示される解析ボタン４１がクリックされたか否かを判定する（ステップＳ３２）。
【００４７】
解析ボタン４１がクリックされたと判定した場合（ステップＳ３２；Ｙｅｓ）、プロセッサ１１は、更新の前後のソースコードファイルが指定されたか否かを判定する（ステップＳ３３）。具体的には、プロセッサ１１は、図７に示されるボックス４２、４３それぞれに入力されたソースコードファイルのファイル名を取得する。そして、プロセッサ１１は、これらのファイル名により示されるソースコードファイルを、ソースコード格納部２１から読み込むことができたときに、更新の前後のソースコードファイルが指定されたと判定する。
【００４８】
更新の前後のソースコードファイルが指定されていないと判定した場合（ステップＳ３３；Ｎｏ）、及び、解析ボタン４１がクリックされていないと判定した場合（ステップＳ３２；Ｎｏ）、プロセッサ１１は、ステップＳ３１以降の処理を繰り返す。
【００４９】
更新の前後のソースコードファイルが指定されたと判定した場合（ステップＳ３３；Ｙｅｓ）、プロセッサ１１は、更新された関数の関数名を取得する（ステップＳ３４）。
【００５０】
具体的には、プロセッサ１１は、指定された２個のソースコードファイルそれぞれに記述されたソースコードを比較して、更新後のソースコードのうち、更新前のソースコードに含まれる記述と相違する記述を特定する。そして、プロセッサ１１は、更新後のソースコードを構成する関数のうち、特定された記述を含む関数の関数名を取得する。また、プロセッサ１１は、取得した関数名を更新関数格納部２３に格納する。
【００５１】
次に、プロセッサ１１は、関数名に関連づけられたキーワードを特定する（ステップＳ３５）。具体的には、プロセッサ１１は、キーワード格納部２４に記憶されたキーワードのうち、ステップＳ３４で取得した関数名に関連づけられたキーワードを特定する。
【００５２】
その後、プロセッサ１１は、キーワードに関連づけられたテストケース名を抽出する（ステップＳ３６）。具体的には、プロセッサ１１は、ステップＳ３５で特定されたキーワードと、テストケース名に関連付けられてキーワード格納部２４に記憶されているキーワードとを比較する。この比較の結果、キーワードが一致する場合に、プロセッサ１１は、キーワードに関連付けられているテストケース名を抽出する。換言すると、プロセッサ１１は、ステップＳ３５で特定されたキーワードに関連づけられたテストケース名を、キーワード格納部２４に記憶されたテストケース名から抽出する。
【００５３】
そして、プロセッサ１１は、テストケース名を表示する（ステップＳ３７）。これにより、図７に示されるボックス４４に、ステップＳ３６で抽出されたテストケース名の一覧が表示される。この一覧は、リグレッションテストの対象となるテストケースを示す。
【００５４】
以上説明したように、本実施形態に係る抽出システム１０は、更新された記述を有する関数の関数名を取得して、この関数名に関連づけられたキーワードを特定する。そして、抽出システム１０は、このキーワードに基づいてテストケース名を抽出する。
【００５５】
これにより、テスターがあらかじめ登録したキーワードに基づいてテストケース名が抽出されるため、抽出システム１０は、ソースコードから読み取ることのできない情報に基づいて、テストケースを抽出することができる。また、テスターは、例えば仕様書から得た知識等に基づいて適当なキーワードを登録することにより、リグレッションテストを効率よく行うためのテストケースを抽出することができる。
【００５６】
また、抽出システム１０は、関数名に関連付けられたキーワードと、テストケース名に関連付けられたキーワードとを比較した結果に基づいて、テストケース名を抽出する。これにより、抽出システム１０は、キーワードを介して関数名に関連付けられているテストケース名のみを抽出することができる。
【００５７】
また、抽出システム１０は、登録ＵＩ３０を表示することで、テスターにより指定された関数名とキーワードとを関連づけて、キーワード格納部２４に格納する。これにより、テスターは、任意のキーワードを関数名と関連づけて登録することができる。
【００５８】
また、抽出システム１０は、テスターにより指定されたテストケース名とキーワードとを関連づけて、キーワード格納部２４に格納する。これにより、テスターは、任意のキーワードをテストケース名と関連づけて登録することができる。
【００５９】
また、抽出システム１０は、ソースコードを構成するユニットの識別子として、関数名を、キーワードに関連づけて記憶した。関数は、ソフトウェアの構成要素それぞれが仕様通りに動作するかを試験するための単体テストの対象である場合が多い。したがって、抽出システム１０により抽出されるテストケースは、更新された関数を実行する単体テストにも用いることができる。
【００６０】
また、ソフトウェアの構成要素それぞれが、仕様通りに協働するか否かを試験するために、結合テストが行われる。抽出システム１０により抽出されたテストケース名は、ソフトウェア全体を実行する結合テストにも用いることができる。
【００６１】
また、抽出システム１０は、更新の前後で相違する記述に関連するテストケース名のみを抽出した。これにより、テスターは、ソフトウェアが頻繁にバージョンアップされた場合にも、その都度必要となるリグレッションテストを効率よく行うことができる。
【００６２】
また、抽出システム１０は、登録ＵＩ３０及び抽出ＵＩ４０をテスターに対して表示した。これにより、テスターは、キーワードの登録やテストケースの抽出を行うための操作を容易に行うことができる。また、テスターは、抽出結果を容易に確認することができる。
【００６３】
以上、本発明の実施形態について説明したが、本発明は上記実施形態によって限定されるものではない。
【００６４】
例えば、上記実施形態に係るキーワードは、関数名に関連づけられたが、これには限られない。例えば、関数（ユニット）そのものと関連づけられて、キーワード格納部２４に格納されてもよい。また、上記実施形態に係るキーワードは、テストケース名に関連づけられたが、これには限られない。例えば、テストケースを表すファイルそのものと関連づけられて、キーワード格納部２４に格納されてもよい。
【００６５】
例えば、ステップＳ３４において、プロセッサ１１は、更新後のソースコードのみに含まれる記述を特定した。これに限られず、プロセッサ１１は、更新前のソースコードのみに含まれる記述を特定してもよい。この場合、ステップＳ３４において、プロセッサ１１は、更新前のソースコードを構成する関数のうち、特定された記述を含む関数の関数名を取得する。
【００６６】
また、テスターの入力によっては、キーワード格納部２４に重複するデータが格納される場合がある。プロセッサ１１は、この重複するデータを結合し、キーワード格納部２４に格納されるテーブルを整理してもよい。
【００６７】
例えば、上記実施形態に係るユニットは、関数（サブルーチン）であったが、これには限られない。例えば、モジュール、メソッド、クラス、オブジェクト、又はファイルやフォルダ（ディレクトリ）をユニットとして、抽出システム１０を構成することもできる。
【００６８】
例えば、抽出システム１０は、テスターにより入力されたテストケース名をリストファイルに追記してもよい。この場合、プロセッサ１１は、図５に示される追加ボタン３７がクリックされたときに、テストケース名を入力するためのダイアログボックスを出力部１５に表示させる。
【００６９】
例えば、抽出システム１０は、ステップＳ３４で取得した関数名を、図７に示されるエリア４５に表示してもよい。この場合、テスターは、更新された関数を具体的に把握することができる。
【００７０】
例えば、抽出システム１０を既存のソースコードバージョン管理システムと連携させてもよい。
【００７１】
上述の実施形態に係る抽出システム１０の機能は、専用のハードウェアによっても、また、通常のコンピュータシステムによっても実現することができる。
【００７２】
例えば、補助記憶部１３に記憶されているプログラム１８を、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disk Read-Only Memory）、ＤＶＤ（Digital Versatile Disk）、ＭＯ（Magneto-Optical disk）等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラム１８をコンピュータにインストールすることにより、上述の処理を実行する装置を構成することができる。
【００７３】
また、プログラム１８をインターネット等の通信ネットワーク上の所定のサーバ装置が有するディスク装置等に格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するようにしてもよい。
【００７４】
また、通信ネットワークを介してプログラム１８を転送しながら起動実行することによっても、上述の処理を達成することができる。
【００７５】
更に、プログラム１８の全部又は一部をサーバ装置上で実行させ、その処理に関する情報をコンピュータが通信ネットワークを介して送受信しながらプログラム１８を実行することによっても、上述の処理を達成することができる。
【００７６】
なお、上述の機能を、ＯＳ（Operating System）が分担して実現する場合又はＯＳとアプリケーションとの協働により実現する場合等には、ＯＳ以外の部分のみを媒体に格納して配布してもよく、また、コンピュータにダウンロード等しても良い。
【００７７】
また、プロセッサ１１の機能を実現する手段は、ソフトウェアに限られず、その一部又は全部を専用のハードウェア（回路等）によって実現してもよい。
【００７８】
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
【産業上の利用可能性】
【００７９】
本発明の抽出システム、抽出方法、及びプログラムは、ソフトウェアの開発におけるソフトウェアテストに適している。
【符号の説明】
【００８０】
１０    抽出システム
１１    プロセッサ
１２    主記憶部
１３    補助記憶部
１４    入力部
１５    出力部
１６    送受信部
１７    内部バス
１８    プログラム
２１    ソースコード格納部
２２    構成関数格納部
２３    更新関数格納部
２４    キーワード格納部
２５    テストケース格納部
３０    登録ＵＩ
３１、３２  ボタン
３３    関数名エリア
３４    テストケース名エリア
３５    登録ボタン
３６、４２、４３、４４  ボックス
３７    追加ボタン
４０    抽出ＵＩ
４１    解析ボタン
４５    エリア
【図１】
2013149094.tif 000003
【図２】
2013149094.tif 000004
【図３】
2013149094.tif 000005
【図４】
2013149094.tif 000006
【図５】
2013149094.tif 000007
【図６】
2013149094.tif 000008
【図７】
2013149094.tif 000009