(57)【要約】  データ検証装置（１０）は、ソースコードにおける参照箇所であって、定義データを参照する参照箇所に、ログを出力するログ出力コードを埋め込んで、試験コードを生成する。データ検証装置（１０）は、試験実行装置（２０）に、試験データを入力とする試験コードの実行を指示する。データ検証装置（１０）は、試験コードを実行して出力されたログを参照する。そして、データ検証装置（１０）は、試験データを入力とした場合に参照箇所が実行されたか否かを判定する。
2019077738.tif 000002
【特許請求の範囲】
【請求項１】
ソースコードにおける参照箇所であって、定義データを参照する参照箇所に、ログを出力するログ出力コードを埋め込んで、試験コードを生成する埋め込み部と、
試験データを入力として前記試験コードを実行して出力されたログを参照して、前記試験データを入力とした場合に前記参照箇所が実行されたか否かを判定する結果解析部と
を備えるデータ検証装置。
【請求項２】
前記ソースコードには複数の参照箇所が含まれており、
前記結果解析部は、前記ソースコードに含まれる前記複数の参照箇所それぞれについて、前記試験データを入力とした場合に実行されたか否かを判定する
請求項１に記載のデータ検証装置。
【請求項３】
前記結果解析部は、前記複数の参照箇所のうち、実行された参照箇所の割合を示すカバレッジを計算する
請求項２に記載のデータ検証装置。
【請求項４】
前記結果解析部は、複数の試験データそれぞれを入力として前記試験コードを実行して出力されたログを参照して、前記複数の試験データそれぞれを対象として、対象の試験データを入力とした場合に実行された参照箇所で参照される定義データを特定する
請求項１から３までのいずれか１項に記載のデータ検証装置。
【請求項５】
前記結果解析部は、定義データが指定されると、指定された定義データを参照する参照箇所が実行された試験データを特定する
請求項４に記載のデータ検証装置。
【請求項６】
コンピュータが、ソースコードにおける参照箇所であって、定義データを参照する参照箇所に、ログを出力するログ出力コードを埋め込んで、試験コードを生成し、
コンピュータが、試験データを入力として前記試験コードを実行して出力されたログを参照して、前記試験データを入力とした場合に前記参照箇所が実行されたか否かを判定するデータ検証方法。
【請求項７】
ソースコードにおける参照箇所であって、定義データを参照する参照箇所に、ログを出力するログ出力コードを埋め込んで、試験コードを生成する埋め込み処理と、
試験データを入力として前記試験コードを実行して出力されたログを参照して、前記試験データを入力とした場合に前記参照箇所が実行されたか否かを判定する結果解析処理と
をコンピュータが実行するデータ検証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ソフトウェアのデータ定義を変更した場合におけるデータ検証試験の支援技術に関する。
【背景技術】
【０００２】
正常に動作するプログラムのロジックを改修する場合がある。この場合、ロジックの改修によって、改修していないロジックに影響を与えていないことを検証するリグレッション試験を行う必要がある。リグレッション試験を確実に行うことは品質を確保する上で重要である。
特許文献１には、リグレッション試験で検出された誤りであるデグレードバグに関して、プログラム開発担当者の経験則に頼ることなく、影響を与えた可能性のある関数及び内部データを特定する技術が記載されている。また、特許文献２には、ロジックの改修に伴い変数が追加、削除、又は名称変更された場合に、変更された変数のパターンを特定し、リグレッション試験に用いるテストデータを生成する技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−１６７１８０号公報
【特許文献２】特開２０１５−０３５１８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
データ中心アプローチにより設計されたソフトウェアでは、データを定義する定義データが大量に用いられる。データ中心アプローチにより設計されたソフトウェアの改修を行う場合には、ロジック及び定義データの改修を行う場合と、ロジックの改修は行わず、定義データの改修のみを行う場合とがある。ロジックの改修は行わず、定義データの改修のみを行う場合であっても、改修によるデグレードがないことを確認するためにリグレッション試験を行う必要がある。定義データの改修とは、取り得る値の範囲の変更等である。【０００５】
特許文献１，２に記載された技術は、ロジックの改修が行われた場合におけるリグレッション試験の支援を行うものである。特許文献１，２に記載された技術では、ロジックの改修は行わず、定義データの改修のみを行う場合におけるリグレッション試験の支援を行うことはできない。【０００６】
この発明は、ロジックの改修は行わず、定義データの改修のみを行う場合におけるリグレッション試験の支援を行うことを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係るデータ検証装置は、
ソースコードにおける参照箇所であって、定義データを参照する参照箇所に、ログを出力するログ出力コードを埋め込んで、試験コードを生成する埋め込み部と、
試験データを入力として前記試験コードを実行して出力されたログを参照して、前記試験データを入力とした場合に前記参照箇所が実行されたか否かを判定する結果解析部と
を備える。
【発明の効果】
【０００８】
この発明では、定義データを参照する参照箇所に、ログを出力するログ出力コードを埋め込んだ試験コードを実行した結果に基づき、試験データを入力とした場合に参照箇所が実行されたか否かを判定する。
これにより、試験データを入力とした場合に定義データを参照する参照箇所の試験が行われるか否か特定することが可能である。これにより、リグレッション試験の試験データの特定が容易になる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係るデータ検証システム１の構成図。
【図２】実施の形態１に係るデータ検証装置１０の構成図。
【図３】実施の形態１に係る試験実行装置２０の構成図。
【図４】実施の形態１に係るデータ検証システム１の処理のフローチャート。
【図５】実施の形態１に係る試験データ記憶部２３１に記憶される情報の説明図。
【図６】実施の形態１に係る試験コード生成処理のフローチャート。
【図７】実施の形態１に係る結果解析処理のフローチャート。
【図８】変形例１に係るデータ検証装置１０の構成図。
【図９】変形例１に係る試験実行装置２０の構成図。
【図１０】実施の形態２に係るデータ検証装置１０の構成図。
【図１１】実施の形態２に係る結果解析処理のフローチャート。
【図１２】実施の形態２に係るマトリックス記憶部１３１に記憶されるマトリックスの説明図。
【図１３】実施の形態２に係る試験データ特定処理のフローチャート。
【発明を実施するための形態】
【００１０】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１を参照して、実施の形態１に係るデータ検証システム１の構成を説明する。
データ検証システム１は、データ検証装置１０と、試験実行装置２０とを備える。データ検証装置１０と試験実行装置２０とは、コンピュータである。データ検証装置１０と試験実行装置２０とは、伝送路３０を介して接続されている。伝送路３０は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）又は専用線等である。
なお、データ検証装置１０と試験実行装置２０とは、１つの装置として実現されてもよい。
【００１１】
図２を参照して、実施の形態１に係るデータ検証装置１０の構成を説明する。
データ検証装置１０は、プロセッサ１１と、メモリ１２と、ストレージ１３と、通信インタフェース１４とのハードウェアを備える。プロセッサ１１は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００１２】
データ検証装置１０は、機能構成要素として、埋め込み部１１１と、試験実行部１１２と、結果解析部１１３とを備える。データ検証装置１０の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ１３には、データ検証装置１０の各機能構成要素の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ１１によりメモリ１２に読み込まれ、プロセッサ１１によって実行される。これにより、データ検証装置１０の各機能構成要素の機能が実現される。
【００１３】
図３を参照して、実施の形態１に係る試験実行装置２０の構成を説明する。
試験実行装置２０は、プロセッサ２１と、メモリ２２と、ストレージ２３と、通信インタフェース２４とのハードウェアを備える。プロセッサ２１は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００１４】
試験実行装置２０は、機能構成要素として、試験実行部２１１と、ログ出力部２１２と、結果出力部２１３とを備える。試験実行装置２０の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ２３には、試験実行装置２０の各機能構成要素の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ２１によりメモリ２２に読み込まれ、プロセッサ２１によって実行される。これにより、試験実行装置２０の各機能構成要素の機能が実現される。
【００１５】
ストレージ２３は、試験データ記憶部２３１と、ログ記憶部２３２と、結果記憶部２３３との機能を実現する。
【００１６】
プロセッサ１１，２１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。プロセッサ１１，２１は、具体例としては、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
【００１７】
メモリ１２，２２は、データを一時的に記憶する記憶装置である。メモリ１２，２２は、具体例としては、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
【００１８】
ストレージ１３，２３は、データを保管する記憶装置である。ストレージ１３，２３は、具体例としては、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）である。また、ストレージ１３，２３は、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカード、ＣＦ（ＣｏｍｐａｃｔＦｌａｓｈ）、ＮＡＮＤフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）といった可搬記憶媒体であってもよい。
【００１９】
通信インタフェース１４，２４は、外部の装置と通信するためのインタフェースである。通信インタフェース１４，２４は、具体例としては、Ｅｔｈｅｒｎｅｔ（登録商標）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＨＤＭＩ（登録商標，Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）のポートである。
データ検証装置１０は、通信インタフェース１４を介して伝送路３０に接続され、試験実行装置２０は、通信インタフェース２４を介して伝送路３０に接続される。また、データ検証装置１０は、通信インタフェース１４を介して、入力装置及び表示装置といった装置に接続され、試験実行装置２０は、通信インタフェース２４を介して、入力装置及び表示装置といった装置に接続される。
【００２０】
＊＊＊動作の説明＊＊＊
図４から図７を参照して、実施の形態１に係るデータ検証システム１の動作を説明する。
実施の形態１に係るデータ検証システム１の動作は、実施の形態１に係るデータ検証方法に相当する。また、実施の形態１に係るデータ検証システム１の動作は、実施の形態１に係るデータ検証プログラムの処理に相当する。
【００２１】
図４を参照して、実施の形態１に係るデータ検証システム１の処理を説明する。
（ステップＳ１：試験コード生成処理）
データ検証装置１０の埋め込み部１１１は、試験対象のソースコードにおける参照箇所であって、定義データを参照する参照箇所を特定する。定義データは、ソフトウェアにおけるデータを定義するためのデータであり、読取専用で用いられるデータである。埋め込み部１１１は、特定された参照箇所にログを出力するログ出力コードを埋め込んで、試験コードを生成する。埋め込み部１１１は、生成された試験コードを試験実行装置２０に送信する。
【００２２】
（ステップＳ２：実行指示処理）
データ検証装置１０の試験実行部１１２は、入力として与える試験データを指定した上で、試験コードの実行を試験実行装置２０に指示する。この際、試験実行部１１２は、複数の試験データを指定してもよい。
図５に示すように、試験実行装置２０の試験データ記憶部２３１には、複数の試験データが記憶されている。各試験データには、識別子である試験番号が割り当てられている。各試験データは、ソフトウェアの開発者により作成される、あるいは、自動生成プログラムにより生成される。試験実行部１１２は、試験データ記憶部２３１に記憶された複数の試験データのうち、どの試験データを入力とするかを指定する。
【００２３】
（ステップＳ３：試験実行処理）
試験実行装置２０の試験実行部２１１は、ステップＳ２で指定された試験データを試験データ記憶部２３１から読み込む。試験実行部２１１は、読み込まれた試験データを入力として、ステップＳ１で生成された試験コードを実行する。
試験実行部２１１は、ステップＳ２で複数の試験データが指定された場合には、各試験データを順に入力として、試験コードを実行する。
【００２４】
（ステップＳ４：ログ出力処理）
試験実行装置２０のログ出力部２１２は、ステップＳ３で実行された試験コードに埋め込まれたログ出力コードによって出力されたログをログ記憶部２３２に書き込む。
【００２５】
（ステップＳ５：結果出力処理）
試験実行装置２０の結果出力部２１３は、ステップＳ３で試験コードを実行した結果を結果記憶部２３３に書き込む。
【００２６】
（ステップＳ６：結果解析処理）
データ検証装置１０の結果解析部１１３は、ステップＳ４でログ記憶部２３２に書き込まれたログと、ステップＳ５で結果記憶部２３３に書き込まれた結果とを解析する。
【００２７】
図６を参照して、実施の形態１に係る試験コード生成処理（図４のステップＳ１）を説明する。
（ステップＳ１１：参照箇所特定処理）
埋め込み部１１１は、試験対象のソースコードから、ソースコードの開発規則に基づき定義データを参照する参照箇所を検索することにより、参照箇所を特定する。埋め込み部１１１は、複数の参照箇所が存在する場合には、全ての参照箇所を特定する。
定義データは、関連のある項目が集合体として定義される。つまり、定義データは、ソフトウェアでは構造体として定義される。また、ソースコードを開発する際には、変数の命名規則等が定められる。例えば、定義データを設定する変数には、先頭に“ｄｅｆ”を付けるといった規則が定められる。したがって、埋め込み部１１１は、定義データを設定する変数に付けられる名称が設定された構造体変数（構造体のメンバ名）を、ソースコードから検索することにより、参照箇所を特定することが可能である。
【００２８】
続いて、ステップＳ１１で特定された各参照箇所を順に対象としてステップＳ１２の処理が実行される。
【００２９】
（ステップＳ１２：埋め込み処理）
埋め込み部１１１は、対象とする参照箇所にログを出力するログ出力コードを埋め込む。ログ出力コードは、入力とされた試験データの試験番号と、参照された定義データの変数名と、参照箇所を示す位置情報とをログとして出力するプログラムコードである。位置情報は、ソースコード内における参照箇所の位置を特定可能な情報である。例えば、位置情報は、ソースコードにおけるログ出力コードが埋め込まれた行番号である。
【００３０】
（ステップＳ１３：コード出力処理）
埋め込み部１１１は、ステップＳ１２でログ出力コードが埋め込まれたソースコードを試験コードとして、試験実行装置２０に送信する。
試験実行装置２０に送信された試験コードは、必要に応じてコンパイル及びリンクされた上でメモリ２２に記憶される。
【００３１】
図７を参照して、実施の形態１に係る結果解析処理（図４のステップＳ６）を説明する。
（ステップＳ２１：データ取得処理）
結果解析部１１３は、ログ記憶部２３２に記憶されたログと、結果記憶部２３３に記憶された結果とを取得する。
【００３２】
（ステップＳ２２：結果判定処理）
結果解析部１１３は、ステップＳ２１で取得された結果が、試験規格に応じた期待値と合致するか否かを判定する。つまり、結果解析部１１３は、結果が期待した通りであるか否かを判定する。具体例としては、予め期待値を用意しておき、結果解析部１１３は、結果と期待値とを比較することにより、結果が期待した通りであるか否かを判定する。
結果解析部１１３は、結果が期待した通りである場合には、処理をステップＳ２３に進める。一方、結果解析部１１３は、結果が期待した通りでない場合には、処理を終了する。
【００３３】
続いて、定義データを順に対象としてステップＳ２３からステップＳ２４の処理が実行される。
【００３４】
（ステップＳ２３：実行判定処理）
結果解析部１１３は、ステップＳ２１で取得されたログを参照して、ステップＳ２で指定された試験データを入力とした場合に対象の定義データを参照する参照箇所が実行されたか否かを判定する。対象の定義データを参照する参照箇所が複数ある場合には、結果解析部１１３は、複数の参照箇所それぞれについて、実行されたか否かを判定する。
具体的には、結果解析部１１３は、対象とする定義データの変数名をキーワードとしてログを検索して、その変数名とともに出力された位置情報を取得する。結果解析部１１３は、取得された位置情報によって特定された位置の参照箇所については、実行されたと判定する。一方、結果解析部１１３は、取得された位置情報によって特定されない位置の参照箇所については、実行されなかったと判定する。
【００３５】
（ステップＳ２４：カバレッジ計算処理）
結果解析部１１３は、ステップＳ２３で得られた結果に基づき、対象の定義データについてのカバレッジを計算する。
具体的には、結果解析部１１３は、対象の定義データを参照する参照箇所の数に対する、実行された参照箇所の数の割合を、対象の定義データについてのカバレッジとして計算する。
【００３６】
＊＊＊実施の形態１の効果＊＊＊
以上のように、実施の形態１に係るデータ検証システム１は、定義データを参照する参照箇所に、ログを出力するログ出力コードを埋め込んで試験コードを生成する。そして、データ検証システム１は、指定した試験データを入力として試験コードを実行した結果に基づき、指定した試験データを入力とした場合に参照箇所が実行されたか否かを判定する。
これにより、指定した試験データを入力とした場合に定義データを参照する参照箇所の試験が行われるか否か特定することが可能である。これにより、リグレッション試験の試験データの特定が容易になる。
例えば、ある定義データが改修されるとする。この場合、改修される定義データについてステップＳ２４で計算されたカバレッジを参照することにより、指定した試験データを用いた場合の参照箇所のカバレッジを知ることができる。これにより、指定した試験データで試験が十分であるか否かの判断をすることが可能になる。
【００３７】
なお、図４に示す処理は、定義データが改修される際に実行するのではなく、事前に実行しておいてもよい。例えば、対象のソースコードの開発段階で、図４に示す処理を行っておいてもよい。図４に示す処理を事前に行いカバレッジを計算しておけば、定義データが改修される際に、事前に計算されたカバレッジを参照することにより、試験データの特定を容易化することができる。
【００３８】
＊＊＊他の構成＊＊＊
＜変形例１＞
実施の形態１では、データ検証装置１０と試験実行装置２０との各機能構成要素の機能がソフトウェアで実現された。しかし、変形例１として、データ検証装置１０と試験実行装置２０との各機能構成要素の機能はハードウェアで実現されてもよい。この変形例１について、実施の形態１と異なる点を説明する。
【００３９】
図８を参照して、変形例１に係るデータ検証装置１０の構成を説明する。
各機能構成要素の機能がハードウェアで実現される場合、データ検証装置１０は、プロセッサ１１とメモリ１２とストレージ１３とに代えて、電子回路１５を備える。電子回路１５は、データ検証装置１０の各部の機能とメモリ１２とストレージ１３との機能とを実現する専用の電子回路である。
【００４０】
図９を参照して、変形例１に係る試験実行装置２０の構成を説明する。
各機能構成要素の機能がハードウェアで実現される場合、試験実行装置２０は、プロセッサ２１とメモリ２２とストレージ２３とに代えて、電子回路２５を備える。電子回路２５は、試験実行装置２０の各部の機能とメモリ２２とストレージ２３との機能とを実現する専用の電子回路である。
【００４１】
電子回路１５，２５は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）が想定される。
データ検証装置１０の各部の機能を１つの電子回路１５で実現してもよいし、データ検証装置１０の各部の機能を複数の電子回路１５に分散させて実現してもよい。同様に、試験実行装置２０の各部の機能を１つの電子回路２５で実現してもよいし、試験実行装置２０の各部の機能を複数の電子回路２５に分散させて実現してもよい。
【００４２】
＜変形例２＞
変形例２として、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。つまり、データ検証装置１０の各機能構成要素のうち、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。同様に、試験実行装置２０についても、各機能構成要素のうち、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。
【００４３】
プロセッサ１１，２１とメモリ１２，２２とストレージ１３，２３と電子回路１５，２５とを、処理回路という。つまり、データ検証装置１０と試験実行装置２０との各部の機能は、処理回路により実現される。
【００４４】
実施の形態２．
実施の形態２では、試験データ毎に、その試験データを入力とした場合に実行された参照箇所で参照される定義データを特定する点が実施の形態１と異なる。実施の形態２では、この異なる点を説明し、同一の点については説明を省略する。
【００４５】
＊＊＊構成の説明＊＊＊
図１０を参照して、実施の形態２に係るデータ検証装置１０の構成を説明する。
データ検証装置１０は、ストレージ１３がマトリックス記憶部１３１の機能を実現する点が図２に示すデータ検証装置１０と異なる。
【００４６】
＊＊＊動作の説明＊＊＊
図１１から図１３を参照して、実施の形態２に係るデータ検証システム１の動作を説明する。
実施の形態２に係るデータ検証システム１の動作は、実施の形態２に係るデータ検証方法に相当する。また、実施の形態２に係るデータ検証システム１の動作は、実施の形態２に係るデータ検証プログラムの処理に相当する。
【００４７】
図１１を参照して、実施の形態２に係る結果解析処理（図４のステップＳ６）を説明する。
ステップＳ３１からステップＳ３２の処理は、図７のステップＳ２１からステップＳ２２の処理と同じである。
【００４８】
続いて、試験データと定義データとの組合せを順に対象としてステップＳ３３の処理が実行される。
【００４９】
（ステップＳ３３：参照データ特定処理）
結果解析部１１３は、対象の試験データを入力とした場合に実行された参照箇所で対象の定義データが実行されたか否かを判定する。
結果解析部１１３は、判定された結果を、マトリックス記憶部１３１に記憶されたマトリックスに書き込む。図１２に示すように、マトリックス記憶部１３１には、行と列との一方に試験番号が設定され、他方に定義データの変数名が設定されたマトリックスが記憶されている。図１２では、マトリックス記憶部１３１には、行に試験番号が設定され、列に変数名が設定されたマトリックスが記憶されている。結果解析部１１３は、対象の試験データの試験番号及び対象の定義データの変数名に対応する欄に、判定された結果を書き込む。
例えば、対象の試験データの試験番号がＴ００１であり、対象の定義データの変数名がｄｅｆ１である場合には、行Ｔ００１と列ｄｅｆ１とが交わる欄に判定された結果が書き込まれる。図１２では、実行された場合には“ｘ”が書き込まれ、実行されていない場合には“−”が書き込まれている。
【００５０】
つまり、結果解析部１１３は、指定された試験データを入力とした場合に実行された参照箇所で参照される定義データを特定し、特定された結果をマトリックスに書き込む。
【００５１】
図１３を参照して、実施の形態２に係る試験データ特定処理を説明する。
（ステップＳ４１：定義データ受付処理）
結果解析部１１３は、１つ以上の定義データの指定を受け付ける。ここでは、結果解析部１１３は、改修された、あるいは、改修される定義データの指定を受け付ける。
【００５２】
（ステップＳ４２：試験データ特定処理）
結果解析部１１３は、マトリックス記憶部１３１に記憶されたマトリックスを参照して、ステップＳ４１で指定された定義データを参照する参照箇所が実行された試験データを特定する。具体的には、結果解析部１１３は、ステップＳ４１で指定された定義データの変数名が設定された列を参照して、実行されたことを示す情報（図１２では“ｘ”）が書き込まれた行に対応する試験データを特定する。
【００５３】
＊＊＊実施の形態２の効果＊＊＊
以上のように、実施の形態２に係るデータ検証システム１は、試験データ毎に参照される定義データを特定してマトリックスを作成する。そして、データ検証システム１は、改修される定義データが指定されると、マトリックスを参照して、指定された定義データを参照する試験データを特定する。
これにより、改修される定義データを参照する試験データを機械的に抽出することが可能である。つまり、定義データが改修されたことにより、試験結果が期待値と合致しなくなる可能性がある試験データを機械的に抽出することが可能である。その結果、機械的に必要な試験データを抽出して、試験を行うことが可能である。
【００５４】
＊＊＊他の構成＊＊＊
＜変形例３＞
実施の形態２では、図１３のステップＳ４２で、結果解析部１１３は、指定された定義データを参照する試験データを特定した。しかし、結果解析部１１３は、試験データの指定を受け付け、指定された試験データによって参照される定義データを特定することも可能である。
【００５５】
＜変形例４＞
実施の形態２では、図１３のステップＳ４２で、結果解析部１１３は、指定された定義データを参照する全ての試験データを特定した。しかし、結果解析部１１３は、指定された各定義データについて少なくとも１度だけ参照する試験データの組合せを特定してもよい。特に、結果解析部１１３は、指定された各定義データについて少なくとも１度だけ参照する試験データの組合せであって、最も少ない数の試験データからなる組合せを特定してもよい。
これにより、指定された定義データを漏れなく参照する、効率のよい試験データを特定することが可能である。
【符号の説明】
【００５６】
１  データ検証システム、１０  データ検証装置、１１  プロセッサ、１２  メモリ、１３  ストレージ、１４  通信インタフェース、１５  電子回路、１１１  埋め込み部、１１２  試験実行部、１１３  結果解析部、１３１  マトリックス記憶部、２０  試験実行装置、２１  プロセッサ、２２  メモリ、２３  ストレージ、２４  通信インタフェース、２５  電子回路、２１１  試験実行部、２１２  ログ出力部、２１３  結果出力部、２３１  試験データ記憶部、２３２  ログ記憶部、２３３  結果記憶部、３０  伝送路。
【図１】
2019077738.tif 000003
【図２】
2019077738.tif 000004
【図３】
2019077738.tif 000005
【図４】
2019077738.tif 000006
【図５】
2019077738.tif 000007
【図６】
2019077738.tif 000008
【図７】
2019077738.tif 000009
【図８】
2019077738.tif 000010
【図９】
2019077738.tif 000011
【図１０】
2019077738.tif 000012
【図１１】
2019077738.tif 000013
【図１２】
2019077738.tif 000014
【図１３】
2019077738.tif 000015
【手続補正書】
【提出日】令和1年10月29日(2019.10.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
試験対象のソースコードについて、改修された定義データを参照する参照箇所を検索し、検索された前記参照箇所にログを出力するログ出力コードを埋め込んで、試験コードを生成する埋め込み部と、
試験データを入力として前記試験コードを実行して出力されたログを参照して、前記試験データを入力とした場合に前記参照箇所のそれぞれについて実行されたか否かを判定する結果解析部と
を備えるデータ検証装置。
【請求項２】
前記ソースコードには複数の参照箇所が含まれており、
前記結果解析部は、前記ソースコードに含まれる前記複数の参照箇所それぞれについて、前記試験データを入力とした場合に実行されたか否かを判定する
請求項１に記載のデータ検証装置。
【請求項３】
前記結果解析部は、前記複数の参照箇所のうち、実行された参照箇所の割合を示すカバレッジを計算する
請求項２に記載のデータ検証装置。
【請求項４】
前記結果解析部は、複数の試験データそれぞれを入力として前記試験コードを実行して出力されたログを参照して、前記複数の試験データそれぞれを対象として、対象の試験データを入力とした場合に実行された参照箇所で参照される定義データを特定する
請求項１から３までのいずれか１項に記載のデータ検証装置。
【請求項５】
前記結果解析部は、定義データが指定されると、指定された定義データを参照する参照箇所が実行された試験データを特定する
請求項４に記載のデータ検証装置。
【請求項６】
コンピュータが、試験対象のソースコードについて、改修された定義データを参照する参照箇所を検索し、検索された前記参照箇所にログを出力するログ出力コードを埋め込んで、試験コードを生成し、
コンピュータが、試験データを入力として前記試験コードを実行して出力されたログを参照して、前記試験データを入力とした場合に前記参照箇所のそれぞれについて実行されたか否かを判定するデータ検証方法。
【請求項７】
試験対象のソースコードについて、改修された定義データを参照する参照箇所を検索し、検索された前記参照箇所にログを出力するログ出力コードを埋め込んで、試験コードを生成する埋め込み処理と、
試験データを入力として前記試験コードを実行して出力されたログを参照して、前記試験データを入力とした場合に前記参照箇所のそれぞれについて実行されたか否かを判定する結果解析処理と
をコンピュータが実行するデータ検証プログラム。
【国際調査報告】
2019077738.tif 000016
2019077738.tif 000017
2019077738.tif 000018
2019077738.tif 000019