(57)【要約】      （修正有）【課題】１つのテストの修正に応じて、影響を受けるテストを実行しながら組み合わせ情報を更新する。【解決手段】組み合わせ情報格納部３２２は、複数のテストを連続して実行するテストセットに基づいて、テストごとに入力データを識別する情報と出力データを識別する情報との組み合わせ情報を格納する。検証実行部３２１は、複数のテストのうちの第１のテストの変更を検証指示部３１２から受信したときに、第１のテストが含まれる第１の組み合わせ情報の出力データを、入力データとしている第２の組み合わせ情報を抽出し、第１の組み合わせ情報を、入力データを識別する情報、変更した第１のテスト、及び変更した第１のテストの検証によって出力される出力データを識別する情報の組み合わせとして更新し、第２の組み合わせ情報の入力データを、更新した第１の組み合わせ情報の出力データとして検証することにより第２の組み合わせ情報を更新する。【選択図】図３
2016143160.tif 000002
【特許請求の範囲】
【請求項１】
複数のテストを連続して実行するテストセットに基づいて、テストごとに入力データを識別する情報と出力データを識別する情報との組み合わせ情報を生成し、
前記複数のテストのうちの第１のテストの変更を受信したときに、該第１のテストが含まれる第１の組み合わせ情報の出力データを識別する情報を、入力データを識別する情報としている第２の組み合わせ情報を抽出し、該第１の組み合わせ情報を、入力データを識別する情報、該変更した第１のテスト、及び該変更した第１のテストの検証によって出力される出力データを識別する情報の組み合わせとして更新し、
前記第２の組み合わせ情報の入力データを識別する情報を、更新した前記第１の組み合わせ情報の出力データを識別する情報として検証することにより前記第２の組み合わせ情報を更新する、
処理をコンピュータに実行させることを特徴とする検証プログラム。
【請求項２】
前記変更した第１のテストの検証によって出力される出力データが正しいと判定された場合に、前記第２の組み合わせ情報を抽出することを特徴とする請求項１に記載の検証プログラム。
【請求項３】
前記変更した第１のテストの検証によって出力される出力データが、変更前の第１のテストの検証によって出力される出力データから変化していた場合に、前記第２の組み合わせ情報を抽出することを特徴とする請求項１または２に記載の検証プログラム。
【請求項４】
複数のテストを連続して実行するテストセットに基づいて、テストごとに入力データを識別する情報と出力データを識別する情報との組み合わせ情報を生成する生成部と、
前記複数のテストのうちの第１のテストの変更を受信したときに、該第１のテストが含まれる第１の組み合わせ情報の出力データを識別する情報を、入力データを識別する情報としている第２の組み合わせ情報を抽出する抽出部と、
前記第１の組み合わせ情報を、入力データを識別する情報、該変更した第１のテスト、及び該変更した第１のテストの検証によって出力される出力データを識別する情報の組み合わせとして更新する第１の更新部と、
前記第２の組み合わせ情報の入力データを識別する情報を、更新した前記第１の組み合わせ情報の出力データを識別する情報として検証することにより前記第２の組み合わせ情報を更新する第２の更新部と
を有することを特徴とする検証装置。
【請求項５】
コンピュータによる検証方法であって、該コンピュータが、
複数のテストを連続して実行するテストセットに基づいて、テストごとに入力データを識別する情報と出力データを識別する情報との組み合わせ情報を生成し、
前記複数のテストのうちの第１のテストの変更を受信したときに、該第１のテストが含まれる第１の組み合わせ情報の出力データを識別する情報を、入力データを識別する情報としている第２の組み合わせ情報を抽出し、該第１の組み合わせ情報を、入力データを識別する情報、該変更した第１のテスト、及び該変更した第１のテストの検証によって出力される出力データを識別する情報の組み合わせとして更新し、
前記第２の組み合わせ情報の入力データを識別する情報を、更新した前記第１の組み合わせ情報の出力データを識別する情報として検証することにより前記第２の組み合わせ情報を更新する、
ことを特徴とする検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検証プログラム、検証装置及び検証方法に関する。
【背景技術】
【０００２】
作成したアプリケーション（機能）が、仕様通りに動作するかどうかを検証するにあたっては、仕様書に基づく様々なテストが実行される。テストには１つのテストを実行して検証を行うものから、複数のテストを組み合わせて実行し、あるテストで出力された出力データを別のテストの入力データとして扱い、別のテストを実行することで検証を行うものまで様々である。
【０００３】
複数のテストを組み合わせて連続するテストを実行する場合、すべてのテストを実行するには時間がかかるため、連続するテストを細分化することが考えられる。細分化して実行する場合、入力データを識別する情報、テスト、出力データを識別する情報を組み合わせて組み合わせ情報として登録しておき、入力データに対して出力データが正しいかどうかをテストごとに検証すればよい。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１２／０７３６８６号
【特許文献２】特開２００４−３１０２７９号公報
【特許文献３】特開２０１０−１２３１１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、連続するテストのうちの１つのテストを変更（もしくは仕様を変更）した場合、変更したテスト（もしくは仕様）によっては出力データも変化するため、他のテストも影響を受けることになる。一方で、連続するテストが細分化されている場合、１つのテスト（もしくは仕様）の変更により他のどのテストが影響を受けるかがわからないため、組み合わせ情報を更新することができない。
【０００６】
一つの側面では、１つのテストの修正に応じて、影響を受けるテストを実行しながら組み合わせ情報を更新できるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
一態様によれば、検証プログラムは、複数のテストを連続して実行するテストセットに基づいて、テストごとに入力データを識別する情報と出力データを識別する情報との組み合わせ情報を生成し、前記複数のテストのうちの第１のテストの変更を受信したときに、該第１のテストが含まれる第１の組み合わせ情報の出力データを識別する情報を、入力データを識別する情報としている第２の組み合わせ情報を抽出し、該第１の組み合わせ情報を、入力データを識別する情報、該変更した第１のテスト、及び該変更した第１のテストの検証によって出力される出力データを識別する情報の組み合わせとして更新し、前記第２の組み合わせ情報の入力データを識別する情報を、更新した前記第１の組み合わせ情報の出力データを識別する情報として検証することにより前記第２の組み合わせ情報を更新する、処理をコンピュータに実行させることを特徴とする。
【発明の効果】
【０００８】
一態様によれば、１つのテストの修正に応じて、影響を受けるテストを実行しながら組み合わせ情報を更新することができる。
【図面の簡単な説明】
【０００９】
【図１】テストセットの一例及び細分化したテストセットの一例を示す図である。
【図２】ＶＭまたはコンテナを用いてＶＭイメージまたはコンテナイメージを生成する様子を示す図である。
【図３】検証システムのシステム構成を示す図である。
【図４】検証装置のハードウェア構成を示す図である。
【図５】テストセットテーブルの一例を示す図である。
【図６】組み合わせ情報テーブルの一例を示す図である。
【図７】コンテナイメージテーブルの一例を示す図である。
【図８】検証実行部の機能構成を示す図である。
【図９】検証システムにおける検証処理のシーケンス図である。
【図１０】準備処理のフローチャートである。
【図１１】実行処理のフローチャートである。
【図１２】再実行処理のフローチャートである。
【図１３】テストセットテーブルの一実施例を示す図である。
【図１４】テストセットに含まれる各テストの関係を示す図である。
【図１５】組み合わせ情報テーブル及びコンテナイメージテーブルの具体例を示す第１の図である。
【図１６】組み合わせ情報テーブル及びコンテナイメージテーブルの具体例を示す第２の図である。
【図１７】テストとイメージとの関係を示す図である。
【図１８】変更後のテストセットテーブルの一実施例を示す図である。
【図１９】テストとイメージとの関係を変更前後で対比した図である。
【図２０】組み合わせ情報テーブル及びコンテナイメージテーブルの具体例を示す第３の図である。
【図２１】組み合わせ情報テーブル及びコンテナイメージテーブルの具体例を示す第４の図である。
【発明を実施するための形態】
【００１０】
はじめに、実施形態における検証装置による検証方法について説明する。実施形態における検証装置では、テストセットを検証対象として検証を行う。図１はテストセットの一例及び細分化したテストセットの一例を示す図である。なお、図中の英数字が記された円形の図形はデータであることを示し、英数字を含む文字が記された四角形の図形はデータに対する操作（テストを含む）であることを示している。
【００１１】
図１（ａ）に示すテストセットは、ｔ１、ｔ２、ｔ３の３つのテストが連続して実行されるテストセットであり、データベース（以下、ＤＢと略す）内のデータがｄ０の状態（初期化状態）で、初期データｄ１を投入した様子を示している。
【００１２】
図１（ａ）に示すように、ＤＢに初期データｄ１が投入されると、投入された初期データｄ１を入力データとしてテストｔ１が実行され、テストｔ１のテスト結果（出力データ）を入力データとしてテストｔ２が実行される。更に、テストｔ２のテスト結果を入力データとしてテストｔ３が実行され、テスト結果が出力された後、ＤＢが初期化され、ＤＢ内のデータがｄ０の状態になる。
【００１３】
図１（ａ）に示すように、複数のテストを連続して実行するテストセットでは、前段のテストのテスト結果を入力データとして各テストが実行される。このため、ＤＢへの初期データ（ｄ１）の投入及びＤＢの初期化を１回にすることができるという利点がある。
【００１４】
一方で、図１（ａ）に示すように複数のテストを連続して実行する場合、テスト間においてデータの管理は行われない。このため、一部のテストが変更された場合であっても、変更されたテストから実行を開始することができず、はじめのテストから実行を開始する必要がある。つまり、不要なテスト（変更されたテストよりも前段側に位置する各テスト）を実行する必要があり、テストに時間がかかるといった不都合がある。
【００１５】
これに対して、テストの独立性を高めるために、図１（ｂ）に示すように、テスト間のデータを管理し、更に、図１（ｃ）に示すように、テスト単位で分割することが考えられる。
【００１６】
しかしながら、図１（ｃ）に示すように、テスト単位で分割した場合、各テストを実行するごとに、ＤＢへの初期データの投入及びＤＢの初期化を行う必要があり、時間がかかる。また、一部のテストが変更されることで、変更されたテストのテスト結果が変更前のテストのテスト結果と異なっていた場合、異なっていたテスト結果を入力データとする後段のテストをすべて実行する必要がある。つまり、変更されたテストの後段のテストにおいて、ＤＢへの入力データの投入を行う必要があり、テストに時間がかかるといった不都合がある。
【００１７】
このような状況を踏まえて、実施形態における検証装置では、ＶＭ（Virtual Machine）イメージまたはコンテナイメージを利用する。ＶＭとは、ＣＰＵやネットワークなどハードウェアを仮想的に扱うことで、仮想的に動作するマシンをいい、ＶＭイメージとは、ＶＭを動かすために必要なディスク・メモリ内容などをまとめたファイルをいう。
【００１８】
また、コンテナとは、ＶＭのようにハードウェアレベルの仮想化をせず、ＯＳ（Operating System）レベルで仮想的に動作するマシンをいい、コンテナイメージとは、コンテナを動かすために必要なディスク・メモリ内容をまとめたファイルをいう。
【００１９】
実施形態における検証装置では、ＶＭまたはコンテナを生成することで、各テストの入力データと出力データとをＶＭイメージまたはコンテナイメージとして取得する。また、ＶＭイメージまたはコンテナイメージとして取得した入力データ及び出力データのイメージを識別する情報（イメージＩＤ）を、テストを識別する情報（テストＩＤ）と対応付けて組み合わせ情報として保持する。
【００２０】
図２は、ＶＭまたはコンテナを用いてＶＭイメージまたはコンテナイメージを生成する様子を示す図である。図２（ａ）は、図１（ｃ）の上段のテストを、ＶＭまたはコンテナを用いて実行した様子を示している。
【００２１】
図２（ａ）に示すように、ＶＭまたはコンテナを生成したうえで、ＤＢへ投入すべき入力データｄ１をＶＭまたはコンテナに投入することで、入力データｄ１を含むＶＭイメージまたはコンテナイメージ（イメージＩＤ＝"ｉ１"）を取得することができる。また、ＶＭまたはコンテナを用いてテストＩＤ＝"ｔ１"により識別されるテストを実行することでイメージＩＤ＝"ｉ１"により識別されるイメージに含まれるデータｄ１がデータｄ２に変更される。これにより、ＶＭまたはコンテナでは、データｄ２を含むイメージ（イメージＩＤ＝"ｉ２"）を取得することができる。その後、ＶＭまたはコンテナを破棄する。
【００２２】
同様に、図２（ｂ）は、図１（ｃ）の中段のテストを、図２（ｃ）は、図１（ｃ）の下段のテストを、それぞれＶＭまたはコンテナを用いて実行した様子を示している。図２（ａ）と同様に、図２（ｂ）、（ｃ）の場合もイメージＩＤ＝"ｉ２"、"ｉ３"、"ｉ４"により識別されるイメージを取得することができる。
【００２３】
このようにして取得したイメージを、実施形態における検証装置ではテストＩＤとともに組み合わせ情報として保持しておく。これにより、各テストを実行する際にＤＢへ入力データを投入する代わりに、各テストの入力データが含まれるＶＭイメージまたはコンテナイメージを組み合わせ情報から読み出せば足りることとなる。また、各テスト実行後にＤＢを初期化する代わりに、各テストに用いたＶＭまたはコンテナを破棄すれば足りることとなる。
【００２４】
つまり、実施形態における検証装置によれば、ＤＢへのデータ投入及びＤＢの初期化の時間を省くことが可能となり、テストの独立性を高めつつ、テスト時間を短縮することが可能となる。
【００２５】
また、実施形態における検証装置によれば、テストごとに組み合わせ情報を保持することで、テストの一部を変更した場合に影響を受けるテストを含む組み合わせ情報を、組み合わせ情報テーブルを検索することで抽出することが可能になる。また、検索した組み合わせ情報に基づいて影響を受けるテストを実行していくことで、入力イメージ及び出力イメージを順次更新していくことが可能になる。
【００２６】
以下、実施形態の更なる詳細について添付の図３以降の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
【００２７】
［実施形態］
はじめに、本実施形態における検証装置を含む検証システムについて説明する。図３は、検証システムのシステム構成を示す図である。図３に示すように、検証システム３００は、端末３１０と検証装置３２０とを有しており、端末３１０と検証装置３２０とはネットワーク３３０を介して接続されている。
【００２８】
端末３１０は、テストセットを生成するユーザが利用する情報処理装置である。端末３１０には、テストセット生成プログラムと検証指示プログラムとがインストールされており、各プログラムが実行されることで、端末３１０は、テストセット生成部３１１、検証指示部３１２として機能する。
【００２９】
テストセット生成部３１１は、連続して実行される複数のテストを含むテストセットを生成し、生成したテストセットをテストコード格納部３１３に格納する。検証指示部３１２は、テストコード格納部３１３に格納されたテストセットのうち、ユーザにより選択されたテストセットについての検証を、検証装置３２０に指示する。
【００３０】
検証装置３２０は、端末３１０により指示されたテストセットの検証を実行するサーバ装置である。検証装置３２０には、検証プログラムがインストールされており、検証プログラムが実行されることで、検証装置３２０は検証実行部３２１として機能する。
【００３１】
検証実行部３２１は、端末３１０により指示されたテストセットの検証を実行する。テストセットの検証には、テストセットに含まれる各テストを実行する前の準備を行う準備フェーズと、各テストを実行する実行フェーズと、変更したテストを再実行する再実行フェーズとがある。
【００３２】
検証実行部３２１では、準備フェーズで生成した組み合わせ情報テーブル及びコンテナイメージテーブル（詳細は後述）を、組み合わせ情報格納部３２２、コンテナイメージ格納部３２３にそれぞれ格納する。そして、実行フェーズ及び再実行フェーズにて、これらのテーブルを用いてテストを実行する。検証実行部３２１では、テストセットに含まれる各テストについてのテスト結果を、検証結果として端末３１０に送信する。
【００３３】
次に、端末３１０及び検証装置３２０のハードウェア構成について説明する。なお、端末３１０のハードウェア構成と検証装置３２０のハードウェア構成は概ね同じであるため、ここでは検証装置３２０のハードウェア構成について説明する。
【００３４】
図４は、検証装置のハードウェア構成を示す図である。図４に示すように、検証装置３２０は、ＣＰＵ４０１、ＲＯＭ（Read Only Memory）４０２、ＲＡＭ（Random Access Memory）４０３、記憶部４０４を備える。また、検証装置３２０は、ユーザインタフェース部４０５、通信部４０６、ドライブ部４０７を備える。なお、検証装置３２０の各部は、バス４０８を介して相互に接続されている。
【００３５】
ＣＰＵ４０１は、記憶部４０４に格納された各種プログラム（例えば、検証プログラム）を実行するコンピュータである。
【００３６】
ＲＯＭ４０２は不揮発性メモリである。ＲＯＭ４０２は、記憶部４０４に格納された各種プログラムをＣＰＵ４０１が実行するために必要な各種プログラム、データ等を格納する。具体的には、ＢＩＯＳ（Basic Input/Output System）やＥＦＩ（Extensible Firmware Interface）等のブートプログラムなどを格納する。
【００３７】
ＲＡＭ４０３は、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）等の主記憶装置である。ＲＡＭ４０３は、記憶部４０４に格納された各種プログラムがＣＰＵ４０１によって実行される際に展開される、作業領域として機能する。
【００３８】
記憶部４０４は、検証装置３２０にインストールされた各種プログラムのほか、プログラムを実行する際に用いるデータやプログラムを実行することで生成されるデータ等を格納する格納部を有する。記憶部４０４が有する格納部には、例えば、組み合わせ情報格納部３２２、コンテナイメージ格納部３２３が含まれる。
【００３９】
ユーザインタフェース部４０５は、検証装置３２０に対する各種操作を受け付ける。通信部４０６は、検証装置３２０が端末３１０との間で通信を行う際に用いられる。
【００４０】
ドライブ部４０７は記録媒体４１０をセットする。記録媒体４１０には、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的あるいは磁気的に記録する媒体が含まれる。あるいは、記録媒体４１０には、ＲＯＭ、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等が含まれる。
【００４１】
なお、記憶部４０４に格納された各種プログラム（例えば、検証プログラム）は、例えば、配布された記録媒体４１０に記録された各種プログラムがドライブ部４０７にセットされることで記憶部４０４にインストールされてもよい。あるいは、通信部４０６を介してネットワーク３３０からダウンロードされて記憶部４０４にインストールされてもよい。
【００４２】
次に、端末３１０が有するテストコード格納部３１３に格納されるテストセットテーブルについて説明する。図５は、テストセットテーブルの一例を示す図である。図５に示すように、テストセットテーブル５００は情報の項目として、"テストセットＩＤ"、"テストコード"が含まれる。
【００４３】
"テストセットＩＤ"には、連続して実行される複数のテストを含むテストセットを識別する識別子が格納される。"テストコード"には、各テストセットに含まれるテストのテストコードが格納される。
【００４４】
図５の例は、テストセットＩＤ＝"Ａ"により識別されるテストセットが、テストＩＤ＝"ｔ１"、"ｔ２"、"ｔ３"、・・・"ｔｎ"により識別される各テストを含むことを示している。同様に、テストセットＩＤ＝"Ｂ"により識別されるテストセットが、テストＩＤ＝"ｔ'１"、"ｔ'２"、"ｔ'３"、・・・"ｔ'ｎ"により識別される各テストを含むことを示している。更に、テストセットＩＤ＝"Ｃ"により識別されるテストセットが、テストコード＝"ｔ"１"、"ｔ"２"、"ｔ"３"、・・・"ｔ"ｎ"により識別される各テストを含むことを示している。
【００４５】
次に、検証装置３２０が有する組み合わせ情報格納部３２２に格納される組み合わせ情報テーブルについて説明する。図６は、組み合わせ情報テーブルの一例を示す図である。図６に示すように、組み合わせ情報テーブル６００はテストセットＩＤごとに管理され（図６の例は、テストセットＩＤ＝"Ａ"により識別されるテストセット）、情報の項目として"入力イメージＩＤ"、"テストＩＤ"、"出力イメージＩＤ"を含む。
【００４６】
"入力イメージＩＤ"には、テストセットに含まれる各テストに入力される入力データをコンテナに投入することで生成される入力イメージを識別する情報（入力イメージＩＤ）が格納される。"テストＩＤ"には、テストセットに含まれる各テストのテストＩＤが格納される。"出力イメージＩＤ"には、コンテナが、テストセットに含まれる各テストを入力イメージに基づいて実行することで出力される出力イメージを識別する情報（出力イメージＩＤ）が格納される。
【００４７】
図６の例では、第１の組み合わせ情報には、入力イメージＩＤ＝"ｉ１"、テストＩＤ＝"ｔ１"、出力イメージＩＤ＝"ｉ２"が含まれる。第１の組み合わせ情報は、テストＩＤ＝"ｔ１"により識別されるテストに対して、入力イメージＩＤ＝"ｉ１"により識別される入力イメージが入力されることを示している。また、テストＩＤ＝"ｔ１"により識別されるテストが実行されることで、出力イメージＩＤ＝"ｉ２"により識別される出力イメージが出力されることを示している。
【００４８】
同様に、第２の組み合わせ情報には、入力イメージＩＤ＝"ｉ２"、テストＩＤ＝"ｔ２"、出力イメージＩＤ＝"ｉ３"が含まれる。第２の組み合わせ情報は、テストＩＤ＝"ｔ２" により識別されるテストに対して、入力イメージＩＤ＝"ｉ２"により識別される入力イメージが入力されることを示している。また、テストＩＤ＝"ｔ２"により識別されるテストが実行されることで、出力イメージＩＤ＝"ｉ３"により識別される出力イメージが出力されることを示している。
【００４９】
同様に、第３の組み合わせ情報には、入力イメージＩＤ＝"ｉ３"、テストＩＤ＝"ｔ３"、出力イメージＩＤ＝"ｉ４"が含まれる。第３の組み合わせ情報は、テストＩＤ＝"ｔ３"により識別されるテストに対して、入力イメージＩＤ＝"ｉ３"により識別される入力イメージが入力されることを示している。また、テストＩＤ＝"ｔ３"により識別されるテストが実行されることで、出力イメージＩＤ＝"ｉ４"により識別される出力イメージが出力されることを示している。
【００５０】
このように、組み合わせ情報テーブル６００には、入力データを含む入力イメージのイメージＩＤと出力データを含む出力イメージのイメージＩＤとを、テストＩＤとともに組み合わせた組み合わせ情報が複数含まれる。組み合わせ情報はテストセットに含まれるすべてのテストについて生成される。
【００５１】
なお、テストセットＩＤ＝"Ａ"のテストセットの場合、データの入出力がつながっている複数のテストを含むため、例えば、テストＩＤ＝"ｔ１"により識別されるテストの出力イメージは、テストＩＤ＝"ｔ２"により識別されるテストの入力イメージとなる。同様に、テストＩＤ＝"ｔ２"により識別されるテストの出力イメージは、テストＩＤ＝"ｔ３"により識別されるテストの入力イメージとなる。
【００５２】
次に、検証装置３２０が有するコンテナイメージ格納部３２３に格納されるコンテナイメージ情報について説明する。図７は、コンテナイメージテーブルの一例を示す図である。図７に示すように、コンテナイメージテーブル７００は、情報の項目として"イメージＩＤ"、"イメージ内容"を含む。
【００５３】
"イメージＩＤ"には、入力データをコンテナに投入することで取得される入力イメージのイメージＩＤまたは入力イメージに基づいてコンテナがテストを実行することで生成される出力イメージのイメージＩＤが格納される。
【００５４】
"イメージ内容"には、イメージＩＤにより識別されるイメージがイメージＩＤと対応付けて格納される。
【００５５】
図７の例では、イメージＩＤ＝"ｉ１"、"ｉ２"、"ｉ３"、"ｉ４"によりそれぞれ識別されるイメージが、それぞれのイメージＩＤと対応付けて格納されている。このように、イメージＩＤにより識別されるイメージを格納しておくことで、入力データをＤＢに投入することなく、コンテナイメージテーブル７００よりイメージを読み出すだけでテストを実行することができる。
【００５６】
次に、検証装置３２０の検証実行部３２１の機能構成について説明する。図８は、検証実行部の機能構成を示す図である。
【００５７】
図８に示すように、検証実行部３２１は、テストコード分割部８１０、コンテナ生成部８２０、テスト実行部８３０、組み合わせ情報生成・更新部８４０、コンテナ破棄部８５０を有する。
【００５８】
テストコード分割部８１０は、準備フェーズにおいて、端末３１０より検証指示されたテストセットを受信した場合に、受信したテストセットをテストごとに分割する。
【００５９】
コンテナ生成部８２０は、各フェーズにおいてテストを実行する際にコンテナを生成する。
【００６０】
テスト実行部８３０は、各フェーズにおいてコンテナ生成部８２０により生成されたコンテナを用いてテストを実行する。
【００６１】
具体的には、準備フェーズにおいて、テスト実行部８３０は、テストコード分割部８１０がテストセットを分割することで得た各テストに対して、入力データをコンテナに投入することで、入力データを含む入力イメージを生成する。また、テスト実行部８３０は、生成した入力イメージをコンテナに入力してテストを実行することで、出力データを含む出力イメージを取得する。
【００６２】
また、実行フェーズにおいて、テスト実行部８３０は、テストコード分割部８１０がテストセットを分割することで得た各テストについて、組み合わせ情報格納部３２２より読み出した入力イメージをコンテナに入力してテストを実行する。これによりテスト実行部８３０は出力データを取得する。また、テスト実行部８３０は、取得した出力データの正否を検証し、検証結果を端末３１０に送信する。
【００６３】
更に、再実行フェーズにおいて、テスト実行部８３０は、変更されたテストに対して、組み合わせ情報格納部３２２より読み出した入力イメージをコンテナに入力することで、当該変更されたテストを実行し、出力データを取得する。また、テスト実行部８３０は、取得した出力データの正否を検証し、検証結果を端末３１０に送信する。また、再実行フェーズにおいて、テスト実行部８３０は、出力データが正しいと判定した場合に、当該出力データを含む出力イメージと、該出力イメージのイメージＩＤとをコンテナイメージ格納部３２３に追加する。
【００６４】
更に、再実行フェーズにおいて、テスト実行部８３０は、変更されたテストを実行することで取得した出力データが、変更前のテストを実行することで取得した出力データと同じか否かを判定する。そして、テスト実行部８３０は、同じでないと判定した場合に、組み合わせ情報格納部３２２の組み合わせ情報テーブル６００内を検索することで、当該出力データを含む新たな出力イメージを入力イメージとするテストを含む組み合わせ情報を抽出する。更に、テスト実行部８３０は、新たな出力イメージを入力イメージとして、抽出した組み合わせ情報に含まれるテストを実行することで出力データを取得し、出力データの正否を検証し、検証結果を端末３１０に送信する。このとき取得した出力データが正しく、かつ、実行フェーズで取得していた出力データと同じでないと判定した場合、テスト実行部８３０は、組み合わせ情報格納部３２２の組み合わせ情報テーブル６００内を検索する。これにより、当該出力データを含む新たな出力イメージを入力イメージとするテストを含む組み合わせ情報を抽出する。
【００６５】
再実行フェーズにおいて、テスト実行部８３０は出力データが正しくないと判定されるまで、あるいは、出力データを含む出力イメージを入力イメージとするテストがないと判定されるまで、上記のような処理を再帰的に繰り返す。
【００６６】
組み合わせ情報生成・更新部８４０は、テスト実行部８３０がテストを実行するにあたって生成した入力イメージのイメージＩＤと、テストを実行することで取得した出力イメージのイメージＩＤとを、テストＩＤとともに組み合わせた組み合わせ情報を生成する。また、生成した組み合わせ情報を組み合わせ情報テーブル６００に格納する。
【００６７】
具体的には、準備フェーズにおいて、組み合わせ情報生成・更新部８４０は、テストコード分割部８１０がテストセットを分割することで得た各テストについて、組み合わせ情報を生成し、組み合わせ情報テーブル６００に格納する。
【００６８】
また、再実行フェーズにおいて、組み合わせ情報生成・更新部８４０は組み合わせ情報テーブル６００を更新する。具体的には、変更されたテストが実行されることで取得された出力データが実行フェーズで取得していた出力データと異なり、かつ正しいと判定された場合に、当該出力データを含む出力イメージのイメージＩＤにより、組み合わせ情報テーブル６００を更新する。
【００６９】
コンテナ破棄部８５０は、テスト実行部８３０により実行されるテストが終了した場合に、テストの実行に用いたコンテナを破棄する。
【００７０】
次に、検証システム３００における検証処理の流れについて説明する。図９は、検証システムにおける検証処理のシーケンス図である。
【００７１】
図９に示すように、端末３１０においてテストセット生成プログラムが実行されると、ステップＳ９０１において、端末３１０のユーザはテストセット生成部３１１の機能を利用して複数のテストを生成し、各テストを含むテストセットを生成する。テストセット生成部３１１は、ユーザにより生成されたテストセットを、テストコード格納部３１３に格納する。
【００７２】
また、端末３１０において検証指示プログラムが実行されると、ステップＳ９０２において、端末３１０のユーザは、検証指示部３１２の機能を利用してテストコード格納部３１３より検証対象とするテストセットを選択し、検証指示を入力する。これにより、検証指示部３１２は、ユーザにより選択されたテストセットを含む検証指示を、検証装置３２０に送信する。
【００７３】
検証プログラムが実行され、検証実行部３２１として機能する検証装置３２０は、端末３１０より検証指示を受信すると、準備フェーズに移行し、ステップＳ９１１において準備処理を実行する。これにより、検証装置３２０は、検証指示に含まれるテストセットについて、組み合わせ情報テーブル６００及びコンテナイメージテーブル７００を生成し、組み合わせ情報格納部３２２、コンテナイメージ格納部３２３にそれぞれ格納する。なお、ステップＳ９１１の準備処理の詳細は後述する。
【００７４】
準備処理が完了した検証装置３２０は実行フェーズに移行し、ステップＳ９１２において、検証指示に含まれるテストセットの各テストを実行し、出力データの正否を検証する実行処理を実行する。このとき、検証装置３２０では、ステップＳ９１１の準備処理において生成した組み合わせ情報テーブル６００及びコンテナイメージテーブル７００を利用する。また、検証装置３２０では、実行処理（ステップＳ９１２）においてテストが実行されることで検証された検証結果を、端末３１０に送信する。なお、ステップＳ９１２の実行処理の詳細は後述する。
【００７５】
検証指示をしたテストセットについての検証結果を検証装置３２０より受信した端末３１０のユーザは、ステップＳ９０３において、テストセット生成部３１１の機能を利用することで、検証結果に基づくテストコードの修正を行う。テストコードが修正されたテストは、テストコード格納部３１３に格納される。
【００７６】
ステップＳ９０４において、端末３１０のユーザは、検証指示部３１２の機能を利用して、テストコード格納部３１３より、検証対象とするテストを含む再検証指示を入力する。これにより、検証指示部３１２では、変更したテスト及び該テストが含まれるテストセットのテストセットＩＤを含む再検証指示を検証装置３２０に送信する。
【００７７】
検証装置３２０は、端末３１０より再検証指示を受信すると、再実行フェーズに移行し、ステップＳ９１３において再実行処理を実行する。これにより、検証装置３２０は、再検証指示に含まれるテストを実行する。また、再検証指示に含まれるテストを実行することで、再度実行することが必要になったテストを再実行する。
【００７８】
検証装置３２０では、再実行処理（ステップＳ９１３）においてテストが再実行されることで取得された再検証結果を、端末３１０に送信する。なお、ステップＳ９１３の再実行処理の詳細は後述する。
【００７９】
再検証指示をしたテストを含むテストセットについての検証結果を検証装置３２０より受信した端末３１０のユーザは、再度、テストコードの修正が必要か否かを判定し、必要であると判定した場合には、ステップＳ９０３に戻る。これにより、ステップＳ９０３、Ｓ９０４、ステップＳ９１３の処理が繰り返される。一方、必要でないと判定した場合には、検証処理を終了する。
【００８０】
次に、検証システム３００における検証処理に含まれる、準備処理（ステップＳ９１１）の詳細について説明する。図１０は、準備処理のフローチャートである。なお、図１０では、説明をわかりやすくするために、フローチャートの各工程における処理と、コンテナ（ｍ１）の動作とを対応付けて示している。
【００８１】
ステップＳ１００１において、テストコード分割部８１０は、端末３１０より送信された検証指示を受信し、検証指示に含まれるテストセットを抽出する。また、テストコード分割部８１０は、抽出したテストセットをテストごとに分割する。
【００８２】
ステップＳ１００２において、コンテナ生成部８２０は、コンテナｍ１を生成する。ステップＳ１００３において、テスト実行部８３０は、コンテナ生成部８２０により生成されたコンテナｍ１に、テストセットに含まれる初期データ（ｄ１）を投入する。これにより、コンテナｍ１では初期データ（ｄ１）を含む初期イメージ（ｉ１）を生成する。
【００８３】
ステップＳ１００４において、テスト実行部８３０は、コンテナｍ１により生成された初期イメージ（ｉ１）を取得する。
【００８４】
ステップＳ１００５において、テスト実行部８３０は、取得した初期イメージを初期イメージのイメージＩＤ＝"ｉ１"と対応付けて、コンテナイメージテーブル７００に格納する。
【００８５】
ステップＳ１００６において、テスト実行部８３０は、テストカウンタｋに初期値＝１を代入する。
【００８６】
ステップＳ１００７において、テスト実行部８３０は、イメージＩＤ＝"ｉｋ"により識別されるイメージを用いてテストＩＤ＝"ｔｋ"により識別されるテストを実行する。具体的には、ステップＳ１００１においてテストコード分割部８１０がテストセットを分割することで得た各テストのうち、テストＩＤ＝"ｔ１"により識別されるテストを、コンテナｍ１が実行する。このとき、入力イメージには、ステップＳ１００４において取得されたイメージＩＤ＝"ｉ１"により識別されるイメージが用いられる。
【００８７】
コンテナｍ１がテストＩＤ＝"ｔ１"により識別されるテストを実行することで、コンテナｍ１は、入力データｄ１を含む入力イメージから出力データｄ２を含む出力イメージを生成する。
【００８８】
ステップＳ１００８において、テスト実行部８３０は、コンテナｍ１により生成された出力イメージ（イメージＩＤ＝"ｉ２"により識別されるイメージ）を取得する。
【００８９】
ステップＳ１００９において、組み合わせ情報生成・更新部８４０は、ステップＳ１００４において取得したイメージのイメージＩＤ＝"ｉ１"と、ステップＳ１００８において取得したイメージのイメージＩＤ＝"ｉ２"とを用いて組み合わせ情報を生成する。また、生成した組み合わせ情報を組み合わせ情報テーブル６００に格納する。
【００９０】
ステップＳ１０１０において、テスト実行部８３０は、ステップＳ１００８において取得したイメージを、当該イメージのイメージＩＤ＝"ｉ２"と対応付けてコンテナイメージテーブル７００に格納する。
【００９１】
ステップＳ１０１１において、テスト実行部８３０は、ステップＳ１００１においてテストコード分割部８１０がテストセットを分割することで得た全てのテストについて、組み合わせ情報を生成した否かを判定する。ステップＳ１０１１において、組み合わせ情報を生成していないテストがあると判定した場合には、ステップＳ１０１２に進む。
【００９２】
ステップＳ１０１２において、テスト実行部８３０は、テストカウンタｋをインクリメントし、ステップＳ１００７に戻る。ここでは、テストカウンタｋ＝２になったとする。
【００９３】
ステップＳ１００７において、テスト実行部８３０は、イメージＩＤ＝"ｉ２"により識別されるイメージを用いてテストＩＤ＝"ｔ２"により識別されるテストを実行する。イメージＩＤ＝"ｉ２"により識別されるイメージは、コンテナイメージ格納部３２３のコンテナイメージテーブル７００に格納されている。このため、テスト実行部８３０では、コンテナイメージ格納部３２３のコンテナイメージテーブル７００より、イメージＩＤ＝"ｉ２"により識別されるイメージを読み出して、入力イメージとしてコンテナｍ１に入力する。
【００９４】
コンテナｍ１がテストＩＤ＝"ｔ２"により識別されるテストを実行することで、コンテナｍ１は、入力データｄ２を含む入力イメージから出力データｄ３を含む出力イメージを生成する。
【００９５】
ステップＳ１００８において、テスト実行部８３０は、コンテナｍ１により生成された出力イメージ（イメージＩＤ＝"ｉ３"により識別されるイメージ）を取得する。
【００９６】
ステップＳ１００９において、組み合わせ情報生成・更新部８４０は組み合わせ情報を生成する。組み合わせ情報生成・更新部８４０では、テストカウンタｋ＝１の状態でステップＳ１００８にて取得したイメージのイメージＩＤ＝"ｉ２"と、テストカウンタｋ＝２の状態でステップＳ１００８にて取得したイメージのイメージＩＤ＝"ｉ３"とを用いる。なお、生成した組み合わせ情報は、組み合わせ情報テーブル６００に格納される。
【００９７】
ステップＳ１０１０において、テスト実行部８３０は、テストカウンタｋ＝２の状態でステップＳ１００８において取得したイメージを、当該イメージのイメージＩＤ＝"ｉ３"と対応付けてコンテナイメージテーブル７００に格納する。
【００９８】
ステップＳ１０１１において、テスト実行部８３０は、再び、ステップＳ１００１においてテストコード分割部８１０がテストセットを分割することで得た全てのテストについて、組み合わせ情報を生成したか否かを判定する。ステップＳ１０１１において組み合わせ情報を生成していないテストがあると判定した場合には、ステップＳ１０１２に進み、テストカウンタｋをインクリメントした後、ステップＳ１００７からステップＳ１０１０までの処理を繰り返す。
【００９９】
一方、ステップＳ１０１１において、全てのテストについて、組み合わせ情報を生成したと判定した場合には、ステップＳ１０１３に進む。ステップＳ１０１３において、コンテナ破棄部８５０はコンテナｍ１を破棄し、準備処理を終了する。
【０１００】
次に、検証システム３００における検証処理に含まれる、実行処理（ステップＳ９１２）の詳細について説明する。図１１は、実行処理のフローチャートである。なお、図１１では、説明をわかりやすくするために、フローチャートの各工程における処理と、コンテナ（ｍ１）の動作とを対応付けて示している。
【０１０１】
ステップＳ１１０１において、コンテナ生成部８２０は、コンテナｍ１を生成する。ステップＳ１１０２において、テスト実行部８３０は、コンテナイメージ格納部３２３のコンテナイメージテーブル７００よりイメージＩＤ＝"ｉ１"により識別される初期イメージを読み出す。
【０１０２】
ステップＳ１１０２において、テスト実行部８３０はテストカウンタｋに初期値＝１を代入する。
【０１０３】
ステップＳ１１０４において、テスト実行部８３０は、イメージＩＤ＝"ｉｋ"により識別されるイメージを用いてテストＩＤ＝"ｔｋ"により識別されるテストを実行する。具体的には、準備処理において得られた各テストのうち、テストＩＤ＝"ｔ１"により識別されるテストを、コンテナｍ１が実行する。このとき、入力イメージには、ステップＳ１１０２において読み出されたイメージＩＤ＝"ｉ１"により識別される初期イメージが用いられる。
【０１０４】
コンテナｍ１がテストＩＤ＝"ｔ１"により識別されるテストを実行することで、コンテナｍ１は、入力データｄ１を含む入力イメージから出力データｄ２を含む出力イメージを生成する。
【０１０５】
ステップＳ１１０５において、テスト実行部８３０は、コンテナｍ１により生成された出力イメージ（イメージＩＤ＝"ｉ２"により識別されるイメージ）を取得する。
【０１０６】
ステップＳ１００６において、テスト実行部８３０は、取得した出力イメージに含まれる出力データｄ２を抽出し、テストＩＤ＝"ｔ１"により識別されるテストが実行された場合の出力データとして正しいか否かを判定する。
【０１０７】
ステップＳ１１０７において、テスト実行部８３０が、出力データとして正しくないと判定した場合には、ステップＳ１１１０に進む。ステップＳ１１１０において、コンテナ破棄部８５０は、コンテナｍ１を破棄する。更に、ステップＳ１１１１において、テスト実行部８３０は、テストＩＤ＝"ｔ１"により識別されるテストにおいて正しくない出力データが出力されたことを検証結果として端末３１０に通知し、実行処理を終了する。
【０１０８】
一方、ステップＳ１１０７において、テスト実行部８３０が、出力データとして正しいと判定した場合には、ステップＳ１１０８に進む。ステップＳ１１０８において、テスト実行部８３０は、準備処理において得られた全てのテストを実行したか否かを判定する。
【０１０９】
ステップＳ１１０８において、実行していないテストがあると判定された場合には、ステップＳ１１０９に進み、テストカウンタｋをインクリメントした後、ステップＳ１１０４に戻る。ここでは、テストカウンタｋ＝２になったとする。
【０１１０】
ステップＳ１１０４において、テスト実行部８３０は、イメージＩＤ＝"ｉ２"により識別されるイメージを用いてテストＩＤ＝"ｔ２"により識別されるテストを実行する。イメージＩＤ＝"ｉ２"により識別されるイメージは、コンテナイメージ格納部３２３のコンテナイメージテーブル７００に格納されている。このため、テスト実行部８３０では、コンテナイメージ格納部３２３のコンテナイメージテーブル７００より、イメージＩＤ＝"ｉ２"により識別されるイメージを読み出して、入力イメージとしてコンテナｍ１に入力する。
【０１１１】
コンテナｍ１がテストＩＤ＝"ｔ２"により識別されるテストを実行することで、コンテナｍ１は、入力データｄ２を含む入力イメージから出力データｄ３を含む出力イメージを生成する。
【０１１２】
ステップＳ１１０５において、テスト実行部８３０は、コンテナｍ１により生成された出力イメージ（イメージＩＤ＝"ｉ３"により識別されるイメージ）を取得する。
【０１１３】
ステップＳ１００６において、テスト実行部８３０は、取得した出力イメージに含まれる出力データｄ３を抽出し、テストＩＤ＝"ｔ２"により識別されるテストが実行された場合の出力データとして正しいか否かを判定する。
【０１１４】
ステップＳ１１０７において、テスト実行部８３０が、出力データとして正しいと判定した場合には、ステップＳ１１０８に進み、すべてのテストの実行が完了するまで、ステップＳ１１０４からステップＳ１１０７の処理を繰り返す。
【０１１５】
一方、ステップＳ１１０８において、すべてのテストを実行したと判定した場合には、ステップＳ１１１０に進む。ステップＳ１１１０において、コンテナ破棄部８５０は、コンテナｍ１を破棄する。更に、ステップＳ１１１１において、テスト実行部８３０は、すべてのテストについて出力データが正しく出力されたことを検証結果として端末３１０に通知し、実行処理を終了する。
【０１１６】
このように検証実行部３２１では、出力データが正しくないと判定されるか、全てのテストが完了するまで処理を実行し、処理が終了すると検証結果を端末３１０に送信する。
【０１１７】
次に、検証システム３００における検証処理に含まれる、再実行処理（ステップＳ９１３）の詳細について説明する。図１２は、再実行処理のフローチャートである。なお、図１２では、説明をわかりやすくするために、フローチャートの各工程における処理と、コンテナ（ｍ１）の動作とを対応付けて示している。
【０１１８】
ステップＳ１２０１において、テスト実行部８３０は、端末３１０より送信される再検証指示を受信し、再検証指示に含まれるテスト（変更されたテスト）を抽出する。
【０１１９】
ステップＳ１２０２において、コンテナ生成部８２０は、コンテナｍ１を生成する。ステップＳ１２０３において、テスト実行部８３０は、組み合わせ情報格納部３２２より、抽出したテストＩＤの組み合わせ情報テーブル６００を読み出す。
【０１２０】
ステップＳ１２０４において、テスト実行部８３０は、ステップＳ１２０２において読み出した組み合わせ情報テーブル６００を参照する。これにより、ステップＳ１２０１において抽出したテストのテストＩＤに対応付けて格納された入力イメージのイメージＩＤを読み出す。更に、テスト実行部８３０は、読み出した入力イメージのイメージＩＤに対応付けてコンテナイメージ格納部３２３のコンテナイメージテーブル７００に格納されたイメージを入力イメージとして取得する。
【０１２１】
ステップＳ１２０５において、テスト実行部８３０は、ステップＳ１２０４において取得した入力イメージを用いて、ステップＳ１２０１において抽出したテスト（変更されたテスト）を実行する。
【０１２２】
具体的には、ステップＳ１２０４において取得した入力イメージを用いて、変更されたテストをコンテナｍ１が実行する。コンテナｍ１が変更されたテストを実行することで、コンテナｍ１は、入力イメージから出力イメージを生成する。
【０１２３】
ステップＳ１２０６において、テスト実行部８３０は、コンテナｍ１により生成された出力イメージを取得し、出力イメージに含まれる出力データを抽出する。
【０１２４】
ステップＳ１２０７において、テスト実行部８３０は抽出した出力データが正しいか否かを判定する。ステップＳ１２０７において、テスト実行部８３０が、出力データとして正しくないと判定した場合には、ステップＳ１２１３に進む。ステップＳ１２１３において、コンテナ破棄部８５０は、コンテナｍ１を破棄する。更に、ステップＳ１２１４において、テスト実行部８３０は、正しくない出力データが出力されたことを再検証結果として端末３１０に通知し、再実行処理を終了する。
【０１２５】
一方、ステップＳ１２０７において、テスト実行部８３０が、出力データとして正しいと判定した場合には、ステップＳ１２０８に進む。ステップＳ１２０８において、テスト実行部８３０は、テスト結果が変化したか否かを判定する。なお、テスト結果が変化したか否かは、以下の手順で判定する。
【０１２６】
まず、テスト実行部８３０は、ステップＳ１２０５において実行したテストのテストＩＤに基づいて、組み合わせ情報テーブル６００を参照し、対応する出力イメージのイメージＩＤを取得する。続いてテスト実行部８３０は、取得した出力イメージのイメージＩＤに基づいて、コンテナイメージテーブル７００を参照し、対応するイメージを読み出し、出力データを取得する。そして、テスト実行部８３０は、取得した出力データと、ステップＳ１２０６において抽出した出力データとを比較し、両者が等しければ、テスト結果が変化していないと判定する。一方、両者が異なっていれば、テスト結果が変化したと判定する。
【０１２７】
ステップＳ１２０８においてテスト結果が変化していないと判定された場合には、ステップＳ１２１３に進み、コンテナ破棄部８５０がコンテナｍ１を破棄し、ステップＳ１２１４において、テスト実行部８３０が再検証結果を端末３１０に通知する。ここでは、変更されたテストが正しく動作したことが再検証結果として通知される。
【０１２８】
一方、ステップＳ１２０８においてテスト結果が変化したと判定された場合には、ステップＳ１２０９に進む。ステップＳ１２０９において、組み合わせ情報生成・更新部８４０は、ステップＳ１２０６において取得した出力イメージのイメージＩＤを用いて、組み合わせ情報を更新する。具体的には、変更したテストのテストＩＤに対応付けて格納された"出力イメージＩＤ"を、ステップＳ１２０６において取得した出力イメージのイメージＩＤを用いて書き換える。
【０１２９】
更に、テスト実行部８３０は、ステップＳ１２０６において取得した出力イメージと該出力イメージのイメージＩＤとを対応付けて、コンテナイメージテーブル７００に追加する。
【０１３０】
ステップＳ１２１０において、テスト実行部８３０は、ステップＳ１２０５において実行したテストのテストＩＤに対応付けて組み合わせ情報テーブル６００に格納されていた出力イメージを入力イメージとするテストがあるか否かを判定する。具体的には、ステップＳ１２０５において実行したテストのテストＩＤに対応付けて組み合わせ情報テーブル６００に格納された出力イメージのイメージＩＤを用いて、組み合わせ情報テーブル６００の"入力イメージＩＤ"内を検索する。検索の結果、"入力イメージＩＤ"内に、出力イメージのイメージＩＤが格納されていれば、ステップＳ１２１０において出力イメージを入力イメージとするテストがあると判定し、ステップＳ１２１１に進む。一方、"入力イメージＩＤ"内に、出力イメージのイメージＩＤが格納されていなければ、ステップＳ１２１０において出力イメージを入力イメージとするテストがないと判定し、ステップＳ１２１３に進む。
【０１３１】
ステップＳ１２１３において、コンテナ破棄部８５０はコンテナｍ１を破棄し、ステップＳ１２１４において、テスト実行部８３０は再検証結果を端末３１０に通知する。ここでは、変更されたテストが正しく動作したことを再検証結果として通知する。
【０１３２】
ステップＳ１２１１において、テスト実行部８３０は、ステップＳ１２０６において取得した出力イメージを入力イメージとして入力するテストを実行する。ステップＳ１２０６において取得した出力イメージは、既にコンテナイメージテーブル７００に格納されている。このため、テスト実行部８３０では、コンテナイメージテーブル７００に格納されているイメージを読み出して、入力イメージとしてコンテナｍ１に入力する。コンテナｍ１はテストを実行することで出力イメージを生成する。
【０１３３】
ステップＳ１２１２において、テスト実行部８３０は、コンテナｍ１により生成された出力イメージを取得し、出力イメージに含まれる出力データを抽出した後、ステップＳ１２０７に戻る。
【０１３４】
ステップＳ１２０７において、テスト実行部８３０は、ステップＳ１２１２において抽出した出力データが正しいか否かを判定する。ステップＳ１２０７において、テスト実行部８３０が、出力データとして正しくないと判定した場合には、ステップＳ１２１３、ステップＳ１２１４へと進む。この場合、ステップＳ１２１４では、ステップＳ１２１１において実行したテストにより、正しくない出力データが出力されたことを再検証結果として端末３１０に通知し、再実行処理を終了する。
【０１３５】
一方、ステップＳ１２０７において、テスト実行部８３０が、出力データとして正しいと判定した場合には、ステップＳ１２０８に進む。ステップＳ１２０８において、テスト実行部８３０は、テスト結果が変化したか否かを判定する。なお、テスト結果が変化したか否かは、ここでは、以下の手順で判定する。
・ステップＳ１２１１において実行したテストのテストＩＤに基づいて、組み合わせ情報テーブル６００を参照し、対応する出力イメージのイメージＩＤを取得する。
・取得した出力イメージのイメージＩＤに基づいて、コンテナイメージテーブル７００を参照し、対応するイメージを読み出し、出力データを取得する。
・取得した出力データと、ステップＳ１２１２において抽出した出力データとを比較し、両者が等しければ、テスト結果が変化していないと判定する。一方、両者が異なっていれば、テスト結果が変化したと判定する。
【０１３６】
以降、ステップＳ１２０８からの処理は、既に説明済みであるため、ここでは説明を省略する。
【０１３７】
このように検証実行部３２１では、出力データが正しくないと判定されるか、テスト結果が変化していないと判定されるか、取得した出力イメージを入力イメージとするテストがないと判定されるまでテストを実行する。そして、検証実行部３２１では、テストが終了すると再検証結果を端末３１０に通知する。
【０１３８】
次に、検証システム３００における検証処理の実施例として、図１３〜図２１を用いて更に具体的に説明する。
【０１３９】
図１３は、テストセットテーブルの一実施例を示す図である。図１３に示すテストセットテーブル１３００に格納されたテストセットＩＤ＝"Ａ"、"Ｂ"により識別されるテストセットは、ｅＣ（electronic Commerce）サイトにおけるユーザの操作に関するテストを含む。
【０１４０】
図１３に示すように、テストセットＩＤ＝"Ａ"のテストセットは、テストＩＤ＝"ｔ１"、"ｔ２"、"ｔ３１"により識別されるテストを含む。テストＩＤ＝"ｔ１"により識別されるテストは、カートにｉｔｅｍ１を１個追加する操作である。テストＩＤ＝"ｔ１"により識別されるテストが実行された場合の出力データは、カートデータｄ２＝｛"商品"："ｉｔｅｍ１"、"個数"：１｝となる。
【０１４１】
また、テストＩＤ＝"ｔ２"により識別されるテストは、カートのｉｔｅｍ１を２倍にする操作である。テストＩＤ＝"ｔ２"により識別されるテストが実行された場合の出力データは、カートデータｄ３＝｛"商品"："ｉｔｅｍ１"、"個数"：２｝となる。
【０１４２】
また、テストＩＤ＝"ｔ３１"により識別されるテストは、カートをクリアする操作である。テストＩＤ＝"ｔ３１"により識別されるテストが実行された場合の出力データは、カートデータｄ４１＝｛｝となる。
【０１４３】
一方、テストセットＩＤ＝"Ｂ"のテストセットは、テストＩＤ＝"ｔ１"、"ｔ２"、"ｔ３２"により識別されるテストを含む。テストＩＤ＝"ｔ１"、"ｔ２"により識別されるテストは、上述したとおりである。テストＩＤ＝"ｔ３２"により識別されるテストは、カートのｉｔｅｍ１を２個減らす操作である。テストＩＤ＝"ｔ３２"により識別されるテストが実行された場合の出力データは、カートデータｄ４２＝｛"商品"："ｉｔｅｍ１"、"個数"：０｝となる。
【０１４４】
図１３に示すテストセットを入力データ及び出力データを明示して表すと図１４に示す通りとなる。図１４は、テストセットに含まれる各テストの関係を示す図である。このうち、図１４（ａ）は、テストセットＩＤ＝"Ａ"により識別されるテストセットに含まれる各テストの関係を示している。図１４（ｂ）は、テストセットＩＤ＝"Ｂ"により識別されるテストセットに含まれる各テストの関係を示している。
【０１４５】
図１４（ａ）の例では、テストＩＤ＝"ｔ１"により識別されるテストは、入力データ＝ｄ１、出力データ＝ｄ２である。また、テストＩＤ＝"ｔ２"により識別されるテストは、入力データ＝ｄ２、出力データ＝ｄ３である。更に、テストＩＤ＝"ｔ３１"により識別されるテストは、入力データ＝ｄ３、出力データ＝ｄ４１である。
【０１４６】
また、図１４（ｂ）の例では、テストＩＤ＝"ｔ３２"により識別されるテストは、入力データ＝ｄ３、出力データ＝ｄ４２である。
【０１４７】
テストセットに含まれる各テストが図１４に示す関係になっている場合、検証装置３２０では準備処理を実行することで、図１５及び図１６に示す組み合わせ情報テーブル１５００、１６００、コンテナイメージテーブル１５１０、１６１０を生成する。
【０１４８】
図１５は、組み合わせ情報テーブル及びコンテナイメージテーブルの具体例を示す図である。図１５に示す組み合わせ情報テーブル１５００及びコンテナイメージテーブル１５１０は、テストセットＩＤ＝"Ａ"により識別されるテストセットについて、準備処理を実行することで生成される。なお、図１５（ａ）は、テストセットＩＤ＝"Ａ"により識別されるテストセットに対するコンテナの動作を示している。
【０１４９】
テストセットＩＤ＝"Ａ"により識別されるテストセットは、初期データ＝ｄ１である。このため、図１５（ａ）に示すようにテスト実行部８３０では、はじめに、生成されたコンテナｍ１に対して、初期データ＝ｄ１を投入し、入力イメージＩＤ＝"ｉ１"により識別される入力イメージを取得する。
【０１５０】
続いて、コンテナｍ１は入力イメージＩＤ＝"ｉ１"により識別される入力イメージを用いて、テストＩＤ＝"ｔ１"により識別されるテストを実行する。これにより、コンテナｍ１は出力データｄ２を含む出力イメージを生成する。なお、生成した出力イメージのイメージＩＤを、ここでは"ｉ２"とする。
【０１５１】
組み合わせ情報生成・更新部８４０は、組み合わせ情報テーブル１５００の"入力イメージＩＤ"に"ｉ１"を格納し、"テストＩＤ"に"ｔ１"を格納し、"出力イメージＩＤ"に"ｉ２"を格納する（図１５（ｂ）参照）。
【０１５２】
また、テスト実行部８３０は、コンテナイメージテーブル１５１０の"イメージＩＤ"に"ｉ１"、"ｉ２"を格納し、"イメージ内容"にイメージＩＤ＝"ｉ１"、"ｉ２"により識別されるイメージを格納する（図１５（ｃ）参照）。
【０１５３】
以下、同様に、コンテナｍ１が入力イメージに基づいて各テストを実行し、出力イメージを生成することで、組み合わせ情報テーブル１５００及びコンテナイメージテーブル１５１０が生成される。
【０１５４】
また、図１６は、組み合わせ情報テーブル及びコンテナイメージテーブルの具体例を示す図である。図１６に示す組み合わせ情報テーブル１６００及びコンテナイメージテーブル１６１０は、テストセットＩＤ＝"Ｂ"のテストセットについて、準備処理を実行することで生成される。なお、図１６（ａ）は、テストセットＩＤ＝"Ｂ"により識別されるテストセットに対するコンテナの動作を示している。
【０１５５】
図１６（ａ）に示すように、コンテナｍ１は、入力イメージＩＤ＝"ｉ１"、"ｉ２"により識別される入力イメージを用いて、テストＩＤ＝"ｔ１"、"ｔ２"により識別されるテストを実行する。なお、テストＩＤ＝"ｔ１"、"ｔ２"により識別されるテストを実行した場合に生成される組み合わせ情報及びイメージは、図１５を用いて説明済みであるため、ここでは説明を省略する。
【０１５６】
テストＩＤ＝"ｔ２"により識別されるテストを実行することで出力イメージＩＤ＝"ｉ３"により識別される出力イメージが生成されると、テスト実行部８３０は、出力イメージＩＤ＝"ｉ３"により識別される出力イメージをコンテナｍ１に入力する。
【０１５７】
コンテナｍ１は、イメージＩＤ＝"ｉ３"により識別されるイメージに基づいて、テストＩＤ＝"ｔ３２"により識別されるテストを実行する。これにより、コンテナｍ１は出力データｄ４２を含む出力イメージを生成する。なお、生成した出力イメージのイメージＩＤを、ここでは"ｉ４２"とする。
【０１５８】
組み合わせ情報生成・更新部８４０は、組み合わせ情報テーブル１６００の"入力イメージＩＤ"に"ｉ３"を格納し、"テストＩＤ"に"ｔ３２"を格納し、"出力イメージＩＤ"に"ｉ４２"を格納する（図１６（ｂ）参照）。
【０１５９】
また、テスト実行部８３０は、コンテナイメージテーブル１６１０の"イメージＩＤ"に"ｉ４２"を格納し、"イメージ内容"にイメージＩＤ＝"ｉ４２"により識別されるイメージを格納する（図１６（ｃ）参照）。
【０１６０】
ここで、図１５（ｂ）の組み合わせ情報テーブル１５００と図１６（ｂ）の組み合わせ情報テーブル１６００とをまとめて模式的に示すと、図１７のようになる。図１７は、テストとイメージとの関係を示す図である。
【０１６１】
図１７に示すように、イメージＩＤ＝"ｉ１"により識別されるイメージを入力イメージとして、テストＩＤ＝"ｔ１"により識別されるテストが実行されると、イメージＩＤ＝"ｉ２"により識別されるイメージが出力される。
【０１６２】
同様に、イメージＩＤ＝"ｉ２"により識別されるイメージを入力イメージとして、テストＩＤ＝"ｔ２"により識別されるテストが実行されると、イメージＩＤ＝"ｉ３"により識別されるイメージが出力される。
【０１６３】
一方、イメージＩＤ＝"ｉ３"により識別されるイメージは、テストＩＤ＝"ｔ３１"、"ｔ３２"により識別されるテストにおいて入力イメージとして入力される。また、それぞれのテストが実行されることで、イメージＩＤ＝"ｉ４１"、"ｉ４２"により識別されるイメージが出力される。
【０１６４】
なお、イメージＩＤ＝"ｉ２"により識別されるイメージには、カートデータｄ２＝｛"商品"："ｉｔｅｍ１"、"個数"：１｝が含まれる。また、イメージＩＤ＝"ｉ３"により識別されるイメージには、カートデータｄ３＝｛"商品"："ｉｔｅｍ１"、"個数"：２｝が含まれる。また、イメージＩＤ＝"ｉ４１"により識別されるイメージには、カートデータｄ４１＝｛｝が含まれる。更に、イメージＩＤ＝"ｉ４２"により識別されるイメージには、カートデータｄ４２＝｛"商品"："ｉｔｅｍ１"、"個数"：０｝が含まれる。
【０１６５】
ここで、端末３１０のユーザがテストセット生成部３１１の機能を利用して、テストセットＩＤ＝"Ａ"に含まれるテストＩＤ＝"ｔ１"により識別されるテストを変更した場合の再実行処理について説明する。
【０１６６】
図１８は、変更後のテストセットの一実施例を示す図である。図１８に示すように、端末３１０のユーザは、テストセットＩＤ＝"Ａ"に含まれるテストＩＤ＝"ｔ１"により識別されるテストを変更したとする。
【０１６７】
具体的には、変更前のテストＩＤ＝"ｔ１"により識別されるテストは、カートにｉｔｅｍ１を１個追加する操作であったところ、変更後のテストＩＤ＝"ｔ'１"により識別されるテストは、カートにｉｔｅｍ１を２個追加する操作としている。このため、端末３１０のユーザは、テストＩＤ＝"ｔ'１"により識別されるテストが実行された場合の出力データを、カートデータｄ'２＝｛"商品"："ｉｔｅｍ１"、"個数"：２｝に変更したとする。また、これに伴って、テストＩＤ＝"ｔ２"により識別されるテストが実行された場合の出力データを、カートデータｄ'３＝｛"商品"："ｉｔｅｍ１"、"個数"：４｝に変更したとする。
【０１６８】
変更後のテスト（テストＩＤ＝"ｔ'１"により識別されるテスト）テストセットＩＤ＝"Ａ"と、テストセットＩＤ＝"Ｂ"とを含む再検証指示が端末３１０より送信されると、検証実行部３２１では、再実行処理を実行する。
【０１６９】
再実行処理が実行されると、テスト実行部８３０では、テストが変更されたことに伴って、再実行すべきテストを検索する。具体的には、組み合わせ情報テーブル１５００、１６００を検索することで再実行すべきテストを含む組み合わせ情報を抽出する。なお、ここでは説明をわかりやすくするため、テストとイメージの関係を示す図を用いて説明する。図１９は、テストとイメージとの関係を変更前後で対比した図である。
【０１７０】
図１９（ａ）、（ｂ）に示すように、テストＩＤ＝"ｔ１"により識別されるテストが、テストＩＤ＝"ｔ'１"により識別されるテストに変更された場合、出力イメージも変更される。具体的には、イメージＩＤ＝"ｉ２"により識別されるイメージから、イメージＩＤ＝"ｉ'２"により識別されるイメージへと変更される。つまり、一点鎖線１９０１により囲まれた処理が変更されることになる。
【０１７１】
また、図１９（ｂ）に示すように、出力イメージ（イメージＩＤ＝"ｉ'２"）が変更された場合、当該出力イメージが入力イメージとして入力される、テストＩＤ＝"ｔ２"により識別されるテストも影響を受ける。また、テストＩＤ＝"ｔ２"により識別されるテストの出力イメージも影響を受ける。更には、テストＩＤ＝"ｔ２"により識別されるテストの出力イメージが入力イメージとして入力される、テストＩＤ＝"ｔ３１"、"ｔ３２"により識別されるテストも影響を受ける。つまり、一点鎖線１９０２により囲まれた処理が変更されることになる。
【０１７２】
したがって、テスト実行部８３０では、テストＩＤ＝"ｔ'１"により識別されるテストが変更されたことに伴って再実行すべきテストとして、テストＩＤ＝"ｔ２"、"ｔ３１"、"ｔ３２"を抽出する。
【０１７３】
続いて、再実行処理におけるテストの再実行を、図２０及び図２１を用いて説明する。図２０は、再実行処理を実行することで生成された組み合わせ情報テーブル及びコンテナイメージテーブルの具体例を示す図である。図２０に示す組み合わせ情報テーブル２０００及びコンテナイメージテーブル２０１０は、テストセットＩＤ＝"Ａ"のテストセットについて再実行処理を実行した場合のものである。なお、図２０（ａ）は、テストセットＩＤ＝"Ａ"により識別されるテストセットに対するコンテナ（ｍ２１）の動作を示している。
【０１７４】
準備処理において生成された組み合わせ情報テーブル１５００によれば、テストＩＤ＝"ｔ１"により識別されるテストの入力イメージは、イメージＩＤ＝"ｉ１"により識別されるイメージである。そこで、テスト実行部８３０は、イメージＩＤ＝"ｉ１"により識別されるイメージをコンテナイメージテーブル１５１０より読み出し、テストＩＤ＝"ｔ'１"の入力イメージとして入力する。これにより、コンテナｍ２１は、テストＩＤ＝"ｔ'１"により識別されるテストを実行し、出力データｄ'２を含む出力イメージを生成する。なお、このとき生成した出力イメージのイメージＩＤを、ここでは"ｉ'２"とする。
【０１７５】
組み合わせ情報生成・更新部８４０は、組み合わせ情報テーブル１５００の"入力イメージＩＤ"の"ｉ２"を"ｉ'２"に更新する。また、テスト実行部８３０では、イメージＩＤ＝"ｉ'２"により識別されるイメージに含まれる出力データｄ'２が正しいか否かを判定する。ここで、出力データｄ'２は、カートデータｄ'２＝｛"商品"："ｉｔｅｍ１"、"個数"：２｝であるため正しいと判定する。このため、テスト実行部８３０では、コンテナイメージテーブル１５１０の"イメージＩＤ"に"ｉ'２"を格納し、"イメージ内容"に、イメージＩＤ＝"ｉ'２"により識別されるイメージを格納する。
【０１７６】
テスト実行部８３０では、組み合わせ情報テーブル１５００内において、イメージＩＤ＝"ｉ２"を入力イメージとするテストを含む組み合わせ情報を検索し、テストＩＤ＝"ｔ２"を含む組み合わせ情報を抽出する。そして、コンテナｍ２１にテストＩＤ＝"ｔ２"により識別されるテストを実行させる。コンテナｍ２１では、イメージＩＤ＝"ｉ'２"を入力イメージとしてテストＩＤ＝"ｔ２"により識別されるテストを実行し、出力データｄ'３を含む出力イメージを生成する。なお、このとき生成した出力イメージのイメージＩＤを、ここでは"ｉ'３"とする。
【０１７７】
組み合わせ情報生成・更新部８４０は、組み合わせ情報テーブル１５００の"出力イメージＩＤ"の"ｉ３"を"ｉ'３"に更新する。また、テスト実行部８３０では、イメージＩＤ＝"ｉ'３"により識別されるイメージに含まれる出力データｄ'３が正しいか否かを判定する。ここで、出力データｄ'３は、カートデータｄ'３＝｛"商品"："ｉｔｅｍ１"、"個数"：４｝となるため正しいと判定する。そこで、テスト実行部８３０は、コンテナイメージテーブル１５１０の"イメージＩＤ"に"ｉ'３"を格納し、"イメージ内容"に、イメージＩＤ＝"ｉ'３"により識別されるイメージを格納する。
【０１７８】
テスト実行部８３０では、組み合わせ情報テーブル１５００内において、イメージＩＤ＝"ｉ３"を入力イメージとするテストを含む組み合わせ情報を検索し、テストＩＤ＝"ｔ３１"を含む組み合わせ情報を抽出する。そして、コンテナｍ２１にテストＩＤ＝"ｔ３１"により識別されるテストを実行させる。コンテナｍ２１では、イメージＩＤ＝"ｉ'３"により識別される入力イメージに基づいてテストＩＤ＝"ｔ３１"により識別されるテストを実行し、出力データｄ'４１を含む出力イメージを生成する。
【０１７９】
なお、テストＩＤ＝"ｔ３１"により識別されるテストが実行されることで出力される出力データｄ４１は、変更されていない。このため、組み合わせ情報生成・更新部８４０は、組み合わせ情報テーブル１５００の"出力イメージＩＤ"に格納されているイメージＩＤ＝"ｉ４１"を変更しない。
【０１８０】
このようにして、テストセットＩＤ＝"Ａ"についての再実行処理が実行されることで、図１５（ｂ）に示す組み合わせ情報テーブル１５００が、図２０（ｂ）に示す組み合わせ情報テーブル２０００へと更新される。また、図１５（ｃ）に示すコンテナイメージテーブル１５１０が、図２０（ｃ）に示すコンテナイメージテーブル２０１０へと更新される。
【０１８１】
図２１は、組み合わせ情報テーブル及びコンテナイメージテーブルの具体例を示す図である。図２１に示す組み合わせ情報テーブル２１００及びコンテナイメージテーブル２０１０は、テストセットＩＤ＝"Ｂ"のテストセットについて再実行処理を実行することで生成される。なお、図２１（ａ）は、テストセットＩＤ＝"Ｂ"により識別されるテストセットに対するコンテナの動作を示している。
【０１８２】
コンテナｍ２１がテストＩＤ＝"ｔ'１"、"ｔ２"により識別されるテストを実行することで出力される出力イメージの出力イメージＩＤは、既に組み合わせ情報テーブル２０００に格納されている。また、当該出力イメージＩＤにより識別されるイメージは、既にコンテナイメージテーブル２０１０に格納されている。このため、ここでは説明を省略する。
【０１８３】
テスト実行部８３０では、組み合わせ情報テーブル１６００内において、イメージＩＤ＝"ｉ３"を入力イメージとするテストを含む組み合わせ情報を検索し、テストＩＤ＝"ｔ３２"を含む組み合わせ情報を抽出する。そして、コンテナｍ２１にテストＩＤ＝"ｔ３２"により識別されるテストを実行させる。
【０１８４】
コンテナｍ２１では、イメージＩＤ＝"ｉ'３"により識別されるイメージに基づいて、テストＩＤ＝"ｔ３２"により識別されるテストを実行する。
【０１８５】
これにより、コンテナｍ２１は、出力データｄ'４２を含む出力イメージを生成する。なお、このとき生成した出力イメージのイメージＩＤを、ここでは"ｉ'４２"とする。
【０１８６】
テスト実行部８３０では、イメージＩＤ＝"ｉ'４２"により識別されるイメージに含まれる出力データｄ'４２が正しいか否かを判定する。ここで、出力データｄ'４２は、カートデータｄ'４２＝｛"商品"："ｉｔｅｍ１"、"個数"：２｝である。一方、出力データｄ４２の期待する出力は、図１８で示したように、カートデータｄ４２＝｛"商品"："ｉｔｅｍ１"、"個数"：０｝である。
【０１８７】
したがって、テスト実行部８３０では、テスト結果が正しくないと判定し、テストＩＤ＝"ｔ３２"により識別されるテストのテスト結果が正しくないことを、再検証結果として端末３１０に送信する。
【０１８８】
なお、テストＩＤ＝"ｔ３２"により識別されるテストのテスト結果が正しくないのは、テストＩＤ＝"ｔ１"により識別されるテストを、テストＩＤ＝"ｔ'１"により識別されるテストに変更したためである。これにより、カートに追加されるｉｔｅｍ１が１個から２個に変更され、テストＩＤ＝"ｔ２"により識別されるテストの出力データ（つまり、テストＩＤ＝"ｔ３２"により識別されるテストの入力データ）が、ｄ'３＝４となったためである。
【０１８９】
つまり、端末３１０のユーザは、テストＩＤ＝"ｔ１"により識別されるテストを、テストＩＤ＝"ｔ'１"により識別されるテストに変更した際に、テストＩＤ＝"ｔ３２"により識別されるテストの出力データ（カートデータｄ４２）も変更すべきであった。しかしながら、端末３１０のユーザがカートデータｄ４２の変更を怠ったことで、テストＩＤ＝"ｔ３２"により識別されるテストのテスト結果が正しくないとの再検証結果が通知されることとなった。このように、再検証処理では、テストセットに含まれるテストの一部を変更したことで影響を受けるテスト（またはデータ）であって、端末３１０のユーザが変更していないテスト（またはデータ）を見つけ出すことができる。
【０１９０】
なお、テスト結果が正しくないと判定した出力イメージ（イメージＩＤ＝"ｉ'４２"により識別されるイメージ）及び出力イメージＩＤは、組み合わせ情報テーブル２１００及びコンテナイメージテーブル２０１０には、格納されない（図２１（ｂ）、（ｃ））。
【０１９１】
テスト実行部８３０では、テストＩＤ＝"ｔ３２"により識別されるテストにおいてテスト結果が正しくないことを再検証結果として端末３１０に通知する。これにより、端末３１０のユーザは、変更すべきテスト（またはデータ）を認識することができる。
【０１９２】
以上の説明から明らかなように、本実施形態における検証装置では、複数のテストを連続して実行するテストセットを分割し、入力データ、テスト、出力データの組み合わせ情報を複数生成する。また、テストセットに含まれるテストが更新されることで出力データが変化した場合には、当該テストを含む組み合わせ情報に格納されている出力データを入力データとする組み合わせ情報を検索する。更に、検索した組み合わせ情報に格納されている入力データを更新するとともに、入力データが更新されたことで出力データが変化した場合には、当該出力データも更新し、更に、更新した出力データを入力データとする組み合わせ情報を検索する。そして、これらを繰り返すことで、組み合わせ情報テーブルに格納されている入力データと出力データとを順次更新する。
【０１９３】
これにより、本実施形態における検証装置によれば、複数のテストを連続して実行するテストセットにおいて１つのテストが変更されたことに応じて、影響を受けるテストを実行しながら、組み合わせ情報を更新することが可能となる。
【０１９４】
なお、上記説明では、コンテナを用いてテストを実行することで、入力イメージ及び出力イメージを取得したが、ＶＭを用いてテストを実行することで、入力イメージ及び出力イメージを取得するようにしてもよい。
【０１９５】
なお、開示の技術では、以下に記載する付記のような形態が考えられる。
（付記１）
複数のテストを連続して実行するテストセットに基づいて、テストごとに入力データを識別する情報と出力データを識別する情報との組み合わせ情報を生成し、
前記複数のテストのうちの第１のテストの変更を受信したときに、該第１のテストが含まれる第１の組み合わせ情報の出力データを識別する情報を、入力データを識別する情報としている第２の組み合わせ情報を抽出し、該第１の組み合わせ情報を、入力データを識別する情報、該変更した第１のテスト、及び該変更した第１のテストの検証によって出力される出力データを識別する情報の組み合わせとして更新し、
前記第２の組み合わせ情報の入力データを識別する情報を、更新した前記第１の組み合わせ情報の出力データを識別する情報として検証することにより前記第２の組み合わせ情報を更新する、
処理をコンピュータに実行させることを特徴とする検証プログラム。
（付記２）
前記変更した第１のテストの検証によって出力される出力データが正しいと判定された場合に、前記第２の組み合わせ情報を抽出することを特徴とする付記１に記載の検証プログラム。
（付記３）
前記変更した第１のテストの検証によって出力される出力データが正しくないと判定された場合に、該判定の結果を通知することを特徴とする付記２に記載の検証プログラム。
（付記４）
前記変更した第１のテストの検証によって出力される出力データが、変更前の第１のテストの検証によって出力される出力データから変化していた場合に、前記第２の組み合わせ情報を抽出することを特徴とする付記１乃至３のいずれかの付記に記載の検証プログラム。
（付記５）
複数のテストを連続して実行するテストセットに基づいて、テストごとに入力データを識別する情報と出力データを識別する情報との組み合わせ情報を生成する生成部と、
前記複数のテストのうちの第１のテストの変更を受信したときに、該第１のテストが含まれる第１の組み合わせ情報の出力データを識別する情報を、入力データを識別する情報としている第２の組み合わせ情報を抽出する抽出部と、
前記第１の組み合わせ情報を、入力データを識別する情報、該変更した第１のテスト、及び該変更した第１のテストの検証によって出力される出力データを識別する情報の組み合わせとして更新する第１の更新部と、
前記第２の組み合わせ情報の入力データを識別する情報を、更新した前記第１の組み合わせ情報の出力データを識別する情報として検証することにより前記第２の組み合わせ情報を更新する第２の更新部と
を有することを特徴とする検証装置。
（付記６）
コンピュータによる検証方法であって、該コンピュータが、
複数のテストを連続して実行するテストセットに基づいて、テストごとに入力データを識別する情報と出力データを識別する情報との組み合わせ情報を生成し、
前記複数のテストのうちの第１のテストの変更を受信したときに、該第１のテストが含まれる第１の組み合わせ情報の出力データを識別する情報を、入力データを識別する情報としている第２の組み合わせ情報を抽出し、該第１の組み合わせ情報を、入力データを識別する情報、該変更した第１のテスト、及び該変更した第１のテストの検証によって出力される出力データを識別する情報の組み合わせとして更新し、
前記第２の組み合わせ情報の入力データを識別する情報を、更新した前記第１の組み合わせ情報の出力データを識別する情報として検証することにより前記第２の組み合わせ情報を更新する、
ことを特徴とする検証方法。
【０１９６】
本発明は、具体的に開示された実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０１９７】
３００    ：検証システム
３１０    ：端末
３１１    ：テストセット生成部
３１２    ：検証指示部
３１３    ：テストコード格納部
３２０    ：検証装置
３２１    ：検証実行部
３２２    ：組み合わせ情報格納部
３２３    ：コンテナイメージ格納部
５００    ：テストセットテーブル
６００    ：組み合わせ情報テーブル
７００    ：コンテナイメージテーブル
８１０    ：テストコード分割部
８２０    ：コンテナ生成部
８３０    ：テスト実行部
８４０    ：組み合わせ情報生成・更新部
８５０    ：コンテナ破棄部
【図１】
2016143160.tif 000003
【図２】
2016143160.tif 000004
【図３】
2016143160.tif 000005
【図４】
2016143160.tif 000006
【図５】
2016143160.tif 000007
【図６】
2016143160.tif 000008
【図７】
2016143160.tif 000009
【図８】
2016143160.tif 000010
【図９】
2016143160.tif 000011
【図１０】
2016143160.tif 000012
【図１１】
2016143160.tif 000013
【図１２】
2016143160.tif 000014
【図１３】
2016143160.tif 000015
【図１４】
2016143160.tif 000016
【図１５】
2016143160.tif 000017
【図１６】
2016143160.tif 000018
【図１７】
2016143160.tif 000019
【図１８】
2016143160.tif 000020
【図１９】
2016143160.tif 000021
【図２０】
2016143160.tif 000022
【図２１】
2016143160.tif 000023