(57)【特許請求の範囲】
【請求項１】
モジュール（プログラム）の変更に伴う影響を分析する影響分析装置における影響分析方法であって、
前記影響分析装置は、入力部、記憶部、制御部及び表示部を具備し、
前記記憶部には、モジュール名と、複数の前記モジュールを組合わせてテストした結果である組合せテスト結果と、前記組合わせテスト時の前記モジュールの実行順序と、前記複数のモジュールのうち変更モジュールを単体でテストした結果である単体テスト結果と、組合わせて実行する前記モジュールのモジュール名およびこれらモジュールの前記実行順序と、前記組合わせて実行する前記モジュールのモジュール名およびこれらモジュールの実行順序の組み合わせを一意に識別するチェックリスト番号と、がそれぞれ対応付けて記憶されており、
前記制御部により、
前記入力部を介して、前記変更モジュールのモジュール名を取得し、
前記取得したモジュール名に基づき前記記憶部を検索し、該当レコードのモジュールの前記組合せテスト結果と前記単体テスト結果とを照合し、
前記照合の結果、双方の結果が一致しない場合に、前記記憶部から、前記該当レコードのチェックリスト番号が同一で、かつ前記該当レコードの前記実行順序より大きい実行順序が格納されたレコードを特定し、
前記特定したレコードから前記モジュール名を抽出し、
前記抽出したモジュール名を、前記モジュール（プログラム）の変更に伴い影響するモジュールのモジュール名として前記表示部に表示する、
ことを特徴とする影響分析方法。
【請求項２】
前記制御部により、
前記実行順序に従って前記複数のモジュールの組合わせテストを行う際、前記入力部から初期投入データを最初に実行するモジュールの入力情報とし、以降、該モジュール実行時の出力情報を次に実行するモジュールの入力情報とし、各モジュールの出力情報を前記組合わせテスト結果として、該当チェックリスト番号、入力情報、実行順序と対応付けて前記記憶部に格納する、
ことを特徴とする請求項１に記載の影響分析方法。
【請求項３】
前記制御部により、
前記入力部を介して前記単体テストの対象モジュールのモジュール名を取得し、前記取得したモジュール名に基づき前記記憶部を検索し、該当レコードか抽出した前記入力情報を入力として前記単体テストの対象モジュールを実行し、該実行後の出力情報を前記単体テスト結果として、該当チェックリスト番号、入力情報、実行順序と対応付けて前記記憶部に格納する、
ことを特徴とする請求項２に記載の影響分析方法。
【請求項４】
前記制御部により、
組合わせテストの実行機能、単体テストの実行機能、前記モジュール（プログラム）の変更に伴い影響範囲を分析する機能の何れかの機能を選択する画面を前記表示部に表示する、
ことを特徴とする請求項３に記載の影響分析方法。
【請求項５】
コンピュータを制御して、請求項1乃至４の何れか１項に記載の影響分析方法を実行させるための影響分析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム変更に伴う影響分析を行う方法およびプログラムに関する。
【背景技術】
【０００２】
あるモジュールを修正する際に、修正の影響範囲を調べる影響分析においては通常、静的解析の結果を基にしたツールが用いられる。しかし、静的解析の結果を基にした影響分析では、抽出される影響範囲が膨大となってしまうことが多く、本当に影響があるかを検証する工数が大きくなってしまう。
【０００３】
このような影響範囲の抽出が膨大なり検証するための工数が大きくならないようにする技術として、前提条件の変更を検知して変更が影響するモジュールを特定し、静的解析の結果をもとに特定したモジュールを基点とした影響範囲のみを絞り込んで抽出できるようにし、従来の影響範囲を検証する工数が大きくなる課題を解決する方法が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１９１９６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記特許文献１に開示の技術では、変更に対して直接影響を受けるモジュールを特定し、特定したモジュールおよび特定したモジュールを呼び出しているモジュールのみを基点として、静的解析によって得られる結果から関連のあるモジュールを影響範囲とすることで、従来の影響の有無を検証する工数が大きくなることを抑えることができる。しかしながら、基点としたモジュールから直接呼出し関係を持つモジュールが多数存在した場合、影響範囲として抽出された範囲は大きくなり、検証の工数を大きくしてしまうことがある。また、抽出した影響範囲が小さい場合でも実際に修正の必要のない実効パスに対しても検証を行う必要性がある。
【０００６】
本発明の目的は、影響のある実行パスのみを抽出することで従来よりさらに影響範囲を絞り込んだ形で抽出でき、検証の作業工数を小さくすることのできる技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するための一手段について説明する。すなわち、本発明は、モジュール（プログラム）の変更に伴う影響を分析する影響分析装置における影響分析方法である。前記影響分析装置は、入力部、記憶部、制御部及び表示部を具備し、前記記憶部には、モジュール名と、複数の前記モジュールを組合わせてテストした結果である組合せテスト結果と、前記組合わせテスト時の前記モジュールの実行順序と、前記複数のモジュールのうち変更モジュールを単体でテストした結果である単体テスト結果と、組合わせて実行するも前記モジュールのモジュール名およびこれらモジュールの前記実行順序と、前記組合わせて実行する前記モジュールのモジュール名およびこれらモジュールの実行順序の組み合わせを一意に識別するチェックリスト番号と、がそれぞれ対応付けて記憶されている。そして、前記制御部により、前記入力部を介して、前記変更モジュールのモジュール名を取得し、前記取得したモジュール名に基づき前記記憶部を検索し、該当レコードのモジュールの前記組合せテスト結果と前記単体テスト結果とを照合し、前記照合の結果、双方の結果が一致しない場合に、前記記憶部から、前記該当レコードのチェックリスト番号が同一で、かつ前記該当レコードの前記実行順序より大きい実行順序が格納されたレコードを特定し、前記特定したレコードから前記モジュール名を抽出し、前記抽出したモジュール名を、前記モジュール変更に伴い影響するモジュールのモジュール名として前記表示部に表示する。
【発明の効果】
【０００８】
本発明によれば、モジュール修正時の影響範囲を従来より絞り込んだ形で抽出でき、検証に対する工数の更なる削減ができる。
【図面の簡単な説明】
【０００９】
【図１】影響分析装置１のハードウェア構成例を示す図である。
【図２】影響分析装置１が具備する影響分析テーブル１１４のデータ構成例を示す図である。
【図３】影響分析装置１が具備する組合せテスト実行機能１１１の処理を示すフローチャートである。
【図４】影響分析装置１が具備する単体テスト実行機能１１２の処理を示すフローチャートである。
【図５】影響分析装置１が具備する影響範囲分析機能１１３の処理概要を示すフローチャートである。
【図６】影響分析装置１が具備する影響分析機能１１３の影響範囲抽出処理Ｓ５０４の処理を示すフローチャートである。
【図７】影響分析装置１の表示部１０２に表示されるメニュー画面例を示す図である。
【図８】影響分析装置１の表示部１０２に表示される組合せテスト実行機能画面例を示す図である。
【図９】影響分析装置１が具備する制御ファイル１１５の内容例を示す図である。
【図１０】影響分析装置１の表示部１０２に表示される単体テスト実行機能画面例を示す図である。
【図１１】影響分析装置１の表示部１０２に表示される影響範囲分析機能画面例を示す図である。
【図１２】影響分析テーブル１１４に格納されている実行順序２０３およびモジュール名２０４を基に作成したフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明の一実施例について、図面を参照して詳細に説明する。
【００１１】
図１は、本実施例に係わる影響分析装置１のハードウェア構成例を示す図である。影響分析装置１は、記憶部１０１、表示部１０２と、入力部１０３と、ＣＰＵ等の制御部１０４とを具備する。各部は、バス（ＢＵＳ）によって接続されている。記憶部１０１には、テストとして複数のモジュール（プログラム）を連続して実行する組合せテスト実行機能１１１、テストとして１つのモジュールを実行する単体テスト実行機能１１２および影響範囲分析機能１１３からなるプログラム１１０と、影響分析テーブル１１４と、制御ファイル１１５と、モジュール格納領域１１６が格納されている。制御部１０４は、プログラム１１０の実行時、必要に応じて、モジュール格納領域１１６からモジュールを読み出し実行する。なお、単体テストは、１つのモジュールを実行する場合、組合せテストは、複数のモジュールを連続して実行する。  図２は、影響分析装置１が具備する影響分析テーブル１１４のデータ構成例を示す図である。
【００１２】
影響分析テーブル１１４は、組合せテスト実行時に実行されたモジュール名、実行順序、各モジュールの入力情報および出力情報および単体テスト実行時に実行されたモジュールの出力情報を格納するテーブルであり、組合せテスト実行機能１１１が実行された際、および単体テスト実行機能１１２が実行された際に更新される。図２に示すように、影響分析テーブル１１４は、通番２０１と、チェックリスト番号２０２と、実行順序２０３と、モジュール名２０４と、入力情報２０５と、出力情報２０６と、単体テスト出力情報２０７とをそれぞれ対応付けて記憶する。ここで、通番には、影響分析テーブル１１４にレコードが追加される度に採番された値で、レコードを一意に識別する情報が格納される。チェックリスト番号２０２には、組合せテスト実行機能１１１の実行時に利用者により入力部１０３を用いて入力されたチェックリスト番号が格納される。このチェックリスト番号は、組合わせて実行するモジュールのモジュール名およびこれらモジュールの実行順序の組み合わせを一意に識別する情報である。実行順序２０３には、組合せテスト実行機能１１１で１回の組合せテストで実行したモジュールの実行順序が格納される。モジュール名２０４には、組合せテスト実行機能１１１で実行したモジュールの名称が格納される。入力情報２０５には、組合せテスト実行機能１１１でモジュールを実行する際に入力する入力情報が格納され、出力情報２０６には、組合せテスト実行後に出力される出力情報が格納される。単体テスト出力情報２０７には、単体テスト実行機能１１２で実行したモジュールの実行後に出力される出力情報が格納される。
【００１３】
図３は、影響分析装置１が具備する組合せテスト実行機能１１１の処理を示すフローチャートである。
【００１４】
組合せテスト実行機能１１１は、利用者により入力部１０３を用いて図７に示すメニュー画面７００で組合せテスト実行機能７０１が選択されることで起動し（ステップＳ３０１）、図８に示す組合せテスト実行機能画面８００を表示する（ステップＳ３０２）。組合せテスト実行機能１１１は、利用者により入力部１０３を用いて組合せテスト実行機能画面８００に入力された、チェックリスト番号（今回の例ではＣＣＬ００１とする）、初期投入データ（今回の例では１とする）を取得する（ステップＳ３０３）。次に、組合せテスト実行機能１１１は、図９に示す制御ファイル１１５を読み込み（ステップＳ３０４）、Ｓ３０３で取得したチェックリスト番号（今回の例ではＣＣＬ００１とする）とＳ３０４で読み込んだ制御ファイル１１５内のチェックリスト番号とを照合し、制御ファイル１１５に記載されたモジュールの実行順序（今回の例ではモジュールＡ、モジュールＢ、モジュールＣとする）に従い、ステップＳ３０３で取得した初期投入データ（今回の例では１とする）を最初に実行するモジュールＡの入力情報として取得し、実行順序を１としてモジュール格納領域１１６にあるモジュールＡを実行し、実行結果を出力情報として取得する。次に実行するモジュールＢに入力するモジュールＡの出力情報をモジュールＢの入力情報として取得し、実行順序を２としてモジュール格納領域１１６にあるモジュールＢを実行し、実行結果を出力情報として取得する。次に実行するモジュールＣに入力するモジュールＢの出力情報をモジュールＣの入力情報として取得し、実行順序を３としてモジュール格納領域１１６にあるモジュールＣを実行し、実行結果を出力情報として取得する（ステップＳ３０５）。組合せテスト実行機能１１１は、すべてのモジュールを実行後、影響分析テーブル１１４のチェックリスト番号２０２、実行順序２０３、モジュール名２０４、入力情報２０５、出力情報２０６に、図８に示す組合せテスト実行機能画面８００より取得したチェックリスト番号（今回の例ではＣＣＬ００１とする）、モジュールの実行前後に取得した実行順序（今回の例では１、２、３とする）、モジュール名（今回の例ではモジュールＡ、モジュールＢ、モジュールＣとする）、入力情報（今回の例では１、２、３とする）、出力情報（今回の例では２、３、４とする）を格納し（ステップＳ３０６）、終了する。
【００１５】
図４は影響分析装置１が具備する単体テスト実行機能１１２の処理を示すフローチャートである。
【００１６】
単体テスト実行機能１１２は、利用者により入力部１０３を用いて図７に示すメニュー画面７００で単体テスト実行機能１１２が選択されることで起動し（ステップＳ４０１）、図１０に示す単体テスト実行機能画面１０００を表示する（ステップＳ４０２）。単体テスト実行機能１１２は、利用者により入力部１０３を用いて単体テスト実行機能画面１０００に入力されたモジュール名（今回の例ではモジュールＡとする）を取得し（ステップＳ４０３）、取得したモジュール名をキー（今回の例ではモジュールＡとする）に影響分析テーブル１１４のモジュール名２０４を検索し、該当するレコードからチェックリスト番号２０２（今回の例ではＣＣＬ００１、ＣＣＬ００２、ＣＣＬ００３とする）、入力情報２０５（今回の例では１、１０、２００とする）、単体テスト出力情報２０７（今回の例では、値無しとする）を抽出し（ステップＳ４０４）、ステップＳ４０３で取得したモジュール名（今回の例ではモジュールＡとする）と影響分析テーブル１１４から抽出したチェックリスト番号２０２（今回の例ではＣＣＬ００１、ＣＣＬ００２、ＣＣＬ００３とする）、入力情報２０５（今回の例では１、１０、２００とする）を、単体テスト入力条件として、図１０に示す単体テスト実行機能画面１０００に表示する（ステップＳ４０５）。次に、利用者により入力部１０３を用いて単体テスト実行機能画面１０００の実行ボタン１００６が押下される操作が行われることで、単体テスト実行機能１１２は、モジュール格納領域１１６にあるモジュールのうち、単体テスト実行機能画面１０００より取得したモジュール名のモジュールに対して、影響分析テーブル１１４から抽出した入力情報２０５（今回の例では１とする）を入力とした単体テストを実行し、出力情報（今回の例では２とする）を取得し（ステップＳ４０６）、取得した出力情報を、チェックリスト番号１００３、モジュール名１００４、入力情報１００５と一致する影響分析テーブル１１４のレコードの単体テスト出力情報２０７に格納（更新含む）する（ステップＳ４０７）。
【００１７】
次に、単体テスト実行機能１１２は、取得した入力情報すべてに対して単体テストを実施したかを判定し（ステップＳ４０８）、実施していない場合、ステップＳ４０６の処理へ戻り、実施している場合、処理を終了する。
【００１８】
図５は影響分析装置１が具備する影響範囲分析機能１１３の処理概要を示すフローチャートである。
【００１９】
影響範囲分析機能１１３は、利用者により入力部１０３を用いて図７に示すメニュー画面７００で影響範囲分析機能が選択されることで起動し（ステップＳ５０１）、図１１に示す影響範囲分析機能画面１１００を表示する（ステップＳ５０２）。利用者により入力部１０３を用いて影響範囲分析機能画面１１００に入力された、モジュール名（今回の例ではモジュールＡとする）を取得し（ステップＳ５０３）、影響範囲抽出処理を実行する（ステップＳ５０４）。
【００２０】
図６は影響分析装置１が具備する影響範囲分析機能１１３が実行する影響範囲抽出処理の処理を示すフローチャートである。
【００２１】
影響範囲抽出処理Ｓ５０４はＳ５０３で取得したモジュール名をキー（今回の例ではモジュールＡとする）に影響分析テーブル１１４のモジュール名２０４を検索し、該当するレコードの情報を取得する（ステップＳ６０１）。次に、モジュールの修正前後での同一入力情報に対する出力情報の変化を調べて、影響のある実行パスを抽出するために、取得したレコードの出力情報２０６（今回の例では２とする）と単体テスト出力情報２０７（今回の例では２とする）を突合する（ステップＳ６０２）。
【００２２】
次に、影響範囲抽出処理Ｓ５０４は、突合の結果を判定し（ステップＳ６０３）、突合が一致する場合、ステップＳ６０６の処理を実施する。一方、突合が一致しない場合、影響分析テーブル１１４から、突合したレコードのチェックリスト番号２０２（今回の例ではＣＣＬ００２、ＣＣＬ００３とする）が同一で、かつステップＳ６０１で検索した該当レコードの実行順序２０３（今回の例では１、２とする）より大きい実行順序が格納されたレコードを特定し、特定したレコードからモジュール名２０４（今回の例ではモジュールＤ、モジュールＥ、モジュールＧとする）を抽出する（ステップＳ６０４）。実行順序が大きいレコードを特定するのは、図１２に示されるように突合せしたモジュール(今回の例ではモジュールＡとする)の後続で実行されるモジュール（今回の例ではモジュールＢ、モジュールＣ、モジュールＤ、モジュールＥ、モジュールＧとする）は突合せしたモジュール（今回の例ではモジュールＡとする）の出力情報を入力情報とするため影響を受けるかどうかを検証する必要があるためである。抽出したモジュール名を影響分析結果一覧として保持する（ステップＳ６０５）。
【００２３】
次に、影響範囲抽出処理ステップＳ５０４は取得したレコードすべてに対して、出力情報２０６と単体テスト出力情報２０７の突合をしたかを判定し（ステップＳ６０６）、突合していない場合、ステップＳ６０２の処理へ戻る。一方、取得したレコードすべてに対して、出力情報２０６と単体テスト出力情報２０７を突合している場合、保持した影響分析結果一覧を図１１に示す影響範囲分析機能画面１１００に表示する（ステップＳ６０７）。
【００２４】
図７に示すメニュー画面７００には、影響分析装置１の表示部１０２に表示される、利用者が開始したい機能を選択するメニュー画面の例を示す。図７に示すメニュー画面７００において、利用者が入力部１０３を用いて、組合せテスト実行機能７０１を選択し押下する操作を行うことによって、図３に示す、組合せテスト実行機能１１１による処理が開始され、図８に示す、組合せテスト実行機能画面８００に遷移する。また、利用者が入力部１０３を用いて、単体テスト実行機能７０２を選択し押下する操作を行うことによって、図４に示す、単体テスト実行機能１１２による処理が開始され、図１０に示す、単体テスト実行機能画面１０００に遷移する。また、利用者が入力部１０３を用いて、影響範囲分析機７０３を選択し押下する操作を行うことによって、図５に示す、影響範囲分析機能１１３による処理が開始され、図１１に示す、影響範囲分析機能画面１１００に遷移する。
【００２５】
図８に示す組合せテスト実行機能画面８００には、影響分析装置１の表示部１０２に表示される、組合せテストのチェックリスト番号と初期投入データを入力する画面の例を示す。図８に示す組合せテスト実行機能画面８００において、利用者が入力部１０３を用いて、チェックリスト番号（今回の例ではＣＣＬ００１とする）８０１、初期投入データ（今回の例では１とする）８０２を入力し、実行ボタン８０３を押下する操作を行うことによって、組合せテストの実行が開始される。
【００２６】
図９は影響分析装置１が具備する制御ファイル１１５に記載される、組合わせテストのチェックリスト１件毎に、実行するモジュールのモジュール名が実行順序に沿って記載されている例を示す。図９に示す制御ファイル１１５において、チェックリスト番号（今回の例ではＣＣＬ０００１とする）と組合せテストで実行するモジュール名が実行順序に従って記載されている（今回の例ではモジュールＡ、モジュールＢ、モジュールＣとする）。組合せテスト実行機能１１１は、制御ファイル１１５を読み込み、入力されたチェックリスト番号に合致するチェックリスト番号の箇所に記載されているモジュールを順次実行する。
【００２７】
図１０に示す単体テスト実行機能画面１０００には、影響分析装置１の表示部１０２に表示される、単体テストを実施するモジュール名の入力と入力されたモジュールの入力情報を検索した結果を表示する画面の例を示す。図１０に示す単体テスト実行機能画面１０００において、利用者が入力部１０３を用いて、モジュール名（今回の例ではモジュールＡとする）１００１を入力し、検索ボタン１００２を押下する操作を行うことによって、影響分析テーブル１１４からモジュールの入力情報を検索した結果を表示する。図１０に示す単体テスト実行機能画面１０００において、チェックリスト番号１００３、モジュール名１００４、入力情報１００５がそれぞれ対応付けて表示される。チェックリスト番号１００３には、モジュールＡが実行されたチェックリスト番号、モジュール名１００４には、入力されたモジュール名１００１、入力情報１００５には組合せテスト実行時にモジュールＡに入力された入力情報が表示されている。利用者が、入力部１０３を用いて、実行ボタン１００６を押下する操作を行うことによって、単体テストの実行が開始される。
【００２８】
図１１に示す影響範囲分析機能画面１１００には、影響分析装置１の表示部１０２に表示される、影響範囲を分析するモジュール名の入力と入力されたモジュールの影響範囲を分析した結果を表示する画面の例を示す。図１１に示す影響範囲分析機能画面１１００において、利用者が、入力部１０３を用いて、にモジュール名（今回はモジュールＡとする）１１０１を入力し、実行ボタン１１０２を押下する操作を行うことによって、影響分析テーブル１１４からモジュールＡ変更時の影響範囲がモジュール名１１０３と対応付けて表示される。モジュール名１１０３には、影響を受けるモジュール名が表示されている。
【００２９】
図１２は、図２で示した影響分析テーブルに格納されている実行順序２０３とモジュール名２０４を基に作成したチェックリスト番号２０２がＣＣＬ００１の実行順序を示した図（１２０１）およびＣＣＬ００２の実行順序を示した図（１２０２）およびＣＣＬ００３の実行順序を示した図（１２０３）である。
【００３０】
以上本発明の一実施例について説明した。
【００３１】
以上本発明の実施例を説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【符号の説明】
【００３２】
１・・・影響分析装置、１０１・・・記憶部、１０２・・・表示部、１０３・・・入力部、１０４・・・制御部。
【図１】
0005325931.tif 000002
【図２】
0005325931.tif 000003
【図３】
0005325931.tif 000004
【図４】
0005325931.tif 000005
【図５】
0005325931.tif 000006
【図６】
0005325931.tif 000007
【図７】
0005325931.tif 000008
【図８】
0005325931.tif 000009
【図９】
0005325931.tif 000010
【図１０】
0005325931.tif 000011
【図１１】
0005325931.tif 000012
【図１２】
0005325931.tif 000013