(57)【要約】【課題】プログラムの詳細な解析を必要とせず、また、ユーザが変更箇所を指定しなくても、修正後のソースコードについて実行すべきテスト項目を抽出できるテスト支援システムを提供する。【解決手段】ソースコード比較手段１０６は、修正前ソースコード記憶手段１０２が記憶する修正前ソースコードと、修正後ソースコード記憶手段１０３が記憶する修正後のソースコードとを比較し、変更が行われたモジュールを特定する。通過モジュール情報記憶手段１０５は、修正前のソースコードに対して複数のテスト項目のテストを実行した際に処理が通過するモジュールを、テスト項目と対応付けて記憶する。テスト項目抽出手段１０７は、通過モジュール情報記憶手段１０５を参照し、変更が行われたモジュールを通過するテスト項目を抽出する。【選択図】図１
2010122959.tif 000002
【特許請求の範囲】
【請求項１】
複数のモジュールを含む第１のソースコードと、該第１のソースコードに含まれるモジュールの少なくとも一部に変更が加えられた第２のソースコードとを比較し、変更が行われたモジュールを特定するソースコード比較手段と、
前記第１のソースコードに対して複数のテスト項目のテストを実行した際に処理が通過するモジュールを、テスト項目と対応付けて記憶する通過モジュール情報記憶手段を参照し、前記変更が行われたモジュールを通過するテスト項目を抽出するテスト項目抽出手段とを備えるテスト支援システム。
【請求項２】
前記第１のソースコードのテストを実行したとき、テスト対象のテスト項目がどのモジュールを通過するかを示す情報を前記通過モジュール情報記憶手段に記録する通過モジュール記録手段を更に有する、請求項１に記載のテスト支援システム。
【請求項３】
前記通過モジュール記録手段が、複数のテスト項目を記憶するテスト項目記憶手段からテスト項目を１つ選択し、前記第１のソースコードに対して、前記選択したテスト項目のテストを実行するテスト項目実行手段を兼ねる、請求項２に記載のテスト支援システム。
【請求項４】
前記テスト項目抽出手段が抽出したテスト項目を、前記変更が行われたモジュールの通過回数が多い順に並び替えるテスト項目並び替え手段を更に有する、請求項１乃至３の何れか一に記載のテスト支援システム。
【請求項５】
コンピュータが、複数のモジュールを含む第１のソースコードを記憶する第１のソースコード記憶手段と、前記第１のソースコードに含まれるモジュールの少なくとも一部に変更が加えられた第２のソースコードを記憶する第２のソースコード記憶手段とを参照し、前記第１のソースコードと前記第２のソースコードとで変更が行われたモジュールを特定するステップと、
前記コンピュータが、前記第１のソースコードに対して複数のテスト項目のテストを実行した際に処理が通過するモジュールを、テスト項目と対応付けて記憶する通過モジュール情報記憶手段を参照し、前記変更が行われたモジュールを通過するテスト項目を抽出するステップとを有するテスト支援方法。
【請求項６】
前記コンピュータが、前記第１のソースコードのテストを実行したとき、テスト対象のテスト項目がどのモジュールを通過するかを示す情報を前記通過モジュール情報記憶手段に記録するステップを更に有する、請求項５に記載のテスト支援方法。
【請求項７】
前記コンピュータは、複数のテスト項目を記憶するテスト項目記憶手段からテスト項目を１つ選択し、前記第１のソースコードに対して、前記選択したテスト項目のテストを実行しつつ、前記選択したテスト項目がどのモジュールを通過するかを示す情報を前記通過モジュール情報記憶手段に記録する、請求項６に記載のテスト支援方法。
【請求項８】
前記コンピュータが、前記抽出したテスト項目を、前記変更が行われたモジュールの通過回数が多い順に並び替えるステップを更に有する、請求項５乃至７の何れか一に記載のテスト支援方法。
【請求項９】
コンピュータに、
複数のモジュールを含む第１のソースコードを記憶する第１のソースコード記憶手段と、前記第１のソースコードに含まれるモジュールの少なくとも一部に変更が加えられた第２のソースコードを記憶する第２のソースコード記憶手段とを参照し、前記第１のソースコードと前記第２のソースコードとで変更が行われたモジュールを特定する処理と、
前記第１のソースコードに対して複数のテスト項目のテストを実行した際に処理が通過するモジュールを、テスト項目と対応付けて記憶する通過モジュール情報記憶手段を参照し、前記変更が行われたモジュールを通過するテスト項目を抽出する処理とを実行させるプログラム。
【請求項１０】
更に、前記コンピュータに、前記第１のソースコードのテストを実行したとき、テスト対象のテスト項目がどのモジュールを通過するかを示す情報を前記通過モジュール情報記憶手段に記録する処理を実行させる、請求項９に記載のプログラム。
【請求項１１】
前記コンピュータに、複数のテスト項目を記憶するテスト項目記憶手段からテスト項目を１つ選択し、前記第１のソースコードに対して、前記選択したテスト項目のテストを実行する処理を行わせつつ、前記選択したテスト項目がどのモジュールを通過するかを示す情報を前記通過モジュール情報記憶手段に記録する処理を実行させる、請求項１０に記載のプログラム。
【請求項１２】
更に、前記コンピュータに、前記抽出したテスト項目を、前記変更が行われたモジュールの通過回数が多い順に並び替える処理を実行させる、請求項９乃至１１の何れか一に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
テスト支援システム、方法、及び、プログラムに関し、更に詳しくは、ソースコードに対するテストを支援するテスト支援システム、方法、及び、プログラムに関する。
【背景技術】
【０００２】
近年のソフトウェア開発は、新規開発だけでなく、既存システムの保守・改善開発も多い。保守・改善開発では、修正で仕様が変わらない箇所が、修正後に修正前と同じ動作をすることを確認するために、修正前に実施したものと同じテスト項目を実施する。このようなテストは、回帰テストと呼ばれる（非特許文献１）。
【０００３】
回帰テストでは、修正前に実施した全てのテスト項目を再度実施し、修正で仕様が変わっていない全てのテスト項目の合格を確認することが、品質面で理想的である。しかし、その場合、多くの作業時間が必要となり、効率的でない。回帰テストでは、修正内容に関連するテスト項目のみを抽出し、そのテスト項目のテストを行うことが望ましい。
【０００４】
回帰テストに際して、回帰テストでどのテスト項目をテストするかは、人間の判断に任されている。このため、本来ではあれば回帰テストで実施すべきテスト項目が、回帰テスト対象から外れることがあるという問題が生じている。
【０００５】
回帰テストに関する技術として、特許文献１に記載の技術がある。特許文献１では、ソフトウェアプログラムにおける各ステートメントの依存関係を参照して、変更されたステートメントと依存関係にあるステートメントを抽出する。その後、抽出されたステートメントと関連付けられたテストケースを、過去に実行されたテストケースと、ソフトウェアプログラムにおける各ステートメントとの対応についての情報から検出する。テストケースの検出後、検出されたテストケースを実行する。
【特許文献１】特開２００８−２０４４０５号公報
【非特許文献１】松本吉弘監訳「ソフトウェアエンジニアリング知識体系  ＳＷＥＢＯＫ」オーム社、２００３年６月１９日、Ｐ１１４−１１５
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１では、ソフトウェアプログラムを詳細に解析し、各ステートメントの依存関係を求める必要がある。このため、プログラムを解析する手段の実装が不可欠である。また、ソフトウェアプログラムの解析には時間がかかるという問題もある。更に、特許文献１では、回帰テストの実行に際して、ユーザが、プログラムの修正・変更したステートメントを指定する。ユーザが、手入力で修正・変更したステートメントを入力する必要があるので、手間がかかる。また、入力ミスし、或いは、入力漏れがあることも考えられる。
【０００７】
本発明は、プログラムの詳細な解析を必要とせず、また、ユーザが変更箇所を指定しなくても、修正後のソースコードについて実行すべきテスト項目を抽出できるテスト支援システム、方法、及び、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明のテスト支援システムは、複数のモジュールを含む第１のソースコードと、該第１のソースコードに含まれるモジュールの少なくとも一部に変更が加えられた第２のソースコードとを比較し、変更が行われたモジュールを特定するソースコード比較手段と、前記第１のソースコードに対して複数のテスト項目のテストを実行した際に処理が通過するモジュールを、テスト項目と対応付けて記憶する通過モジュール情報記憶手段を参照し、前記変更が行われたモジュールを通過するテスト項目を抽出するテスト項目抽出手段とを備えることを特徴とする。
【０００９】
本発明のテスト支援方法は、コンピュータが、複数のモジュールを含む第１のソースコードを記憶する第１のソースコード記憶手段と、前記第１のソースコードに含まれるモジュールの少なくとも一部に変更が加えられた第２のソースコードを記憶する第２のソースコード記憶手段とを参照し、前記第１のソースコードと前記第２のソースコードとで変更が行われたモジュールを特定するステップと、前記コンピュータが、前記第１のソースコードに対して複数のテスト項目のテストを実行した際に処理が通過するモジュールを、テスト項目と対応付けて記憶する通過モジュール情報記憶手段を参照し、前記変更が行われたモジュールを通過するテスト項目を抽出するステップとを有することを特徴とする。
【００１０】
本発明のプログラムは、コンピュータに、複数のモジュールを含む第１のソースコードを記憶する第１のソースコード記憶手段と、前記第１のソースコードに含まれるモジュールの少なくとも一部に変更が加えられた第２のソースコードを記憶する第２のソースコード記憶手段とを参照し、前記第１のソースコードと前記第２のソースコードとで変更が行われたモジュールを特定する処理と、前記第１のソースコードに対して複数のテスト項目のテストを実行した際に処理が通過するモジュールを、テスト項目と対応付けて記憶する通過モジュール情報記憶手段を参照し、前記変更が行われたモジュールを通過するテスト項目を抽出する処理とを実行させることを特徴とする。
【発明の効果】
【００１１】
本発明のテスト支援システム、方法、及び、プログラムは、プログラムの詳細な解析を必要とせず、また、ユーザが変更箇所を指定しなくても、修正後のソースコードについて実行すべきテスト項目を抽出することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照し、本発明の実施の形態を詳細に説明する。図１は、本発明の第１実施形態のテスト支援システムを示している。テスト支援システムは、テスト項目記憶手段１０１、修正前ソースコード記憶手段１０２、修正後ソースコード記憶手段１０３、通過モジュール記録手段１０４、通過モジュール情報記憶手段１０５、ソースコード比較手段１０６、テスト項目抽出手段１０７、及び、テスト項目表示手段１０８を有する。通過モジュール記録手段１０４、ソースコード比較手段１０６、及び、テスト項目抽出手段１０７の機能は、例えば、コンピュータ上で所定のプログラムを実行することで実現できる。
【００１３】
テスト項目記憶手段１０１は、ソースコードのテストに用いる複数のテスト項目を記憶する。修正前ソースコード記憶手段１０２は、修正前のソースコード（第１のソースコード）を記憶する。修正後ソースコード記憶手段１０３は、修正後のソースコード（第２のソースコード）を記憶する。ソースコードは、複数のモジュールを含む。モジュールは、ソースコード内で定義されたプログラムの論理的構成要素である。修正後のソースコードは、修正前のソースコードのモジュールの少なくとも一部が修正・変更されている。
【００１４】
ソースコードの記述には、Ｃ言語などのプログラミング言語や、オブジェクト指向のプログラミング言語を用いることができる。ソースコードは、ソフトウェアプログラムのソースコードには限定されず、ハードウェア記述言語（ＨＤＬ）などで記述されたハードウェアのソースコードであってもよい。
【００１５】
通過モジュール情報記憶手段１０５は、修正前のソースコードに対して複数のテスト項目のテストを実行した際に処理が通過するモジュールを、テスト項目と対応付けて記憶する。通過モジュール記録手段１０４は、修正前のソースコードのテストを実行したときに、テスト対象のテスト項目がどのモジュールを通過するかを示す情報を通過モジュール情報記憶手段１０５に記録する。
【００１６】
通過モジュール記録手段１０４は、テスト項目記憶手段１０１が記憶するテスト項目のそれぞれについて通過モジュールを求め、通過モジュール情報記憶手段１０５に記録する。通過モジュール記録手段１０４は、テスト項目記憶手段１０１からテスト項目を１つ選択し、修正前のソースコードに対して、選択したテスト項目のテストを実行するテスト項目実行手段を兼ねていてもよい。その場合、テスト項目実行手段（通過モジュール記録手段１０４）は、選択したテスト項目のテストを実行しつつ、そのテスト項目の通過モジュール情報を、通過モジュール情報記憶手段１０５に記録する。
【００１７】
ソースコード比較手段１０６は、修正前ソースコード記憶手段１０２が記憶するソースコードと、修正後ソースコード記憶手段１０３が記憶するソースコードとを比較する。ソースコード比較手段１０６は、修正前後のソースコードを比較し、修正前後で変更があったモジュールを特定する。テスト項目抽出手段１０７は、通過モジュール情報記憶手段１０５が記憶する各テスト項目の通過モジュール情報と、ソースコード比較手段１０６が出力する修正されたモジュールとに基づいて、回帰テストとして実行すべきテスト項目を抽出する。テスト項目表示手段１０８は、ディスプレイ等の表示手段であり、テスト項目抽出手段１０７が出力するテスト項目を表示する。
【００１８】
ユーザは、ソースコードの作成後、テスト項目記憶手段１０１が記憶するテスト項目のテストを実行し、ソースコードが仕様通りに動くことを確認する。その際、通過モジュール記録手段１０４は、各テスト項目で通過するモジュールの情報を、テスト項目ごとに通過モジュール情報記憶手段１０５に記録する。通過モジュール記録手段１０４は、テスト実行以外のタイミングで、通過モジュール情報を通過モジュール情報記憶手段１０５に記録してもよい。或いは、ユーザが、あらかじめ、作成したソースコードの内容に従って、通過モジュール情報記憶手段１０５に通過モジュール情報を記録しておいてもよい。
【００１９】
ユーザは、ソースコードに修正を加える。ユーザは、例えば、修正前のソースコードをエディタなどを用いて編集し、ソースコードに含まれるモジュールの一部の内容に変更を加える。ユーザは、修正前のソースコードを修正前ソースコード記憶手段１０２に記憶し、修正後のソースコードを修正後ソースコード記憶手段１０３に記憶する。ユーザは、修正後のソースコードに対して回帰テストを行う。ユーザは、回帰テストでは、テスト項目抽出手段１０７が抽出したテスト項目のテストを行う。
【００２０】
図２は、回帰テストにおけるテスト項目抽出の手順を示している。ユーザがテスト項目抽出を指示すると、ソースコード比較手段１０６は、修正前ソースコード記憶手段１０２から修正前のソースコードを取得し、修正後ソースコード記憶手段１０３から修正後のソースコードを取得し、両者を比較する（ステップＳ１１）。ソースコード比較手段１０６は、修正前後で変更があったモジュールを特定し、変更があったモジュールの一覧をテスト項目抽出手段１０７に出力する（ステップＳ１２）。
【００２１】
テスト項目抽出手段１０７は、ソースコード比較手段１０６が出力する変更があったモジュール一覧を受け取る。テスト項目抽出手段１０７は、ソースコードの修正前後で変更があったモジュール一覧と、通過モジュール情報記憶手段１０５が記憶する通過モジュール情報とを照らし合わせ、変更があったモジュールを通過するテスト項目を抽出する（ステップＳ１３）。テスト項目表示手段１０８は、テスト項目抽出手段１０７が抽出したテスト項目を表示し、ユーザに提示する（ステップＳ１４）。テスト項目が人間の入力を必要とせず、自動的に実行可能なものであれば、テスト項目抽出手段１０７が抽出したテスト項目を自動的に実行してもよい。
【００２２】
以下、具体例を用いて説明する。図３に、修正前のソースコードを示す。ここでは、ソースコードの記述に、Ｊａｖａ（Ｒ）言語を用いている。図３では、ソースコードには、fclass.Main、classA、classB、classCの４つのモジュールが記述されている。
【００２３】
図４に、テスト項目記憶手段１０１が記憶するテスト項目を示す。テスト項目記憶手段１０１は、テスト内容が異なる５つのテスト項目を記憶している。修正前のソースコードに対して、図４に示す５つのテスト項目のテストを行う。例えば、“テスト項目１”のテスト時は、Ｍａｉnクラスのｆｕｎｃ関数を、引数＝０で呼び出し、ソースコードに記述された処理を行う。また、“テスト項目２”のテスト時は、Ｍａｉnクラスのｆｕｎｃ関数を、引数＝４で呼び出し、ソースコードに記述された処理を行う。
【００２４】
通過モジュール記録手段１０４は、各テスト項目で通過するモジュールを、テスト項目ごとに、通過モジュール情報記憶手段１０５に記録する。例えば、テスト項目１は、Ｍａｉｎクラスのｆｕｎｃ関数が引数＝０で呼び出されるので、３行目の条件式（ａ＜＝０）が真になり、Ａ．ｆｕｎｃ関数が引数＝０で呼び出される。Ａ．ｆｕｎｃ関数では、関数内の条件式（ａ＜０）が満たされないので、Ｂ．ｆｕｎｃ関数の呼び出しはない。このため、テスト項目１で通過するモジュールは、MainモジュールとAモジュールの２つとなる。
【００２５】
図５に、通過モジュール情報記憶手段１０５に記録される通過モジュール情報を示す。テスト項目１の通過モジュールは、MainモジュールとAモジュールの２つになるので、通過モジュール記録手段１０４は、テスト項目１の欄に、MainとAを記録する。通過モジュール記録手段１０４は、他のテスト項目についても、上記と同様に、通過モジュールを調べ、通過モジュール情報記憶手段１０５に記録する。
【００２６】
図６に、修正後のソースコードを示す。修正後のソースコードでは、classAモジュール内で呼び出す関数が変更されている。また、classCモジュール内で呼び出す関数が変更されている。従って、修正前のソースコードのテストで用いたテスト項目のうち、classAモジュールとclassCモジュールとの何れかを通過するテスト項目のテスト結果は、前後で同じ結果になることは保証されない。一方、classAモジュールとclassCモジュールとの何れも通過しないテスト項目については、ソースコードの修正前後でテスト結果が同じになることが保証される。このため、修正後のソースコードに対する回帰テストでは、classAモジュール及びclassCモジュールの少なくとも一方を通過するテスト項目のみを実行すればよいことになる。
【００２７】
ソースコード比較手段１０６は、図２のステップＳ１１で、修正前のソースコード（図３）と、修正後のソースコード（図６）とを比較する。その後、ステップＳ１２で、修正後のソースコードで、修正前のソースコードから変更があったモジュールを特定する。ソースコード比較手段１０６は、ソースコードに記述されたテキスト同士を比較することで、変更があったモジュールを特定する。その際には、コメントやスペースといったソースコードの意味に関係がないもの、言い換えれば、モジュールの機能に影響がないものを除去した上で、変更があったモジュールを特定してもよい。
【００２８】
テスト項目抽出手段１０７は、ソースコード比較手段１０６から、変更があったモジュールは、classAモジュール及びclassCモジュールである旨の通知を受ける。テスト項目抽出手段１０７は、ステップＳ１３で、通過モジュール情報記憶手段１０５（図５）を参照し、修正前のソースコードのテストに用いたテスト項目、つまりは、テスト項目記憶手段１０１に記憶されたテスト項目のうち、変更があったモジュールを通過するテスト項目を抽出する。
【００２９】
図５を参照すると、classAモジュールを通過するテスト項目は、テスト項目１とテスト項目５の２つある。また、classCモジュールを通過するテスト項目は、テスト項目２とテスト項目５の２つある。テスト項目抽出手段１０７は、テスト項目１、テスト項目２、及び、テスト項目５の３つを抽出する。テスト項目表示手段１０８は、ステップＳ１４で、修正後のソースコードの回帰テストでテストすべきテスト項目が、テスト項目１、テスト項目２、及び、テスト項目５である旨を表示する。
【００３０】
本実施形態では、ソースコード比較手段１０６は、修正前のソースコードと修正後のソースコードとを比較し、変更が行われたモジュールを特定する。テスト項目抽出手段１０７は、通過モジュール情報記憶手段１０５を参照し、ソースコードの修正前後で変更が行われたモジュールを通過するテスト項目を抽出する。テスト項目抽出手段１０７は、修正前のソースコードに対して実行するテスト項目がどのモジュールを通過するかを示す情報と、ソースコードの修正で変更があったモジュールとから、修正の影響で動作が変更しうるテスト項目を抽出する。このようにすることで、修正後のソースコードに対して、回帰テストとして実行すべきテスト項目を抽出できる。
【００３１】
回帰テストでテストすべきテスト項目の抽出を人手で行うと、どのテスト項目を抽出するかは人間の判断に任されるので、本来回帰テストで実施すべきテスト項目が、回帰テストのテスト対象から外れることがある。本実施形態では、通過モジュール情報記憶手段１０５が記憶するテスト項目と通過モジュールとの対応関係と、ソースコード比較手段１０６が出力する修正前後で変更があったモジュールとを照らし合わせ、変更があったモジュールを通過するテスト項目を、回帰テストで実行すべきテスト項目として抽出するので、回帰テストで実施すべきテスト項目をもれなく抽出できる。
【００３２】
図７は、本発明の第２実施形態のテスト支援システムを示している。図１に示す第１実施形態のテスト支援システムとの相違点は、テスト項目並び替え手段１０９が追加されている点である。テスト項目抽出手段１０７は、変更があったモジュールを通過するテスト項目を求める際に、その変更があったモジュールを通過するテスト項目が、変更があったモジュールを何回通過するかをカウントする。テスト項目並び替え手段１０９は、テスト項目抽出手段１０７が出力するテスト項目を、変更があったモジュールの通過回数に応じて並び替え、テスト項目表示手段１０８に渡す。
【００３３】
図８は、回帰テストにおけるテスト項目抽出の手順を示している。ソースコード比較手段１０６は、修正前ソースコード記憶手段１０２から修正前のソースコードを取得し、修正後ソースコード記憶手段１０３から修正後のソースコードを取得し、両者を比較する（ステップＳ２１）。ソースコード比較手段１０６は、修正前後で変更があったモジュールを特定し、変更があったモジュールの一覧をテスト項目抽出手段１０７に出力する（ステップＳ２２）。
【００３４】
テスト項目抽出手段１０７は、ソースコード比較手段１０６が出力する変更があったモジュール一覧を受け取る。テスト項目抽出手段１０７は、ソースコードの修正前後で変更があったモジュール一覧と、通過モジュール情報記憶手段１０５が記憶する通過モジュール情報とを照らし合わせ、変更があったモジュールを通過するテスト項目を抽出する（ステップＳ２３）。また、テスト項目抽出手段１０７は、抽出したテスト項目について、変更があったモジュールの通過回数をカウントする。
【００３５】
テスト項目抽出手段１０７は、変更があったモジュールを通過するテスト項目と、変更があったモジュールの通過回数とを、テスト項目並び替え手段１０９に出力する。テスト項目並び替え手段１０９は、テスト項目抽出手段１０７が出力するテスト項目を、変更があったモジュールの通過回数順に並び替える（ステップＳ２４）。テスト項目表示手段１０８は、テスト項目並び替え手段１０９が並び替えを行ったテスト項目を表示し、ユーザに提示する（ステップＳ２５）。テスト項目が人間の入力を必要とせず、自動的に実行可能なものであれば、テスト項目抽出手段１０７が抽出したテスト項目を自動的に実行してもよい。
【００３６】
以下、具体例を用いて説明する。修正前後のソースコードは、第１実施形態の説明でも用いたものと同じものを用いる（図３、図６）。すなわち、修正前後で変更があったモジュールは、classAモジュールとclassCモジュールの２つである。また、テスト項目も、第１実施形態の説明で用いたものと同じものを用いる。すなわち、テスト項目として、図４に示すテスト項目１〜５の５つを考える。各テスト項目が通過するモジュールは、図５に示すようになっている。
【００３７】
テスト項目抽出手段１０７は、ステップＳ２３で、classAモジュールとclassCモジュールとの少なくとも一方を通過するテスト項目として、テスト項目１、テスト項目２、テスト項目５の３つを抽出する。図５を参照すると、テスト項目１は、classAモジュールを１回通過する。テスト項目２は、classCモジュールを１回通過する。テスト項目５は、classAモジュールを１回、classCモジュールを１回通過し、変更があったモジュールを計２回通過する。
【００３８】
テスト項目並び替え手段１０９は、ステップＳ２４で、テスト項目を、変更があったモジュールを通過した回数が多い順に並び替える。つまり、テスト項目並び替え手段１０９は、抽出されたテスト項目を、テスト項目５、テスト項目１、テスト項目２の順に並び替える。テスト項目１及びテスト項目２については、変更があったモジュールを通過する回数が同じなので、どちらが先でもよい。
【００３９】
テスト項目表示手段１０８は、ステップＳ２５で、テスト項目並び替え手段１０９が並び替えた順番で、テスト項目抽出手段１０７が抽出したテスト項目を表示する。すなわち、テスト項目５、テスト項目１、テスト項目２の順で表示する。
【００４０】
本実施形態では、テスト項目並び替え手段１０９は、テスト項目抽出手段１０７が抽出したテスト項目を、変更があったモジュールの通過回数が多い順に並び替える。変更があったモジュールの通過回数が多いテスト項目は、修正個所を通る回数が多い分だけ、ソースコードの修正前後で動作が変わっている可能性が高い。本実施形態では、変更があったモジュールの通過回数が多い順にテスト項目を表示するため、優先的に実施すべきテスト項目を、ユーザに提示することができる。また、時間的制約などにより、抽出されたテスト項目の全てをテストできない場合には、表示されたテスト項目を表示順に従って実行することで、動作が変わっている可能性が高いテスト項目から先に、回帰テストを行うことができる。その他の効果は、第１実施形態と同様である。
【００４１】
以上、本発明をその好適な実施形態に基づいて説明したが、本発明のテスト支援システム、方法、及び、プログラムは、上記実施形態にのみ限定されるものではなく、上記実施形態の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。
【図面の簡単な説明】
【００４２】
【図１】本発明の第１実施形態のテスト支援システムを示すブロック図。
【図２】テスト項目抽出の際の動作手順を示すフローチャート。
【図３】修正前ソースコードの具体例を示す図。
【図４】テスト項目の具体例を示す図。
【図５】通過モジュール情報の具体例を示す図。
【図６】修正後ソースコードの具体例を示す図。
【図７】本発明の第２実施形態のテスト支援システムを示すブロック図。
【図８】第２実施形態におけるテスト項目抽出時の動作手順を示すフローチャート。
【符号の説明】
【００４３】
１０１：テスト項目記憶手段
１０２：修正前ソースコード記憶手段
１０３：修正後ソースコード記憶手段
１０４：通過モジュール記録手段
１０５：通過モジュール情報記憶手段
１０６：ソースコード比較手段
１０７：テスト項目抽出手段
１０８：テスト項目表示手段
１０９：テスト項目並び替え手段
【図１】
2010122959.tif 000003
【図２】
2010122959.tif 000004
【図３】
2010122959.tif 000005
【図４】
2010122959.tif 000006
【図５】
2010122959.tif 000007
【図６】
2010122959.tif 000008
【図７】
2010122959.tif 000009
【図８】
2010122959.tif 000010