(57)【要約】      （修正有）【課題】対象システムにおける複数の機種に対するテストや、対象システムの仕様変更時に行うテストを行うに当たって、テストシナリオを変更する必要が無いテスト装置を提供する。【解決手段】テスト装置１０は、画面仕様の情報を含む第１の設計情報６０に基づいて作成される画面データ構造７０を入力として、テストシナリオを出力するテストシナリオ生成部２０と、製品の画面構成の情報を含む第２の設計情報８０を入力とし、テスト情報を出力するテスト情報抽出部３０と、テスト情報を入力とし、テスト観点に基づいてテストデータを出力するテストデータ生成部４０と、テストシナリオ、テストデータ、及び、テスト対象である画面部品を入力として、テストを実行して、テスト結果を出力するテスト実行部５０とにより構成される。【選択図】図１
2020135292.tif 000002
【特許請求の範囲】
【請求項１】
画面仕様の情報を含む第１の設計情報に基づいて作成される画面データ構造を入力として、テストシナリオを出力するテストシナリオ生成部と、
製品の画面構成の情報を含む第２の設計情報を入力とし、テスト情報を出力するテスト情報抽出部と、
前記テスト情報を入力とし、テスト観点に基づいてテストデータを出力するテストデータ生成部と、並びに、
前記テストシナリオ、前記テストデータ、及び、テスト対象である画面部品を入力として、テストを実行しテスト結果を出力とするテスト実行部と
により構成される、テスト装置。
【請求項２】
前記テスト実行部は、前記画面データ構造及び前記テストシナリオを構成する動作データに関するキーワードの内容を解釈してテストを実行する、請求項１に記載のテスト装置。
【請求項３】
前記テストデータが、分岐条件を含む変数を含む、請求項１に記載のテスト装置。
【請求項４】
画面仕様の情報を含む第１の設計情報に基づいて作成される画面データ構造を入力するステップと、
前記画面データ構造に基づいてテストシナリオを生成するステップと、
製品の画面構成の情報を含む第２の設計情報を入力するステップと、
前記第２の設計情報からテスト情報を出力するステップと、
前記テスト情報を入力とし、テスト観点に基づいてテストデータを生成するステップと、並びに、
前記テストシナリオ、前記テストデータ、及び、テスト対象である画面部品を入力として、テストを実行してテスト結果を出力するステップと
を含む、テスト方法。
【請求項５】
前記テストを実行してテスト結果を出力するステップは、前記画面データ構造及び前記テストシナリオを構成する動作データに関するキーワードの内容を解釈してテストを実行するステップを含む、請求項４に記載のテスト方法。
【請求項６】
前記テストデータが、分岐条件を含む変数を含む、請求項４に記載のテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、操作画面を備えるシステムのためのテスト装置及びテスト方法に関する。
【背景技術】
【０００２】
操作画面を備えるシステムに対する画面テストは、以下のような形式で行われるのが通常である。
（１）ユーザ操作をシナリオの形で記録して、そのまま再生する形式（即ち、リニアスクリプト）。但し、関数化や変数化が行われていないので、メンテナンス性が低い。
（２）上記のリニアスクリプトの一部を関数化する形式（即ち、共通スクリプト）。但し、変数化が行われていないので、テストケース毎にシナリオが作成される必要がある。
（３）上記の共通スクリプトの関数の引数（テストデータ）をスクリプト外部から与える形式（即ち、データ駆動スクリプト）
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５６３９１２７号公報
【特許文献２】特許第５７７１６９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
操作画面を備えるシステムに対する画面テストにおいては、例えば、試験（テスト）スクリプトと連携して画面の自動試験を行う技術が用いられる。しかしながら、試験そのものの効率は向上するものの、試験スクリプトの保守作業に時間が掛かるという課題がある。
【０００５】
本開示は、対象システムにおける複数の機種に対するテストや、対象システムの仕様変更時に行うテストを行うに当たって、テストシナリオを変更する必要が無いテスト装置及びテスト方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一態様はテスト装置であって、該テスト装置は、
画面仕様の情報を含む第１の設計情報に基づいて作成される画面データ構造を入力として、テストシナリオを出力するテストシナリオ生成部と、
製品の画面構成の情報を含む第２の設計情報を入力とし、テスト情報を出力するテスト情報抽出部と、
前記テスト情報を入力とし、テスト観点に基づいてテストデータを出力するテストデータ生成部と、並びに、
前記テストシナリオ、前記テストデータ、及び、テスト対象である画面部品を入力として、テストを実行しテスト結果を出力とするテスト実行部と
により構成される。
【発明の効果】
【０００７】
本開示に係るテスト装置及びテスト方法を用いることにより、対象システムにおける複数の機種に対するテストや、対象システムの仕様変更時に行うテストを行うに当たって、テストシナリオを変更する必要が無くなる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１に係るテスト装置の構成を示すブロック図である。
【図２】テストシナリオ生成部の構成を表すブロック図である。
【図３】入力データである画面データ構造の具体例である。
【図４】テストシナリオ生成部の処理フローを示すフローチャートである。
【図５】図４におけるＳ４０４終了後ステップＳ４０６にてテストシナリオ格納部に格納されるデータの例である。
【図６】図４におけるタステップＳ４０５終了後ステップＳ４０６にてテストシナリオ格納部に格納されるデータの例である。
【図７】図４におけるステップＳ４０８にてテストシナリオ格納部に格納されるデータの例である。
【図８】図４におけるステップＳ４１０にてテストシナリオ格納部のデータの例であり、テストシナリオを構成するものである。
【図９】テスト情報抽出部の構成を示すブロック図である。
【図１０】テスト情報抽出部の処理フローを示すフローチャートである。
【図１１】第２の設計情報（設計情報Ｂ）の具体例であり、図１０におけるステップＳ１００３にてテスト情報格納部に格納されるデータの例である。
【図１２】図１０におけるステップＳ１００５にてテスト情報格納部に格納されるデータの例である。
【図１３】図１０におけるステップＳ１００７にてテスト情報格納部に格納されるデータである。
【図１４】テストデータ生成部の構成を示すブロック図である。
【図１５】テストデータ生成部の処理フローを示すフローチャートである。
【図１６】テスト実行部の構成を示すブロック図である。
【図１７】テスト実行部の処理フローを示すフローチャートである。
【図１８】論理画面データの例である。
【図１９】テスト対象操作部のテスト実行イメージである。
【図２０】テスト結果の記載事項を示した図である。
【図２１】あるカーナビゲーションシステムのトップ画面を示した図である。
【図２２】第１の設計情報（設計情報Ａ）を入力として作成される、トップ画面の画面データ構造を示した図である。
【図２３】図２２に示すトップ画面の画面データ構造の４行目を、テストシナリオのひとつとして示す図である。
【図２４】図２２に示すトップ画面に対するテストデータである。
【図２５】画面部品格納部と、格納されているトップ画面の画面部品を示した図である。
【図２６】Xpath式の説明を示す図である。
【図２７】画面部品編集部により編集する様子を示す図である。
【図２８】テスト対象操作部による、トップ画面のテスト実行イメージを示す図である。
【図２９】トップ画面のテスト実行により得られるテスト結果である。
【発明を実施するための形態】
【０００９】
以下、適宜図面を参照しながら、実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。
【００１０】
なお、発明者らは、当業者が本開示を十分に理解するために添付図面および以下の説明を提供するのであって、これらによって特許請求の範囲に記載の主題を限定することを意図するものではない。
【００１１】
本開示に係るテスト装置は、操作画面を備えるシステムのための自動テストを行う。本開示に係るテスト装置は、設計情報から画面部品毎の表示条件と表示内容の一覧を示した画面データ構造を作成し、該画面データ構造からキーワード駆動テストのシナリオを作成し、画面部品の表示条件と表示内容をテストデータ化し、それらテストデータをキーワード駆動テストのシナリオに入力して処理することにより、自動テストを実現する。
【００１２】
なお、本開示に係るテスト装置は、通常、パーソナルコンピュータ、ワークステーション、タブレット端末などの一般的なコンピュータ装置によって構成される。
【００１３】
ある製品ソフトウェアに対し、機能数や仕向地の違い等により複数の機種が存在する場合がある。本開示に係るテスト装置は、キーワード駆動形式で自動テストを実現するものであり、複数の機種に対するテストを行う際や仕様変更におけるテストを行う際にテストシナリオの変更が不要である。このように、本開示に係るテスト装置では、テストにおけるメンテナンス性が向上する。
【００１４】
なお、キーワード駆動形式とは、例えば、「ボタン」「押す」等のキーワードを指定すると、プログラムがそれらキーワードの内容を解釈した上でテストを実行する形式のことをいう。
【００１５】
また本開示に係るテスト装置は、テスト対象の多様な製品構成に対応するために分岐条件を変数化してテストデータ化するものである。このように、本開示に係るテスト装置では、一つのテストシナリオであっても、テスト対象の多様性に対応できる。つまり、動作をキーワード化することによって、動作の実行順をテストデータで制御することができ、多様なテスト観点に対応できる。
【００１６】
［実施の形態１］
［１．１．テスト装置の全体構成］
図１は、実施の形態１に係るテスト装置１０の構成を示すブロック図である。テスト装置１０は、テストシナリオ生成部２０、テスト情報抽出部３０、テストデータ生成部４０、及び、テスト実行部５０からなる。テスト装置１０は、第１の設計情報（設計情報Ａ）６０に基づいて作成される画面データ構造７０を、テストシナリオ生成部２０へ入力する。ここで第１の設計情報（設計情報Ａ）６０は、例えば、画面の仕様を記載する画面仕様書である。また、テスト装置１０は、第２の設計情報（設計情報Ｂ）８０をテスト情報抽出部３０へ入力する。ここで第２の設計情報（設計情報Ｂ）８０は、例えば、製品の画面構成情報等のシステムデータである。テスト装置１０は、テスト実行部５０からテスト結果９０を出力する。
【００１７】
［１．２．（１）テストシナリオ生成部の構成］
図２は、テストシナリオ生成部２０の構成を表すブロック図である。テストシナリオ生成部２０は、画面データ構造読み取り部１００、条件生成部１１０、動作抽出部１２０、期待値抽出部１３０、及び、テストシナリオ格納部１４０からなる。テストシナリオ生成部２０は、画面データ構造読み取り部１００に画面データ構造７０を入力し、テストシナリオ格納部１４０からテストシナリオ１５０を出力する。
【００１８】
図３は、入力データである画面データ構造７０の具体例である。画面データ構造７０では、画面の部品ごとに、条件、動作、期待値が表形式で表わされている。なお本開示での期待値とは、各部品につき所定の条件時に所定の動作が為された場合に、発生が期待される内容を意味する。１画面につき１つの画面データ構造となっている。
【００１９】
［１．２．（２）テストシナリオ生成部の動作］
図４は、テストシナリオ生成部２０の処理フローを示すフローチャートである。図４のフローチャートにより、テストシナリオ生成部２０の動作を説明する。
【００２０】
ステップＳ４０１において、テストシナリオ生成部２０が処理を開始する。ステップＳ４０２において、画面データ構造読み取り部１００が、画面データ構造を読み取る。
【００２１】
ステップＳ４０３において、条件生成部１１０が、条件の全ての組合せを抽出する。ステップＳ４０４において、条件生成部１１０が、条件の全ての組合せのうち、論理的に不可能な組合せを削除する。例えば、「条件１−１、条件２−２、条件３−３」という組合せがあり、条件１−１と条件３−３が「オンライン状態」、条件２−２が「オフライン状態」となっていた場合は、「オンライン状態」と「オフライン状態」が共存することは、論理的に不可能であるので、この組み合わせは削除される。
【００２２】
ステップＳ４０５において、条件生成部１１０が、セットアップパスとティアダウンパスを設定する。セットアップパスとは、テストケースを実行する前に設定するパスである。ここでは、Ｓ４０４終了時点の条件パスを設定する。ティアダウンパスとは、あるテストケースを実行した後に、元に戻すために設定するパスである。テスト対象の画面によっては、ティアダウンパスを不要として設定しない場合もある。
【００２３】
ステップＳ４０６において、テストシナリオ格納部１４０が、上記の組合せと、上記のパスを格納する。
【００２４】
ステップＳ４０７において、動作抽出部１２０が、各条件に対応した動作を抽出する。ステップＳ４０８において、テストシナリオ格納部１４０が、それら抽出された動作を格納する。
【００２５】
ステップＳ４０９において、期待値抽出部１３０が、各条件の各動作に対応し期待値を抽出する。ステップＳ４１０において、テストシナリオ格納部１４０が、結果を格納する。ステップＳ４１１において、テストシナリオ格納部１４０が自身（テストシナリオ格納部１４０）に格納したデータを出力する。
【００２６】
ステップＳ４１２において、テストシナリオ生成部２０の処理を終了する。
【００２７】
図５は、ステップＳ４０４終了後ステップＳ４０６にてテストシナリオ格納部１４０に格納されるデータの例である。図６は、ステップＳ４０５終了後ステップＳ４０６にてテストシナリオ格納部１４０に格納されるデータの例である。図７は、ステップＳ４０８にてテストシナリオ格納部１４０に格納されるデータの例である。図８は、ステップＳ４１０にてテストシナリオ格納部１４０のデータの例であり、テストシナリオ１５０を構成している。
【００２８】
［１．３．（１）テスト情報抽出部の構成］
図９は、テスト情報抽出部３０の構成を示すブロック図である。テスト情報抽出部３０は、設計情報Ｂ読み取り部１６０、画面情報分割部１７０、列情報分割部１８０、及び、テスト情報格納部１９０からなる。テスト情報抽出部３０は、第２の設計情報（設計情報Ｂ）８０を設計情報Ｂ読み取り部１６０に入力し、テスト情報格納部１９０からテスト情報２００を出力する。
【００２９】
［１．３．（２）テスト情報抽出部の構成］
図１０は、テスト情報抽出部３０の処理フローを示すフローチャートである。図１０のフローチャートにより、テスト情報抽出部３０の動作を説明する。
【００３０】
ステップＳ１００１において、テスト情報抽出部３０の処理を開始する。ステップＳ１００２において、設計情報Ｂ読み取り部１６０が、第２の設計情報（設計情報Ｂ）８０を読み取る。ステップＳ１００３において、テスト情報格納部１９０が、第２の設計情報（設計情報Ｂ）８０のデータを格納する。
【００３１】
ステップＳ１００４において、画面情報分割部１７０が、第２の設計情報（設計情報Ｂ）８０のデータを入力し、画面情報を分割する。ステップＳ１００５において、テスト情報格納部１９０が、分割した画面情報のデータを格納する。
【００３２】
ステップＳ１００６において、列情報分割部１８０が、分割した画面情報のデータを入力し、列情報を分割する。ステップＳ１００７において、テスト情報格納部１９０が、分割した列情報を格納する。
【００３３】
ステップＳ１００８において、テスト情報抽出部３０の処理を終了する。
【００３４】
図１１は、第２の設計情報（設計情報Ｂ）８０の具体例である。１つのファイルに全画面の設計情報が在る。「＄」のあと「画面番号」を記載することで、「画面番号」の設計情報が始まることを示す。次行以降は各データを「，」で区切る。例えば、［「表示位置」，「データ名」，「種別」，「上限」，「下限」，「単位」］などである。また、図１１は、ステップＳ１００３にてテスト情報格納部１９０に格納されるデータの例である。
【００３５】
ステップＳ１００４では、図１１に示すようなデータが入力されたあと、画面番号毎に画面情報が分割される。
【００３６】
図１２は、ステップＳ１００５にてテスト情報格納部１９０に格納されるデータの例である。図１３は、ステップＳ１００７にてテスト情報格納部１９０に格納されるデータである。ステップＳ１００６にて、図１２に示すデータが「，」で分割されて図１３に示す表形式となる。
【００３７】
［１．４．（１）テストデータ生成部の構成］
図１４は、テストデータ生成部４０の構成を示すブロック図である。テストデータ生成部４０は、テスト情報読み取り部２１０、テストデータ生成部２２０、及び、テストデータ格納部２３０からなる。テストデータ生成部４０は、テスト情報２００をテスト情報読み取り部２１０の入力とし、テストデータ格納部２３０からテストデータ２４０を出力する。
【００３８】
［１．４．（２）テストデータ生成部の構成］
図１５はテストデータ生成部４０の処理フローを示すフローチャートである。図１５のフローチャートにより、テストデータ生成部４０の動作を説明する。
【００３９】
ステップＳ１５０１において、テストデータ生成部４０の処理を開始する。ステップＳ１５０２において、テスト情報読み取り部２１０が、テスト情報２００を読み取る。
【００４０】
ステップＳ１５０３において、テストデータ生成部２２０が、テスト観点に基づいてテストデータを生成する。テスト観点とは、例えば、条件組合せ、決定表（即ち、デシジョンテーブル）、パス網羅、競合、等である。
【００４１】
ステップＳ１５０４において、テストデータ格納部２３０が、テストデータを格納する。ステップＳ１５０５において、テストデータ格納部２３０が、テストデータ２４０を出力する。
【００４２】
ステップＳ１５０６において、テストデータ生成部４０の処理を終了する。
【００４３】
［１．５．（１）テスト実行部の構成］
図１６は、テスト実行部５０の構成を示すブロック図である。テスト実行部５０は、画面部品解析部２５０、画面部品格納部２６０、画面部品編集部２７０、テスト対象操作部２８０、テスト合否判定部２９０、及び、テスト結果格納部３００からなる。テスト実行部５０は、テストシナリオ１５０、テストデータ２４０をテスト対象操作部２８０の入力とし、テスト結果格納部３００からテスト結果３２０を出力とする。
【００４４】
［１．５．（２）テスト実行部の動作］
図１７は、テスト実行部５０の処理フローを示すフローチャートである。図１７のフローチャートにより、テスト実行部５０の動作を説明する。
【００４５】
ステップＳ１７０１において、テスト実行部５０の処理を開始する。
【００４６】
ステップＳ１７０２において、画面部品解析部２５０が、テスト対象３１０の画面部品を、ＵＩテクノロジーに基づいて記述された論理画面データを読み取ることにより、解析する。
【００４７】
なお、論理画面とは、ハードウェアとしての画面には表示されていないが、データ上存在している画面を意味する。例えば、図１８に示す画面は、「▽」により横方向にスクロールすることで、表を表示する画面である。画面スコープ内である、「１，Ａ，２，Ｂ，３，Ｃ」の表部分だけでなく、画面スコープ外となる、「４，Ｄ，５，Ｅ，６，Ｆ」の表部分も、論理画面データとなる。
【００４８】
ステップＳ１７０２では、論理画面データは、解析後、画面部品の位置を指定するための、ＸＰａｔｈ式等の参照式に変換される。
【００４９】
変換する参照式の長さのレベルを変更することもできる。参照式が短い場合、テストの際の処理が速くなる一方、部品を誤って検出する恐れがある。参照式が長い場合、部品を正確に検出できる一方、テストの際の処理が遅くなる。基本的には、参照式の長さが短いレベルで設定し、後述の画面部品編集部２７０にて、参照式が編集される。
【００５０】
ステップＳ１７０３において、画面部品格納部２６０が、上述の変換された画面部品を格納する。
【００５１】
ステップＳ１７０４において、画面部品編集部２７０が、格納済の画面部品を編集する。ここで、ステップＳ１７０２で誤って部品が検出されていないか、作業者により検証されることが好ましい。ステップＳ１７０５において、画面部品格納部２６０が、編集済の画面部品を格納する。
【００５２】
ステップＳ１７０６において、テスト実行部５０は、テストシナリオ１５０とテストデータ２４０をテスト対象操作部２８０に入力する。ステップＳ１７０７において、テスト実行部５０は、テスト対象操作部２８０に、テストシナリオ１５０とテストデータ２４０に対応した画面部品を入力する。
【００５３】
ステップＳ１７０８において、テスト対象操作部２８０がテストを実行する。
【００５４】
ステップＳ１７０９において、テスト合否判定部２９０が、合否を判定する。合否については、ステップＳ１７０６で入力したテスト対象操作部２８０の期待値と、ステップＳ１７０８のテスト実行結果を比較し、等しい場合は合格、等しくない場合は不合格とする。
【００５５】
ステップＳ１７１０において、テスト結果格納部３００が、ステップＳ１７０９におけるテスト結果の合否を格納する。
【００５６】
ステップＳ１７１１において、テスト実行部５０は、実行していないテストがあるか調べる。実行していないテストがあれば、ステップＳ１７０８へ戻る。実行していないテストがなければ、ステップＳ１７１２へ進む。
【００５７】
ステップＳ１７１２において、テスト実行部５０は、テスト結果３２０を出力する。
【００５８】
ステップＳ１７１３において、テスト実行部５０の処理を終了する。
【００５９】
［１．６．テスト実行例（１）］
図１９は、テスト対象操作部２８０のテスト実行イメージである。テストシナリオ１５０のセットアップパス、動作、期待値、ティアダウンパスが、テスト対象操作部２８０の「セットアップパス」、「動作」、「期待値」、「ティアダウンパス」に入力され、テストデータ２４０が、分岐条件を含む変数としてテスト対象操作部２８０の「操作変数」に入力され、画面部品格納部２６０に格納された画面部品が、テスト対象操作部２８０の「操作対象」に入力される。テスト実行では、セットアップパスの実行から始まり、上から下へ順番に実行が進む。
【００６０】
図２０は、テスト結果３２０の記載事項を示した図である。「３テスト中（改行）合格：２テスト（改行）不合格：１テスト」とは、実行した３つのテストのうち、合格したテストの数が２つ、不合格のテストの数が１つであることを意味する。「ログ：（改行）（省略）」により、実行したテストのログが表示されている。なおログは省略している。「テスト２（改行）エラーメッセージ」により、不合格となったテストが「テスト２」であることが示され、更に、「テスト２」でエラーとなった箇所が「エラーメッセージ」として示されている。
【００６１】
［１．７．テスト実行例（２）］
図２１〜図２９によって、より具体的な値を示してテスト実行の流れを説明する。
【００６２】
図２１は、あるカーナビゲーションシステムのトップ画面を示した図である。図２１に示すトップ画面は、
・押下するとナビゲーション画面に遷移するボタン３３０（以降、部品名を「ナビゲーションボタン」と表記）、
・押下するとお気に入り画面に遷移するボタン３４０（以降、部品名を「お気に入りボタン」と表記）、
・押下すると履歴画面に遷移するボタン３５０（以降、部品名を「履歴ボタン」と表記）、
・押下するとテレビ画面に遷移するボタン３６０（以降、部品名を「テレビボタン」と表記）、
・押下するとラジオ画面に遷移するボタン３７０（以降、部品名を「ラジオボタン」と表記）、
・押下するとインターネット画面に遷移するボタン３８０（以降、部品名を「インターネットボタン」と表記）、
・押下すると電話画面に遷移するボタン３９０（以降、部品名を「電話ボタン」と表記）、
・押下するとメール画面に遷移するボタン４００（以降、部品名を「メールボタン」と表記）、
・押下するとショートメッセージ画面に遷移するボタン４１０（以降、部品名を「ショートメッセージボタン」と表記）、
から構成されている。
「ナビゲーションボタン、お気に入りボタン、履歴ボタン」でナビゲーション系のボタンとして一つのまとまり、「テレビボタン、ラジオボタン、インターネットボタン」で放送系のボタンとして一つのまとまり、「電話ボタン、メールボタン、ショートメッセージボタン」で通信系のボタンとして一つのまとまりとなる。ただし、機種によっては表示されないボタンが存在する。
【００６３】
図２２は、第１の設計情報（設計情報Ａ）６０を入力として作成される、トップ画面（図２１参照）の画面データ構造７０を示した図である。１行目は、部品名「ナビゲーションボタン」について、「ナビゲーションボタンが押下可能」の条件のとき、「押下する」動作を行い、「ナビゲーション画面に遷移する」期待値が出力される画面データ構造を意味する。２行目は、部品名「お気に入りボタン」について、「お気に入りボタンが押下可能」の条件のとき、「押下する」動作を行い、「お気に入り画面に遷移する」期待値が出力される画面データ構造を意味する。以下３行目から９行目までも、同様である。
【００６４】
図２３は、図２２に示すトップ画面の画面データ構造の４行目を、テストシナリオのひとつとして示す図である。図２２の左から３列目の動作と、最右列の期待値とを、セットアップパスとティアダウンパスの間に設置する。図２２の左から２列目の、条件を設定するパスが、セットアップパスとなる。ティアダウンパスは、ここでは設定しないため、空白とする。
【００６５】
図２４は、図２２に示すトップ画面に対するテストデータ２４０である。マウスをクリックするという意味の値「mouseclick」が格納されている。
【００６６】
図２５は、画面部品格納部２６０と、格納されているトップ画面の画面部品を示した図である。
「/form[@title=‘Form 1’]/container[@caption=Container]/button[@text=‘Botton 1’]」、
「/form[@title=‘Form 1’]/container[@caption=Container]/button[@text=‘Botton 2’]」、
「/form[@title=‘Form 1’]/container[@caption=Container]/button[@text=‘Botton 3’]」、
「/form[@title=‘Form 1’]/container[@caption=Container]/button[@text=‘Botton 1’]」、
「/form[@title=‘Form 1’]/container[@caption=Container]/button[@text=‘Botton 2’]」、
「/form[@title=‘Form 1’]/container[@caption=Container]/button[@text=‘Botton 3’]」、
「/form[@title=‘Form 1’]/container[@caption=Container]/button[@text=‘Botton 1’]」、
「/form[@title=‘Form 1’]/container[@caption=Container]/button[@text=‘Botton 2’]」、
「/form[@title=‘Form 1’]/container[@caption=Container]/button[@text=‘Botton 3’]」、
という部品がXpath式として入っている。
この場合、同じ部品が複数入っているため、画面部品編集部２７０で、前述のトップ画面の各ボタンに対応しているか検証する。
【００６７】
図２６は、Xpath式の説明を示す図である。例えば、「/form[@title=‘Form 1’]/container[@caption=Container]/button[@text=‘Botton 1’]」というXpath式とトップ画面とにおいて、Xpath式の左部がトップ画面の全体のフォームに、Xpath式の中央部がトップ画面の最上列に、Xpath式の右部が最上列の内の左端に、それぞれ対応する。
即ち、「/form[@title=‘Form 1’]」は、トップ画面の外側のフォームを表す。「/container[@caption=Container]」は、最上部のナビゲーション系のかたまりを表す。「/button[@text=‘Botton 1’]」は、ナビゲーションボタンを表す。
【００６８】
図２７は、画面部品編集部２７０により編集する様子を示す図である。作業者が、「/form[@title=‘Form 1’]/container[@caption=Container]/button[@text=‘Botton 1’]」をクリックすると、トップ画面の「ナビゲーションボタン」が発光する（例えば、赤くなる）。図２３に示すようにここでのテストシナリオは「テレビボタン」のテストシナリオであるので、同様に、「/form[@title=‘Form 1’]/container[@caption=Container]/button[@text=‘Botton 2’]」、「/form[@title=‘Form 1’]/container[@caption=Container]/button[@text=‘Botton 3’]」も検証して、「テレビボタン」に対応する画面部品がその中には無いことがわかったとする。誤検知が生じていることから、作業者は「テレビボタン」に対応させるため、トップ画面の「テレビボタン」をクリックすると、画面部品編集部２７０に「/form[@title=‘Form 1’]/container[@caption=Container2]/button[@text=‘Botton 1’]」が入る。このようにすることで、作業者が意図していた「テレビボタン」のXpath式である「/form[@title=‘Form 1’]/container[@caption=Container2]/button[@text=‘Botton 1’]」が画面部品格納部２６０に格納される。
【００６９】
図２８は、テスト対象操作部２８０による、トップ画面のテスト実行イメージを示す図である。図１９に示すテスト実行イメージに従って設定したものを点線内に示している。ここでの期待値は、「テレビ画面に遷移する」に対応する、テスト対象操作部２８０で認識される言語で記述される。点線内のテスト実行イメージは上から下へ実行される。
【００７０】
図２９は、前述のトップ画面のテスト実行により得られるテスト結果３２０である。図２９（１）が、画面部品編集部２７０で正しく編集し成功した場合のテスト結果であり、図２９（２）が、画面部品編集部２７０で編集せずに実行し失敗した場合のテスト結果である。
【００７１】
［他の実施形態］
以上のように、本出願において開示する技術の例示として、実施の形態１を説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き換え、付加、省略などを行った実施形態にも適用可能である。
【００７２】
以上において、実施形態を説明するために、添付図面および詳細な説明を提供した。したがって、添付図面および詳細な説明に記載された構成要素の中には、課題解決のために必須な構成要素だけでなく、上記技術を例示するために、課題解決のためには必須でない構成要素も含まれ得る。そのため、それらの必須ではない構成要素が添付図面や詳細な説明に記載されていることをもって、直ちに、それらの必須ではない構成要素が必須であるとの認定をするべきではない。
【符号の説明】
【００７３】
１０・・・テスト装置、２０・・・テストシナリオ生成部、３０・・・テスト情報抽出部、４０・・・テストデータ生成部、５０・・・テスト実行部、６０・・・第１の設計情報（設計情報Ａ）、７０・・・画面データ構造、８０・・・第２の設計情報（設計情報Ｂ）、９０・・・テスト結果、１００・・・画面データ構造読み取り部、１１０・・・条件生成部、１２０・・・動作抽出部、１３０・・・期待値抽出部、１４０・・・テストシナリオ格納部、１５０・・・テストシナリオ、１６０・・・設計情報Ｂ読み取り部、１７０・・・画面情報分割部、１８０・・・列情報分割部、１９０・・・テスト情報格納部、２００・・・テスト情報、２１０・・・テスト情報読み取り部、２２０・・・テストデータ生成部、２３０・・・テストデータ格納部、２４０・・・テストデータ、２５０・・・画面部品解析部、２６０・・・画面部品格納部、２７０・・・画面部品編集部、２８０・・・テスト対象操作部、２９０・・・テスト合否判定部、３００・・・テスト結果格納部、３１０・・・テスト対象、３２０・・・テスト結果、３３０・・・ナビゲーションボタン、３４０・・・お気に入りボタン、３５０・・・履歴ボタン、３６０・・・テレビボタン、３７０・・・ラジオボタン、３８０・・・インターネットボタン、３９０・・・電話ボタン、４００・・・メールボタン、４１０・・・ショートメッセージボタン。
【図１】
2020135292.tif 000003
【図２】
2020135292.tif 000004
【図３】
2020135292.tif 000005
【図４】
2020135292.tif 000006
【図５】
2020135292.tif 000007
【図６】
2020135292.tif 000008
【図７】
2020135292.tif 000009
【図８】
2020135292.tif 000010
【図９】
2020135292.tif 000011
【図１０】
2020135292.tif 000012
【図１１】
2020135292.tif 000013
【図１２】
2020135292.tif 000014
【図１３】
2020135292.tif 000015
【図１４】
2020135292.tif 000016
【図１５】
2020135292.tif 000017
【図１６】
2020135292.tif 000018
【図１７】
2020135292.tif 000019
【図１８】
2020135292.tif 000020
【図１９】
2020135292.tif 000021
【図２０】
2020135292.tif 000022
【図２１】
2020135292.tif 000023
【図２２】
2020135292.tif 000024
【図２３】
2020135292.tif 000025
【図２４】
2020135292.tif 000026
【図２５】
2020135292.tif 000027
【図２６】
2020135292.tif 000028
【図２７】
2020135292.tif 000029
【図２８】
2020135292.tif 000030
【図２９】
2020135292.tif 000031