(57)【要約】【課題】プログラムの実行結果として出力された画像の検証を効率的に行う。【解決手段】コンピュータプログラムの実行結果を検証するためのテスト装置１００は、互いに異なる条件で前記コンピュータプログラムを実行することによって生成された第１及び第２の画像の画像データを記憶する記憶部１１２と、マスク領域を指定するマスクデータを記憶する記憶部１１４と、マスク領域を除く領域について、第１の画像の画像データと第２の画像の画像データとを比較して、第１の画像と第２の画像の一致点と相違点とが異なる表示態様となる第３の画像を生成する画像比較処理部１１６とを備える。【選択図】図１
2009134406.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータプログラムの実行結果を検証するためのテスト装置であって、
互いに異なる条件で前記コンピュータプログラムを実行することによって生成された第１及び第２の画像の画像データを記憶する手段と、
マスク領域を指定するマスクデータを記憶する手段と、
前記マスク領域を除く領域について、前記第１の画像の画像データと前記第２の画像の画像データとを比較して、前記第１の画像と前記第２の画像の一致点と相違点とが異なる表示態様となる第３の画像を生成する手段と、を備えるテスト装置。
【請求項２】
前記第１の画像内の所定の領域を示す領域指定データを記憶する手段と、
前記コンピュータプログラムを実行すると、前記領域指定データによって特定される領域に記述されるべきテキストを示すテキストデータを記憶する手段と、
前記第１の画像内の、前記領域指定データによって特定される領域の画像の画像データを解析して、前記領域に記述されているテキストを認識する手段と、
前記テキストデータが示すテキストと、前記テキスト認識結果に係るテキストとが一致するか否かを判定する手段と、
前記判定手段による判定結果を出力する手段と、をさらに備える請求項１記載のテスト装置。
【請求項３】
前記コンピュータプログラムを実行することによって生成された画像は、帳票画像であり、
前記領域指定データは、前記帳票画像上の所定の項目の値の表示領域を示しており、
前記テキストデータは、前記コンピュータプログラムを実行することによって得られるべき前記所定の項目の値を示すテキストデータであることを特徴とする請求項２記載のテスト装置。
【請求項４】
コンピュータプログラムの実行結果を検証するためのテスト装置が行うテスト方法であって、
前記テスト装置は、
互いに異なる条件で前記コンピュータプログラムを実行することによって生成された第１及び第２の画像の画像データを記憶する手段と、マスク領域を指定するマスクデータを記憶する手段とを有し、
前記マスク領域を除く領域について、前記第１の画像の画像データと前記第２の画像の画像データとを比較して、前記第１の画像と前記第２の画像の一致点と相違点とが異なる表示態様となる第３の画像を生成するステップと、
前記第３の画像を出力するステップと、を行うテスト方法。
【請求項５】
テスト対象プログラムの実行結果を検証するテスト装置のためのコンピュータプログラムであって、
前記テスト装置上に、
互いに異なる条件で前記テスト対象プログラムを実行することによって生成された第１及び第２の画像の画像データを記憶する手段と、マスク領域を指定するマスクデータを記憶する手段とを構築させ、
前記マスク領域を除く領域について、前記第１の画像の画像データと前記第２の画像の画像データとを比較して、前記第１の画像と前記第２の画像の一致点と相違点とが異なる表示態様となる第３の画像を生成するステップと、
前記第３の画像を出力するステップと、を前記テスト装置に実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータプログラムの実行結果を検証する技術に関し、特にプログラムの実行結果として出力された画像を検証する技術に関する。
【背景技術】
【０００２】
従来、コンピュータプログラムの実行結果を検証するためのテストツールが知られている（例えば特許文献１）
【特許文献１】特開平６−３５７５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ＧＵＩが充実している近年のコンピュータシステムでは、コンピュータプログラムの実行結果が画像で出力されることも多い。この画面に対する検証を行うためには、画像に表示された数字や文字などが、期待通りのものであるか否かを確認することになる。そのため、従来は人が目視で確認していたため、作業に手間がかかった。
【０００４】
そこで、本発明の目的は、プログラムの実行結果として出力された画像の検証を効率的に行うことである。
【課題を解決するための手段】
【０００５】
本発明の一つの実施態様に従う、コンピュータプログラムの実行結果を検証するためのテスト装置は、互いに異なる条件で前記コンピュータプログラムを実行することによって生成された第１及び第２の画像の画像データを記憶する手段と、マスク領域を指定するマスクデータを記憶する手段と、前記マスク領域を除く領域について、前記第１の画像の画像データと前記第２の画像の画像データとを比較して、前記第１の画像と前記第２の画像の一致点と相違点とが異なる表示態様となる第３の画像を生成する手段と、を備える。
【０００６】
好適な実施形態では、前記第１の画像内の所定の領域を示す領域指定データを記憶する手段と、前記コンピュータプログラムを実行すると、前記領域指定データによって特定される領域に記述されるべきテキストを示すテキストデータを記憶する手段と、前記第１の画像内の、前記領域指定データによって特定される領域の画像の画像データを解析して、前記領域に記述されているテキストを認識する手段と、前記テキストデータが示すテキストと、前記テキスト認識結果に係るテキストとが一致するか否かを判定する手段と、前記判定手段による判定結果を出力する手段と、をさらに備えてもよい。
【０００７】
好適な実施形態では、前記画像は、前記コンピュータプログラムを実行することによって生成された帳票画像であり、前記領域指定データは、前記帳票上の所定の項目の値の表示領域を示しており、前記テキストデータは、前記コンピュータプログラムを実行することによって得られるべき前記所定の項目の値を示すテキストデータであってもよい。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の一実施形態に係るコンピュータプログラムの実行結果を検証するためのテスト装置（以下、単に「テスト装置」と称する）について、図面を参照して説明する。
【０００９】
図１は、本発明の第１の実施形態に係るテスト装置１００の構成図を示す。
【００１０】
本実施形態に係るテスト装置１００は、装置本体１１０に、キーボード及びポインティングデバイスなどの入力装置１５０と、液晶ディスプレイなどの表示装置１６０が接続されている。
【００１１】
装置本体１１０は、例えば汎用的なコンピュータシステムにより構成され、以下に説明する装置本体１１０内の個々の構成要素または機能は、例えば、コンピュータプログラムを実行することにより実現される。
【００１２】
装置本体１１０は、画像データ記憶部１１２と、マスクデータ記憶部１１４と、画像比較処理部１１６と、ログファイル記憶部１１８と、差分画像データ記憶部１２０と、表示処理部１２２とを有する。
【００１３】
画像データ記憶部１１２は、テスト対象となるプログラムを実行することによって生成された画像の画像データを記憶する。例えば、画像データ記憶部１１２は、互いに異なる条件でテスト対象プログラムを実行することによって生成された複数のテキストファイルあるいはＨＴＭＬファイルなどの表示画面の画像データを、それぞれ別ファイルで記憶する。各画像データのファイルは、例えば、テスト対象プログラムが生成したユーザインタフェース画面あるいは帳票のビットマップファイルなどでもよい。
【００１４】
マスクデータ記憶部１１４は、画像をマスクするためのマスクデータを記憶する。マスクデータは、画像比較処理部１１６が画像同士を比較する際に、比較を行わないマスク領域を指定する。これは、例えば、比較対象の画像の中で、予め相違することがわかっている領域を比較対象外とするためである。マスクデータは、例えば、左上の頂点の座標及び右下の頂点の座標を有する。このマスクデータにより、矩形のマスク領域が特定される。マスクデータ記憶部１１４には複数種類のマスクデータが、それぞれ別ファイルで記憶されている。
【００１５】
画像比較処理部１１６は、画像データ記憶部１１２に記憶されている画像データに基づいて、２つの画像を比較して、比較対象の画像間の相違点及び一致点を抽出する。例えば、画像比較処理部１１６は、２つの画像ファイルを読み込み、画素単位に、全画素についてそれぞれの対応する位置の画素値を比較する。そして、画像比較処理部１１６は、各画素値が一致するか、または相違するかを判定する。画像比較処理部１１６は、マスクデータ記憶部１１４に記憶されているマスクデータに基づいて、指定されたマスク領域の画素を除外して画像比較を行ってもよい。画像比較処理部１１６は、比較の結果を示す差分画像を生成して、差分画像データ記憶部１２０に格納する。例えば、差分画像は、上記比較の結果、画素値が一致した画素と不一致の画素で異なる表示態様とする。例えば、画素値が一致した画素は一致した画素値またはグレー、不一致の画素は比較対象のいずれの画像とも異なる値（例えば、エラーを示す特定の色）で表現する。不一致の画素のドットサイズは、一致した画素のドットサイズより大きくしてもよい。画像比較処理部１１６は、行った処理に関する情報及び処理結果に基づいてログファイルを生成する。
【００１６】
ログファイル記憶部１１８に保存されるログファイルは、例えば、処理日時、処理結果（正常／異常）、比較された２つの画像のファイル名、使用したマスクファイル名、生成した差分画像のファイル名などを含んでもよい。
【００１７】
差分画像データ記憶部１２０は、画像比較処理部１１６で生成された差分画像の画像データを記憶する。
【００１８】
表示処理部１２２は、差分画像データ記憶部１２０に記憶されている差分画像の画像データに基づいて、表示装置１６０に差分画像を表示する。
【００１９】
第１の実施形態に係るテスト装置の処理手順を、図２及び図３に示すフローチャートを用いて説明する。
【００２０】
まず、画像比較処理部１１６が処理対象となる二つの画像のデータ、つまり第１及び第２画像ファイルを画像データ記憶部１１２から読み込む（Ｓ１１０）。
【００２１】
つぎに、画像比較処理部１１６は、これらの画像の比較に用いるマスクデータのファイルをマスクデータ記憶部１１４から読み込む（Ｓ１１２）。
【００２２】
そして、画像比較処理部１１６は、比較する画素位置を示すポインタ座標（ｘ、ｙ）を初期化する（Ｓ１１４）。
【００２３】
画像比較処理部１１６は、ポインタ座標（ｘ、ｙ）がマスク領域の境界上であるか否かを判定する（Ｓ１１６）。そして、ポインタ座標（ｘ、ｙ）がマスク領域の境界上であるときは（Ｓ１１６：Ｙｅｓ）、画像比較処理部１１６は、差分画像データの座標（ｘ、ｙ）にマスク領域の境界であることを示す所定の境界色を設定する（Ｓ１１８）。
【００２４】
ポインタ座標（ｘ、ｙ）がマスク領域の境界上でないときは（Ｓ１１６：Ｎｏ）、画像比較処理部１１６は、ポインタ座標（ｘ、ｙ）がマスク領域内であるか否かを判定する（Ｓ１２０）。そして、ポインタ座標（ｘ、ｙ）がマスク領域内であるときは（Ｓ１２０：Ｙｅｓ）、画像比較処理部１１６は、差分画像データの座標（ｘ、ｙ）に第１画像ファイルの画素値を設定する（Ｓ１２２）。そして、その後ステップＳ１３０へスキップする。
【００２５】
ポインタ座標（ｘ、ｙ）がマスク領域内でないときは（Ｓ１２０：Ｎｏ）、第１画像及び第２画像のポインタ座標（ｘ、ｙ）の画素値が同一であるか否かを判定する（Ｓ１２４）。そして、第１画像及び第２画像のポインタ座標（ｘ、ｙ）の画素値が同一でないときは（Ｓ１２４：Ｎｏ）、画像比較処理部１１６は、差分画像データの座標（ｘ、ｙ）に所定のエラー色を設定する（Ｓ１２６）。そして、その後ステップＳ１３０へスキップする。
【００２６】
第１画像及び第２画像のポインタ座標（ｘ、ｙ）の画素値が同一であるときは（Ｓ１２４：Ｙｅｓ）、画像比較処理部１１６は、差分画像データの座標（ｘ、ｙ）に第１画像ファイルの画素値を設定する（Ｓ１２８）。
【００２７】
画像比較処理部１１６は、例えばラスタスキャンになるように、ポインタ座標（ｘ、ｙ）をインクリメントして（Ｓ１３０）、全画素について上記処理を終了したか否かを判定する（Ｓ１３２）。画像比較処理部１１６は、全画素について処理が完了するまで、ステップＳ１１６以降の処理を繰り返す。
【００２８】
最後に画像比較処理部１１６は、生成された差分画像データを、差分画像データ記憶部１２０に保存する（Ｓ１３４）。
【００２９】
表示処理部１２２がこの差分画像を表示することにより、第１画像と第２画像の相違点を容易に把握することができる。
【００３０】
従って、本実施形態に係るテスト装置１００を用いて、テスト対象となるプログラムの変更前及び変更後にそれぞれ生成した画像を比較した場合、両画像の差異がその変更に起因する部分だけであるときに、プログラム変更後の画像が正常（つまり、プログラムが正しく変更された）であると判定することができる。
【００３１】
次に、図４は、本発明の第２の実施形態に係るテスト装置３００の構成図を示す。
【００３２】
本実施形態に係るテスト装置３００は、装置本体３１０に、キーボード及びポインティングデバイスなどの入力装置３５０と、液晶ディスプレイなどの表示装置３６０が接続されている。
【００３３】
装置本体３１０は、例えば汎用的なコンピュータシステムにより構成され、以下に説明する装置本体３１０内の個々の構成要素または機能は、例えば、コンピュータプログラムを実行することにより実現される。
【００３４】
装置本体３１０は、画像データ記憶部３１２と、項目定義ファイル記憶部３１４と、検証用ファイル記憶部３１６と、項目判定部３１８と、明細ログファイル記憶部３２０と、エラー判定部３２２と、全体ログファイル記憶部３２４と、エラー画像生成部３２６と、エラー画像データ記憶部３２８とを有する。
【００３５】
画像データ記憶部３１２は、テスト対象となるプログラムを実行することによって生成された画像の画像データを記憶する。例えば、画像データ記憶部３１２は、種々の異なる条件でテスト対象プログラムを実行することによって生成された複数の画像の画像データを、それぞれ別ファイルで記憶する。各画像データのファイルは、例えば、テスト対象プログラムが生成した帳票のビットマップファイルなどでもよい。
【００３６】
項目定義ファイル記憶部３１４は、帳票画像に含まれる項目名及び位置を定義する定義ファイルを記憶する。例えば、この定義ファイルは、項目判定部３１８が判定を行う対象となる項目を示す。
【００３７】
図５Ａは項目定義ファイル３１５の一例であり、図５Ｂは項目定義ファイル３１５に対応する帳票画像の一例である。
【００３８】
同図に示すように、項目定義ファイル３１５は、例えばスクリプトで記述されている。そして、項目定義ファイル３１５は、対象の項目の画像内における領域を座標で指定する。同図の例では、「住所」及び「氏名」の項目が指定されている。
【００３９】
検証用ファイル記憶部３１６は、画像において、項目定義ファイル３１５で指定された項目の値として記述されるべき数字、文字あるいは記号などを示すテキストファイルを記憶する。すなわち、検証用ファイル記憶部３１６は、テスト対象となるプログラムを実行した結果として期待される値が記憶されている。
【００４０】
図６は、検証用ファイル３１７の一例を示す。同図に示すように、検証用ファイル３１７は、例えばスクリプトで記述されている。そして、検証用ファイル３１７は、テストケースごとに、それぞれのテストケースで比較される項目の期待される値が記述されている。同図の例では、テストケース１，２について、それぞれ「住所」及び「氏名」として期待される値が記述されている。
【００４１】
項目判定部３１８は、画像データ記憶部３１２に記憶された画像データに基づく各画像ファイルについて、それぞれ以下の処理を行う。すなわち、項目判定部３１８は、処理対象の画像の項目定義ファイル３１５で指定された項目が、検証用ファイル３１７で指定された値となっているか否かを判定する。例えば、項目判定部３１８は、対象画像の項目定義ファイル３１５で指定された領域を既存のＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）技術を用いて文字認識を行い、その領域に記述されているテキストを抽出する。さらに、項目判定部３１８は、その文字認識の結果得られたテキストが検証用ファイル３１７で記述されているテキストと一致するか否かを判定する。なお、項目定義ファイル３１５で、一つの画面において複数の項目が指定されていれば、項目判定部３１８は、その全項目について上記判定を行う。
【００４２】
項目判定部３１８は、文字認識の結果得られたテキストが検証用ファイル３１７で記述されているテキストと一致するか否かの判定結果に基づいて明細ログファイル３２１を生成し、明細ログファイル記憶部３２０へ格納する。
【００４３】
明細ログファイル３２１のデータ項目の一例を図７に示す。すなわち、同図に示すように、明細ログファイル３２１は、項目名３２１１と、検証用ファイルの値３２１２と、画像から文字認識された実際の値３２１３とを有する。項目定義ファイル３１５で複数の項目が指定されていれば、項目名３２１１、検証用ファイルの値３２１２、及び実際の値３２１３を一つのレコードとして、各項目にレコードが生成される。なお、明細ログファイル３２１のファイル名は、対象画像の特定ができるように、対象画像のファイル名に応じて定まる。
【００４４】
また、項目判定部３１８は、文字認識の結果得られたテキストが検証用ファイル３１７で記述されているテキストと一致しない項目の領域の画像について、画像データ記憶部３１２に記憶されている画像データを変更する。例えば、項目判定部３１８は、検証用ファイル３１７のテキストと一致しない項目について、その項目の領域内（つまり、項目定義ファイル３１５で示すその項目の範囲）の画像データの値を、元の画像とは異なる表示態様になるよう変更する（例えば表示色を変える）。
【００４５】
エラー判定部３２２は、項目判定部３１８の判定結果に基づいて、各画像のエラーの有無を判定する。例えば、エラー判定部３２２は、処理対象の画像全体において、項目判定部３１８が行った判定で、対象画像のテキストと検証用ファイル３１７で記述されているテキストとが一致しない項目があったか否かを判定する。その判定で不一致の項目があれば、その対象画像はエラーと判定する。エラー判定部３２２は、その判定結果に基づいて全体ログファイル３２５を生成し、全体ログファイル記憶部３２４へ格納する。
【００４６】
全体ログファイル３２５のデータ項目の一例を図７に示す。すなわち、同図に示すように、全体ログファイル３２５は、実行日３２５１と、上記エラー判定における不一致項目の有無を示す一致／不一致区分３２５２と、入力画像ファイル名３２５３と、項目定義ファイル名３２５４と、検証ファイル名３２５５とを有する。
【００４７】
エラー画像生成部３２６は、エラー判定部３２２が行ったエラー判定の結果、不一致項目が存在すると判定された画像について、エラー画像を生成する。例えば、エラー画像生成部３３０は、不一致項目が存在すると判定された画像の画像データを画像データ記憶部３１２から取得して、エラー画像を生成する。エラー画像は、例えば、不一致項目内のテキストを通常とは異なる表示態様となるように変更した画像でよい。例えば、その不一致項目内のテキストを所定の色に変換し、及び／または、不一致項目以外の領域をグレースケールに変換してもよい。
【００４８】
エラー画像データ記憶部３２８は、エラー画像生成部３２６で生成されたエラー画像を記憶する。
【００４９】
次に、第２の実施形態に係るテスト装置の処理手順を、図９及び図１０に示すフローチャートに従って説明する。
【００５０】
まず、項目判定部３１８が画像データ記憶部３１２から、処理対象画像の画像ファイルを読み込む（Ｓ２１０）。つぎに、項目判定部３１８が、項目定義ファイル３１５に従って、画像上の項目領域を特定し、その領域に記述されている画像を認識して、テキストに変換する（Ｓ２１２）。
【００５１】
項目判定部３１８は、ステップＳ２１２で変換したテキストと、検証用ファイル３１７に記述されているテキストとを比較する（Ｓ２１４）。
【００５２】
ここで、テキストが一致する場合は（Ｓ２１４：Ｙｅｓ）、ステップＳ２１８をスキップする。テキストが一致しない場合は（Ｓ２１４：Ｎｏ）、項目判定部３１８は、画像データ記憶部３１２に記憶されている画像データのテキストが一致しなかった対象項目領域を所定のエラー色に変換する（Ｓ２１８）。
【００５３】
項目判定部３１８は、テキスト比較の結果を示す明細ログファイルを生成する（Ｓ２２０）。
【００５４】
項目定義ファイル３１５で複数の項目が指定されているときは、すべての項目についてステップＳ２１２以降の処理を繰り返す（Ｓ２２２）。
【００５５】
対象画像について、項目定義ファイル３１５で指定された全項目について上記の処理が完了すると（Ｓ２２２：Ｎｏ）、エラー判定部３２２は、３１８の処理において、不一致項目があったか否かを判定する（Ｓ２２４）。不一致項目がないときは（Ｓ２２４：Ｎｏ）、ステップＳ２２６をスキップする。
【００５６】
項目判定部３１８の処理において、不一致項目があるときは（Ｓ２２４：Ｙｅｓ）、エラー画像生成部３２６がその不一致項目がその他の領域よりも目立つように表示されるエラー画像を生成する（Ｓ２２６）。さらに、エラー判定部３２２は、全体ログファイルを生成する（Ｓ２２８）。
【００５７】
ここで、処理対象となる全画像について上記処理が終了していなければ、ステップＳ２１０以降の処理へ戻る（Ｓ２３０：Ｎｏ）。処理対象となる全画像について上記処理が終了していれば終了する（Ｓ２３０：Ｙｅｓ）。
【００５８】
これにより、実行結果が画像として出力されるプログラムのテストを自動的に行うことができる。
【００５９】
次に、第３の実施形態について説明する。第３の実施形態に係るテスト装置は、第１の実施形態に係るテスト装置１００及び第２の実施形態に係るテスト装置３００の機能を有する。すなわち、テスト装置１００で行った画像同士の比較を行った結果、さらに詳細な検討が必要とされる画像に対して、テスト装置３００がテストを行うようにしてもよい。
【００６０】
図１１は、第３の実施形態に係るテスト装置での処理手順を示す。同図に示すように、まず、一方の画像をテスト対象画像、他方の画像を検証用画像として、テスト装置１００による画像同士の比較によるテストを実行する（Ｓ３１０）。そして、そのテスト結果の画像に基づいて、テスト対象画像の正常性を判定する（Ｓ３１２）。ここで、テスト対象画像が正常でないとき、あるいはその正常性が疑われるときは（Ｓ３１２：Ｎｏ）、テスト対象画像に対して、テスト装置３００によるテストを実行する（Ｓ３１４）。
【００６１】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【図面の簡単な説明】
【００６２】
【図１】本発明の第１の実施形態に係るテスト装置の構成図を示す。
【図２】第１の実施形態に係るテスト装置の処理手順を示すフローチャートである。
【図３】第１の実施形態に係るテスト装置の処理手順を示すフローチャートである。
【図４】本発明の第２の実施形態に係るテスト装置の構成図を示す。
【図５】図５Ａは項目定義ファイルの一例であり、図５Ｂは項目定義ファイルに対応する帳票画像の一例である。
【図６】検証用ファイルの一例を示す。
【図７】明細ログファイルのデータ項目の一例を示す。
【図８】全体ログファイルのデータ項目の一例を示す。
【図９】第２の実施形態に係るテスト装置の処理手順を示すフローチャートである。
【図１０】第２の実施形態に係るテスト装置の処理手順を示すフローチャートである。
【図１１】第３の実施形態に係るテスト装置の処理手順を示すフローチャートである。
【符号の説明】
【００６３】
１００，３００…テスト装置、１１０，３１０…装置本体、１１２，３１２…   画像データ記憶部、１１４…マスクデータ記憶部、１１６…画像比較処理部、１２０…差分画像データ記憶部、３１４…項目定義ファイル記憶部、３１６…検証用ファイル記憶部、３１８…項目判定部、３２２…エラー判定部。
【図１】
2009134406.tif 000003
【図２】
2009134406.tif 000004
【図３】
2009134406.tif 000005
【図４】
2009134406.tif 000006
【図５】
2009134406.tif 000007
【図６】
2009134406.tif 000008
【図７】
2009134406.tif 000009
【図８】
2009134406.tif 000010
【図９】
2009134406.tif 000011
【図１０】
2009134406.tif 000012
【図１１】
2009134406.tif 000013