(57)【要約】      （修正有）【課題】汎用性の高いテスト手順の作成と、作成したテスト手順による画面テストとを実現できるプログラムを提供する。【解決手段】画面テストシステムにおいて、ユーザは入力補助ツールを利用し、テスト対象の画面をキャプチャし、その画面に表示されているオブジェクト（画面項目）を特定し、テスト対象アプリの画面テストに必要なテストシナリオの作成を行う（Ｓ１１）。ユーザは画面テストツールに対して画面テスト実行の指示を行い、画面テストツールは作成したテストシナリオに従い、テスト対象アプリの画面への操作を行い、画面テストを行う（Ｓ１２）。画面テストツールはテスト対象アプリへの画面テストの結果（テスト結果画像やテスト結果レポートなど）を出力する（Ｓ１３）。【選択図】図４
2019106107.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
テスト対象の第１の画面に表示されているオブジェクトを指定したテスト手順作成指示のための操作をユーザから受け付ける受付ステップ、
前記第１の画面に表示されているオブジェクトに第２の識別情報が設定されていない場合に、前記第１の画面に表示されているオブジェクトの位置情報を取得し、前記位置情報により決めた順位に従って前記オブジェクトに採番を行い、採番した第１の識別情報を前記オブジェクトに設定する設定ステップ、
前記第１の識別情報又は前記第２の識別情報が前記オブジェクトの特定情報として指定されている１つ以上の前記オブジェクトに対するテスト手順を前記オブジェクトに対する操作内容から作成する作成ステップ、
前記テスト手順で指定された前記特定情報によりテスト対象の第２の画面に表示されているオブジェクトを特定できれば、前記第２の識別情報が前記オブジェクトの特定情報として指定されている前記テスト手順に従って前記テスト対象の第２の画面の画面テストを行い、前記特定情報により前記オブジェクトを特定できなければ、前記設定ステップと同様に前記テスト対象の第２の画面に表示されているオブジェクトに採番を行い、採番した第１の識別情報を前記オブジェクトに設定し、前記第１の識別情報が前記オブジェクトの特定情報として指定されている前記テスト手順に従って前記テスト対象の第２の画面の画面テストを行う実行ステップ、
を実行させるためのプログラム。
【請求項２】
前記作成ステップは、前記テスト対象の第１の画面に表示されているオブジェクトを指定したテスト手順作成指示のための操作をユーザから受け付けると、前記オブジェクトのタイプに応じた操作、及び前記オブジェクトに入力されている値を前記操作内容として出力して、前記オブジェクトに対するテスト手順の作成を補助すること
を特徴とする請求項１記載のプログラム。
【請求項３】
前記作成ステップは、前記オブジェクトに対するテスト手順の作成に必要な前記オブジェクトのタイプに応じた操作、及び前記オブジェクトに入力される値を前記操作内容として、表形式でユーザに入力又は修正させること
を特徴とする請求項２記載のプログラム。
【請求項４】
前記設定ステップは、前記第１の画面の構造が前記第２の画面の構造と同様であれば、前記第１及び第２の画面のサイズの違い、前記第１及び第２の画面を表示する前記コンピュータの種類の違い、又は、前記第１及び第２の画面の構造について記述するプログラミング言語の違い、に関わらず、前記位置情報により決めた順位が前記実行ステップと同じとなること
を特徴とする請求項１乃至３何れか一項記載のプログラム。
【請求項５】
前記設定ステップで前記位置情報を取得する前記オブジェクトが表示されている前記テスト対象の第１の画面は、マイグレーション作業前の画面であり、前記実行ステップで前記画面テストを行う前記テスト対象の第２の画面は、マイグレーション作業後の画面であること
を特徴とする請求項１乃至４何れか一項記載のプログラム。
【請求項６】
前記設定ステップは、前記オブジェクトに設定した前記第１の識別情報の末尾に別途、識別子を付与できること
を特徴とする請求項１乃至５何れか一項記載のプログラム。
【請求項７】
前記コンピュータに、前記画面テストの結果を出力する出力ステップ、を更に実行させ、前記出力ステップは、表形式で表される前記テスト手順の成功時又は失敗時の少なくとも一方の画面データを一覧表示させるリンクを、前記画面テストの結果画面に表示すること
を特徴とする請求項１乃至６何れか一項記載のプログラム。
【請求項８】
テスト対象の第１の画面に表示されているオブジェクトを指定したテスト手順作成指示のための操作をユーザから受け付ける受付手段と、
前記第１の画面に表示されているオブジェクトに第２の識別情報が設定されていない場合に、前記第１の画面に表示されているオブジェクトの位置情報を取得し、前記位置情報により決めた順位に従って前記オブジェクトに採番を行い、採番した第１の識別情報を前記オブジェクトに設定する設定手段と、
前記第１の識別情報又は前記第２の識別情報が前記オブジェクトの特定情報として指定されている１つ以上の前記オブジェクトに対するテスト手順を前記オブジェクトに対する操作内容から作成する作成手段と、
前記テスト手順で指定された前記特定情報によりテスト対象の第２の画面に表示されているオブジェクトを特定できれば、前記第２の識別情報が前記オブジェクトの特定情報として指定されている前記テスト手順に従って前記テスト対象の第２の画面の画面テストを行い、前記特定情報により前記オブジェクトを特定できなければ、前記設定手段と同様に前記テスト対象の第２の画面に表示されているオブジェクトに採番を行い、採番した第１の識別情報を前記オブジェクトに設定し、前記第１の識別情報が前記オブジェクトの特定情報として指定されている前記テスト手順に従って前記テスト対象の第２の画面の画面テストを行う実行手段と、
を有する情報処理装置。
【請求項９】
一台以上の情報処理装置を有する画面テストシステムであって、
テスト対象の第１の画面に表示されているオブジェクトを指定したテスト手順作成指示のための操作をユーザから受け付ける受付手段と、
前記第１の画面に表示されているオブジェクトに第２の識別情報が設定されていない場合に、前記第１の画面に表示されているオブジェクトの位置情報を取得し、前記位置情報により決めた順位に従って前記オブジェクトに採番を行い、採番した第１の識別情報を前記オブジェクトに設定する設定手段と、
前記第１の識別情報又は前記第２の識別情報が前記オブジェクトの特定情報として指定されている１つ以上の前記オブジェクトに対するテスト手順を前記オブジェクトに対する操作内容から作成する作成手段と、
前記テスト手順で指定された前記特定情報によりテスト対象の第２の画面に表示されているオブジェクトを特定できれば、前記第２の識別情報が前記オブジェクトの特定情報として指定されている前記テスト手順に従って前記テスト対象の第２の画面の画面テストを行い、前記特定情報により前記オブジェクトを特定できなければ、前記設定手段と同様に前記テスト対象の第２の画面に表示されているオブジェクトに採番を行い、採番した第１の識別情報を前記オブジェクトに設定し、前記第１の識別情報が前記オブジェクトの特定情報として指定されている前記テスト手順に従って前記テスト対象の第２の画面の画面テストを行う実行手段と、
を有する画面テストシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報処理装置及び画面テストシステムに関する。
【背景技術】
【０００２】
システム開発において画面テストを自動化するツールは従来から知られている。例えばグラフィカルユーザーインターフェース（ＧＵＩ）アプリケーションのテストでは、テスト支援装置を用い、ユーザの操作を記録し、その記録した操作をテスト支援装置が再現・検証することによって、テストの自動実行、すなわちテストの自動化を実現していた（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１９８４７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
画面テストを自動化する従来のツールは、設定されたテストシナリオに従ってテスト対象のアプリケーションを動作させることでテストを行っている。例えば画面テストで利用されるテストシナリオには、テスト対象のアプリケーションの画面へのユーザ操作がスクリプトにより設定されていた。したがって、従来のツールを利用して画面テストを自動化する為にはスクリプトの知識が必要という問題があった。
【０００５】
上記した特許文献１には、テスト実行者が行う対象アプリケーションへの操作をテストスクリプトとして保存する内容が記載されている。しかしながら、上記した特許文献１の内容では、テスト対象の画面に表示されているオブジェクトにＩＤが付与されていない場合に、そのオブジェクトの指定をディスプレイ上の座標などで行う必要があり、ウインドウサイズなどに依存する汎用性に乏しいテストシナリオ（テスト手順）になってしまうという問題があった。
【０００６】
本発明は、汎用性の高いテスト手順の作成と、作成したテスト手順による画面テストとを実現できるプログラム、情報処理装置及び画面テストシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記した課題を解決するために本願請求項１のプログラムは、コンピュータに、テスト対象の第１の画面に表示されているオブジェクトを指定したテスト手順作成指示のための操作をユーザから受け付ける受付ステップ、前記第１の画面に表示されているオブジェクトに第２の識別情報が設定されていない場合に、前記第１の画面に表示されているオブジェクトの位置情報を取得し、前記位置情報により決めた順位に従って前記オブジェクトに採番を行い、採番した第１の識別情報を前記オブジェクトに設定する設定ステップ、前記第１の識別情報又は前記第２の識別情報が前記オブジェクトの特定情報として指定されている１つ以上の前記オブジェクトに対するテスト手順を前記オブジェクトに対する操作内容から作成する作成ステップ、前記テスト手順で指定された前記特定情報によりテスト対象の第２の画面に表示されているオブジェクトを特定できれば、前記第２の識別情報が前記オブジェクトの特定情報として指定されている前記テスト手順に従って前記テスト対象の第２の画面の画面テストを行い、前記特定情報により前記オブジェクトを特定できなければ、前記設定ステップと同様に前記テスト対象の第２の画面に表示されているオブジェクトに採番を行い、採番した第１の識別情報を前記オブジェクトに設定し、前記第１の識別情報が前記オブジェクトの特定情報として指定されている前記テスト手順に従って前記テスト対象の第２の画面の画面テストを行う実行ステップ、を実行させるためのプログラムであることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、汎用性の高いテスト手順の作成と、作成したテスト手順による画面テストとを実現できる。
【図面の簡単な説明】
【０００９】
【図１】本実施形態に係る画面テストシステムの一例の構成図である。
【図２】コンピュータの一例のハードウェア構成図である。
【図３】本実施形態に係る画面テストシステムの一例のソフトウェア構成図である。
【図４】本実施形態に係る画面テストシステムの処理の一例のフローチャートである。
【図５】入力補助ツールを利用したテストシナリオ設定処理の一例の説明図である。
【図６】テスト対象画面及びテストシナリオ画面の一例のイメージ図である。
【図７】オブジェクトに関する情報にオブジェクトのＩＤが含まれていなかった場合のテストシナリオ画面の一例のイメージ図である。
【図８】入力補助ツールを利用したテストシナリオ設定処理の一例のフローチャートである。
【図９】画面テスト実行処理及びテスト結果出力処理の一例の説明図である。
【図１０】テストシナリオ設定画面の一例のイメージ図である。
【図１１】ログイン画面の一例のイメージ図である。
【図１２】検索画面の一例のイメージ図である。
【図１３】検索結果画面の一例のイメージ図である。
【図１４】テスト結果レポートが表示された画面の一例のイメージ図である。
【図１５】画面テスト実行処理及びテスト結果出力処理の一例のフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について図面を参照しながら説明する。
［第１の実施形態］
＜システム構成＞
図１は、本実施形態に係る画面テストシステムの一例の構成図である。本実施形態に係る画面テストシステムは、図１（Ａ）に示すように一台の情報処理装置１により構成されてもよいし、図１（Ｂ）に示すように複数台の情報処理装置２及び３により構成されてもよい。図１（Ｂ）の画面テストシステムではサーバ装置として機能する情報処理装置２とクライアント装置として機能する情報処理装置３とがローカルエリアネットワーク（ＬＡＮ）やインターネットなどのネットワーク４を介してデータ通信可能に接続されている。
【００１１】
図１（Ａ）の情報処理装置１は、画面テストを行うユーザが操作する端末装置の一例であり、パーソナルコンピュータ（ＰＣ）やスマートデバイス、携帯電話等である。例えば図１（Ａ）の画面テストシステムは情報処理装置１にダウンロードし、情報処理装置１で実行するクライアントアプリの画面テストや、ＷｅｂブラウザからＷｅｂサービスを介して実行されるＷｅｂアプリの画面テストに適用できる。
【００１２】
図１（Ｂ）の情報処理装置２はＷｅｂアプリを実行するサーバ装置の一例であり、ＰＣやワークステーション、メインフレーム等である。また、情報処理装置３は画面テストを行うユーザが操作するクライアント装置の一例であって、ＰＣやスマートデバイス、携帯電話等である。情報処理装置３はＷｅｂブラウザが搭載されており、そのＷｅｂブラウザからＷｅｂサービスを介してＷｅｂアプリを操作する。例えば図１（Ｂ）の画面テストシステムはＷｅｂアプリの画面テストや、クライアントアプリの画面テストに適用できる。
【００１３】
なお、図１の画面テストシステムは一例であって、用途や目的に応じて様々なシステム構成例があることは言うまでもない。例えば図１（Ｂ）の画面テストシステムではサーバ装置として機能する情報処理装置２が一台の例であるが、複数台であってもよく、様々な構成が可能である。
【００１４】
＜ハードウェア構成＞
図１の画面テストシステムの情報処理装置１、２及び３は例えば図２のハードウェア構成のコンピュータにより実現される。図２はコンピュータの一例のハードウェア構成図である。
【００１５】
図２に示したコンピュータ５００は、入力装置５０１、表示装置５０２、外部Ｉ／Ｆ５０３、ＲＡＭ５０４、ＲＯＭ５０５、ＣＰＵ５０６、通信Ｉ／Ｆ５０７及びＨＤＤ５０８などを備え、それぞれがバスＢで相互に接続されている。なお、入力装置５０１及び表示装置５０２は必要なときに接続して利用する形態であってもよい。
【００１６】
入力装置５０１はキーボードやマウス、タッチパネルなどであり、ユーザ等が各操作信号を入力するのに用いられる。表示装置５０２はディスプレイ等であり、コンピュータ５００による処理結果を表示する。通信Ｉ／Ｆ５０７はコンピュータ５００をネットワーク４に接続するインタフェースである。ＨＤＤ５０８は、プログラムやデータを格納している不揮発性の記憶装置の一例である。
【００１７】
外部Ｉ／Ｆ５０３は、外部装置とのインタフェースである。コンピュータ５００は外部Ｉ／Ｆ５０３を介してＳＤメモリカードなどの記録媒体５０３ａの読み取り及び／又は書き込みを行うことができる。ＲＯＭ５０５は、プログラムやデータが格納された不揮発性の半導体メモリ（記憶装置）の一例である。ＲＡＭ５０４はプログラムやデータを一時保持する揮発性の半導体メモリ（記憶装置）の一例である。
【００１８】
ＣＰＵ５０６は、ＲＯＭ５０５やＨＤＤ５０８などの記憶装置からプログラムやデータをＲＡＭ５０４上に読み出し、処理を実行することで、コンピュータ５００全体の制御や機能を実現する演算装置である。図１の画面テストシステムの情報処理装置１、２及び３は例えば図２のコンピュータ５００のハードウェア構成により、後述するような各種機能を実現できる。
【００１９】
＜ソフトウェア構成＞
以下では図１（Ａ）の画面テストシステムの場合のソフトウェア構成を一例として説明する。図１（Ａ）の画面テストシステムの情報処理装置１は、例えば図３のソフトウェア構成により実現される。
【００２０】
図３は本実施形態に係る画面テストシステムの一例のソフトウェア構成図である。図３の情報処理装置１は入力補助ツール１０、テスト対象アプリ１２及び画面テストツール１４が搭載されている。入力補助ツール１０は画面テストを実行するために必要なテストシナリオの作成を後述のように補助するツールである。テスト対象アプリ１２は画面テストを実行するテスト対象のアプリである。画面テストツール１４はテストシナリオに従ってテスト対象アプリ１２の画面テストを後述のように行うツールである。なお、図３に示したソフトウェア構成は一例であって、例えば入力補助ツール１０及び画面テストツール１４が一体化された構成や、入力補助ツール１０及び画面テストツール１４が細分化された構成であってもよい。なお、入力補助ツール１０及び画面テストツール１４により実現される機能ブロックについては、後述する。
【００２１】
＜処理＞
本実施形態に係る画面テストシステムは、例えば図４に示すような手順でテスト対象のアプリの画面テストを行う。図４は本実施形態に係る画面テストシステムの処理の一例のフローチャートである。
【００２２】
ステップＳ１１においてユーザは入力補助ツール１０を利用し、テスト対象アプリ１２の画面テストに必要なテストシナリオの作成を行う。入力補助ツール１０はテスト対象の画面（第１の画面）をキャプチャすることで、その画面に表示されているオブジェクト（画面項目）を特定して後述のようにテストシナリオを設定できる。
【００２３】
ステップＳ１２においてユーザは画面テストツール１４に対して画面テスト実行の指示を行い、画面テストツール１４にステップＳ１１で作成したテストシナリオに従った画面テストを行わせる。画面テストツール１４はテストシナリオに従い、テスト対象アプリ１２の画面（第２の画面）への操作を後述のように行う。
【００２４】
ステップＳ１３において画面テストツール１４はテスト対象アプリ１２への画面テストの結果（テスト結果画像やテスト結果レポートなど）を出力する。なお、ステップＳ１１で作成したテストシナリオは保存しておくことができる。保存しておいたテストシナリオを利用する場合はステップＳ１１の処理が省略される。
【００２５】
なお、図４の手順は一例であって、ステップＳ１１の入力補助ツール１０を利用したテストシナリオ設定処理に替えて、ユーザが表形式で表されるテストシナリオを手入力するようにしてもよい。この場合は、予め決まっている後述のＩＤを手入力するか、テスト対象の画面に表示されているオブジェクト（画面項目）の順番を出力するツールに出力させたＩＤを手入力する。
【００２６】
《ステップＳ１１の詳細》
図５は入力補助ツールを利用したテストシナリオ設定処理の一例の説明図である。図５の入力補助ツール１０は、テスト対象アプリ指定部２２、オブジェクト操作受付部２４、オブジェクト情報処理部２６及びテストシナリオ出力部２８を有する構成である。
【００２７】
テスト対象アプリ指定部２２は例えば図６（Ａ）に示すようなテスト対象アプリ１２の画面（テスト対象画面１０００）を指定する。また、テストシナリオ出力部２８は図６（Ｂ）に示すようなテストシナリオ画面１１００の表示を制御する。図６はテスト対象画面及びテストシナリオ画面の一例のイメージ図である。
【００２８】
オブジェクト操作受付部２４は例えば図６（Ａ）に示すテスト対象画面１０００に表示されている入力欄への入力やボタンのクリックなどの操作（オブジェクト操作）をユーザから受け付ける。図６（Ａ）のテスト対象画面は「ユーザＩＤ：」の入力欄１００１に対してユーザが「ｆ０００００１」を入力した例を示している。
【００２９】
オブジェクト情報処理部２６はテスト対象画面１０００をキャプチャすることで、テスト対象画面１０００に表示された入力欄やボタンなどのオブジェクトに関する情報を取得する。オブジェクトに関する情報は、オブジェクトのＩＤ、オブジェクトのタイプ、オブジェクトの画面上の位置情報、オブジェクトの入力値などである。なお、テスト対象画面１０００に表示されたオブジェクトはＩＤが振られていない場合もある。ＩＤが振られていないオブジェクトの場合は、オブジェクトに関する情報にオブジェクトのＩＤが含まれていない。
【００３０】
オブジェクト情報処理部２６は、取得したオブジェクトに関する情報にオブジェクトのＩＤが含まれていなければ、独自ルールでＩＤを決め、そのＩＤをオブジェクトに付与する。オブジェクト情報処理部２６が利用する独自ルールは、画面の構造（オブジェクトの配置順など）が同じであれば、画面のサイズ、画面を表示する情報処理装置１の種類又は画面の構造について記述するプログラミング言語等の違いに関わらず、同一のＩＤに決まるルールである。例えばオブジェクト情報処理部２６が利用する独自ルールでは、一意に定まる識別子になるようにＩＤを採番する。また、オブジェクト情報処理部２６が利用する独自ルールでは、オブジェクトのタイプごとの連番となるようにＩＤを採番してもよく、全体連番となるようにＩＤを採番してもよい。さらに、オブジェクト情報処理部２６が利用する独自ルールでは、複数のオブジェクトに紛らわしいＩＤが採番されていた場合、区別が付くようにＩＤの末尾に別途、識別子を付与することもできる。なお、独自ルールの詳細は後述する。
【００３１】
テストシナリオ出力部２８はオブジェクト操作受付部２４が受け付けたオブジェクト操作に基づくテストシナリオを例えば図６（Ｂ）のようにテストシナリオ画面１１００に表示する。図６（Ｂ）のテストシナリオ画面１１００は、オブジェクト情報処理部２６が取得したオブジェクトに関する情報にオブジェクトのＩＤが含まれていた場合の例である。
【００３２】
図６（Ｂ）のテストシナリオ画面１１００に表されたテストシナリオはＩＤ「ｌｏｇｉｎＵｓｅｒＩｄ」が付与されているオブジェクトに値「ｆ０００００１」を入力する操作が設定されたものである。
【００３３】
一方、オブジェクト情報処理部２６が取得したオブジェクトに関する情報にオブジェクトのＩＤが含まれていなかった場合、テストシナリオ出力部２８はオブジェクト操作受付部２４が受け付けたオブジェクト操作に基づくテストシナリオを例えば図７（Ｂ）のようにテストシナリオ画面１２００に表示する。図７はオブジェクトに関する情報にオブジェクトのＩＤが含まれていなかった場合のテストシナリオ画面の一例のイメージ図である。
【００３４】
図７（Ａ）のオブジェクトに関する情報は、ｎａｍｅ属性及びｉｄ属性の値が設定されていない。そこで、オブジェクト情報処理部２６は独自ルールでＩＤ「．１」を決め、そのＩＤをオブジェクトに付与する。結果として、図７（Ｂ）のテストシナリオ画面１２００に表されたテストシナリオは、ＩＤ「．１」が付与されているオブジェクトに値「ｆ０００００１」を入力する操作が設定されたものとなる。
【００３５】
図８は、入力補助ツールを利用したテストシナリオ設定処理の一例のフローチャートである。ステップＳ３１において、ユーザは例えば図６（Ａ）に示すテスト対象画面１０００の入力欄１００１に「ｆ０００００１」を入力したあと、テストシナリオ作成指示のための操作（例えば入力欄１００１の位置にマウスカーソルを移動して「Ｃｔｒｌ＋Ｓｈｉｆｔ＋ｚ」キーを押下するなど）を行う。入力補助ツール１０のオブジェクト操作受付部２４はオブジェクトを指定したテストシナリオ作成指示のための操作を受け付ける。
【００３６】
ステップＳ３２に進み、入力補助ツール１０のオブジェクト情報処理部２６はテストシナリオ作成指示のための操作を受け付けたオブジェクト（例えば入力欄１００１）に関する情報を取得する。ステップＳ３３に進み、オブジェクト情報処理部２６はオブジェクトに関する情報からオブジェクトのタイプ（ＢｕｔｔｏｎやＴｅｘｔ等）を取得し、オブジェクトのタイプに応じた操作とオブジェクトの入力値とを決定する。
【００３７】
ステップＳ３４に進み、オブジェクト情報処理部２６はステップＳ３２で取得したオブジェクトに関する情報に基づき、テストシナリオ作成指示のための操作を受け付けたオブジェクトにＩＤが振られている（付与されている）か否かを判定する。テストシナリオ作成指示のための操作を受け付けたオブジェクトにＩＤが振られていれば、テストシナリオ出力部２８はステップＳ３５に進み、項目ＩＤ列にＩＤを指定、かつ、ステップＳ３３で決定した操作及びオブジェクトの入力値を操作列及び値列に指定する。そして、テストシナリオ出力部２８は図６（Ｂ）に示すテストシナリオ画面１１００を表示する。
【００３８】
テストシナリオ作成指示のための操作を受け付けたオブジェクトにＩＤが振られていなければ、オブジェクト情報処理部２６はステップＳ３６に進み、テスト対象アプリ１２の画面に表示されている全てのオブジェクトに関する情報と位置情報（相対座標）を取得する。ステップＳ３７に進み、オブジェクト情報処理部２６はステップＳ３６で取得したオブジェクトから採番対象のオブジェクトを決定する。例えばオブジェクト情報処理部２６は予めＩＤありのオブジェクトを採番対象として含めてもよいし、採番対象から削除するようにしてもよい。
【００３９】
例えばオブジェクト情報処理部２６は、予めＩＤありのオブジェクトを含め、全てのオブジェクトを採番対象とする。オブジェクト情報処理部２６は予めＩＤありのオブジェクトの予めのＩＤを退避用のキャッシュ（一時領域）に退避させておく。
【００４０】
ステップＳ３８に進み、オブジェクト情報処理部２６は例えばＸ軸、Ｙ軸の順で優先順位を決め、採番対象のオブジェクトのタイプごとに採番を行う。採番後、オブジェクト情報処理部２６は退避用のキャッシュ（一時領域）に退避させておいた、予めＩＤを予めＩＤありのオブジェクトに採用する。
【００４１】
例えばオブジェクト情報処理部２６は予めＩＤ「なし」、「Ｌｏｇｉｎ」及び「なし」のオブジェクトに一旦「．１」「．２」「．３」を採番し、退避させておいた予めＩＤ「Ｌｏｇｉｎ」を適用することで、「．１」「Ｌｏｇｉｎ」「．３」のＩＤを採用できる。
【００４２】
また、オブジェクト情報処理部２６はステップＳ３６で取得したオブジェクトのうち、予めＩＤありのオブジェクトを採番対象から削除してもよい。この場合、オブジェクト情報処理部２６は予めＩＤ「Ｌｏｇｉｎ」のオブジェクトを採番対象から除外し、予めＩＤ「なし」のオブジェクトに「．１」「．２」を採番することで、「．１」「Ｌｏｇｉｎ」「．２」のＩＤを採用できる。また、オブジェクト情報処理部２６は予めＩＤの列とステップＳ３８で採番したＩＤの列とを両方設け、別の項目ＩＤとして扱うようにしてもよい。この場合は、画面テスト実行時に予めＩＤが変わっていた場合などに、採番したＩＤを利用できる。
【００４３】
ステップＳ３９に進み、テストシナリオ出力部２８は項目ＩＤ列にステップＳ３８で採番したＩＤを指定、かつ、ステップＳ３３で決定した操作及びオブジェクトの入力値を操作列及び値列に指定する。そして、テストシナリオ出力部２８は図７（Ｂ）に示すテストシナリオ画面１２００を表示する。ユーザは図８の入力補助ツールを利用したテストシナリオ設定処理を１回以上行うことによりテストシナリオを設定できる。
【００４４】
《ステップＳ１２及びＳ１３の詳細》
図９は画面テスト実行処理及びテスト結果出力処理の一例の説明図である。図９の画面テストツール１４は、テストシナリオ設定受付部５２、テスト実行要求処理部５４及びテスト結果出力部５６を有する構成である。
【００４５】
テストシナリオ設定受付部５２は例えば図１０に示すようなテストシナリオ設定画面１３００の表示を制御する。図１０はテストシナリオ設定画面の一例のイメージ図である。テストシナリオ設定受付部５２は例えば図１０のテストシナリオ設定画面１３００へのテストシナリオ設定操作をユーザから受け付ける。なお、ユーザは図６（Ｂ）に示したテストシナリオ画面１１００又は図７（Ｂ）に示したテストシナリオ画面１２００に表示されたテストシナリオをコピーし、テストシナリオ設定画面１３００に貼り付けることで、テストシナリオ設定操作を行ってもよい。
【００４６】
テスト実行要求処理部５４は、例えば図１０のテストシナリオ設定画面１３００のテスト実行ボタン１３０２の押下など、ユーザから画面テスト実行の指示を受け付ける。テスト実行要求処理部５４はライブラリ６２のデータを読み出し、テストシナリオに従ったテストコードを生成する。テスト実行要求処理部５４は生成したテストコードをコンパイルする。
【００４７】
テスト実行要求処理部５４はコンパイルした画面テストモジュールを実行することで、テストシナリオに従った画面テストを行う。テスト結果出力部５６はテスト対象アプリ１２への画面テストの結果（テスト結果画像ファイル６４やテスト結果レポート６６など）を出力する。
【００４８】
なお、テスト実行要求処理部５４が行う画面テストは、様々なテストシナリオに基づくテストが想定されるが、ここではユーザＩＤとパスワードとをログイン画面に入力し、検索画面に検索条件を入力し、検索結果画面で検索結果を確認する例を説明する。
【００４９】
図１１はログイン画面の一例のイメージ図である。図１２は検索画面の一例のイメージ図である。図１３は検索結果画面の一例のイメージ図である。例えばテスト実行要求処理部５４は図１０に表示されているテストシナリオに基づき、画面テストを行う。テスト実行要求処理部５４は図１１のログイン画面にユーザＩＤとパスワードとを入力してログインボタンのクリック操作を行うことで図１２の検索画面に遷移させる。
【００５０】
テスト実行要求処理部５４は図１２の検索画面のクリアボタンをクリックし、対象月度のドロップダウンから「２０１７／０１」を選択し、氏名「１」を入力することで検索条件を入力し、検索ボタンのクリック操作を行うことでテスト対象アプリ１２に検索を実行させることで、図１３の検索結果画面に遷移させる。
【００５１】
テスト実行要求処理部５４は図１３の検索結果画面に表示された検索結果の項目の値に「１００００１」が含まれているか否かを検証する。図１０のテストシナリオは検証項目の一例として「あいまい検証」の例が示されている。検証項目は、画面テストの結果が正しいか否かの検証に使用される情報の一例である。
【００５２】
全てのテストシナリオが終了すると、テスト結果出力部５６は例えば図１４のようなテスト結果レポート６６を画面に表示する。図１４はテスト結果レポートが表示された画面の一例のイメージ図である。図１４のテスト結果レポート６６は画面テストごとにテスト結果が表示される。テスト結果レポート６６はテストシナリオのどこで失敗したかを表示する。また、本件実施形態はテストシナリオが表形式であるため（例えば、失敗時のレポートに「仕様書の９行目」（図１４参照）とあれば、表形式のテストシナリオの9行目を見れば済み）、失敗箇所を追いやすいというメリットもある。図１４の「画面テストＢ」の画面テストは、画面テストの結果が正しくなかった場合の例を表しており、正しくない理由が記載されている。また、図１４のテスト結果レポート６６はテスト結果画像を表示する画面へのリンク６７を設け、そのリンク６７がクリックされた場合に、テスト結果画像ファイル６４を表示する。なお、テスト結果レポート６６はリンク６７がクリックされた場合、失敗時のテスト結果画像ファイル６４だけでなく、成功時のテスト結果画像ファイル６４、又は、失敗時及び成功時のテスト結果画像ファイル６４、を一覧表示してもよい。
【００５３】
また、図１５は画面テスト実行処理及びテスト結果出力処理の一例のフローチャートである。ステップＳ５１においてテスト実行要求処理部５４は、例えば図１０のテストシナリオ設定画面１３００のテスト実行ボタン１３０２の押下など、ユーザから画面テスト実行の指示を受け付ける。
【００５４】
ステップＳ５２に進み、テスト実行要求処理部５４はテストシナリオで指定された項目ＩＤを使ってテスト対象アプリ１２の画面に表示されているオブジェクトを取得できるか否かを判定する。取得できなければテスト実行要求処理部５４はテストシナリオの項目ＩＤに指定されている値を、入力補助ツール１０によって採番された番号（第１の識別情報）と判断する。また、テスト実行要求処理部５４はテスト対象アプリ１２の画面から全てのオブジェクトに関する情報と、その相対座標を取得する。ステップＳ５４に進み、テスト実行要求処理部５４はステップＳ５３で取得したオブジェクトから採番対象のオブジェクトを決定する。例えばオブジェクト情報処理部２６は図８のステップＳ３７と同様に、予めＩＤありのオブジェクトを採番対象として含めてもよいし、採番対象から削除するようにしてもよい。
【００５５】
ステップＳ５５に進み、テスト実行要求処理部５４は入力補助ツール１０の採番ルールと同様に、例えばＸ軸、Ｙ軸の順で優先順位を決め、オブジェクトのタイプごとの採番を行う。ステップＳ５６に進み、テスト実行要求処理部５４はテストシナリオの項目ＩＤに指定されている値（第１の識別情報又は第２の識別情報）を基に、ステップＳ５５で採番した番号（第１の識別情報）のうち、番号が一致するものを特定し、ステップＳ５７に進む。なお、ステップＳ５２において、テストシナリオで指定された項目ＩＤを使ってテスト対象アプリ１２の画面に表示されているオブジェクトを特定できれば、テスト実行要求処理部５４はステップＳ５７に進む。
【００５６】
ステップＳ５７において、テスト実行要求処理部５４は特定できたオブジェクトに対してテストシナリオで指定された操作または検証と値とを使用して実操作処理（クリックや入力など）を行う。ステップＳ５８に進み、テスト結果出力部５６はテスト対象アプリ１２の画面のテスト結果画像ファイル６４を保存する。ステップＳ５８に進み、テスト結果出力部５６はテストシナリオが終了したか否かを判定する。ステップＳ５２〜Ｓ５９の処理はテストシナリオが終了するまで繰り返し行われる。テストシナリオが終了したと判定すると、テスト結果出力部５６はステップＳ６０に進み、各操作や検証が正しかったか否かを例えばＨＴＭＬのテスト結果レポート６６として出力する。
【００５７】
以上、本実施形態によれば、アプリケーションパッケージの改修や、マイグレーション案件における繰り返し画面テストや、新旧比較の画面テスト等において、画面のサイズ、画面を表示する情報処理装置１の種類又は画面の構造について記述するプログラミング言語の違いに依存しない汎用性の高いテストシナリオの作成と、そのテストシナリオによる画面テストとを実現できる。
【００５８】
なお、マイグレーション案件は、ソフトウェアやシステム、データなどを別の環境に移転したり、新しい環境に切り替えたりする案件である。マイグレーション案件は、マイグレーション作業前とマイグレーション作業後とでユーザの操作感が変わらないように画面の構造が同じになる場合が多い。
【００５９】
したがって、マイグレーション案件では、マイグレーション作業前とマイグレーション作業後とでテストシナリオに変化が無い場合が多く、マイグレーション作業前の画面でテストシナリオを作成しておき、そのテストシナリオをマイグレーション作業後の画面テストで利用できる。このように、本実施形態はマイグレーション案件など、同じ画面テストを繰り返し行うような場合に、特に優れた効果を奏する。また、本実施形態はテストシナリオが表形式で表示されるので、テストシナリオの修正が容易であるという優れた効果も奏する。
【００６０】
［その他の実施形態］
上記した第１の実施形態では、図１（Ａ）の画面テストシステムの場合の例を説明したが図１（Ｂ）の画面テストシステムであってもよい。
【００６１】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。なお、本実施形態で説明した画面テストシステムは一例であって、用途や目的に応じて様々なシステム構成例があることは言うまでもない。なお、特許請求の範囲に記載した「テスト手順作成指示のための操作」は第１の実施形態の「テストシナリオ作成指示のための操作」に相当し、ステップＳ３１で例示した入力欄１００１の位置にマウスカーソルを移動して「Ｃｔｒｌ＋Ｓｈｉｆｔ＋ｚ」キーを押下する操作の他、入力欄への入力やボタンのクリックなどの操作（オブジェクト操作）であってもよい。
【符号の説明】
【００６２】
１，２，３    情報処理装置
４    ネットワーク
１０    入力補助ツール
１２    テスト対象アプリ
１４    画面テストツール
２２    テスト対象アプリ指定部
２４    オブジェクト操作受付部
２６    オブジェクト情報処理部
２８    テストシナリオ出力部
５２    テストシナリオ設定受付部
５４    テスト実行要求処理部
５６    テスト結果出力部
６２    ライブラリ
６４    テスト結果画像ファイル
６６    テスト結果レポート
１０００    テスト対象画面
１１００，１２００    テストシナリオ画面
１３００    テストシナリオ設定画面
１３０２    テスト実行ボタン
【図１】
2019106107.tif 000003
【図２】
2019106107.tif 000004
【図３】
2019106107.tif 000005
【図４】
2019106107.tif 000006
【図５】
2019106107.tif 000007
【図６】
2019106107.tif 000008
【図７】
2019106107.tif 000009
【図８】
2019106107.tif 000010
【図９】
2019106107.tif 000011
【図１０】
2019106107.tif 000012
【図１１】
2019106107.tif 000013
【図１２】
2019106107.tif 000014
【図１３】
2019106107.tif 000015
【図１４】
2019106107.tif 000016
【図１５】
2019106107.tif 000017