(57)【要約】【課題】テスト作業の効率化を図ることを目的とする。【解決手段】ソースコードに対して実施された複数のテストの結果を出力する情報処理装置は、変更前のソースコードおよび変更後のソースコードを取得する取得部と、取得した前記変更前のソースコードと前記変更後のソースコードとの比較結果に基づいて、前記変更後のソースコードに含まれる処理内容のうち、前記変更前のソースコードから変更された処理内容を示す変更処理内容を特定する特定部と、前記複数のテストそれぞれに対応付けて、前記変更前のソースコードに対するテストの結果と、前記変更後のソースコードに対するテストの結果と、特定した前記変更処理内容のうち、前記変更後のソースコードに対するテストにより実行された変更処理内容とを示す情報を出力する出力部と、を含む。【選択図】図１
2019040280.tif 000002
【特許請求の範囲】
【請求項１】
ソースコードに対して実施された複数のテストの結果を出力する出力プログラムにおいて、
変更前のソースコードおよび変更後のソースコードを取得し、
取得した前記変更前のソースコードと前記変更後のソースコードとの比較結果に基づいて、前記変更後のソースコードに含まれる処理内容のうち、前記変更前のソースコードから変更された処理内容を示す変更処理内容を特定し、
前記複数のテストそれぞれに対応付けて、前記変更前のソースコードに対するテストの結果と、前記変更後のソースコードに対するテストの結果と、特定した前記変更処理内容のうち、前記変更後のソースコードに対するテストにより実行された変更処理内容とを示す情報を出力する、
処理をコンピュータに実行させることを特徴とする出力プログラム。
【請求項２】
前記変更前のソースコードに対するテスト結果と、前記変更後のソースコードに対するテスト結果と、前記実行された変更処理内容とに基づいて、前記複数のテストをグループ化し、
グループ化された前記複数のテストについての情報を出力する、
処理を前記コンピュータに実行させることを特徴とする請求項１記載の出力プログラム。
【請求項３】
前記実行された変更処理内容が同じであり、且つ前記変更前のソースコードのテスト結果と前記変更後のソースコードのテスト結果との差異が同じテストを１つのグループに属させ、
前記実行された変更処理内容が同じであり、且つ前記変更前のソースコードのテスト結果と前記変更後のソースコードのテスト結果との差異がないテストを１つのグループに属させる、
処理を前記コンピュータに実行させることを特徴とする請求項２記載の出力プログラム。
【請求項４】
グループ化された前記複数のテストについての前記情報に、グループごとのテスト数を付加して出力する、
処理を前記コンピュータに実行させることを特徴とする請求項２または３記載の出力プログラム。
【請求項５】
グループ化された前記複数のテストについての前記情報に、前記グループに含まれるテスト数が少なくなるに応じて、優先度が高くなる優先度情報を付加して出力する、
処理を前記コンピュータに実行させることを特徴とする請求項２または３記載の出力プログラム。
【請求項６】
グループ化された前記複数のテストについての前記情報に、グループごとのテスト数および前記グループに含まれるテスト数が少なくなるに応じて、優先度が高くなる優先度情報を付加して出力する、
処理を前記コンピュータに実行させることを特徴とする請求項２または３記載の出力プログラム。
【請求項７】
前記変更後のソースコードに対して静的解析を行い、該静的解析が行われた前記変更後のソースコードに基づいて、前記変更された処理内容を特定する、
処理を前記コンピュータに実行させることを特徴とする請求項１乃至６のうち何れか１項に記載の出力プログラム。
【請求項８】
前記変更前のソースコードに正常でない前記処理内容が含まれ、且つ前記変更後のソースコードにおいて前記正常でない処理内容が正常な処理内容に変更されている場合、該処理内容を示す情報を、前記情報に追加する、
処理を前記コンピュータに実行させることを特徴とする請求項１乃至７のうち何れか１項に記載の出力プログラム。
【請求項９】
ソースコードに対して実施された複数のテストの結果を出力する出力プログラムにおいて、
変更前のソースコードおよび変更後のソースコードを取得し、
取得した前記変更前のソースコードと前記変更後のソースコードとの比較結果に基づいて、前記変更後のソースコードに含まれる処理内容のうち、前記変更前のソースコードから変更された処理内容を示す変更処理内容を特定し、
前記複数のテストそれぞれに対応付けて、前記変更前のソースコードに対するテストの結果と、前記変更後のソースコードに対するテストの結果と、特定した前記変更処理内容のうち、前記変更後のソースコードに対するテストにより実行された変更処理内容とを示す情報を出力する、
処理をコンピュータが実行することを特徴とする出力方法。
【請求項１０】
ソースコードに対して実施された複数のテストの結果を出力する情報処理装置において、
変更前のソースコードおよび変更後のソースコードを取得する取得部と、
取得した前記変更前のソースコードと前記変更後のソースコードとの比較結果に基づいて、前記変更後のソースコードに含まれる処理内容のうち、前記変更前のソースコードから変更された処理内容を示す変更処理内容を特定する特定部と、
前記複数のテストそれぞれに対応付けて、前記変更前のソースコードに対するテストの結果と、前記変更後のソースコードに対するテストの結果と、特定した前記変更処理内容のうち、前記変更後のソースコードに対するテストにより実行された変更処理内容とを示す情報を出力する出力部と、
を備えることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、出力プログラム、出力方法および情報処理装置に関する。
【背景技術】
【０００２】
例えば、ソフトウェアの開発において、流用開発という手法が用いられている。流用開発は、既存のソフトウェアを活用したソフトウェア開発手法であり、流用開発では、該既存のソフトウェアの一部が変更される。
【０００３】
流用開発では、既存のソフトウェアのうち変更された部分の不具合（デグレード）が、ソフトウェアの他の部分に影響を及ぼすことがある。従って、流用開発では、不具合があるかを検証するために、リグレッションテストと称されるテストが行なわれる。リグレッションテストでは、変更前のソフトウェアおよび変更後のプログラムに対するテストが行なわれ、テスト結果に差分があるかが検証される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−１８３９０号公報
【特許文献２】特開２０１６−１６７１８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
リグレッションテストにおいて、テスト対象プログラムのテスト結果が、該テスト対象プログラムの変更前と変更後とで異なる場合、テスト対象プログラムにデグレードが含まれている可能性があり、テスト対象プログラムの検証が行なわれる。
【０００６】
テスト結果がテスト対象プログラムの変更前と変更後とで異なる場合であっても、バグの修正等、意図した変更に基づく差分である可能性がある。従って、リグレッションテストにおいては、テスト対象プログラムの検証は、検証者の目視により行なわれる。
【０００７】
上記検証は、例えば、検証者がソースコードを１行ずつ、目視により確認することにより行なわれる。上記検証には、複数のパラメータが用いられる。従って、パラメータの数が多くなるに応じて、テスト作業の負荷が高くなる。該問題点は、リグレッションテスト以外のプログラムのテストにおいても生じ得るものである。
１つの側面として、本発明は、テスト作業の効率化を図ることを目的とする。
【課題を解決するための手段】
【０００８】
１つの態様では、ソースコードに対して実施された複数のテストの結果を出力する出力プログラムにおいて、変更前のソースコードおよび変更後のソースコードを取得し、取得した前記変更前のソースコードと前記変更後のソースコードとの比較結果に基づいて、前記変更後のソースコードに含まれる処理内容のうち、前記変更前のソースコードから変更された処理内容を示す変更処理内容を特定し、前記複数のテストそれぞれに対応付けて、前記変更前のソースコードに対するテストの結果と、前記変更後のソースコードに対するテストの結果と、特定した前記変更処理内容のうち、前記変更後のソースコードに対するテストにより実行された変更処理内容とを示す情報を出力する、処理をコンピュータに実行させることを特徴とする。
【発明の効果】
【０００９】
１つの側面によれば、テスト作業の効率化を図ることができる。
【図面の簡単な説明】
【００１０】
【図１】情報処理装置の一例を示す図である。
【図２】ソースコードの一例を示す図である。
【図３】対応関係テーブルの一例を示す図（その１）である。
【図４】判定テーブルの一例を示す図（その１）である。
【図５】解析データの一例を示す図（その１）である。
【図６】解析データの一例を示す図（その２）である。
【図７】対応関係テーブルの一例を示す図（その２）である。
【図８】実行経路特定の一例を示す図（その１）である。
【図９】対応関係テーブルの一例を示す図（その３）である。
【図１０】グループ化テーブルの一例を示す図（その１）である。
【図１１】ソースコードの一例を示す図（その２）である。
【図１２】判定テーブルの一例を示す図（その２）である。
【図１３】解析データの一例を示す図（その３）である。
【図１４】解析データの一例を示す図（その４）である。
【図１５】対応関係テーブルの一例を示す図（その４）である。
【図１６】シンボリック実行の一例を示す図（その１）である。
【図１７】対応関係テーブルの一例を示す図（その５）である。
【図１８】グループ化テーブルの一例を示す図（その２）である。
【図１９】ソースコードの一例を示す図（その３）である。
【図２０】判定テーブルの一例を示す図（その３）である。
【図２１】ソースコードの一例を示す図（その４）である。
【図２２】判定テーブルの一例を示す図（その４）である。
【図２３】実施形態の処理の流れの一例を示すフローチャート（その１）である。
【図２４】実施形態の処理の流れの一例を示すフローチャート（その２）である。
【図２５】グループ化処理の流れの一例を示すフローチャートである。
【図２６】情報処理装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１１】
＜実施形態のシステムの一例＞
以下、図面を参照して、実施形態について説明する。図１は、実施形態における情報処理装置１の一例を示す。情報処理装置１は、例えば、パーソナルコンピュータや携帯型の端末等であってもよい。情報処理装置１は、コンピュータの一例である。
【００１２】
情報処理装置１は、制御部２と表示部３と記憶部４と入力部５とを含む。制御部２は、実施形態に関する各種の処理を行う。表示部３は、制御部２の制御に基づいて、所定の情報を画面に表示する。記憶部４は、各種の情報を記憶する。入力部５は、所定の情報の入力に用いられる。
【００１３】
制御部２は、取得部１１と解析部１２とテスト実行部１３とグループ化部１４と出力部１５とを含む。取得部１１は、記憶部４から、変更前のソースコードおよび変更後のソースコードを取得する。
【００１４】
実施形態では、既存のプログラムのソースコードを流用し、該ソースコードのうち一部を変更して、新たなソースコードに基づくソフトウェアを開発する流用開発におけるテストを想定する。該テストは、リグレッションテストと称されることがある。実施形態は、流用開発におけるリグレッションテストには限定されない。例えば、ソースコードのうち一部が変更された場合における任意のテストに、実施形態が適用されてもよい。
【００１５】
変更前のソースコードは、例えば、流用開発における既存のソースコードである。変更後のソースコードは、変更前のソースコードのうち一部が変更されたソースコードである。該変更には、例えば、入力部５が用いられてもよい。
【００１６】
実施形態では、変更前のソースコードおよび変更後のソースコードは、予め記憶部４に記憶されているものとする。取得部１１は、ネットワーク等を介して、他のコンピュータ等から、変更前のソースコードおよび変更後のソースコードを取得してもよい。
【００１７】
解析部１２は、変更前のソースコードおよび変更後のソースコードに対して静的解析を行う。実施形態の静的解析は、ソースコードの文字列の解析、および解析した文字列の構文（構造）の解析を含むものとする。解析部１２は、特定部の一例である。
【００１８】
解析部１２は、静的解析の結果に基づいて、変更後のソースコードに含まれるソースコードのうち、変更前のソースコードから変更されたロジック（以下、変更ロジックと称する）を特定する。該ロジックは、処理内容の一例である。また、変更ロジックは、変更処理内容の一例である。
【００１９】
テスト実行部１３は、複数のパラメータを用いて、変更後のソースコードを実行する。ソースコードのテストのために、テスト実行部１３が用いる複数のパラメータは、変更後のソースコードが、正常に動作するパラメータと、正常に動作しないパラメータとを含むことが好ましい。パラメータは、テストパラメータであり、テストの一例である。
【００２０】
テスト実行部１３は、複数のパラメータのそれぞれについて、変更後のソースコードを実行した際に、該変更後のソースコードに含まれる複数の変更ロジックのうち、実行された変更ロジックを特定する。これにより、各パラメータのそれぞれについて、変更後のソースコードが実行された際に辿った変更ロジックの経路が特定される。
【００２１】
テスト実行部１３は、複数のパラメータのそれぞれを、特定された変更ロジックと関連付ける。また、変更前のソースコードのテスト結果および変更後のソースコードのテスト結果と、複数のパラメータのそれぞれとは、解析部１２により関連付けられる。
【００２２】
従って、複数のパラメータのそれぞれが、変更前のソースコードのテスト結果、変更後のソースコードのテスト結果、および特定された変更ロジックに関連付けられる。パラメータと変更前のソースコードのテスト結果と変更後のソースコードのテスト結果と特定された変更ロジックとの対応関係を示す対応関係テーブルが、記憶部４に記憶される。
【００２３】
グループ化部１４は、対応関係テーブルを参照して、各パラメータのそれぞれについて、変更ロジックとテスト結果の差異とに基づいて、各パラメータのグループ化を行なう。
【００２４】
グループ化部１４は、変更ロジックが同じであり、且つテスト結果の差異が同じパラメータが、１つのグループに属するようにグループ化を行なう。グループ化部１４は、変更ロジックが同じであり、且つテスト結果の差異がないパラメータが、１つのグループに属するようにグループ化を行なう。
【００２５】
変更後のソースコードのテストは、該テストの検証を行なう検証者の目視により行なわれる。変更後のソースコードのテストには、複数のパラメータが用いられる。同じグループに属する複数のパラメータのテストは、同じテストパターンであると推定される。従って、同じグループに属する複数のパラメータについては、該複数のパラメータのうち１つのパラメータを用いたテストが行なわれればよい。
【００２６】
従って、変更後のソースコードのテストを行う際のパラメータ数が削減されることから、テスト作業の効率化が図られ、テストの支援を行うことができる。
【００２７】
グループ化部１４は、グループに属するパラメータの数を類似数として、該類似数が最も少ないグループに、最も高い優先度を設定する。グループ化部１４は、複数のグループについて、類似数が少ないグループから順番に、高い優先度を設定する。従って、類似数が最も多いグループは、優先度が最も低い。
【００２８】
優先度は、目視によるソースコードの検証の優先度を示す。類似数は、テスト数の一例である。優先度は、以下、確認優先度と称することもある。確認優先度は、優先度情報の一例である。
【００２９】
出力部１５は、グループ化部１４がグループ化した対応関係テーブルに優先度を付与して、表示部３に出力する。従って、該対応関係テーブルが、表示部３に表示される。該対応関係テーブルは、上述したように、グループ化されて、パラメータの数が少なくなった対応関係テーブルである。
【００３０】
出力部１５は、グループ化される前の対応関係テーブルを、表示部３に出力してもよい。表示部３には、対応関係テーブル自体が表示されてもよいし、該対応関係テーブルに対して、所定の加工が施された情報が表示されてもよい。
【００３１】
例えば、表示部３は、画面のうち一定領域を固定ウィンドウとして、該固定ウィンドウに対応関係テーブルを表示してもよい。表示部３は、該画面のうち、他の領域に、変更後ソースコードを表示してもよい。
【００３２】
上記他の領域に表示される変更後ソースコードは、例えば、スクロールにより、表示内容が変化するが、対応関係テーブルの表示は変化しない。従って、検証者は、変更後ソースコードの検証をし易くなる。
【００３３】
＜ソースコードの一例＞
図２（Ａ）は、変更前のソースコード（以下、変更前ソースコードと称することがある）の一例を示し、図２（Ｂ）は、変更後のソースコード（以下、変更後ソースコードと称することがある）の一例を示す。
【００３４】
図２（Ｂ）における変更後ソースコードの５行目のうち一点鎖線で示される矩形部分は、新たに追加された条件であることを示す。図２（Ａ）の例の変更前ソースコードでは、５行目の命令「ｐａｒａｍ＜１０」という条件が満たされる場合に、６行目の命令が実行される。
【００３５】
一方、変更後ソースコードでは、「ｐａｒａｍ＜１０」という条件と「ｐａｒａｍ＞０」という条件との両者が満たされる場合に、６行目の命令が実行される。
【００３６】
二点鎖線で示される矩形部分（８行目の命令から１４行目の命令）は、変更前のソースコードに対して追加された命令を示す。変更後ソースコードでは、「ｒｅｓ＝＝０」という条件が満たされた場合に、値「−１」または「１」が返される。
【００３７】
実施形態におけるソースコードの変更は、条件または命令の追加だけではなく、書き換えや削除等を含んでもよい。変更前ソースコードおよび変更後ソースコードは、記憶部４に記憶されている。取得部１１は、記憶部４から、変更前ソースコードおよび変更後ソースコードを取得する。
【００３８】
＜対応関係テーブルの一例＞
図３は、対応関係テーブルの一例を示す。対応関係テーブルは、番号と入力と結果と変更ロジックとの項目を含む。対応関係テーブルは、対応関係を示す情報の一例である。番号は、パラメータの番号を示す。図３の例において、該番号は、「Ｎｏ．」として示される。
【００３９】
また、入力は、パラメータ（図３の「ｐａｒａｍ」）を示す。パラメータは、テスト実行部１３が変更後ソースコードを実行する際に用いられる値を示す。図３の例では、１０個のパラメータが対応関係テーブルに記録されている。パラメータの数は、任意の数であってよい。
【００４０】
結果は、対応するパラメータを用いた、変更前のソースコードのテスト結果と変更後のソースコードのテスト結果とを示す。結果のうち「現」は、変更前ソースコードのテスト結果であることを示す。結果のうち「新」は、変更後ソースコードのテスト結果であることを示す。
【００４１】
変更ロジックは、上述したように、変更後のソースコードに含まれるソースコードのうち、変更前のソースコードから変更されたロジックである。変更後ソースコードには、複数の変更ロジックが含まれる。対応関係テーブルの変更ロジックの項目数は、解析部１２が特定した変更ロジックの数に応じた数になる。
【００４２】
図２（Ａ）の例の変更前ソースコードの６行目において、パラメータ「ｐａｒａｍ」の値が、「０」未満の場合、変更前ソースコードの実行結果は、システムエラーとなる。該システムエラーは、図３の例において、「ｓｙsｔｅｍｅｒｒ！！」として示される。
【００４３】
また、変更前ソースコードのテスト結果と変更後ソースコードのテスト結果とは、同じ場合があり、異なる場合がある。また、テスト結果が異なる場合、該テスト結果の差異が異なる場合がある。
【００４４】
図３の例において、例えば、パラメータ「２」の場合、変更前ソースコードのテスト結果と変更後ソースコードのテスト結果とは、同じである。
【００４５】
一方、パラメータが「−１」の場合、変更前ソースコードのテスト結果と変更後ソースコードのテスト結果とは異なる。また、パラメータが「０」の場合、変更前ソースコードのテスト結果と変更後ソースコードのテスト結果とは異なる。パラメータ「−１」のテスト結果とパラメータ「０」のテスト結果とでは、テスト結果の差異（変更前ソースコードのテスト結果と変更後ソースコードのテスト結果との値の差分）が異なる。
【００４６】
＜変更ロジックの特定の一例＞
変更ロジックの特定の一例について、説明する。解析部１２は、図４の例に示される判定テーブルを用いて、変更後ソースコードに含まれるロジックのうち、変更前ソースコードから変更された変更ロジックを特定する。判定テーブルは、例えば、記憶部４に記憶されている。
【００４７】
図４の例に示されるように、判定テーブルは、変更ロジック名と判定条件と一致内容との項目を含む。図４の例では、判定テーブルに含まれる変更ロジックの判定条件は３つの例を示しているが、判定テーブルに含まれる変更ロジックの判定条件は３つ以外であってもよい。
【００４８】
変更ロジック名は、変更ロジックの名称を示す。判定条件は、変更前ソースコードおよび変更後ソースコードから変更ロジックを特定するための条件を示す。該判定条件は、複数の条件を含む場合がある。一致内容は、判定条件に基づいて、変更ロジックが特定された際における一致内容に関する情報を示す。
【００４９】
実施形態における解析部１２は、該判定テーブルを用いて、変更ロジックを特定する。解析部１２は、変更前ソースコードおよび変更後ソースコードに対して静的解析を行い、解析結果（解析データ）と判定テーブルとに基づいて、変更ロジックを特定する。
【００５０】
図５は、解析部１２が変更前ソースコードに対して静的解析を行った結果（解析データ）の一例を示す。図５の例において、「現ソース解析データ」は、変更前ソースコードの解析データを示す。
【００５１】
図５の例において、「行」は、図２（Ａ）の変更前ソースコードの例における命令の行を示す。例えば、解析部１２は、変更前ソースコードに対して文字列の解析を行い、文字列の解析結果に基づいて、変更前ソースコードの構造を解析することで、静的解析を行ってもよい。静的解析は、文字列の解析および構造（構文）の解析以外の手法を用いた解析であってもよい。
【００５２】
解析部１２が変更前ソースコードに対して静的解析を行った結果、図５の例に示される解析データが得られる。該解析データは、変更前ソースコードの各命令の構造や関数（メソッド）、値等を示す。
【００５３】
図６は、解析部１２が変更後ソースコードに対して静的解析を行った結果（解析データ）の一例を示す。図６の例において、「新ソース解析データ」は、変更後ソースコードの解析データを示す。
【００５４】
図６の例において、網掛けが施されている矩形部分は、変更前ソースコードから変更された変更ロジックであることを示す。例えば、構造で示される５行目に示される条件には、新たな条件が追加されている。
【００５５】
変更前ソースコードでは、該条件は、「ｐａｒａｍ＜１０」であったが、変更後ソースコードでは、上記条件は、「ｐａｒａｍ＜１０」および「ｐａｒａｍ＞０」を満たす条件に変更されている。
【００５６】
また、図６の例に示される変更後ソースコードの解析データは、変更後ソースコードにおける８行目から１４行目までの命令が追加されていることを示す。解析部１２は、変更前ソースコードの解析データと変更後ソースコードの解析データとを比較し、変更箇所を特定する。
【００５７】
図６の例の場合、解析部１２は、５行目、および８行目から１４行目までが、変更ロジックであることを特定する。この際、解析部１２は、８行目から１４行目までの命令は、「制御：ｉｆ」に属するため、該８行目から１４行目までの命令を纏めて１つの変更ロジックとして特定する。
【００５８】
解析部１２は、記憶部４に記憶された判定テーブルを参照して、特定された変更ロジックが、判定テーブルの判定条件に一致するかを判定する。５行目の変更箇所は、「制御：ｉｆ」の条件であり、図４の判定テーブルの「入力チェック処理の追加」に対応する判定条件のうち１番目の条件に一致する。
【００５９】
また、５行目の変更箇所には、「制御：ｉｆ」の条件が追加されているため、図４の判定テーブルの「入力チェック処理の追加」に対応する判定条件のうち２番目の条件に一致する。従って、解析部１２は、変更後ソースコードの５行目に対応するロジックが変更ロジックであることを特定する。
【００６０】
解析部１２は、対応関係テーブルのうち、変更ロジックに、上記５行目の変更箇所の一致内容を示す項目を追加する。また、解析部１２は、判定テーブルのうち、一致内容の項目に、変更ロジックの内容を示す情報を追加する。
【００６１】
上記８行目から１４行目までの変更ロジックのうち、８行目は、「制御：ｉｆ」の条件を含み、最後（最末端）の１４行目は、復帰があり、値「１」を返すことを示す。従って、８行目から１４行目までの変更ロジックは、判定テーブルの「復帰時ＮＧによるエラー処理の追加」に対応する判定条件を満たす。
【００６２】
解析部１２は、対応関係テーブルのうち、変更ロジックに、上記８行目から１４行目までの変更箇所の一致内容を示す項目を追加する。また、解析部１２は、判定テーブルのうち、一致内容の項目に、変更ロジックの内容を示す情報を追加する。
【００６３】
上述したように、解析部１２は、変更前ソースコードおよび変更後ソースコードに対して、静的解析を行い、変更ロジックを特定する。解析部１２は、該静的解析を行うことなく、変更ロジックを特定してもよい。
【００６４】
例えば、解析部１２は、変更前ソースコードおよび変更後ソースコードの文字列の解析結果、および該解析結果の比較に基づいて、変更ロジックを特定してもよい。一方、文字列の解析だけでは、変更ロジックが特定されない場合がある。
【００６５】
従って、実施形態では、解析部１２は、変更前ソースコードおよび変更後ソースコードに対して、静的解析を行う場合について説明するが、文字列の解析に基づいて、変更ロジックが特定されてもよい。
【００６６】
上述したように、解析部１２は、対応関係テーブルに、上記の２つの変更ロジックの項目を追加する。図７は、該対応関係テーブルに、上記の２つの変更ロジックが追加された一例を示す。
【００６７】
該対応関係テーブルの変更ロジックの項目には、上述した「入力チェック処理の追加」という変更ロジック、および上述した「復帰時ＮＧによるエラー処理の追加」が追加されている。解析部１２は、対応関係テーブルに、２つの変更ロジックのそれぞれに対応する情報を追加する。
【００６８】
＜実行経路取得の一例＞
図７の例に示されるように、対応関係テーブルには、１０個のパラメータが含まれる。情報処理装置１のテスト実行部１３は、該１０個のパラメータを用いて、変更後ソースコードを実行して、該変更後ソースコードのテストを行なう。
【００６９】
テスト実行部１３は、各パラメータを用いて、変更後ソースコードを実行することで、テストを行なう。該変更後ソースコードの実行は、シンボリック実行とも称される。テスト実行部１３は、各パラメータを用いたテストごとに、変更後ソースコードの実行経路を取得する。
【００７０】
図８の例に示されるように、パラメータ「ｐａｒａｍ」が「−２」を用いたテストの場合、変更後ソースコードの５行目における「ｉｆ」の条件には一致しない。従って、上記パラメータを用いたテストにおいては、５行目の変更ロジックは実行されない（通過しない）。
【００７１】
一方、４行目において、「ｒｅｓ」の値は「０」に設定されている。従って、パラメータ「ｐａｒａｍ」が「−２」を用いたテストでは、８行目の条件に一致するため、８行目から１４行目までの１つの変更ロジックが実行される。
【００７２】
該８行目から１４行目までの変更ロジックにおいて、パラメータ「ｐａｒａｍ」の値により、返り値（ｒｅｔｕｒｎ）は、「−１」または「１」になる。パラメータ「ｐａｒａｍ」が「−２」を用いたテストでは、「ｐａｒａｍ＜０」の条件を満たすため、返り値は「−１」となる。
【００７３】
パラメータ「ｐａｒａｍ」が「２」を用いたテストの場合、変更後ソースコードの５行目における「ｉｆ」の条件に一致する。従って、５行目の変更ロジックが実行される。この場合、６行目の命令が実行される。
【００７４】
６行目の命令において、値「ｒｅｓ」にａ［ｐａｒａｍ］の値が代入される。「ｐａｒａｍ」の値は「２」であり、３行目において、ａ［２］には、値「１０」が代入されている。従って、値「ｒｅｓ」は「１０」となる。該値「ｒｅｓ」は「１０」であるため、８行目の条件に一致しない。従って、上記テストの場合、８行目から１４行目までの変更ロジックは実行されない。
【００７５】
パラメータ「ｐａｒａｍ」が「１１」を用いたテストの場合、図８の例に示されるように、５行目の変更ロジックは実行されないが、８行目から１４行目までの変更ロジックは実行される。
【００７６】
テスト実行部１３は、上述したように、各パラメータを用いたテストについて変更後ソースコードを実行し、変更ロジックの実行経路を取得する。テスト実行部１３は、各パラメータのそれぞれについて、該パラメータを用いたテストを実行した際、実行された変更ロジックを対応関係テーブルに記録する。
【００７７】
テスト実行部１３は、上述したように、各パラメータのそれぞれについて、実行された変更ロジックの経路を取得する。テスト実行部１３は、各パラメータのそれぞれについて、変更ロジックの項目に、実行されたことを示す情報を記録する。図９の例では、実行された変更ロジックの項目にチェックが記録される。
【００７８】
図９の例において、対応関係テーブルは、番号１〜３および９〜１０に対応するパラメータを用いたテストで、「復帰値ＮＧによるエラー処理の追加」の変更ロジックが実行されたことを示す。
【００７９】
また、対応関係テーブルは、番号４〜８に対応するパラメータを用いたテストで、「入力値チェック処理の追加」の変更ロジックが実行されたことを示す。
【００８０】
図９の例の対応関係テーブルの各パラメータは、複数のグループに分類することができる。該グループは、テスト結果の差異と変更ロジックとに基づいて、分類される。各パラメータは、変更ロジックごとに、テスト結果の差異が同じグループと、該テスト結果の差異がないグループと、に分類される。
【００８１】
図９の例の場合、番号１〜３および番号９〜１０に対応するパラメータは、変更ロジックが「復帰値ＮＧによるエラー処理の追加」に対応する。番号１および２に対応するパラメータは、テスト結果の差異が同じである。従って、番号１および２に対応するパラメータは、同じグループに分類される。
【００８２】
番号３に対応するパラメータは、テスト結果に差異はあるが、該差異は、番号１および２とは異なる。従って、番号３に対応するパラメータは、番号１および２に対応するパラメータのグループとは異なるグループに分類される。
【００８３】
番号９および１０に対応するパラメータは、テスト結果に差異はあるが、番号１、２に対応するパラメータのグループ、および番号３に対応するパラメータのグループとは異なるグループに分類される。
【００８４】
番号４〜８に対応するパラメータは、変更ロジックが「入力値チェック処理の追加」に対応する。番号４〜８に対応するパラメータは、テスト結果の差異が同じである。従って、番号４〜８に対応するパラメータは同じグループに分類される。
【００８５】
例えば、出力部１６は、図９の例に示される対応関係テーブルを、表示部３に出力してもよい。該表示部３に、対応関係テーブルが表示されることで、情報処理装置１を操作する検証者に、対応関係テーブルが提示される。
【００８６】
同じグループに属するパラメータは、同じ変更ロジックが実行され、且つテスト結果の差異が同じである。従って、１つのグループに複数のパラメータが属する場合、該複数のパラメータを用いたテストは、同じパターンの経路を辿ることが推定される。
【００８７】
例えば、番号４〜８のグループに属する複数のパラメータを用いたテストでは、変更後ソースコードの同じ経路を辿ることが推定される。上述したように、変更後ソースコードの検証は、例えば、上記検証者の目視により行なわれる。該検証は、テスト作業に含まれる。
【００８８】
同じパターンの経路を辿る複数のパラメータについての検証は、該複数のパラメータのうち１つパラメータについての検証で実現可能である。
【００８９】
例えば、番号４〜８のグループに属する５つのパラメータについての検証は、該５つのパラメータのうち１つのパラメータについて行なわれればよい。該１つのパラメータについての変更ロジックの経路と、他の４つのパラメータについての変更ロジックの経路とは、同じであることが推定されるためである。
【００９０】
上記検証者は、表示部３に表示された対応関係テーブルに基づいて、上記５つのパラメータのうち１つのパラメータについて検証を行なう。従って、検証対象のパラメータの数が削減されることから、テスト作業の効率化が図られる。
【００９１】
出力部１５は、番号またはパラメータと、グループとの関係性を示す情報を、表示部３に表示させてもよい。例えば、出力部１５は、図９の例に示されるグループＡ〜Ｄの情報を、表示部３に表示させてもよい。
【００９２】
＜グループ化処理の一例＞
次に、グループ化処理について、説明する。グループ化部１４は、対応関係テーブルに基づいて、上述した分類と同様の処理を行い、図１０の例に示されるようなグループ化テーブルを生成する。グループ化テーブルは、グループ化された複数のテストについての対応関係を示す情報の一例である。
【００９３】
グループ化部１４は、対応関係テーブルを参照して、同じ変更ロジックに対応する複数のパラメータを、テスト結果の差異が同じであるグループと、該テスト結果の差異がないグループとに分類して、グループ化を行なう。
【００９４】
グループ化部１４は、番号１および２に対応するパラメータが、１つのグループに属するようにグループ化する。番号３に対応するパラメータは、同じ変更ロジックであり、且つテスト結果の差異が同じである他のパラメータがないため、グループ化部１４は、番号３に対応するパラメータを１つのグループに割り当てる。
【００９５】
グループ化部１４は、番号４〜８に対応するパラメータが、１つのグループに属するようにグループ化する。グループ化部１４は、番号９および１０に対応するパラメータが、１つのグループに属するようにグループ化する。
【００９６】
グループ化部１４は、対応関係テーブルの各パラメータについてグループ化を行なった結果を示すグループ化テーブルを生成する。グループ化テーブルは、複数のパラメータが１つのグループに属するようにグループ化されているため、対応関係テーブルと比較して、情報量（検証対象のパラメータ数）が削減されている。
【００９７】
グループ化部１４は、各グループのそれぞれに属するパラメータの数を類似数としてカウントする。グループ化テーブルにおいて、該類似数は、グループを示す１または複数の番号に対応する。グループ化部１４は、類似数の項目をグループ化テーブルに付加する。
【００９８】
また、グループ化部１４は、確認優先度の項目を、グループ化テーブルに付加する。確認優先度は、目視による検証の優先度を示す。優先度（確認優先度）が高いグループに属するパラメータは、優先度が低いグループに属するパラメータよりも、目視による検証の重要性が高いことを示す。
【００９９】
グループ化部１４は、各グループに対して、該各グループの類似数に基づいて、類似数が少なくなるに応じて、高い優先度を付与する。従って、グループ化部１４は、類似数が最も少ないグループには、最も高い優先度を付与し、類似数が最も多いグループには、最も低い優先度を付与する。図１０の例では、３段階の優先度の例を示しているが、優先度は２段階であってもよいし、４段階以上であってもよい。
【０１００】
例えば、番号３に対応するパラメータ「０」を用いたテストでは、同じ変更ロジックが実行され、且つテスト結果の差異が同じパラメータが他にない。
【０１０１】
つまり、番号３に対応するパラメータ「０」の特異性が高い。従って、変更後ソースコードのうち、類似数が最も低いグループに属するパラメータ「０」に対応する箇所に、不具合が発生している可能性が高い。該不具合は、デグレードやバグ等と称される。
【０１０２】
一方、グループ化テーブルは、番号４〜８に対応する各パラメータを用いたテストでは、同じ変更ロジックが実行され、且つテスト結果に差異がないパラメータが複数あることを示す。従って、上記各パラメータの特異性は低く、該各パラメータに対応する箇所に、不具合が発生している可能性は低い。
【０１０３】
従って、グループ化部１４は、各グループの類似数に基づいて、類似数が少なくなるに応じて、高い優先度をグループに対して付与する。出力部１４は、類似数および確認優先度の項目を含むグループ化テーブルを表示部３に出力する。表示部３は、該グループ化テーブルを表示する。
【０１０４】
情報処理装置１を操作する検証者は、表示部３に表示されたグループ化テーブルに基づいて、目視による検証を行なう。グループ化テーブルは、上記のグループ化部１４の処理により、検証対象のパラメータ数が１０個から４個に削減されている。
【０１０５】
従って、検証対象となるパラメータの数が少なくなることから、上記検証者が変更後ソースコードを検証する際における、テスト作業の効率化が図られる。
【０１０６】
また、グループ化テーブルは、確認優先度の項目を含む。上記検証者は、確認優先度の高いパラメータから順番に、変更後ソースコードを検証することができる。確認優先度が高いパラメータは特異性が高いことが想定されるため、不具合の発生箇所を早期に発見できる可能性が高くなる。
【０１０７】
図２（Ｂ）の変更後ソースコードの例では、５行目の「ｉｆ」の条件に「＆＆ｐａｒａｍ＞０」が追加されているが、該追加の条件が「＆＆ｐａｒａｍ＞＝０」であれば、変更後ソースコードは正しいソースコードである。つまり、変更後ソースコードにおける「＆＆ｐａｒａｍ＞０」は不具合である。
【０１０８】
従って、検証者は、パラメータ「０」を用いて、変更後ソースコードの目視による検証を行う際に、該変更後ソースコードに含まれる不具合を検証できる。上述したように、検証者は、パラメータ「０」の目視による検証を優先的に行うことができることから、変更後ソースコードに含まれる不具合を早期に発見できる。
【０１０９】
出力部１４は、類似数が付加され、且つ確認優先度が付加されていないグループ化テーブルを表示部３に出力してもよい。この場合、表示部３には、類似数が付加されたグループ化テーブルが表示される。
【０１１０】
検証者は、表示部３に表示されたグループ化テーブルに基づいて、類似数が少ないグループに属するパラメータから優先的に検証を行なうことができる。
【０１１１】
また、出力部１４は、確認優先度が付加され、且つ類似数が付加されていないグループ化テーブルを表示部３に出力してもよい。この場合、表示部３には、確認優先度が付加されたグループ化テーブルが表示される。
【０１１２】
検証者は、表示部３に表示されたグループ化テーブルに基づいて、確認優先度が高いグループに属するパラメータから優先的に検証を行なうことができる。
【０１１３】
＜変形例１＞
次に、変形例１について説明する。変形例１は、変更前ソースコードの変更箇所以外の箇所に不具合が生じている場合において、グループ化テーブルを出力する例である。
【０１１４】
図１１（Ａ）は、変形例１の変更前ソースコードの一例を示し、図１１（Ｂ）は、変形例１の変更後ソースコードの一例を示す。図１１（Ｂ）における一点鎖線で囲まれた矩形部分が変更箇所であることを示す。
【０１１５】
図１２は、変形例１の判定テーブルの一例を示す。該判定テーブルは、上述した実施形態の判定テーブル（図４の判定テーブル）とは異なる。変形例１の判定テーブルは、「初期値設定処理の変更」および「入力値チェック処理の追加」の判定条件を含む。該判定テーブルは記憶部４に記憶される。
【０１１６】
例えば、実施形態の判定テーブル（図４の判定テーブル）の項目に、上記の変形例１の判定テーブルにおける「初期値設定処理の変更」および「入力値チェック処理の追加」の判定条件が追加されていてもよい。
【０１１７】
解析部１２は、変更前ソースコードおよび変更後ソースコードに対して静的解析を行う。図１３は、変形例１における変更前ソースコードの解析データの一例を示す。図１４は、変形例１における変更後ソースコードの解析データの一例を示す。図１４の例の変更後ソースコードの解析データのうち、網掛けが施されている矩形部分は、変更前ソースコードから変更されたロジックを示す。
【０１１８】
図１５の例に示されるように、解析部１２は、変更ロジックの項目に、「初期値設定処理の変更」および「入力値チェック処理の追加」を追加する。
【０１１９】
テスト実行部１３は、対応関係テーブルに含まれる各パラメータを用いて、変更後ソースコードのテストを実行する。該変更後ソースコードのテストの実行は、シンボリック実行の一例である。
【０１２０】
図１６は、各パラメータのそれぞれについて、テスト実行部１３が変更後ソースコードを実行した際における変更ロジックの経路の一例を示す。テスト実行部１３は、変更ロジックの経路を取得する。
【０１２１】
図１７は、テスト実行部１３の実行結果に基づく対応関係テーブルの一例を示す。出力部１５は、該対応関係テーブルを表示部３に出力してもよい。
【０１２２】
図１７の対応関係テーブルの例に示されるように、番号１〜６は、同じ変更ロジックに対応し、且つテスト結果の差異が同じである。従って、グループ化部１４は、番号１〜６に対応するパラメータが、１つのグループに属するようにグループ化する。
【０１２３】
番号７のパラメータ「１０」と同じ変更ロジックを辿り、且つテスト結果の差異が同じである他のパラメータはない。従って、グループ化部１４は、番号７のパラメータ「１０」を、１つのグループに割り当てる。
【０１２４】
番号８のパラメータ「１１」と同じ変更ロジックを辿り、且つテスト結果の差異がない他のパラメータはない。従って、グループ化部１４は、番号７のパラメータ「１１」を、１つのグループに割り当てる。
【０１２５】
図１８は、対応関係テーブルに対して、グループ化部１４がグループ化を行なうことにより生成されるグループ化テーブルの一例を示す。図１８の例に示されるように、検証対象のパラメータ数は削減されているため、テスト作業の効率化が図られる。
【０１２６】
図１８の例では、番号７（パラメータ「１０」）に対応する類似数と、番号８（パラメータ「１１」）に対応する類似数とは同じである。従って、両者の確認優先度は同じである。
【０１２７】
検証者は、図１１（Ｂ）の例に示される変更後ソースコードを、同じ確認優先度の２つのパラメータのうち任意のパラメータを用いて、目視による検証を行なう。例えば、検証者が、パラメータ「１０」を用いて、変更後ソースコードの目視による検証を行なったとする。この場合、変更後ソースコードに不具合は発見されない。
【０１２８】
次に、検証者が、パラメータ「１１」を用いて、変更後ソースコードの目視による検証を行なったとする。この場合、パラメータ「１１」は、５行目の「ｉｆ」の条件に一致しないため、値「ｒｅｓ」に、ａ［ｐａｒａｍ］を代入する命令が実行されないことが発見される。
【０１２９】
従って、変更後ソースコードの５行目の変更部分「＜１１」は不具合であり、該変更部分は、「＜＝１１」が正しいことが検証される。
【０１３０】
上述したように、パラメータ「１１」のテスト結果に、差異はない。テスト結果に差異がない場合であっても、変形例１のグループ化テーブルに基づいて、変更後ソースコードの不具合を発見することができる。変形例１においても、検証対象のパラメータ数が削減されているため、テスト作業の効率化が図られる。
【０１３１】
＜変形例２＞
変形例２は、変更後ソースコードのうち、変更前ソースコードから変更されたロジックが、意図した修正であることを特定する例である。図１９（Ａ）は、変形例２における変更前ソースコードの一例を示し、図１９（Ｂ）は、変形例２における変更後ソースコードの一例を示す。また、図２０は、変形例２における判定テーブルの一例を示す。
【０１３２】
図１９（Ａ）の変更前ソースコードおよび図１９（Ｂ）の変更後ソースコードにおいて、８行目に対応する記述は、図２０の例の判定テーブルの判定条件を満たす。
【０１３３】
図２０の例における判定テーブルの判定条件のうち、「文字列連結演算子を使って数値を連結している」は、ソースコードの不具合（例えば、ソースコードの記述規則違反等）であることを示している。また、図２０の判定テーブルの判定条件は、変更前ソースコードに上記不具合が含まれ、且つ変更後ソースコードに上記不具合が含まれるロジックを検出するための判定条件を示す。
【０１３４】
解析部１２は、変更前ソースコードおよび変更後ソースコードに対して静的解析を行い、図１９（Ａ）の変更前ソースコードおよび図１９（Ｂ）の変更後ソースコードが、図２０の例の判定テーブルの判定条件を満たすと判定する。
【０１３５】
つまり、解析部１２は、変更前ソースコードに上記不具合があるロジック（正常でないロジック）が含まれており、且つ変更後ソースコードにおいて、上記不具合が解消されていると判定する。
【０１３６】
解析部１２は、対応関係テーブルの変更ロジックの項目に、「障害修正（文字列連結ミスの修正）」を追加する。出力部１５は、該対応関係テーブルを表示部３に出力する。表示部３は、該対応関係テーブルを表示する。検証者は、表示部３に表示されている対応関係テーブルに基づいて、変更ロジックに対して、意図した修正により、不具合が解消されていることを認識できる。
【０１３７】
＜変形例３＞
図２１（Ａ）は、変形例３における変更前ソースコードの一例を示し、図２１（Ｂ）は、変形例３における変更後ソースコードの一例を示す。変更後ソースコードの５行目は、ファイルを開く命令であり、１６行目は、開かれたファイルを閉じる命令である。
【０１３８】
図２２は、変形例３における判定テーブルの一例を示す。判定テーブルの判定条件のうち、図２１（Ｂ）の変更後ソースコードは、「ファイルからの情報取得処理の追加」の判定条件と一致する。
【０１３９】
解析部１２は、変更前ソースコードおよび変更後ソースコードに対して、静的解析を行う。静的解析は、上述したように、文字列の解析と該文字列の解析に基づく構文の解析とを含む。
【０１４０】
図２２は、変形例３における判定テーブルの一例を示す図である。該判定テーブルの判定条件は、ファイルに関する３つの条件を示す。ソースコードに含まれるファイルに関する命令について、変更ロジックを特定することは、文字列の解析だけでは難しい場合がある。
【０１４１】
変形例３では、解析部１２は、変更前ソースコードおよび変更後ソースコードに対して、上記の静的解析を行うことで、ファイルに関する命令の変更ロジックを特定することができる。
【０１４２】
＜実施形態の処理の流れの一例を示すフローチャート＞
図２３乃至図２５を参照して、実施形態の処理の流れの一例を示すフローチャートについて説明する。該フローチャートは、変形例１乃至変形例３にも適用される。
【０１４３】
図２３のフローチャートに示されるように、取得部１１は、記憶部４に記憶されている変更前ソースコードおよび変更後ソースコードを取得する（ステップＳ１）。
【０１４４】
テスト実行部１３は、複数のパラメータのそれぞれについて、変更後ソースコードを実行し、各パラメータのそれぞれに対応したテスト結果を、記憶部４の対応関係テーブルに記録する（ステップＳ２）。
【０１４５】
記憶部４に変更前ソースコードのテスト結果が記録されていない場合、テスト実行部１３は、各パラメータのそれぞれについて、変更前ソースコードを実行する。テスト結果は、記憶部４の対応関係テーブルに記録される。
【０１４６】
テスト実行部１３は、変更前ソースコードのテスト結果および変更後ソースコードのテスト結果を、各パラメータのそれぞれと関連付けて、対応関係テーブルに記録する。
【０１４７】
解析部１２は、変更前ソースコードおよび変更後ソースコードに対して静的解析を行う（ステップＳ３）。解析部１２は、静的解析の結果に基づいて、変更前ソースコードの解析データと変更後ソースコードの解析データとを比較し、判定テーブルの判定条件に一致するロジックを変更ロジックとして特定する。
【０１４８】
解析部１２は、特定された変更ロジックに関する情報を対応関係テーブルのうち、変更ロジックの項目に記録する（ステップＳ４）。
【０１４９】
テスト実行部１３は、各パラメータを用いて、変更後ソースコードを実行する（ステップＳ５）。従って、各パラメータのテストが行なわれる。テスト実行部１３は、各パラメータのそれぞれについて、テストを実行した際に、実行された変更ロジックを特定し、実行された変更ロジックを対応関係テーブルに記録する（ステップＳ６）。
【０１５０】
この際、テスト実行部１３は、各パラメータのそれぞれと、実行された変更ロジックとを関連付けて、記憶部４の対応関係テーブルに記録する。従って、対応関係テーブルには、変更前ソースコードのテスト結果と変更後ソースコードのテスト結果と実行された変更ロジックとが、各パラメータのそれぞれに関連付けられて、対応関係テーブルに記録される。
【０１５１】
出力部１５は、上記対応関係テーブルを表示部３に出力してもよい。この場合、例えば、図９の例に示されるような対応関係テーブルが、表示部３に表示される。次に、「Ａ」以降の処理について、図２４のフローチャートを参照して、説明する。
【０１５２】
グループ化部１４は、対応関係テーブルの各パラメータを、変更前ソースコードのテスト結果と変更後ソースコードのテスト結果との差異、および変更ロジックに基づいて、グループ化するグループ化処理を行う（ステップＳ７）。また、グループ化部１４は、グループ化テーブルの各グループに類似数を付加する（ステップＳ８）。
【０１５３】
グループ化部１４がグループ化処理を行なうことで、１つのグループに複数のパラメータが属する場合があり、１つのグループに１つのパラメータが属する場合がある。グループ化部１４は、各グループに含まれる類似数に基づいて、優先度を設定する（ステップＳ９）。グループ化部１４は、グループ化テーブルの各グループに優先度を付加する（ステップＳ１０）。
【０１５４】
出力部１５は、グループ化テーブルを表示部３に出力する（ステップＳ１１）。表示部３には、グループ化テーブルが表示される。検証者は、表示部３に表示されたグループ化テーブルに基づいて、変更後ソースコードを検証できるため、テスト作業の効率化が図られる。
【０１５５】
図２５は、グループ化処理の一例を示す。グループ化部１４は、対応関係テーブルに含まれる各パラメータのそれぞれについて、同じ変更ロジックであり、且つテスト結果の差異が同じパラメータを１つのグループにグループ化する（ステップＳ２１）。
【０１５６】
また、グループ化部１４は、対応関係テーブルに含まれる各パラメータのそれぞれについて、同じ変更ロジックであり、且つテスト結果の差異がないパラメータを１つのグループにグループ化する（ステップＳ２２）。
【０１５７】
＜情報処理装置のハードウェア構成の一例＞
次に、図２６の例を参照して、情報処理装置１のハードウェア構成の一例を説明する。図２６の例に示すように、バス１００に対して、プロセッサ１１１とRandom Access Memory(RAM)１１２とRead Only Memory(ROM)１１３とが接続される。また、該バス１００に対して、補助記憶装置１１４とディスプレイ１１６とキーボード１１７とが接続される。
【０１５８】
プロセッサ１１１はＲＡＭ１１２に展開されたプログラムを実行する。実行されるプログラムとしては、実施形態における処理を行う出力プログラムが適用されてもよい。
【０１５９】
ＲＯＭ１１３はＲＡＭ１１２に展開されるプログラムを記憶する不揮発性の記憶装置である。補助記憶装置１１４は、種々の情報を記憶する記憶装置であり、例えばハードディスクドライブや半導体メモリ等が適用されてもよい。媒体接続部１１５は、可搬型記録媒体１１５Ｍと接続可能に設けられている。
【０１６０】
可搬型記録媒体１１５Ｍとしては、可搬型のメモリ（例えば、半導体メモリ）や光学式ディスク（例えば、Compact Disc(CD)やDigital Versatile Disc(DVD)）等が適用されてもよい。この可搬型記録媒体１１５Ｍに実施形態の処理を行う出力プログラムが記録されていてもよい。
【０１６１】
上述した制御部２は、与えられた出力プログラムをプロセッサ１１１が実行することにより実現されてもよい。表示部２は、ディスプレイ１１６により実現されてもよい。記憶部４は、ＲＡＭ１１２や補助記憶装置１１４等により実現されてもよい。入力部５は、キーボード１１７やマウス等により実現されてもよい。
【０１６２】
ＲＡＭ１１２、ＲＯＭ１１３、補助記憶装置１１４および可搬型記録媒体１１５Ｍは、何れもコンピュータ読み取り可能な有形の記憶媒体の一例である。これらの有形な記憶媒体は、信号搬送波のような一時的な媒体ではない。
【０１６３】
＜その他＞
本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【符号の説明】
【０１６４】
１    情報処理装置
２    制御部
３    表示部
４    記憶部
５    入力部
１１    取得部
１２    解析部
１３    テスト実行部
１４    グループ化部
１５    出力部
１１１    プロセッサ
１１２    ＲＡＭ
１１３    ＲＯＭ
【図１】
2019040280.tif 000003
【図２】
2019040280.tif 000004
【図３】
2019040280.tif 000005
【図４】
2019040280.tif 000006
【図５】
2019040280.tif 000007
【図６】
2019040280.tif 000008
【図７】
2019040280.tif 000009
【図８】
2019040280.tif 000010
【図９】
2019040280.tif 000011
【図１０】
2019040280.tif 000012
【図１１】
2019040280.tif 000013
【図１２】
2019040280.tif 000014
【図１３】
2019040280.tif 000015
【図１４】
2019040280.tif 000016
【図１５】
2019040280.tif 000017
【図１６】
2019040280.tif 000018
【図１７】
2019040280.tif 000019
【図１８】
2019040280.tif 000020
【図１９】
2019040280.tif 000021
【図２０】
2019040280.tif 000022
【図２１】
2019040280.tif 000023
【図２２】
2019040280.tif 000024
【図２３】
2019040280.tif 000025
【図２４】
2019040280.tif 000026
【図２５】
2019040280.tif 000027
【図２６】
2019040280.tif 000028