(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023150420
(43)【公開日】2023-10-16
(54)【発明の名称】テスト制御方法、テスト制御プログラムおよびテスト制御装置
(51)【国際特許分類】
G06F 11/36 20060101AFI20231005BHJP
【FI】
G06F11/36 188
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022059523
(22)【出願日】2022-03-31
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】中村 勲
(72)【発明者】
【氏名】森戸 英治
(72)【発明者】
【氏名】藤田 誠一郎
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042GB02
5B042HH49
(57)【要約】
【課題】変更後の実行環境でソフトウェアテストを実行する。
【解決手段】記憶部11は、テスト命令13と基準画像14とを関連付けて記憶する。処理部12は、テスト対象のソフトウェアを実行することで生成される表示画像の中に、テスト命令13と関連付けられた基準画像14が含まれるか判定する。処理部12は、表示画像21の中に基準画像14が含まれると判定した場合、表示画像21の中の基準画像14が検出された位置23に基づいてテスト命令13を実行する。処理部12は、表示画像22の中に基準画像14が含まれないと判定した場合、表示画像22の中の位置24の指定を受け付け、位置24に基づいてテスト命令13を実行する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
テスト対象のソフトウェアを実行することで生成される表示画像の中に、テスト命令と関連付けられた基準画像が含まれるか判定し、
前記表示画像の中に前記基準画像が含まれると判定した場合、前記表示画像の中の前記基準画像が検出された第1の位置に基づいて前記テスト命令を実行し、
前記表示画像の中に前記基準画像が含まれないと判定した場合、前記表示画像の中の第2の位置の指定を受け付け、前記第2の位置に基づいて前記テスト命令を実行する、
処理をコンピュータが実行するテスト制御方法。
【請求項2】
前記表示画像の中に前記基準画像が含まれないと判定した場合、前記表示画像の中から前記第2の位置に応じた部分画像を抽出し、前記部分画像を新たな基準画像として前記テスト命令と関連付けて保存する処理を前記コンピュータが更に実行する、
請求項1記載のテスト制御方法。
【請求項3】
前記表示画像の中の領域を示す枠画像を表示し、
前記第2の位置の指定の受け付けは、前記枠画像を用いて前記第2の位置を指定する操作を受け付ける処理を含む、
請求項1記載のテスト制御方法。
【請求項4】
前記枠画像の表示は、前記基準画像が検出された第3の位置を示す位置情報を取得し、前記第3の位置に応じて前記枠画像を表示させる処理を含む、
請求項3記載のテスト制御方法。
【請求項5】
前記テスト命令は、前記第1の位置または前記第2の位置に基づいて前記表示画像の中から特定される入力部品に対して入力操作を実行する処理を示す、
請求項1記載のテスト制御方法。
【請求項6】
テスト対象のソフトウェアを実行することで生成される表示画像の中に、テスト命令と関連付けられた基準画像が含まれるか判定し、
前記表示画像の中に前記基準画像が含まれると判定した場合、前記表示画像の中の前記基準画像が検出された第1の位置に基づいて前記テスト命令を実行し、
前記表示画像の中に前記基準画像が含まれないと判定した場合、前記表示画像の中の第2の位置の指定を受け付け、前記第2の位置に基づいて前記テスト命令を実行する、
処理をコンピュータに実行させるテスト制御プログラム。
【請求項7】
テスト命令と基準画像とを関連付けて記憶する記憶部と、
テスト対象のソフトウェアを実行することで生成される表示画像の中に前記基準画像が含まれるか判定し、前記表示画像の中に前記基準画像が含まれると判定した場合、前記表示画像の中の前記基準画像が検出された第1の位置に基づいて前記テスト命令を実行し、前記表示画像の中に前記基準画像が含まれないと判定した場合、前記表示画像の中の第2の位置の指定を受け付け、前記第2の位置に基づいて前記テスト命令を実行する処理部と、
を有するテスト制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はテスト制御方法、テスト制御プログラムおよびテスト制御装置に関する。
【背景技術】
【0002】
コンピュータソフトウェアの中には、表示画像を用いてユーザとの間で情報の受け渡しを行うGUI(Graphical User Interface)をもつソフトウェアがある。GUIをもつソフトウェアが正常に動作するかテストする際、ボタン押下や文字入力などの入力操作の全てをテスト実施者が手作業で行うことは非効率である。そこで、コンピュータは、擬似的に入力操作を発生させるテスト命令を保存しておき、ソフトウェアに対してテスト命令を実行することで、入力操作の少なくとも一部を自動化することがある。
【0003】
なお、2つのソフトウェアにより生成される2つの表示画像の間で差異が存在する領域を判定する情報処理装置が提案されている。この情報処理装置は、第1のソフトウェアに対して行った入力操作を第2のソフトウェアに対して再現し、第1のソフトウェアのスクリーンショット画像と第2のソフトウェアのスクリーンショット画像とを比較する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
コンピュータは、表示画像の中から特定の基準画像を検出し、基準画像が検出された位置に基づいてテスト命令を実行することが考えられる。例えば、コンピュータは、画像のパターンマッチングによって表示画像の中から特定のボタンを検出し、ボタンが検出された位置に対してクリック操作を発生させることが考えられる。
【0006】
一方、コンピュータは、表示画像を表示させるための実行環境を変更することがあり、ソフトウェアが新しい実行環境で正常に動作するかテストすることがある。例えば、コンピュータは、オペレーティングシステム(OS:Operating System)やWebブラウザなどの基盤ソフトウェアをバージョンアップすることがあり、ソフトウェアを新バージョンの基盤ソフトウェア上でテストすることがある。
【0007】
しかし、実行環境の変更によって、ボタンやラベルなどの表示部品のデザインが変化することがある。そのため、新しい実行環境では基準画像の検出に失敗して、保存されているテスト命令が正常に動作しないことがある。そこで、1つの側面では、本発明は、変更後の実行環境でソフトウェアテストを実行することを目的とする。
【課題を解決するための手段】
【0008】
1つの態様では、以下の処理をコンピュータが実行するテスト制御方法が提供される。テスト対象のソフトウェアを実行することで生成される表示画像の中に、テスト命令と関連付けられた基準画像が含まれるか判定する。表示画像の中に基準画像が含まれると判定した場合、表示画像の中の基準画像が検出された第1の位置に基づいてテスト命令を実行する。表示画像の中に基準画像が含まれないと判定した場合、表示画像の中の第2の位置の指定を受け付け、第2の位置に基づいてテスト命令を実行する。
【0009】
また、1つの態様では、コンピュータに実行させるテスト制御プログラムが提供される。また、1つの態様では、記憶部と処理部とを有するテスト制御装置が提供される。
【発明の効果】
【0010】
1つの側面では、変更後の実行環境でソフトウェアテストを実行できる。
【図面の簡単な説明】
【0011】
【
図1】第1の実施の形態のテスト制御装置を説明するための図である。
【
図2】第2の実施の形態の情報処理システムの例を示す図である。
【
図3】テスト制御装置のハードウェア例を示すブロック図である。
【
図5】環境変更によるGUIの変化例を示す図である。
【
図8】テスト制御装置の機能例を示すブロック図である。
【
図9】テスト実行の手順例を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
【0013】
図1は、第1の実施の形態のテスト制御装置を説明するための図である。
第1の実施の形態のテスト制御装置10は、GUIをもつソフトウェアをテストする。GUIは、表示画像を用いてユーザとの間で情報の受け渡しを行うユーザインタフェースである。GUIは、例えば、ボタンや文字入力フィールドなどの入力部品を表示し、ボタン押下や文字入力などの入力操作をユーザから受け付ける。ソフトウェアはWebアプリケーションでもよく、表示画像はWebブラウザに表示されてもよい。
【0014】
テスト対象のソフトウェアはテスト制御装置10で実行されてもよいし、他の情報処理装置で実行されてもよい。テスト制御装置10は、表示デバイスを有するクライアント装置でもよいし、クライアント装置と接続されるサーバ装置でもよい。また、テスト制御装置10は、仮想マシンを実行するサーバ装置でもよい。テスト制御装置10が、コンピュータまたは情報処理装置と呼ばれてもよい。
【0015】
テスト制御装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。処理部12は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12が、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの電子回路を含んでもよい。プロセッサは、例えば、RAMなどのメモリ(記憶部11でもよい)に記憶されたプログラムを実行する。プロセッサの集合が、マルチプロセッサまたは単に「プロセッサ」と呼ばれてもよい。
【0016】
記憶部11は、テスト命令13と基準画像14とを関連付けて記憶する。基準画像14は、表示画像の中に含まれ得る表示部品の画像であり、例えば、矩形の画像である。表示部品は、例えば、ラベル、ボタン、文字入力フィールド、チェックボックス、選択リストなどである。基準画像14は、表示画像の中から基準位置を特定するために用いられる。記憶部11は、例えば、テスト命令13と基準位置とを関連付けて記憶してもよい。
【0017】
テスト命令13は、特定された基準位置に応じた処理を示す命令である。テスト命令13は、特定された基準位置に基づいてソフトウェアに対して擬似的に入力操作を実行する命令であってもよい。例えば、基準画像14はボタンの画像であり、テスト命令13はボタンの表示領域の中心をクリックする入力操作を生成する命令である。また、例えば、基準画像14はラベルの画像であり、テスト命令13はラベルに隣接する文字入力フィールドに特定の文字列を入力する入力操作を生成する命令である。
【0018】
ここで、テスト命令13と関連付けられる基準画像14は、特定の実行環境でソフトウェアを実行した場合に表示され得る画像である。実行環境は、表示画像を表示させるためのソフトウェア実行基盤であり、例えば、OSやWebブラウザなどの基盤ソフトウェアを含む。実行環境は、バージョンアップやベンダ変更などによって変更されることがある。実行環境が変更されると、表示部品のデザインが変化することがある。例えば、OSまたはWebブラウザのバージョンアップによって、ボタンのデザインが変化し得る。
【0019】
テスト制御装置10は、変更後の実行環境でソフトウェアをテストする。例えば、テスト制御装置10は、変更前の実行環境で正常に動作していたソフトウェアが、変更後の実行環境でも正常に動作することを確認するテストを行う。このとき、基準画像14が未更新であることがあり、変更前の実行環境では基準画像14が表示され得るものの、変更後の実行環境では基準画像14が表示されないことがある。
【0020】
処理部12は、テスト対象のソフトウェアを実行することで生成される表示画像の中に、テスト命令13と関連付けられた基準画像14が含まれるか判定する。処理部12は、例えば、表示画像と基準画像14との間のパターンマッチングによって、表示画像の中に基準画像14が含まれるか判定する。表示画像の中に基準画像14と完全一致する部分画像がないものの、基準画像14との類似度が閾値を超える部分画像がある場合、処理部12は、表示画像の中に基準画像14が含まれると判定してもよい。
【0021】
表示画像の中に基準画像14が含まれると判定した場合、処理部12は、表示画像の中の基準画像14が検出された位置に基づいて、テスト命令13を実行する。例えば、処理部12は、表示画像21の中に基準画像14が含まれると判定する。この場合、処理部12は、基準画像14が検出された位置23に基づいてテスト命令13を実行する。位置23は矩形領域を示してもよく、座標によって特定されてもよい。
【0022】
一方、表示画像の中に基準画像14が含まれないと判定した場合、処理部12は、表示画像の中の位置の指定を受け付け、指定された位置に基づいてテスト命令13を実行する。表示画像の中から基準画像14が検出されないことは、実行環境の変更によって表示部品のデザインが変化したことが原因である可能性がある。例えば、処理部12は、表示画像22の中に基準画像14が含まれないと判定する。この場合、処理部12は、表示画像22の中の位置24の指定を受け付け、位置24に基づいてテスト命令13を実行する。位置24は矩形領域を示してもよく、座標によって特定されてもよい。
【0023】
位置24は、テスト実施者の操作によって指定されてもよい。処理部12は、表示画像22と重ねて枠画像を表示してもよく、この枠画像の移動をテスト実施者に許可することで位置24をテスト実施者に指定させてもよい。また、処理部12は、指定された位置24に応じた部分画像を表示画像22の中から抽出し、抽出された部分画像を新たな基準画像としてテスト命令13と関連付けて保存してもよい。新たな基準画像には、変更後の実行環境における表示部品のデザインが反映されている。
【0024】
また、処理部12は、過去のテストで基準画像14が検出された位置を示す位置情報を取得してもよく、この位置情報が示す位置に上記の枠画像を表示させてもよい。テスト制御装置10が位置情報を生成して履歴として保存しておいてもよいし、他の情報処理装置が位置情報を生成してテスト制御装置10に提供してもよい。
【0025】
以上説明したように、第1の実施の形態のテスト制御装置10は、テスト対象のソフトウェアを実行することで生成される表示画像の中に、基準画像14が含まれるか判定する。表示画像21の中に基準画像14が含まれると判定した場合、テスト制御装置10は、基準画像14が検出された位置23に基づいてテスト命令13を実行する。表示画像22の中に基準画像14が含まれないと判定した場合、テスト制御装置10は、位置24の指定を受け付け、位置24に基づいてテスト命令13を実行する。
【0026】
これにより、実行環境の変更によって表示部品のデザインが変化し、基準画像14の検出に失敗した場合であっても、テスト制御装置10は、保存されているテスト命令13を用いてソフトウェアテストを円滑に実行することができる。例えば、基盤ソフトウェアのバージョンアップなど実行環境の変更が生じる毎にテスト命令を全て作り直す手間が削減され、テスト実施者の負担が軽減される。
【0027】
なお、テスト制御装置10は、指定された位置24に応じた部分画像を表示画像22から抽出し、その部分画像を新たな基準画像として保存してもよい。これにより、テスト制御装置10は、変更後の実行環境のためのテスト情報を効率的に生成することができる。
【0028】
また、テスト制御装置10は、位置24の指定を受け付ける際、基準画像14が検出された位置を示す位置情報を取得し、位置情報が示す位置に応じて枠画像を表示してもよい。これにより、表示画像22の中から基準画像14に相当する表示部品を指定するテスト実施者の負担が軽減される。また、テスト命令13は、特定された基準位置に応じた表示部品に対して入力操作を実行するものであってもよい。これにより、GUIテストの少なくとも一部が自動化されてテスト実施者の手作業が削減され、テストが効率化される。
【0029】
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理システムの例を示す図である。
【0030】
第2の実施の形態の情報処理システムは、GUIをもつアプリケーションソフトウェアをテストする。アプリケーションソフトウェアは、ユーザから入力操作を受け付けるアプリケーション画面がWebブラウザに表示されるWebアプリケーションである。情報処理システムは、バージョンアップ前の旧実行環境で正常に動作していたアプリケーションソフトウェアが、バージョンアップ後の新実行環境で正常に動作するかテストする。実行環境のバージョンアップは、OSおよびWebブラウザのバージョンアップを含む。
【0031】
情報処理システムは、ネットワーク30に接続されたテスト制御装置31,32およびテストセット管理サーバ33を含む。ネットワーク30は、LAN(Local Area Network)を含んでもよくインターネットを含んでもよい。
【0032】
テスト制御装置31,32は、アプリケーションプログラムをテストするクライアントコンピュータである。テスト制御装置31,32は、実行環境としてOSおよびWebブラウザを実行する。また、テスト制御装置31,32は、入力操作の少なくとも一部を自動化してテストを支援するテストソフトウェアを実行する。
【0033】
テストソフトウェアは、事前に規定されたテスト命令に基づいて、Webブラウザに表示されたアプリケーション画面に対する入力操作を生成する。Webブラウザは、入力操作に応じてアプリケーションプログラムを呼び出し、アプリケーションプログラムからHTML(Hypertext Markup Language)テキストなどの表示データを受信する。Webブラウザは、受信した表示データを可視化してアプリケーション画面を表示する。アプリケーションプログラムは、テスト制御装置31,32で実行されてもよいし、テスト制御装置31,32から要求メッセージを受信する図示しないサーバ装置で実行されてもよい。
【0034】
テストセット管理サーバ33は、テストセットを記憶して管理するサーバコンピュータである。テストセットは、テスト命令の列を含む。各テスト命令は、アプリケーション画面に含まれ得る特定の表示部品を監視する処理や、特定の表示部品に対してボタン押下や文字入力などの入力操作を実行する処理などを示す。
【0035】
テストセットに含まれる複数のテスト命令は、先頭から順に実行される。全てのテスト命令がエラーなしに実行された場合、テスト成功とみなされる。一方、何れかのテスト命令でエラーが発生した場合、テスト失敗とみなされる。テストセットには、画像が付加されていることがある。この画像は、ボタンやラベルなどの表示部品の画像であり、アプリケーション画面の中から着目する表示部品を検索するための基準画像である。テストソフトウェアは、パターンマッチングによって、この画像が表示された領域を検出する。
【0036】
テストセット管理サーバ33は、テスト制御装置31,32からのチェックアウト要求に応じて、テストセット管理サーバ33に保存されているテストセットのコピーをテスト制御装置31,32に送信する。テスト制御装置31,32は、テストセット管理サーバ33から受信したテストセットを使用する。テスト制御装置31,32は、テストセットを編集することがある。テストセット管理サーバ33は、テスト制御装置31,32からのコミット要求に応じて、テスト制御装置31,32から受信する編集済みテストセットを、新しいバージョンのテストセットとして保存する。
【0037】
OSおよびWebブラウザは、バージョンアップされることがある。OSまたはWebブラウザのバージョンアップによって、Webブラウザに表示される表示部品の見た目(デザイン)が変化する可能性がある。テスト制御装置31は、バージョンアップ前のOSおよびWebブラウザを含む旧実行環境をもつ。テスト制御装置32は、バージョンアップ後のOSおよびWebブラウザを含む新実行環境をもつ。同一のアプリケーションソフトウェアおよび同一のテストセットを用いても、テスト制御装置31とテスト制御装置32との間でテスト結果が異なる可能性がある。なお、情報処理システムは、テスト制御装置31,32の実行環境をそれぞれ仮想マシンとして実装してもよい。これにより、同一コンピュータ上に旧実行環境と新実行環境とを併存させることができる。
【0038】
テストセット管理サーバ33からテスト制御装置32にコピーされるテストセットは、新実行環境に未対応のテストセットであることがある。新実行環境に未対応のテストセットを使用した場合、表示部品のデザイン変化が原因で、テストセットに付加された画像がアプリケーション画面から検出されず、テスト命令がエラーになる可能性がある。
【0039】
そこで、テストソフトウェアは、テストセットに含まれるテスト命令を上から順に実行していくテストの過程で、テスト実施者がテストセットを適切に修正することができるように支援するデバッグモードをもつ。デバッグモードのONとOFFを切り替えるフラグは、テストソフトウェアの設定情報の中に含まれる。テスト制御装置31のテストソフトウェアがデバッグモードONで起動された場合、テスト制御装置31は、後述する位置情報を出力する。位置情報は、テスト制御装置31からテスト制御装置32に渡される。
【0040】
例えば、テスト制御装置31が共有ストレージ装置に位置情報を保存し、テスト制御装置32が共有ストレージ装置から位置情報を読み出す。また、例えば、ネットワーク30を介して、テスト制御装置31がテスト制御装置32に位置情報を送信する。また、例えば、テスト制御装置31がフラッシュメモリなどの不揮発性可搬記録媒体に位置情報を書き込み、テスト制御装置32がこの不揮発性可搬記録媒体から位置情報を読み出す。
【0041】
テスト制御装置32のテストソフトウェアがデバッグモードONで起動された場合、テスト制御装置32は、位置情報を読み込む。テスト制御装置32は、アプリケーション画面からの画像検索に失敗した場合、位置情報を参照してテストセット編集画面を表示し、テストセットに付加された画像の差し替えをテスト実施者に促す。
【0042】
図3は、テスト制御装置のハードウェア例を示すブロック図である。
テスト制御装置32は、バスに接続されたCPU101、RAM102、HDD103、GPU104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。テスト制御装置31およびテストセット管理サーバ33が、テスト制御装置32と同様のハードウェアを有してもよい。CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
【0043】
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムおよびデータの少なくとも一部をRAM102にロードし、プログラムを実行する。テスト制御装置32は、複数のプロセッサを有してもよい。プロセッサの集合が、マルチプロセッサまたは単に「プロセッサ」と呼ばれてもよい。
【0044】
RAM102は、CPU101で実行されるプログラムおよびCPU101で演算に使用されるデータを一時的に記憶する揮発性半導体メモリである。テスト制御装置32は、RAM以外の種類の揮発性メモリを有してもよい。
【0045】
HDD103は、OS、ミドルウェア、アプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性ストレージである。テスト制御装置32は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の不揮発性ストレージを有してもよい。
【0046】
GPU104は、CPU101と連携して画像処理を行い、テスト制御装置32に接続された表示装置111に画像を出力する。表示装置111は、例えば、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイまたはプロジェクタである。なお、テスト制御装置32に、プリンタなどの他の種類の出力デバイスが接続されてもよい。
【0047】
入力インタフェース105は、テスト制御装置32に接続された入力デバイス112から入力信号を受け付ける。入力デバイス112は、例えば、マウス、タッチパネルまたはキーボードである。テスト制御装置32に複数の入力デバイスが接続されてもよい。
【0048】
媒体リーダ106は、記録媒体113に記録されたプログラムおよびデータを読み取る読み取り装置である。記録媒体113は、例えば、磁気ディスク、光ディスクまたは半導体メモリである。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)およびHDDが含まれる。光ディスクには、CD(Compact Disc)およびDVD(Digital Versatile Disc)が含まれる。媒体リーダ106は、記録媒体113から読み取られたプログラムおよびデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、CPU101によって実行されることがある。
【0049】
記録媒体113は、可搬型記録媒体であってもよい。記録媒体113は、プログラムおよびデータの配布に用いられることがある。また、記録媒体113およびHDD103が、コンピュータ読み取り可能な記録媒体と呼ばれてもよい。
【0050】
通信インタフェース107は、ネットワーク30を介してテスト制御装置31やテストセット管理サーバ33と通信する。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
【0051】
次に、テストセットについて説明する。
図4は、テストセットの例を示す図である。
テストセット131は、テストセット管理サーバ33に保存されており、テスト実行時にテスト制御装置31,32にコピーされる。よって、テストセット131は、テスト制御装置31,32にも記憶される。テストセット131は、順序付きの複数のテスト命令を含む。テスト命令の中には、事前に作成された画像を参照するものがある。
【0052】
例えば、第1命令は、アプリケーションソフトウェアを起動するテスト命令である。第2命令は、アプリケーション画面から画像132を検出し、画像132が検出された矩形領域の右端から50ポイント右をクリックするテスト命令である。画像132は、ラベルを示す矩形画像である。画像132が検出されない場合、第2命令がエラーになる。
【0053】
第3命令は、第2命令のクリックによってアクティブになった文字入力フィールドに、特定の文字列を入力するテスト命令である。第4命令は、アプリケーション画面から画像133を検出し、画像133が検出された矩形領域の中心をクリックするテスト命令である。画像133は、OKボタンを示す矩形画像である。画像133が検出されない場合、第4命令がエラーになる。第5命令は、一定時間以内にアプリケーション画面から画像134を検出するテスト命令である。画像134は、ポップアップメッセージを示す矩形画像である。一定時間以内に画像134が検出されない場合、第5命令がエラーになる。
【0054】
何れかのテスト命令でエラーが発生すると、原則として、正常な画面遷移が行われていないと判断されてテスト失敗とみなされる。ただし、実行環境の変更によってラベル、OKボタンまたはポップアップメッセージのデザインが変化する可能性がある。その場合、画像132,133,134と同等の表示部品がアプリケーション画面に含まれているにもかかわらず、画像検出が失敗することがある。その結果、アプリケーションソフトウェアが正常に動作しているにもかかわらず、テスト失敗とみなされることがある。
【0055】
図5は、環境変更によるGUIの変化例を示す図である。
アプリケーション画面141は、旧実行環境で表示されるWebブラウザの画面である。アプリケーション画面142は、新実行環境で表示されるWebブラウザの画面である。アプリケーション画面141,142はそれぞれ、1つの文字列と1つのOKボタンと1つのキャンセルボタンとを含む。
【0056】
アプリケーション画面141とアプリケーション画面142とでは、文字列の左端の位置が異なる。また、アプリケーション画面141とアプリケーション画面142とでは、OKボタンの大きさ、外枠の形状および色が異なる。また、アプリケーション画面141とアプリケーション画面142とでは、キャンセルボタンの大きさ、外枠の形状および色が異なる。アプリケーション画面141に含まれるOKボタンの画像を使用すると、アプリケーション画面142からOKボタンの領域を検出することは難しい。
【0057】
次に、テストセットの編集について説明する。
図6は、位置情報テーブルの例を示す図である。
位置情報テーブル135は、テスト制御装置31によって生成されてテスト制御装置32によって読み込まれる。よって、位置情報テーブル135は、テスト制御装置31,32に記憶される。位置情報テーブル135は、画像IDと領域位置とを対応付ける、
画像IDは、テストセットに付加された画像を識別する識別子である。例えば、前述の画像132,133,134の画像IDが位置情報テーブル135に登録される。領域位置は、画像が正常に検出された際の検出位置を示す。領域位置は、例えば、画像が存在する矩形領域の左上点の座標と右下点の座標とを含む。座標は、アプリケーション画面内の点を示す二次元座標であり、高さと幅のペアである。例えば、Webブラウザの左上の端が原点であり、原点から下方向が高さであり、原点から右方向が幅である。領域位置は、例えば、円形領域の中心座標と半径情報とを含むようにしてもよく、領域の形状は限定されない。
【0058】
例えば、テスト制御装置32が画像132を検出した領域位置は、左上点が(50,50)かつ右下点が(70,100)の矩形領域である。テスト制御装置32が画像133を検出した領域位置は、左上点が(100,50)かつ右下点が(120,120)の矩形領域である。テスト制御装置32が画像134を検出した領域位置は、左上点が(50,50)かつ右下点が(70,200)の矩形領域である。
【0059】
図7は、テストセット編集画面の例を示す図である。
テストセット編集画面143は、テスト制御装置32がテストソフトウェアをデバッグモードで実行した場合に表示装置111に表示される。テストセット編集画面143は、テスト命令が参照する画像がアプリケーション画面から検出されない場合に表示される。テストセット編集画面143は、テスト命令が参照する画像の差し替えを支援する。
【0060】
テストセット編集画面143は、指定された画像がアプリケーション画面から見つからない旨のメッセージを含む。また、テストセット編集画面143は、現在登録されている画像であって見つからなかった画像を含む。また、テストセット編集画面143は、現在のアプリケーション画面を示す表示画像を含む。また、テストセット編集画面143は、テスト命令が参照する画像の変更を指示するボタンを含む。
【0061】
ここで、テスト制御装置32は、位置情報テーブル135から、見つからなかった画像に対応する領域位置を検索する。テスト制御装置32は、アプリケーション画面を示す表示画像の上に、この領域位置を示す矩形の枠線を表示する。テストセット編集画面143は、テスト実施者が枠線の位置を変更することを許可する。テスト実施者は、枠線の位置を変更してもよいし変更しなくてもよい。テスト制御装置32は、画像の変更を指示するボタンが押下されると、枠線内の画像を抽出し、抽出した画像をテスト命令が参照する画像として保存する。変更前の画像は削除されてもよい。
【0062】
枠線の初期位置は、旧実行環境のアプリケーション画面に含まれる所望の表示部品の位置である。新実行環境のアプリケーション画面に含まれる所望の表示部品は、枠線の初期位置の近くに存在することが多い。テスト実施者は、枠線の位置を微調整することで、枠線が所望の表示部品を囲むように設定することができる。これにより、テストセットに付加された画像を新実行環境用に変更するというテスト実施者の負担が軽減される。
【0063】
なお、テスト制御装置32は、枠線の初期位置を位置情報テーブル135が示す領域位置そのものとする代わりに、新実行環境のアプリケーション画面に基づいて枠線の初期位置を自動調整してもよい。例えば、テスト制御装置32は、位置情報テーブル135が示す領域位置から一定範囲内に存在するボタンなどの表示部品を画像認識によって検出し、検出した表示部品を囲むような枠線を表示してもよい。
【0064】
次に、テスト制御装置32の機能および処理手順について説明する。
図8は、テスト制御装置の機能例を示すブロック図である。
テスト制御装置32は、テストセット記憶部121、画像記憶部122および位置情報記憶部123を有する。これらの記憶部は、例えば、RAM102またはHDD103を用いて実装される。また、テスト制御装置32は、テスト命令実行部124、領域検出部125、位置記録部126およびテストセット編集部127を有する。これらの処理部は、例えば、CPU101およびプログラムを用いて実装される。
【0065】
テスト制御装置31が、テスト制御装置32と同様のモジュールを有してもよい。なお、上記ではテスト制御装置31が旧実行環境をもち、テスト制御装置32が新実行環境をもつと説明したが、テストソフトウェアは、旧実行環境用の処理を行うモジュールと新実行環境用の処理を行うモジュールの両方を含んでいる。
【0066】
テストセット記憶部121は、テストセット管理サーバ33からコピーされたテストセットを記憶する。テストセットは、テスト命令の列を含む。テストセット記憶部121は、例えば、前述のテストセット131を記憶する。
【0067】
画像記憶部122は、テストセットに付随してテストセット管理サーバ33からコピーされた画像を記憶する。画像記憶部122は、例えば、前述の画像132,133,134を記憶する。画像記憶部122に記憶された画像は、テストセット編集部127によって上書き更新されることがある。その場合、テスト制御装置32は、更新された画像をテストセット管理サーバ33にコピーする。
【0068】
位置情報記憶部123は、正常に検出された画像の位置を示す位置情報を記憶する。位置情報記憶部123は、例えば、前述の位置情報テーブル135を記憶する。位置情報は、旧実行環境用のデバッグモード(デバッグモード1)がONである間に記録される。テスト制御装置32は、他のテスト制御装置に位置情報をコピーすることがあり、他のテスト制御装置から位置情報のコピーを受け取ることがある。
【0069】
テスト命令実行部124は、アプリケーションソフトウェアを起動する。テスト命令実行部124は、テストセット記憶部121に記憶されたテストセットに含まれるテスト命令を先頭から順に1つずつ実行する。テスト命令が画像を参照している場合、テスト命令実行部124は、画像が存在する領域の検出を領域検出部125に依頼する。
【0070】
領域検出に失敗した場合であって新実行環境用のデバッグモード(デバッグモード2)がONである場合、テスト命令実行部124は、テストセット編集部127に画像の更新を依頼する。領域検出に成功した場合であってデバッグモード1がONである場合、テスト命令実行部124は、位置記録部126に位置情報の記録を依頼する。
【0071】
テスト命令にエラーが発生した場合、テスト命令実行部124は、テストセットの実行を中止し、テスト失敗を示すメッセージを表示装置111に表示する。テストセットの末尾のテスト命令までエラーが発生しなかった場合、テスト命令実行部124は、テスト成功を示すメッセージを表示装置111に表示する。
【0072】
領域検出部125は、テスト命令実行部124から指定された画像を画像記憶部122から読み出し、現在のアプリケーション画面の中から当該画像を含む領域を検出する。領域検出部125は、領域検出に成功した場合は領域の位置座標をテスト命令実行部124に報告し、領域検出に失敗した場合はその旨をテスト命令実行部124に報告する。
【0073】
位置記録部126は、デバッグモード1がONである場合、領域検出部125によって検出された領域を示す位置情報を生成し、位置情報記憶部123に保存する。
テストセット編集部127は、デバッグモード2がONである場合、前述のテストセット編集画面143のようなテストセット編集画面を表示装置111に表示する。このとき、テストセット編集部127は、テスト命令実行部124から指定された画像に対応する位置情報を位置情報記憶部123から読み出し、位置情報が示す位置に枠線を表示して、所望の表示部品が存在する領域を指定するようテスト実施者に促す。テストセット編集部127は、枠線内の画像を抽出して画像記憶部122に保存する。
【0074】
図9は、テスト実行の手順例を示すフローチャートである。
(S10)テスト命令実行部124は、テストセットから次のテスト命令を検索する。
(S11)テスト命令実行部124は、次のテスト命令があるか判断する。次のテスト命令がある場合、ステップS12に処理が進む。次のテスト命令がない場合、テスト命令実行部124はテスト成功メッセージを出力し、テスト実行が終了する。
【0075】
(S12)テスト命令実行部124は、次のテスト命令が画像を参照しているか判断する。テスト命令が画像を参照している場合、ステップS13に処理が進む。テスト命令が画像を参照していない場合、ステップS19に処理が進む。
【0076】
(S13)領域検出部125は、テスト命令が参照する画像を読み出し、現在のアプリケーション画面の中から当該画像を検索する。
(S14)テスト命令実行部124は、アプリケーション画面の中から上記の画像を含む画像領域が検出されたか判断する。画像領域が検出された場合、ステップS15に処理が進む。画像領域が検出されなかった場合、ステップS16に処理が進む。
【0077】
(S15)位置記録部126は、検出された画像領域の位置を示す位置情報を記録する。そして、ステップS19に処理が進む。なお、ステップS15は、デバッグモード1がONである場合に実行され、デバッグモード1がOFFである場合はスキップされる。
【0078】
(S16)テストセット編集部127は、テスト命令が参照する画像に対応する位置情報を読み込む。テストセット編集部127は、アプリケーション画面を示す表示画像の上に位置情報に応じた枠線を重ねたテストセット編集画面を生成して表示する。
【0079】
(S17)テストセット編集部127は、テストセット編集画面上で、枠線の位置座標やサイズを変更する操作を受け付ける。ただし、枠線の初期位置が所望の表示部品の位置と既に合致している場合、ステップS17がスキップされ得る。
【0080】
(S18)テストセット編集部127は、アプリケーション画面を示す表示画像の中から枠線内の画像を抽出し、テスト命令が参照する新たな画像として保存する。なお、ステップS16~S18は、デバッグモード2がONである場合に実行され、デバッグモード2がOFFである場合はスキップされる。
【0081】
(S19)テスト命令実行部124は、テスト命令を実行する。ステップS16~S18を通じて所望の表示部品の領域が枠線で指定された場合、テスト命令実行部124は、指定された領域の位置座標に基づいてテスト命令を実行すればよい。ただし、テスト命令実行部124は、更新された画像を用いてアプリケーション画面から改めて画像領域を検出してもよい。領域検出に失敗したものの、ステップS16~S18が実行されなかった場合、テスト命令の実行が失敗したものとみなされる。
【0082】
(S20)テスト命令実行部124は、テスト命令の実行が成功したか判断する。テスト命令の実行が成功した場合、ステップS10に処理が戻る。テスト命令の実行が失敗した場合、ステップS21に処理が進む。
【0083】
(S21)テスト命令実行部124は、テスト失敗メッセージを出力する。
以上説明したように、第2の実施の形態の情報処理システムは、アプリケーション画面の中から特定の画像を検索し、特定の画像が存在する位置を基準にして、ボタン押下や文字入力などの入力操作を示すテスト命令を実行する。これにより、GUIテストの少なくとも一部が自動化されてGUIテストが効率化される。
【0084】
また、情報処理システムは、アプリケーション画面から特定の画像が検出されなかった場合、GUIテストをすぐに終了せず、所望の表示部品が存在する領域をテスト実施者に指定させてGUIテストを継続する。これにより、情報処理システムは、実行環境の変更によって表示部品のデザインが変化しても、保存されたテストセットを活用してGUIテストを実行でき、実行環境の変更に柔軟に対応することができる。
【0085】
また、情報処理システムは、指定された領域の画像を抽出して、テストセットに付随する画像を更新する。これにより、情報処理システムは、新実行環境のためのテストセットを効率的に生成することができる。また、情報処理システムは、旧実行環境において特定の画像が検出された位置を示す位置情報を記録し、記録された位置情報が示す位置に枠線を表示する。これにより、所望の表示部品が存在する領域をテスト実施者が指定する負担が軽減される。特に、実行環境の変更前後で所望の表示部品の位置座標やサイズに変化がない場合、所望の表示部品を枠線で囲む操作が削減される。
【符号の説明】
【0086】
10 テスト制御装置
11 記憶部
12 処理部
13 テスト命令
14 基準画像
21,22 表示画像
23,24 位置