(57)【要約】【課題】修正後のソースファイルのチェックすべき箇所を漏れなく抽出可能にする技術を提供する。【解決手段】修正前ソースファイルと修正後ソースファイルとの相違点である修正情報を抽出する差分管理部１０１と、修正情報に含まれるメソッド名をキーに修正後ソースファイルを検索し、メソッド名が含まれるクラスを抽出し、クラスに含まれるすべてのメソッド名を抽出する影響範囲抽出部１０２と、影響範囲抽出部１０２が抽出したメソッド名をキーに修正後ソースファイルを検索し、キーと一致する文字列を含む箇所にカバレッジ情報を追加し、影響範囲とするカバレッジ情報追加部１０３とを有する。【選択図】図１
2015088001.tif 000002
【特許請求の範囲】
【請求項１】
修正前ソースファイルと修正後ソースファイルとの相違点である修正情報を抽出する差分管理部と、
前記修正情報に含まれるメソッド名をキーに前記修正後ソースファイルを検索し、前記メソッド名が含まれるクラスを抽出し、前記クラスに含まれるすべての前記メソッド名を抽出する影響範囲抽出部と、
前記影響範囲抽出部が抽出した前記メソッド名をキーに前記修正後ソースファイルを検索し、前記キーと一致する文字列を含む箇所にカバレッジ情報を追加し、影響範囲とするカバレッジ情報追加部と、
を有する、テスト範囲決定システム。
【請求項２】
請求項１に記載のテスト範囲決定システムにおいて、
前記影響範囲抽出部は、前記修正情報に含まれる変数名をキーに前記修正後ソースファイルを検索し、前記変数名が含まれる前記クラスを抽出し、前記クラスに含まれるすべての前記メソッド名を抽出する、
テスト範囲決定システム。  
【請求項３】
請求項１または２に記載のテスト範囲決定システムにおいて、
追加された前記カバレッジ情報の数とテストが実施された前記カバレッジ情報の数とに基づいて、前記影響範囲に対するテストの実施比率である完了比率を算出する完了比率算出部をさらに有する、テスト範囲決定システム。
【請求項４】
請求項１〜３のいずれか一項に記載のテスト範囲決定システムにおいて、
カバレッジ情報リストを出力する出力部をさらに有する、テスト範囲決定システム。
【請求項５】
請求項１〜４のいずれか一項に記載のテスト範囲決定システムにおいて、
影響範囲リストを出力する出力部をさらに有する、テスト範囲決定システム。
【請求項６】
修正前ソースファイルと修正後ソースファイルとの相違点である修正情報を抽出する修正情報抽出ステップと、
前記修正情報に含まれるメソッド名をキーに前記修正後ソースファイルを検索し、前記メソッド名が含まれるクラスを抽出し、前記クラスに含まれるすべての前記メソッド名を抽出する影響範囲抽出ステップと、
前記影響範囲抽出ステップにて抽出された前記メソッド名をキーに前記修正後ソースファイルを検索し、前記キーと一致する文字列を含む箇所にカバレッジ情報を追加し、影響範囲とするカバレッジ情報追加ステップと、
を有する、テスト範囲決定方法。
【請求項７】
差分管理部が、修正前ソースファイルと修正後ソースファイルとの相違点である修正情報を抽出する修正情報抽出ステップと、
影響範囲抽出部が、前記修正情報に含まれるメソッド名をキーに前記修正後ソースファイルを検索し、前記メソッド名が含まれるクラスを抽出し、前記クラスに含まれるすべての前記メソッド名を抽出する影響範囲抽出ステップと、
カバレッジ情報追加部が、前記影響範囲抽出ステップにて抽出された前記メソッド名をキーに前記修正後ソースファイルを検索し、前記キーと一致する文字列を含む箇所にカバレッジ情報を追加し、影響範囲とするカバレッジ情報追加ステップと、
をテスト範囲決定システムのコンピュータに実行させる、テスト範囲決定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テスト範囲決定システムおよびテスト範囲決定方法ならびにテスト範囲決定プログラムに関する。
【背景技術】
【０００２】
変数（データを格納する領域）とデータに対する処理を記述するメソッドとから構成される雛形（この雛形を、以下クラスという）に基づいて、オブジェクトを生成し、当該オブジェクトを組み合わせることで、大規模なプログラムを開発することが知られている。
【０００３】
ここで、プログラムのソースファイルを修正した場合、特に、大規模なプログラムでは、修正した影響が多岐に渡ることがある。従来、入力を受け付けたキーワードをキーにソースファイルを検索することで修正が与える影響を調査していた。
【０００４】
特開２００５−１９０３３０号公報（特許文献１）には、「抽出部が、ソースプログラムの中からレビューでチェックすべき箇所を抽出してその位置情報を出力する。保管部は、チェックすべき箇所の位置情報を格納した位置フィールドと、未チェック状態としたチェックフラグフィールドからなるレコードとして保管する。チェック結果入力部でユーザからチェック結果と位置情報を受け取ると、保管部は該当する位置情報を含むレコードのチェックフラグフィールドの状態をチェック済み状態に変更する」と記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１９０３３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来の手法では、ソースファイルをチェックすべき箇所を漏れなく抽出することが困難であった。
【０００７】
本発明の目的は、修正後のソースファイルのチェックすべき箇所を漏れなく抽出可能にする技術を提供することである。
【課題を解決するための手段】
【０００８】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次の通りである。
【０００９】
本発明の一実施の形態は、修正前ソースファイルと修正後ソースファイルとの相違点である修正情報を抽出する差分管理部を有する。また、前記修正情報に含まれるメソッド名をキーに前記修正後ソースファイルを検索し、前記メソッド名が含まれるクラスを抽出し、前記クラスに含まれるすべての前記メソッド名を抽出する影響範囲抽出部を有する。また、前記影響範囲抽出部が抽出した前記メソッド名をキーに前記修正後ソースファイルを検索し、前記キーと一致する文字列を含む箇所にカバレッジ情報を追加し、影響範囲とするカバレッジ情報追加部とを有する。
【００１０】
また、他の実施の形態では、修正前ソースファイルと修正後ソースファイルとの相違点である修正情報を抽出する修正情報抽出ステップを有する。また、前記修正情報に含まれるメソッド名をキーに前記修正後ソースファイルを検索し、前記メソッド名が含まれるクラスを抽出し、前記クラスに含まれるすべての前記メソッド名を抽出する影響範囲抽出ステップを有する。また、前記影響範囲抽出ステップにて抽出された前記メソッド名をキーに前記修正後ソースファイルを検索し、前記キーと一致する文字列を含む箇所にカバレッジ情報を追加し、影響範囲とするカバレッジ情報追加ステップを有する。
【００１１】
また、他の実施の形態では、差分管理部が、修正前ソースファイルと修正後ソースファイルとの相違点である修正情報を抽出する修正情報抽出ステップをテスト範囲決定システムのコンピュータに実行させる。また、影響範囲抽出部が、前記修正情報に含まれるメソッド名をキーに前記修正後ソースファイルを検索し、前記メソッド名が含まれるクラスを抽出し、前記クラスに含まれるすべての前記メソッド名を抽出する影響範囲抽出ステップを前記コンピュータに実行させる。また、カバレッジ情報追加部が、前記影響範囲抽出ステップにて抽出された前記メソッド名をキーに前記修正後ソースファイルを検索し、前記キーと一致する文字列を含む箇所にカバレッジ情報を追加し、影響範囲とするカバレッジ情報追加ステップを前記コンピュータに実行させる。
【発明の効果】
【００１２】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００１３】
本発明の代表的な実施の形態によれば、修正後のソースファイルのチェックすべき箇所を漏れなく抽出できるようになる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施の形態におけるテスト範囲決定システムの構成例の概要を示す図である。
【図２】本発明の一実施の形態における差分管理部が抽出する修正情報の例を示す図である。
【図３】本発明の一実施の形態における記憶部が記憶する影響範囲リストの構成例を示す図である。
【図４】本発明の一実施の形態における記憶部が記憶するカバレッジ情報リストの構成例を示す図である。
【図５】本発明の一実施の形態における全体処理の概要を示す図である。
【図６】本発明の一実施の形態における差分記憶処理の概要を示す図である。
【図７】本発明の一実施の形態における影響範囲抽出処理の概要を示す図である。
【図８】本発明の一実施の形態におけるカバレッジ情報追加処理の概要を示す図である。
【図９】本発明の一実施の形態におけるテスト処理の概要を示す図である。
【図１０】本発明の一実施の形態における記憶部が記憶するテスト実施フラグを更新後のステップ実行ファイルの例を示す図である。
【図１１】本発明の一実施の形態における記憶部が記憶するフラグ更新後のカバレッジ情報リストの構成例を示す図である。
【図１２】本発明の一実施の形態における出力処理の概要を示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１６】
本発明の一実施の形態におけるテスト範囲決定システムは、修正後のソースファイルから修正されたメソッドを抽出する。そして、修正されたメソッドのメソッド名をキーに修正後のソースファイルを検索することで、抽出されたクラスに含まれるメソッド名をすべてチェックすべき箇所として抽出する。
【００１７】
これにより、修正後のソースファイルのチェックすべき箇所を漏れなく抽出できるようになる。
【００１８】
＜システム構成＞
図１は、本発明の一実施の形態におけるテスト範囲決定システムの構成例の概要を示す図である。
【００１９】
図１において、テスト範囲決定システムは、差分管理部１０１と、影響範囲抽出部１０２と、カバレッジ情報追加部１０３と、完了比率算出部１０４と、出力部１０５と、記憶部１０６とを有する。
【００２０】
また、テスト範囲決定システム（例えば、サーバ）は、所定のハードウェアおよびソフトウェアにより実装される。例えば、テスト範囲決定システムは、プロセッサやメモリなどを有し、プロセッサにより実行されるメモリ上のプログラムが、テスト範囲決定システムのコンピュータを機能させる。
【００２１】
差分管理部１０１は、修正前のソースファイルと修正後のソースファイルとの相違点である修正情報（後述、図２）を抽出する。
【００２２】
影響範囲抽出部１０２は、差分管理部１０１が抽出した修正情報に含まれるメソッド名をキーに、修正後のソースファイルを検索することで、キーと一致するメソッド名が含まれるクラスを抽出する。また、影響範囲抽出部１０２は、抽出したクラスに含まれるメソッド名をすべて抽出する。
【００２３】
カバレッジ情報追加部１０３は、影響範囲抽出部１０２が抽出したメソッド名をキーに修正後のソースファイルを検索し、キーと一致する文字列を含む箇所にカバレッジ情報を追加する。
【００２４】
完了比率算出部１０４は、テストの完了比率を算出する。
【００２５】
記憶部１０６は、修正前のソースファイルと修正後のソースファイルとを記憶する。また、記憶部１０６は、影響範囲リスト（後述、図３）とカバレッジ情報リスト（後述、図４）とフラグ更新後のカバレッジ情報リスト（後述、図１１）とを記憶する。
【００２６】
出力部１０５は、記憶部１０６から取得したフラグ更新後のカバレッジ情報リスト（後述、図１１）と影響範囲リスト（後述、図３）とを出力する。
【００２７】
＜修正情報＞
図２は、本発明の一実施の形態における差分管理部１０１が抽出する修正情報の例を示す図である。図２に示されるように、修正後のソースファイルである修正後ソースファイル２０２の文字列と修正前のソースファイルである修正前ソースファイル２０１の文字列のうち、異なる文字列を含む行全体が、修正情報２０３として抽出される。
【００２８】
＜影響範囲リスト＞
図３は、本発明の一実施の形態における記憶部１０６が記憶する影響範囲リストの構成例を示す図である。
【００２９】
図３に示されるように、影響範囲リストは、[番号]、[クラス名]、[メソッド名]などのデータ項目を有する。[番号]は、影響範囲リストを構成する各レコードに割り振られる番号を示す。[クラス名]は、クラスの名称を示す。[メソッド名]は、メソッドの名称を示す。また、[クラス名]と[メソッド名]とは対応付けて記憶部１０６に記憶される。
【００３０】
＜カバレッジ情報リスト＞
図４は、本発明の一実施の形態における記憶部１０６が記憶するカバレッジ情報リストの構成例を示す図である。図４に示されるように、カバレッジ情報リストは、[番号]、[クラス名]、[メソッド名]、[メソッド通番]、[テスト実施フラグ]などのデータ項目からなる。[メソッド通番]は、[クラス名]と[メソッド名]とが一致するメソッド内でのカバレッジ情報に割り振られる通し番号を示す。[テスト実施フラグ]は、対応するカバレッジ情報が実行されたかを識別するフラグである。
【００３１】
＜全体処理＞
図５は、本発明の一実施の形態における全体処理の概要を示す図である。
【００３２】
まず、Ｓ５０１にて、差分記憶処理（後述、図６）が実行される。
【００３３】
次に、Ｓ５０２にて、影響範囲抽出処理（後述、図７）が実行される。
【００３４】
次に、Ｓ５０３にて、カバレッジ情報追加処理（後述、図８）が実行される。
【００３５】
次に、Ｓ５０４にて、テスト処理（後述、図９）が実行される。
【００３６】
最後に、Ｓ５０５にて、出力処理（後述、図１２）が実行される。
【００３７】
＜差分記憶処理＞
図６は、本発明の一実施の形態における差分記憶処理の概要を示す図である。
【００３８】
まず、Ｓ６０１にて、差分管理部１０１は、記憶部１０６から修正後のプログラムを構成する各ソースファイルと、修正前のプログラムを構成する各ソースファイルとをすべて取得する。
【００３９】
次に、Ｓ６０２にて、差分管理部１０１は、Ｓ６０１にて取得した各ソースファイルから、修正情報が後述するＳ６０４にて抽出されていない、一組の修正後ソースファイルと修正前ソースファイルを選択する。
【００４０】
次に、Ｓ６０３にて、差分管理部１０１は、Ｓ６０２にて選択した修正後ソースファイルの文字列と修正前ソースファイルの文字列とを比較することで、修正後ソースファイルと修正前ソースファイルとの間で修正がされたか否かを判定する。差分管理部１０１が、修正がされていると判定する場合（Ｓ６０３−Ｙｅｓ）、Ｓ６０４へ進む。一方、差分管理部１０１が、修正がされていないと判定する場合（Ｓ６０３−Ｎｏ）、Ｓ６０５へ進む。
【００４１】
次に、Ｓ６０４にて、差分管理部１０１は、修正後ソースファイルの文字列と修正前ソースファイルの文字列とを比較することで、修正前ソースファイルと修正後ソースファイルとの相違点である修正情報をすべて抽出する。そして、差分管理部１０１は、抽出した各修正情報をソースファイルのファイル名と対応付けて記憶部１０６に記憶する。
【００４２】
次に、Ｓ６０５にて、差分管理部１０１は、Ｓ６０２にてすべてのソースファイルを選択したか否かを判定する。Ｓ６０５にて、差分管理部１０１が、すべてのソースファイルを選択していないと判定する場合（Ｓ６０５−Ｎｏ）、Ｓ６０２へ進む。一方、差分管理部１０１が、すべてのソースファイルを選択したと判定する場合（Ｓ６０５−Ｙｅｓ）、差分記憶処理を終了する。
【００４３】
ここで、Ｓ６０４が修正情報抽出ステップに相当する。
【００４４】
＜影響範囲抽出処理＞
図７は、本発明の一実施の形態における影響範囲抽出処理の概要を示す図である。
【００４５】
まず、Ｓ７０１にて、影響範囲抽出部１０２は、記憶部１０６に記憶されているすべての修正情報を取得する。
【００４６】
次に、Ｓ７０２にて、影響範囲抽出部１０２は、Ｓ７０１にて取得した各修正情報から、後述するＳ７０３およびＳ７０４にてメソッド名が抽出されていない修正情報を選択する。
【００４７】
次に、Ｓ７０３にて、影響範囲抽出部１０２は、Ｓ７０２にて選択した修正情報からメソッド名を抽出する。例えば、修正情報がメソッドのシグネチャ（メソッド名およびメソッドに対する引数の数と型により構成される）である場合、影響範囲抽出部１０２は、シグネチャに含まれるメソッド名を抽出する。また、修正情報がメソッドの処理の内容である場合、当該処理を定義するシグネチャに含まれるメソッド名を抽出する。
【００４８】
次に、Ｓ７０４にて、影響範囲抽出部１０２は、Ｓ７０３にて抽出したメソッド名をキーに、記憶部１０６に記憶されている修正後ソースファイルを構成する各ソースファイルを検索する。そして、Ｓ７０４にて選択したメソッド名のメソッドが含まれるクラスとクラス名とをすべて抽出するとともに、抽出した各クラスに含まれるメソッド名をすべて抽出する。
【００４９】
次に、Ｓ７０５にて、影響範囲抽出部１０２は、Ｓ７０４にて抽出したクラスのクラス名と、抽出したクラスに含まれる各メソッド名とを保持する。
【００５０】
次に、Ｓ７０６にて、影響範囲抽出部１０２は、Ｓ７０２にて選択した修正情報に含まれる変数の変数名を抽出する。
【００５１】
次に、Ｓ７０７にて、影響範囲抽出部１０２は、Ｓ７０６にて抽出した変数名をキーに、記憶部１０６に記憶されている修正後ソースファイルを構成する各ソースファイルを検索する。そして、Ｓ７０６にて選択した変数名が含まれるクラスとクラス名とをすべて抽出するとともに、抽出した各クラスに含まれるメソッド名をすべて抽出する。
【００５２】
次に、Ｓ７０８にて、影響範囲抽出部１０２は、Ｓ７０７にて抽出したクラス名と、抽出したクラスに含まれるメソッド名とを保持する。
【００５３】
次に、Ｓ７０９にて、影響範囲抽出部１０２は、Ｓ７０２にてすべての修正情報を選択したか否かを判定する。影響範囲抽出部１０２が、すべての修正情報を選択していないと判定する場合（Ｓ７０９−Ｎｏ）、Ｓ７０２へ進む。一方、影響範囲抽出部１０２がすべての修正情報を選択したと判定する場合（Ｓ７０９−Ｙｅｓ）、Ｓ７１０へ進む。
【００５４】
次に、Ｓ７１０にて、影響範囲抽出部１０２は、Ｓ７０４にて抽出したすべてのクラス名とこのクラスに含まれる各メソッド名と、Ｓ７０７にて抽出したすべてのクラス名とこのクラスに含まれる各メソッド名とを一元化した影響範囲リストを生成し、生成した影響範囲リスト（前述、図３）を記憶部１０６に記憶し、影響範囲抽出処理を終了する。
【００５５】
ここで、Ｓ７０４およびＳ７０７が、影響範囲抽出ステップに相当する。
【００５６】
＜カバレッジ情報追加処理＞
図８は、本発明の一実施の形態におけるカバレッジ情報追加処理の概要を示す図である。
【００５７】
まず、Ｓ８０１にて、カバレッジ情報追加部１０３は、記憶部１０６から最新（修正後）のプログラムを構成するすべてのソースファイルを取得する。
【００５８】
次に、Ｓ８０２にて、カバレッジ情報追加部１０３は、Ｓ８０１にて取得した各ソースファイルのコピーであるコピーソースファイルをソースファイルごとに生成する。
【００５９】
次に、Ｓ８０３にて、カバレッジ情報追加部１０３は、記憶部１０６からすべての修正情報を取得する。
【００６０】
次に、Ｓ８０４にて、カバレッジ情報追加部１０３は、Ｓ８０２にて生成した各コピーソースファイルの対応するすべての箇所にカバレッジ情報を追加する。
【００６１】
ここで、追加されるカバレッジ情報は、クラス名とメソッド名とメソッド通番とからなるステップ実行履歴をステップ実行ファイル（後述、図１０）に出力させるメソッドが該当する。また、カバレッジ情報は、Ｓ８０３にて取得した修正情報が開始する開始行と、修正情報が終了する終了行とに追加される。
【００６２】
再び図８を参照する。次に、Ｓ８０５にて、カバレッジ情報追加部１０３は、記憶部１０６から影響範囲リスト（前述、図３）を取得する。
【００６３】
次に、Ｓ８０６にて、カバレッジ情報追加部１０３は、Ｓ８０５にて取得した影響範囲リストに含まれるメソッド名であって、後述するＳ８０７にてカバレッジ情報が追加されていないメソッド名を選択する。
【００６４】
次に、Ｓ８０７にて、カバレッジ情報追加部１０３は、Ｓ８０６にて選択したメソッド名をキーに各コピーソースファイルを検索し、キーと一致する文字列を含むすべての箇所にカバレッジ情報を追加する。例えば、カバレッジ情報は、Ｓ８０６にて選択したメソッド名のメソッドが開始する開始行と、メソッドが終了する終了行とに追加される。これにより、カバレッジ情報追加部１０３は、Ｓ８０４にてカバレッジ情報が追加されたソースファイルに対して、さらにカバレッジ情報を追加する。
【００６５】
次に、Ｓ８０８にて、カバレッジ情報追加部１０３は、すべてのメソッド名をＳ８０６にて選択したか否かを判定する。Ｓ８０８にて、カバレッジ情報追加部１０３が、すべてのメソッド名を選択していないと判定する場合（Ｓ８０８−Ｎｏ）、Ｓ８０６へ進む。一方、Ｓ８０８にて、カバレッジ情報追加部１０３が、すべてのメソッド名を選択したと判定する場合（Ｓ８０８−Ｙｅｓ）、Ｓ８０９へ進む。
【００６６】
次に、Ｓ８０９にて、カバレッジ情報追加部１０３は、メソッド名（Ｓ８０４にてカバレッジ情報を追加した修正情報に含まれるメソッド名およびＳ８０７にてカバレッジ情報を追加したメソッド名）と、メソッド名のメソッドが含まれるクラス名と、メソッド通番とを対応付けたカバレッジ情報リスト（前述、図４）を記憶部１０６に記憶する。なお、カバレッジ情報リストは、上述したデータ項目に加えてさらに、カバレッジ情報が追加されたソースコードの行の番号を対応付けて記憶するようにしても良い。これによって、テスト処理（後述、図９）にてテストが実行されていない箇所を特定できるようになる。
【００６７】
次に、Ｓ８１０にて、カバレッジ情報追加部１０３は、Ｓ８０４およびＳ８０７にてカバレッジ情報を追加したカバレッジ情報追加済ソースファイルを記憶部１０６に記憶し、カバレッジ情報追加処理を終了する。
【００６８】
なお、Ｓ８０４およびＳ８０７がカバレッジ情報追加ステップに相当する。
【００６９】
＜テスト処理＞
図９は、本発明の一実施の形態におけるテスト処理の概要を示す図である。
【００７０】
まず、Ｓ９０１にて、カバレッジ情報追加済ソースファイルがコンパイルされる。その後、コンパイル後のオブジェクトファイルに基づきプログラムが実行される。
【００７１】
次に、Ｓ９０２にて、カバレッジ情報が追加された行に対応する処理が実行されると、テスト範囲決定システムは、ステップ実行履歴を記憶部１０６が記憶するステップ実行ファイルに追加する。
【００７２】
ここで、図１０は、本発明の一実施の形態における記憶部１０６が記憶するステップ実行ファイルの例を示す。図１０に示されるように、ステップ実行ファイルは、複数のステップ実行履歴からなり、ステップ実行履歴は、[番号]、[クラス名]、[メソッド名]、[メソッド通番]などのデータ項目からなる。なお、ステップ実行履歴は、上述したデータ項目に加えてさらに、カバレッジ情報が追加された行の番号を対応付けて記憶するようにしても良い。これによって、テストが実行されていない箇所を特定できるようになる。
【００７３】
次に、Ｓ９０３にて、テスト範囲決定システムは、プログラムの実行が完了したか否かを判定する。テスト範囲決定システムがプログラムの実行が完了しないと判定する場合（Ｓ９０３−Ｎｏ）、Ｓ９０２へ進む。一方、テスト範囲決定システムがプログラムの実行が完了したと判定する場合（Ｓ９０３−Ｙｅｓ）、Ｓ９０４へ進む。
【００７４】
次に、Ｓ９０４にて、完了比率算出部１０４は、記憶部１０６からカバレッジ情報リストを取得する。
【００７５】
次に、Ｓ９０５にて、完了比率算出部１０４は、記憶部１０６からステップ実行ファイルを取得する。
【００７６】
次に、Ｓ９０６にて、完了比率算出部１０４は、Ｓ９０４にて取得したカバレッジ情報リストの各レコードとＳ９０５にて取得したステップ実行ファイルの各レコードとを照合することで、テスト実施フラグを更新する。具体的には、完了比率算出部１０４は、カバレッジ情報リストのレコード（[クラス名]と[メソッド名]と[メソッド通番]とからなる）、ステップ実行ファイルのレコード（[クラス名]と[メソッド名]と[メソッド通番]とからなる）とが一致する場合、一致するカバレッジ情報リストのレコードに付加される[テスト実施フラグ]の値を「１」へ更新する。
【００７７】
図１１は、本発明の一実施の形態における記憶部１０６が記憶するテスト実施フラグを更新後のカバレッジ情報リストの構成例を示す図である。図１１に示されるように、カバレッジ情報リストは、[番号]、[クラス名]、[メソッド名]、[メソッド通番]、[テスト実施フラグ]、[完了比率]などのデータ項目からなる。[テスト実施フラグ]は、Ｓ９０３にて対応するカバレッジ情報が実行されたかを識別するフラグである。[テスト実施フラグ]は、初期値として「０」が記憶されている。そして、「１」は対応するカバレッジ情報が実行済であることを示す。[完了比率]は、すべてのカバレッジ情報履歴に対する[テスト実施フラグ]が「１」のカバレッジ情報履歴の比率を示す。
【００７８】
再び図９を参照する。次に、Ｓ９０７にて、完了比率算出部１０４は、追加されたカバレッジ情報の数とテストが実施されたカバレッジ情報の数とに基づいて、影響範囲に対するテストの実施比率である完了比率を算出する。そして、完了比率算出部１０４は、算出した完了比率をカバレッジ情報リストに追加する。完了比率は、[テスト実施フラグ]が「１」のカバレッジ情報履歴の数を、カバレッジ情報リストのすべてのカバレッジ情報履歴の数で除算することで算出される。
【００７９】
＜出力処理＞
図１２は、本発明の一実施の形態における出力処理の概要を示す図である。
【００８０】
まず、Ｓ１２０１にて、図示しない入力部は、ユーザから出力対象を選択する入力を受け付ける。出力対象としては、影響範囲リスト（前述、図３）またはテスト実施フラグを追加後のカバレッジ情報リスト（前述、図１１）のいずれかが該当する。
【００８１】
次に、Ｓ１２０２にて、出力部１０５は、ユーザから選択する入力を受け付けた出力対象を判定する。Ｓ１２０２にて、出力部１０５が、出力対象が影響範囲リストであると判定する場合（Ｓ１２０２−影響範囲リスト）、Ｓ１２０３へ進む。一方、Ｓ１２０２にて、出力部１０５が、出力対象がカバレッジ情報リストであると判定する場合（Ｓ１２０２−カバレッジ情報リスト）、Ｓ１２０４へ進む。
【００８２】
Ｓ１２０３にて、出力部１０５は、影響範囲リストをプリンター（不図示）へ出力する。プリンターは、出力された影響範囲リストを紙面に印刷する。なお、出力部１０５は影響範囲リストをディスプレイである表示部（不図示）へ出力するようにしても良い。
【００８３】
Ｓ１２０４にて、出力部１０５は、カバレッジ情報リストをプリンター（不図示）へ出力する。プリンターは、出力されたカバレッジ情報リストを紙面に印刷する。なお、出力部１０５はカバレッジ情報リストをディスプレイである表示部（不図示）へ出力するようにしても良い。
【００８４】
＜本実施の形態の効果＞
以上説明した本実施の形態におけるテスト範囲決定システムによれば、メソッド名が含まれるクラスを抽出し、抽出したクラスに含まれるすべてのメソッド名をチェックすべき箇所として抽出することで、修正後のソースファイルのチェックすべき箇所を漏れなく抽出できるようになる。
【００８５】
また、出力部１０５が、カバレッジ情報リストおよび影響範囲リストを出力することで、プログラムをレビューする際に、修正の影響を正確に把握できるようになる。
【００８６】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【００８７】
１０１…差分管理部、１０２…影響範囲抽出部、１０３…カバレッジ情報追加部、１０４…完了比率算出部、１０５…出力部、１０６…記憶部、２０１…修正前ソースファイル、２０２…修正後ソースファイル、２０３…修正情報
【図１】
2015088001.tif 000003
【図３】
2015088001.tif 000004
【図４】
2015088001.tif 000005
【図５】
2015088001.tif 000006
【図６】
2015088001.tif 000007
【図７】
2015088001.tif 000008
【図８】
2015088001.tif 000009
【図９】
2015088001.tif 000010
【図１０】
2015088001.tif 000011
【図１１】
2015088001.tif 000012
【図１２】
2015088001.tif 000013
【図２】
2015088001.tif 000014