(57)【特許請求の範囲】
【請求項１】
画面を構成する画面要素に対する操作内容を定義したコマンドを用いてテストスクリプトを生成し、前記テストスクリプトの再生により画面の動作テストを自動化するテスト支援装置であって、
画面要素に関する要素情報を取得する要素情報取得手段と、
前記要素情報の分類に基づいて、操作対象とする前記画面要素に対して実行可能な操作内容を一覧として表示処理する表示処理手段と、
前記表示処理手段により一覧として表示処理された操作内容から任意の操作内容の選択を受け付ける操作内容入力手段と、
前記操作内容入力手段により選択を受け付けた操作内容に基づいてコマンドの操作内容部を生成するコマンド生成手段と、を備え、
前記要素情報は、画面要素を識別する為に用いられる識別要素を含み、
前記表示処理手段は、操作対象とする画面要素に定義された１以上の識別要素を一覧として表示処理し、
前記表示処理手段により一覧として表示処理された識別要素から任意の識別要素の選択を受け付ける識別要素入力手段と、を更に備え、
前記コマンド生成手段は、前記識別要素入力手段により選択を受け付けた識別要素及び、識別要素に対して定義された要素値に基づいてコマンドの操作対象部を生成するテスト支援装置。
【請求項２】
前記表示処理手段は、操作対象とする画面要素の指定を画面上で受け付けることにより、前記操作内容及び前記識別要素を一覧として表示処理する請求項１に記載のテスト支援装置。
【請求項３】
前記コマンド生成手段は、前記コマンドの操作内容部及び、操作対象部の少なくとも一部を組み合わせた１以上のコマンドをコマンドセットとして予め記憶部に格納し、前記コマンドセットから任意のコマンドを選択することでコマンドを生成する請求項１又は請求項２に記載のテスト支援装置。
【請求項４】
前記要素情報取得手段により取得された要素情報において要素値が重複する場合、同一画面内において重複する要素値を検出し、各要素値に異なる識別子を対応付けて記憶部に格納する重複検出手段を備え、
前記コマンド生成手段は、前記重複検出手段により重複する要素値に紐づけられた識別子に基づいてコマンドの対象を決定し、前記識別子を一部として含む操作対象部を生成する請求項１〜請求項３の何れかに記載のテスト支援装置。
【請求項５】
複数の画面を遷移して操作を行う場合、各画面の画面要素が有する他の画面と重複しない要素値を指定することにより、操作対象となる画面を特定する画面決定手段を備える請求項１〜請求項４の何れかに記載のテスト支援装置。
【請求項６】
画面を構成する画面要素に対する操作内容を定義したコマンドを用いてテストスクリプトを生成し、前記テストスクリプトの再生により画面の動作テストを自動化するテスト支援装置であって、
画面要素に関する要素情報を取得する要素情報取得手段と、
前記要素情報の分類に基づいて、操作対象とする前記画面要素に対して実行可能な操作内容を一覧として表示処理する表示処理手段と、
前記表示処理手段により一覧として表示処理された操作内容から任意の操作内容の選択を受け付ける操作内容入力手段と、
前記操作内容入力手段により選択を受け付けた操作内容に基づいてコマンドの操作内容部を生成するコマンド生成手段と、を備え、
前記表示処理手段は、要素情報の分類ごとに設定された優先順位にしたがって前記操作内容を一覧として表示処理するテスト支援装置。
【請求項７】
前記表示処理手段は、前記操作内容入力手段により選択を受け付けた操作内容の回数に基づいて前記優先順位を決定する請求項６に記載のテスト支援装置。
【請求項８】
画面を構成する画面要素に対する操作内容を定義したコマンドを用いてテストスクリプトを生成し、前記テストスクリプトの再生により画面の動作テストを自動化するテスト支援プログラムであって、
コンピュータを、画面要素に関する要素情報を取得する要素情報取得手段と、
前記要素情報の分類に基づいて、操作対象とする前記画面要素に対して実行可能な操作内容を一覧として表示処理する表示処理手段と、
前記表示処理手段により一覧として表示処理された操作内容から任意の操作内容の選択を受け付ける操作内容入力手段と、
前記操作内容入力手段により選択を受け付けた操作内容に基づいてコマンドの操作内容部を生成するコマンド生成手段と、として機能させ、
前記要素情報は、画面要素を識別する為に用いられる識別要素を含み、
前記表示処理手段は、操作対象とする画面要素に定義された１以上の識別要素を一覧として表示処理し、
前記コンピュータを更に、前記表示処理手段により一覧として表示処理された識別要素から任意の識別要素の選択を受け付ける識別要素入力手段と、として機能させ、
前記コマンド生成手段は、前記識別要素入力手段により選択を受け付けた識別要素及び、識別要素に対して定義された要素値に基づいてコマンドの操作対象部を生成するテスト支援プログラム。
【請求項９】
画面を構成する画面要素に対する操作内容を定義したコマンドを用いてテストスクリプトを生成し、前記テストスクリプトの再生により画面の動作テストを自動化するテスト支援プログラムであって、
コンピュータを、画面要素に関する要素情報を取得する要素情報取得手段と、
前記要素情報の分類に基づいて、操作対象とする前記画面要素に対して実行可能な操作内容を一覧として表示処理する表示処理手段と、
前記表示処理手段により一覧として表示処理された操作内容から任意の操作内容の選択を受け付ける操作内容入力手段と、
前記操作内容入力手段により選択を受け付けた操作内容に基づいてコマンドの操作内容部を生成するコマンド生成手段と、として機能させ、
前記表示処理手段は、要素情報の分類ごとに設定された優先順位にしたがって前記操作内容を一覧として表示処理するテスト支援プログラム。
【請求項１０】
画面を構成する画面要素に対する操作内容を定義したコマンドを用いてテストスクリプトを生成し、前記テストスクリプトの再生により画面の動作テストを自動化するテスト支援方法であって、
画面要素に関する要素情報を取得する要素情報取得ステップと、
前記要素情報の分類に基づいて、操作対象とする前記画面要素に対して実行可能な操作内容を一覧として表示処理する表示処理ステップと、
前記表示処理ステップにより一覧として表示処理された操作内容から任意の操作内容の選択を受け付ける操作内容入力ステップと、
前記操作内容入力ステップにより選択を受け付けた操作内容に基づいてコマンドの操作内容部を生成するコマンド生成ステップと、をコンピュータが実行し、
前記要素情報は、画面要素を識別する為に用いられる識別要素を含み、
前記表示処理ステップは、操作対象とする画面要素に定義された１以上の識別要素を一覧として表示処理し、
前記表示処理ステップにより一覧として表示処理された識別要素から任意の識別要素の選択を受け付ける識別要素入力ステップと、を前記コンピュータが更に実行し、
前記コマンド生成ステップは、前記識別要素入力ステップにより選択を受け付けた識別要素及び、識別要素に対して定義された要素値に基づいてコマンドの操作対象部を生成するテスト支援方法。
【請求項１１】
画面を構成する画面要素に対する操作内容を定義したコマンドを用いてテストスクリプトを生成し、前記テストスクリプトの再生により画面の動作テストを自動化するテスト支援方法であって、
画面要素に関する要素情報を取得する要素情報取得ステップと、
前記要素情報の分類に基づいて、操作対象とする前記画面要素に対して実行可能な操作内容を一覧として表示処理する表示処理ステップと、
前記表示処理ステップにより一覧として表示処理された操作内容から任意の操作内容の選択を受け付ける操作内容入力ステップと、
前記操作内容入力ステップにより選択を受け付けた操作内容に基づいてコマンドの操作内容部を生成するコマンド生成ステップと、をコンピュータが実行し、
前記表示処理ステップは、要素情報の分類ごとに設定された優先順位にしたがって前記操作内容を一覧として表示処理するテスト支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画面を構成する画面要素に対する操作を定義したコマンドを用いてテストスクリプトを生成し、前記テストスクリプトの再生により画面の動作テストを自動化するテスト支援装置、テスト支援プログラム及び、テスト支援方法に関する。
【背景技術】
【０００２】
ウェブページのテストにおいて、ウェブページに対する操作内容をテストスクリプトとして記録しておき、記録されたテストスクリプトを再生することにより動作テストを自動化するＲＰＡ（Robotic Process Automation）技術が知られている。
【０００３】
また、対象となる画面におけるユーザの操作を記録することで、ＲＰＡにおけるテストスクリプトを自動生成する技術が知られている。従来、画面座標を用いることで、操作対象となる画面に配置される画面部品を特定し、テストスクリプトを自動的に生成していた。
【０００４】
しかしながら、画面座標は、ウェブページの表示サイズや、ディスプレイのサイズによって変化するため、テスト毎に新規のテストスクリプトを作成する必要があり手間が生じていた。
【０００５】
上述したような事情に鑑みて、特許文献１に記載のＷｅｂページテスト自動化装置は、操作部品の部品情報を用いて操作対象の部品を決定することが開示されている。また、部品情報が重複する場合、重複部品に対して一意となる部品ＩＤを追加し、部品ＩＤを用いて重複部品の識別を行い、操作対象となる部品を決定することが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−１０２６５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載のＷｅｂページテスト自動化装置では、ユーザの実行した部品操作を直接的にコマンドとして変換し、スクリプトファイルに記録していた。しかしながら、ユーザが誤った部品操作を行った場合もコマンドがスクリプトファイルに記録されてしまい、スクリプトファイルの修正などの手間が生じていた。
【０００８】
また、特許文献１に記載のＷｅｂページテスト自動化装置では、重複部品に一意となる部品ＩＤを追加し、重複部品を識別可能としている。しかしながら、Ｗｅｂページにおける部品数を増減する修正が生じた場合、全ての部品ＩＤにも変更が生じ、新たなスクリプトファイルを一から記録し直さなければならなかった。
【０００９】
また、Ｗｅｂページなどの画面についてコーディングする際、画面部品として複数の識別属性の中から任意のものが選択され、定義される。識別属性は、コードの可読性及びデザイン変更への耐性などの観点から、統一された方針にしたがって選択されることが好ましいとされている。自動テストに用いるスクリプトについても上記と同様の観点から統一された方針にしたがって、任意の識別属性を選択してスクリプトを生成することが好ましいが、従来のスクリプト記録に関する技術において識別属性の選択を好適に支援するものはなかった。
【００１０】
上記のような実状に鑑みて、本発明は、画面を構成する画面要素に対する操作を定義したコマンドを用いて正確かつ効率的にテストスクリプトを生成することができるテスト支援装置を提供することを解決すべき課題とする。
【課題を解決するための手段】
【００１１】
上記課題を解決する為に、本発明は、画面を構成する画面要素に対する操作内容を定義したコマンドを用いてテストスクリプトを生成し、前記テストスクリプトの再生により画面の動作テストを自動化するテスト支援装置であって、画面要素に関する要素情報を取得する要素情報取得手段と、前記要素情報の分類に基づいて、操作対象とする前記画面要素に対して実行可能な操作内容を一覧に表示処理する表示処理手段と、前記表示処理手段により一覧に表示処理された操作内容から任意の操作内容の選択を受け付ける操作内容入力手段と、前記操作内容入力手段により選択を受け付けた操作内容に基づいてコマンドの操作内容部を生成するコマンド生成手段と、を備える。
【００１２】
このような構成とすることで、ユーザは操作内容の一覧から任意の操作内容を選択することができ、誤操作により間違ったコマンドが生成されることを防止することができる。また、画面要素に対して実行可能な操作内容が一覧に表示されることで、テストが必要な操作内容を全て確認することができ、テスト漏れを防止することができる。
【００１３】
本発明の好ましい形態では、前記要素情報は、画面要素を識別する為に用いられる識別要素を含み、前記表示処理手段は、操作対象とする画面要素に定義された１以上の識別要素を一覧に表示処理し、前記表示処理手段により一覧に表示処理された識別要素から任意の識別要素の選択を受け付ける識別要素入力手段と、前記コマンド生成手段は、前記識別要素入力手段により選択を受け付けた識別要素及び、識別要素に対して定義された要素値に基づいてコマンドの操作対象部を生成する。
このような構成とすることで、識別要素の選択により正確な操作対象を指定することができる。また、定義された識別要素が一覧表示されることで、ユーザに対して識別要素の定義漏れを認識させることができる。
【００１４】
本発明の好ましい形態では、前記表示処理手段は、操作対象とする画面要素の指定を画面上で受け付けることにより、前記操作内容及び前記識別要素を一覧に表示処理する。
このような構成とすることで、ユーザによる画面要素に対する操作が即座にスクリプトとして記録されてしまうことを防止し、操作内容及び識別要素の一覧から任意のものを正確に選択させることができる。
【００１５】
本発明の好ましい形態では、前記コマンド生成手段は、前記コマンドの操作内容部及び、操作対象部の少なくとも一部を組み合わせた１以上のコマンドをコマンドセットとして予め記憶部に格納し、前記コマンドセットから任意のコマンドを選択することでコマンドを生成する。
このような構成とすることで、コマンドセットを選択することにより効率よくコマンドを生成することができる。
【００１６】
本発明の好ましい形態では、前記表示処理手段は、要素情報の分類ごとに設定された優先順位にしたがって前記操作内容を一覧に表示処理する。
このような構成とすることで、ユーザに対して優先順位の高い操作内容を判別しやすく提示することができる。
【００１７】
本発明の好ましい形態では、前記表示処理手段は、前記操作内容入力手段により選択を受け付けた操作内容の回数に基づいて前記優先順位を決定する。
このような構成とすることで、選択頻度の高い操作内容を優先的にユーザに提示することができる。
【００１８】
本発明の好ましい形態では、前記要素情報取得手段により取得された要素情報において要素値が重複する場合、同一画面内において重複する要素値を検出し、各要素値に異なる識別子を対応付けて記憶部に格納する重複検出手段を備え、前記コマンド生成手段は、前記重複検出手段により重複する要素値に紐づけられた識別子に基づいてコマンドの対象を決定し、前記識別子を一部として含む操作対象部を生成する。
このような構成とすることで、要素値が重複する場合であっても、適切な画面要素を指定してコマンドを生成することができる。
【００１９】
本発明の好ましい形態では、複数の画面を遷移して操作を行う場合、各画面の画面要素が有する他の画面と重複しない要素値を指定することにより、操作対象となる画面を特定する操作対象画面決定手段を備える。
このような構成とすることで、画面のＵＲＬ（Uniform Resource Locator）やタイトルが重複する場合であっても、画面要素に含まれる要素値から操作対象となる画面を特定することができる。
【００２０】
本発明は、画面を構成する画面要素に対する操作内容を定義したコマンドを用いてテストスクリプトを生成し、前記テストスクリプトの再生により画面の動作テストを自動化するテスト支援プログラムであって、コンピュータを、画面要素に関する要素情報を取得する要素情報取得手段と、前記要素情報の分類に基づいて、操作対象とする前記画面要素に対して実行可能な操作内容を一覧に表示処理する表示処理手段と、前記表示処理手段により一覧に表示処理された操作内容から任意の操作内容の選択を受け付ける操作内容入力手段と、前記操作内容入力手段により選択を受け付けた操作内容に基づいてコマンドの操作内容部を生成するコマンド生成手段と、として機能させる。
【００２１】
本発明は、画面を構成する画面要素に対する操作内容を定義したコマンドを用いてテストスクリプトを生成し、前記テストスクリプトの再生により画面の動作テストを自動化するテスト支援方法であって、画面要素に関する要素情報を取得する要素情報取得ステップと、前記要素情報の分類に基づいて、操作対象とする前記画面要素に対して実行可能な操作内容を一覧に表示処理する表示処理ステップと、前記表示処理手段により一覧に表示処理された操作内容から任意の操作内容の選択を受け付ける操作内容入力ステップと、前記操作内容入力手段により選択を受け付けた操作内容に基づいてコマンドの操作内容部を生成するコマンド生成ステップと、をコンピュータが実行する。
【発明の効果】
【００２２】
本発明によれば、画面を構成する画面要素に対する操作を定義したコマンドを用いて正確かつ効率的にテストスクリプトを生成し、テストを実行するテスト支援装置を提供することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施形態における、テスト支援装置のハードウェア構成図を示す。
【図２】本発明の実施形態における、テスト支援装置の機能ブロック図を示す。
【図３】本発明の実施形態における、コマンドの構文例を示す図である。
【図４】本発明の実施形態における、テストの対象となる画面の一例を示す。
【図５】本発明の実施形態における、テストの対象となる画面のＨＴＭＬの一例を示す。
【図６】本発明の実施形態における、テストスクリプトの作成の流れを示すフローチャートである。
【図７】本発明の実施形態における、要素情報テーブルを示す。
【図８】本発明の実施形態における、コマンドの生成する流れを説明する図である。
【図９】本発明の実施形態における、テストスクリプトの表示画面の一例を示す。
【発明を実施するための形態】
【００２４】
以下、図面を用いて、本発明の実施形態に関するテスト支援装置について説明する。なお、以下に示す実施形態は本発明の一例であり、本発明を以下の実施形態に限定するものではなく、特許請求の範囲に記載された範囲内において適宜変更が可能である。
【００２５】
本実施形態では、テスト支援装置及び、サーバ装置を含むテスト支援システムの構成、動作等について説明するが、同様の構成の方法、コンピュータプログラム、記録媒体等も、同様の作用効果を奏することができる。この記録媒体を用いれば、例えばコンピュータに前記プログラムをインストールすることができる。ここで、前記プログラムを記憶した記録媒体は、例えばＣＤ−ＲＯＭ等の非一過性の記録媒体であっても良い。
【００２６】
本実施形態に係るテスト支援装置は、コマンドを用いて作成されたテストスクリプトの再生により画面の動作テストを自動化するものである。ここでいう画面とは、ウェブページにおける画面やアプリケーションにおける画面などディスプレイを介してユーザに対して表示されるＵＩ（User Interface）全般を意味する。本実施形態において、画面は、ＨＴＭＬ（Hyper Text Markup Language）、ＸＭＬ（Extensible Markup Language）、ＣＳＳ（Cascading Style Sheets）などのコードなどに基づいて表示処理され、画面の構成要素として、ヘッダー、フッター、ツールバー及び、コンテンツエリアなどを備える。特に、本実施形態では、主としてコンテンツエリアに含まれる入力フォーム、ボタン、テキスト、画像、ファイル等について、画面を構成する画面要素の例として説明する。
【００２７】
テスト支援装置１は図１に示すように、データ通信機能を有し、ハードウェア及び、機能の構成要素を含んでおり、パーソナルコンピュータ、スマートフォン、タブレット端末等のコンピュータ端末を用いることができる。テスト支援装置１は、ハードウェア構成要素として、演算装置（ＣＰＵ（Central Processing Unit））１１、主記憶装置（ＲＡＭ(Random Access Memory)）１２とを備える。また、テスト支援装置１は、ＯＳ（Operating System）、アプリケーションプログラム、及び各種情報（データを含む）を書換え可能に格納するＨＤＤやＳＳＤ、フラッシュメモリ等の補助記憶装置１５と、通信制御部１３と、ＮＩＣ（Network Interface Card）などの通信インタフェース（ＩＦ）部１４と、表示制御部１６と、表示部１７と、マウス、タッチパネル、キーボードなどの情報入力・指定部１８などと、を更に備える。なお、表示部１７は、ディスプレイやタッチパネル等により構成され、画面のタッチ操作などにより情報入力・指定部１８における一部の機能を実現できるようにしてもよい。
【００２８】
図２は、本実施形態に係るテスト支援装置１の機能ブロック図を示す。テスト支援装置１は、図２に示すように、機能構成要素として、要素情報取得手段１０１、表示処理手段１０２、操作内容入力手段１０３、識別要素入力手段１０４、コマンド生成手段１０５、重複検出手段１０６、画面決定手段１０７、記憶部１０８を備える。
【００２９】
要素情報取得手段１０１は、テスト支援装置１においてテスト対象とする画面を構成する画面要素に関する要素情報を取得し、記憶部１０８に格納する。表示処理手段１０２は、要素情報取得手段１０１により取得された要素情報に基づいて、画面要素に対して実行可能な操作内容と、画面要素に定義された１以上の識別要素と、を一覧として表示処理する。表示部１７は、表示処理手段１０２により表示処理された表示処理結果を取得し、表示処理結果に基づいて画面を表示する。
【００３０】
操作内容入力手段１０３は、表示処理手段１０２により一覧として表示処理された操作内容から任意の操作内容の選択を受け付ける。また、識別要素入力手段１０４は、表示処理手段１０２により一覧として表示処理された識別要素から任意の識別要素の選択を受け付ける。コマンド生成手段１０５は、操作内容入力手段１０３及び識別要素入力手段１０４により選択を受け付けた操作内容と識別要素に基づいて、コマンドを生成する。
【００３１】
図３は、本実施形態において用いられるコマンドの構文の一例を示す。コマンドの構文は、図３（ａ）に示すように、画面要素に対する操作内容を示す操作内容部Ｃ１０と、画面要素を特定する情報を示す操作対象部Ｃ２０と、を備える。操作対象部Ｃ２０は、画面要素を識別する為に用いられる識別要素を指定する識別要素指定部Ｃ２１と、識別要素指定部Ｃ２１において指定された識別要素に定義された要素値を指定する要素値指定部Ｃ２２と、を備える。
【００３２】
操作内容部Ｃ１０における操作内容には、画面要素に対するクリックやテキスト入力などデータ入力に関する操作と、ブラウザ、ウィンドウ、タブを指定することで操作対象となる画面を決定する操作と、テスト用データの収集、及びテスト用データの比較・検証を実行する操作などと、を備える。
【００３３】
本実施形態において、識別要素は、対象となる画面を構成するＨＴＭＬ等のコードから取得されるｎａｍｅ属性、ｉｄ属性、ｖａｌｕｅ属性、ｃｌａｓｓ属性、ＣｓｓＳｅｌｅｃｔｏｒ、Ｘｐａｔｈなどである。識別要素は、ユーザによって各画面要素に対して任意に定義されるものである。また、要素値は、識別要素に対応する変数であり、ｎａｍｅ属性、ｉｄ属性、ｖａｌｕｅ属性、ｃｌａｓｓ属性においては、属性値を示す。ＣｓｓＳｅｌｅｃｏｔｒ及びＸｐａｔｈは、上述の属性値を用いた表現や、コードのタグと組み合わせた表現により、画面要素を一意に識別できる要素値を備える。
【００３４】
また、コマンドは、画面要素に対する入力値が含まれる場合、図３（ｂ）に示すように入力値を示す変数部Ｃ３０を備えてもよい。入力値は、例えば、テキストボックスにテキスト入力するときの文字列を示す。また、操作対象部Ｃ２０は、同一画面の同一画面要素に対して同一の要素値が定義されている場合、識別子を示すインデックス部Ｃ２３を備える。インデックス部Ｃ２３の識別子は、重複する画面要素を識別する為に要素値に紐づけられる情報であり、予め定められた規則にしたがって付与される。
【００３５】
図３（ａ）のコマンドは、識別要素がｃｌａｓｓ属性であり、要素値としてｃｌａｓｓ＿ｐｒｉｃｅが与えられた画面要素に対して、クリックを実行する、という操作を示す。また、図３（ｂ）のコマンドは、識別要素がｃｌａｓｓ属性であり、要素値としてｃｌａｓｓ＿ｐｒｉｃｅが与えられた画面要素のうち識別子として２が付与されたものに対して、入力値として「８０」を入力する、という操作を示す。
【００３６】
コマンドの操作内容部Ｃ１０及び、識別要素指定部Ｃ２１を組み合わせた１以上のコマンドは、コマンドセットとして予め記憶部１０８に格納される。コマンドセットは、ユーザによって任意の組み合わせにより記憶部１０８に格納されてもよい。なお、操作内容部Ｃ１０のコマンドのみをコマンドセットとして記憶部１０８に格納されてもよい。
【００３７】
コマンド生成手段１０５は、コマンドセットから任意のものの選択を受け付けることで、コマンドを生成する。なお、コマンドセットからコマンドの一部を生成した場合、ユーザによる直接入力により残りのコマンドが生成される。
【００３８】
重複検出手段１０６は、要素情報取得手段１０１により取得された要素情報において要素値が重複する場合、同一画面内において重複する要素値を検出し、各要素値に異なる識別子を対応付けて記憶部１０８に格納する。重複検出手段１０６により要素値に対応付けられた識別子は、上述したインデックス部Ｃ２３における識別子を示す。
【００３９】
画面決定手段１０７は、複数の画面を遷移して操作される場合、各画面の画面要素が有する他の画面と重複しない要素値を指定することにより、操作対象となる画面を特定する。
【００４０】
図４は、テスト支援装置１によりテストを自動化する対象となる画面の一例を示す。宿泊予約画面Ｗ１は、タイトルＷ１１、ＵＲＬＷ１２、ヘッダーＷ１３、名前Ｗ１４、目的Ｗ１５、宿泊者数Ｗ１６、日程Ｗ１７、食事Ｗ１８、次へボタンＷ１９を備える。宿泊予約画面Ｗ１において、次へボタンＷ１９が操作されることにより予約確認画面Ｗ２に遷移する。予約確認画面Ｗ２は、タイトルＷ２１、ＵＲＬＷ２２、ヘッダーＷ２３、予約内容表示部Ｗ２４、戻るボタンＷ２５、予約ボタンＷ２６を備える。戻るボタンＷ２５が操作されることにより宿泊予約画面Ｗ１に遷移し、予約ボタンＷ２６が操作されることにより、予約内容表示部Ｗ２４の内容は、所定のアドレスに送信される。
【００４１】
図５は、図４の宿泊予約画面Ｗ１を構成する画面要素に関する要素情報を定義する定義画面Ｗ３の一例を示す。本実施形態では、定義画面Ｗ３は、宿泊予約画面Ｗ１をＨＴＭＬにより構成した例を示す。ヘッダー部Ｗ３１は、宿泊予約画面Ｗ１のヘッダーＷ１３に対応し、ヘッダーを表示処理させる。要素情報部Ｗ３２は、宿泊予約画面Ｗ１の名前Ｗ１４に対応し、テキストボックスを表示処理させる。なお、要素情報部Ｗ３２は、１つのみ示したが、目的Ｗ１５、宿泊者数Ｗ１６、日程Ｗ１７、食事Ｗ１８、次へボタンＷ１９に対応するだけ複数存在し、ラジオボタン、プルダウンメニュー、カレンダー、ボタンなどの入力フォームをそれぞれ表示処理させる。
【００４２】
要素情報部Ｗ３２は、要素情報として、画面要素の分類及び、画面要素を識別する為に用いられる識別要素及び、要素値を少なくとも含む。本実施形態において、画面要素の分類は、フォームの種類を示す情報であり、ＨＴＭＬではｔｙｐｅ属性（図４におけるtype=”text”のtext）として定義される。なお、画面要素の分類は、ｔｙｐｅ属性に加えて、<input>や<button>などのタグを参照することにより定義されてもよい。また、画面要素の分類の一例として、テキストボックス、ラジオボタン、プルダウンメニュー、チェックボックス、サブミットボタンなどが挙げられるが、これらに限定されるものではない。
【００４３】
本実施形態において、識別要素は、ｉｄ属性、ｃｌａｓｓ属性、ｎａｍｅ属性、ｖａｌｕｅ属性などの識別属性と、ＣｓｓＳｅｌｅｃｔｏｒ、Ｘｐａｔｈなどとを含む。識別要素は、上述したものに限定されず、独自に定義された識別子や名前、ＤＯＭ（Document Object Model）、テキストパターン等を用いてもよい。
【００４４】
本実施形態において、要素値は、ｉｄ属性、ｃｌａｓｓ属性、ｎａｍｅ属性、ｖａｌｕｅ属性に定義された属性値（図５におけるid=”id_a”のid_aなど）を示す。定義画面Ｗ３の例において、Ｘｐａｔｈは、要素値として/html/body/p/inputを備える。
【００４５】
図６は、本実施形態において、画面の動作テストを実行する処理の流れを示すフローチャートである。以下、図２〜図９を参酌し、本実施形態に係るテスト支援装置１の処理について説明する。
【００４６】
はじめに、テスト支援装置１において、テスト支援プログラムが起動される。Ｓ１０１において、画面決定手段１０７は、動作テストの対象となる画面を特定する為の情報の入力を受け付ける。本実施形態において、画面を特定する為の情報として、ＵＲＬ、タイトル、要素値の何れかが入力される。画面決定手段１０７は、ＵＲＬＷ１２を介してＵＲＬの入力を受け付けると、Ｓ１０２において、入力されたＵＲＬに基づいて対象となる画面を特定し、表示処理する。コマンド生成手段１０５は、ＵＲＬが入力されると、入力されたＵＲＬの画面を開くコマンドを生成する。
【００４７】
宿泊予約画面Ｗ１の次へボタンＷ１９の押下により予約確認画面Ｗ２に遷移するとき、画面決定手段１０７は、初めに遷移先のＵＲＬを取得し、取得したＵＲＬに基づいて対象となる画面を特定し、表示処理する。画面決定手段１０７は、遷移先のＵＲＬが遷移前の画面のＵＲＬと重複する場合、遷移先の画面のタイトルを取得し、タイトルに基づいて対象となる画面を特定する。画面決定手段１０７は、更に遷移先のタイトルが重複する場合、遷移先の画面要素が備える他の画面と重複しない要素値を取得し、要素値に基づいて対象となる画面を特定する。なお、画面の遷移は、例えば、画面要素に含まれるハイパーリンクなどによって、実行されるものである。
【００４８】
また、コマンド生成手段１０５は、画面が遷移する際、画面遷移に関する操作内容（ＳｗｉｔｃｈＴａｂ、ＳｗｉｔｃｈＦｒａｍｅなど）に基づいて操作内容部Ｃ１０を生成し、画面決定手段１０７により取得されたＵＲＬ、タイトル、要素値の何れかに基づいてコマンドの操作対象部Ｃ２０を生成する。本実施形態における画面遷移として、タブ切替、フレーム切替、ブラウザ切替、ウィンドウ切替などが挙げられる。画面決定手段１０７により画面決定に関するコマンドが生成されると、生成されたコマンドに含まれるＵＲＬ、タイトル、要素値に基づいて、続くコマンドの対象となる画面が決定される。
【００４９】
Ｓ１０１、Ｓ１０２において対象となる画面が決定されると、要素情報取得手段１０１は、対象となる画面のＨＴＭＬ等を取得し、更に、ＨＴＭＬに含まれる画面要素に関する要素情報を取得する。要素情報取得手段１０１により取得された要素情報は、記憶部１０８に格納される。図７は、図４の宿泊予約画面Ｗ１より取得された要素情報が格納される要素情報テーブルＴ１を示す。要素情報取得手段１０１は、画面要素において定義される全ての識別要素を要素情報テーブルＴ１として格納する。なお、要素情報取得手段１０１は、画面要素の指定を受けたとき、指定を受けた画面要素の要素情報を取得する構成であってもよい。
【００５０】
要素情報は、要素情報テーブルＴ１に示すように、対象画面Ｔ１１、画面要素Ｔ１２、分類Ｔ１３、識別要素Ｔ１４、インデックスＴ１５を備える。対象画面Ｔ１１は、タイトルを示しているが、ＵＲＬが含まれてもよい。本実施形態において、分類Ｔ１３は、ｔｙｐｅ属性により定義された属性値が格納される。識別要素Ｔ１４には、各識別要素の要素値が格納される。重複検出手段１０６は、要素情報取得手段１０１により取得された要素情報において同一画面内に含まれる重複する要素値を検出し、重複する各要素値に異なる識別子を紐づけてインデックスＴ１５に格納する。要素情報テーブルＴ１において、「目的」に含まれる２つの画面要素は、それぞれｎａｍｅ属性の要素値（name_contact）が重複している。このような重複に対して、重複検出手段１０６は、識別子として１及び２をそれぞれ紐づけることで、操作対象部Ｃ２０においてｎａｍｅ属性が入力された場合であっても対象となる画面要素を識別可能となる。
【００５１】
続くＳ１０３において、操作画面は、画面を構成する画面要素の指定をユーザより受け付ける。画面要素の指定は、例えば、画面要素にマウスのカーソルを近づける操作や、カーソルを近づけたうえでクリックする操作などにより実行される。要素情報取得手段１０１は、予め要素情報テーブルＴ１として格納した要素情報から、指定を受けた画面要素に関する要素情報を取得する。なお、要素情報取得手段１０１は、指定を受けた画面要素に関する要素情報をＨＴＭＬから取得する構成であってもよい。
【００５２】
図８（ａ）は、図４の宿泊予約画面Ｗ１において、画面要素として名前Ｗ１４を指定されたときの続く表示処理について説明する図である。表示処理手段１０２は、ユーザより画面要素の指定を受けた要素情報の分類Ｔ１３に基づいて、操作対象とする画面要素に対して実行可能な操作内容を操作内容一覧Ｗ１４１として表示処理する。図８（ａ）の例において、名前Ｗ１４の分類Ｔ１３は、テキストボックスを示す「ｔｅｘｔ」であり、実行可能な操作内容として、画面要素に対してテキスト入力を実行する「ｉｎｐｕｔ」、画面要素に対してクリック操作を実行する「Ｃｌｉｃｋ」などが一覧に表示処理されている。例えば、画面要素の分類Ｔ１３が、ラジオボタンを示す「ｒａｄｉｏ」の場合、テキスト入力は実行できないため、操作内容として「ｉｎｐｕｔ」は表示されない。
【００５３】
画面要素の分類Ｔ１３に対して実行可能な操作内容は、予め記憶部１０８に格納される。また、要素情報の各分類Ｔ１３には、予め表示処理する操作内容の優先順位が設定されている。優先順位は、画面要素の分類Ｔ１３に対して実行される可能性が高い操作内容を示すものである。
【００５４】
Ｓ１０４において、操作内容入力手段１０３は、表示処理手段１０２により表示処理された操作内容一覧Ｗ１４１から任意の操作内容の選択を受け付ける。なお、操作内容入力手段１０３により選択された操作内容の回数を記憶部１０８に格納し、操作内容の優先順位は、記憶部１０８に格納された操作内容の回数に基づいて決定される構成とすることが好ましい。表示処理手段１０２は、要素情報の分類Ｔ１３ごとに設定された優先順位にしたがって、操作内容一覧Ｗ１４１の並び順を決定し、表示処理する。
【００５５】
操作内容入力手段１０３により任意の操作内容が選択されると、表示処理手段１０２は、操作対象とする画面要素に定義された１以上の識別要素を識別要素一覧Ｗ１４２として操作内容一覧Ｗ１４１に並列させて表示処理する。図８（ａ）の例において、名前Ｗ１４が備える識別要素Ｔ１４は、ｉｄ属性、ｖａｌｕｅ属性、ＣｓｓＳｅｌｅｃｔｏｒ及び、Ｘｐａｔｈであり、識別要素一覧Ｗ１４２は、要素情報テーブルＴ１において格納される識別要素Ｔ１４に基づいて表示処理される。なお、ＣｓｓＳｅｌｅｃｔｏｒ及び、Ｘｐａｔｈは、画面要素において必然的に定義される識別要素であるため、表示処理手段１０２は、少なくともＣｓｓＳｅｌｅｃｔｏｒ及び、Ｘｐａｔｈを識別要素一覧Ｗ１４２として表示処理することができる。
【００５６】
なお、識別要素に対しても優先順位が設定されてもよい。例えば、一般にｉｄ属性は、画面要素に対して一意に定義される識別要素であり、優先順位を高く設定することが好ましい。表示処理手段１０２は、優先順位に基づいて識別要素一覧Ｗ１４２の並び順を決定し、表示処理する。また、識別要素の優先順位は、識別要素入力手段１０４により選択された回数に基づいて決定されてもよい。
【００５７】
Ｓ１０５において、識別要素入力手段１０４は、表示処理手段１０２により識別要素一覧Ｗ１４２として一覧に表示処理された識別要素から任意の識別要素の選択を受け付ける。操作内容入力手段１０３及び識別要素入力手段１０４により選択を受け付けた操作内容及び識別要素は、コマンド生成手段１０５に対して出力される。
【００５８】
操作内容入力手段１０３により操作内容として「ｉｎｐｕｔ」が入力された場合、表示処理手段１０２は、図８（ｂ）に示すように、識別要素入力手段１０４により識別要素の選択を受け付けたのち、テキスト入力画面Ｗ１４３を表示処理する。テキスト入力画面Ｗ１４３は、例えば、宿泊予約画面Ｗ１においてポップアップ画面などとして表示処理される。テキスト入力画面Ｗ１４３は、テキスト入力部Ｗ１４４、ＯＫボタンＷ１４５、取消ボタンＷ１４６を備える。テキスト入力部Ｗ１４４を介して入力を受け付けたテキストは、ＯＫボタンＷ１４５の押下によって、入力値としてコマンド生成手段１０５に出力される。取消ボタンＷ１４６が押下されることにより、例えば、Ｓ１０３に戻って続く処理が実行される。
【００５９】
Ｓ１０６において、コマンド生成手段１０５は、操作内容入力手段１０３により選択を受け付けた操作内容に基づいてコマンドの操作内容部Ｃ１０を生成する。また、コマンド生成手段１０５は、識別要素入力手段１０４により選択を受け付けた識別要素に基づいて操作対象部Ｃ２０における識別要素指定部Ｃ２１を生成し、選択を受け付けた識別要素に対応する要素値に基づいて操作対象部Ｃ２０における要素値指定部Ｃ２２を生成する。また、コマンド生成手段１０５は、画面要素に対する入力値に基づいて変数部Ｃ３０を生成する。なお、コマンド生成手段１０５は、ｖａｌｕｅ属性の属性値を入力値として変数部Ｃ３０を生成してもよい。
【００６０】
なお、識別要素入力手段１０４により選択を受け付けた識別要素に対応する要素値に識別子が紐づけられている場合、コマンド生成手段１０５は、要素値に紐づけられた識別子に基づいて操作対象部Ｃ２０におけるインデックス部Ｃ２３を生成する。識別子が紐づけられていない場合又は、識別子が１の場合、コマンド生成手段１０５は、インデックス部Ｃ２３を生成しなくてもよい。
【００６１】
コマンド生成手段１０５により生成されたコマンドは、画面に対して操作された順序にしたがって、スクリプト画面Ｗ４に入力されていく。図９は、宿泊予約画面Ｗ１に対する操作に基づいて作成されたテストスクリプトを表示するスクリプト画面Ｗ４の画面例を示す。スクリプト画面Ｗ４は、スクリプト表示部Ｗ４１、コマンドセット表示部Ｗ４２、設定表示部Ｗ４３、保存ボタンＷ４４、再生ボタンＷ４５などを備える。
【００６２】
スクリプト表示部Ｗ４１は、コマンド生成手段１０５により生成されたコマンドを表示する。コマンドセット表示部Ｗ４２は、少なくともコマンドの操作内容部Ｃ１０を含むコマンドセットを表示する。コマンド生成手段１０５は、コマンドセット表示部Ｗ４２において選択を受け付けたコマンドを生成し、スクリプト表示部Ｗ４１に出力する。なお、コマンド生成手段１０５は、コマンドセット表示部Ｗ４２に表示されるコマンドをドラッグアンドドロップの操作により、スクリプト表示部Ｗ４１における任意の行に出力してもよい。
【００６３】
保存ボタンＷ４４は、ユーザによる操作を受け付け、スクリプト表示部Ｗ４１に表示されるテストスクリプトを例えばバッチファイルなどの形式で保存し、記憶部１０８に格納する。設定表示部Ｗ４３は、保存したバッチファイルや実行環境の設定を保存したファイルを表示し、ユーザより任意のファイルの選択を受け付けることで、選択されたファイルを開く。再生ボタンＷ４５は、対象のテストスクリプトを保存したファイルが開かれた段階で押下されることにより、テストスクリプトに基づいてテスト動作を実行する。これによって、ユーザが対象画面に対して行った操作が再現される。
【００６４】
テスト支援装置１は、テストスクリプトの実行結果をエビデンスとして記憶部１０８に格納する。また、テスト支援装置１は、例えば、記憶部１０８に格納したエビデンスと、任意の画面要素に対して異なる入力値を入力した場合に得られるエビデンスと、を比較することでエラー等を検証することができる。
【００６５】
本実施形態では、テスト支援装置１は、テスト支援プログラムをコンピュータ端末等にインストールすることにより機能を実現する。本発明の異なる実施形態として、テスト支援装置１は、ハードウェア構成要素（１１−１８）及び、データ通信機能、表示処理機能、データ処理機能などを備え、テスト支援プログラムをインストールしたサーバ装置２とデータ通信することにより、機能を実現する構成としてもよい。
【００６６】
なお、本実施形態において、コマンド生成手段１０５は、操作内容入力手段１０３及び識別要素入力手段１０４により選択を受け付けた操作内容及び要素情報に基づいてコマンドを自動で生成するが、ユーザの直接入力によりコマンドが生成されてもよい。
【符号の説明】
【００６７】
１  テスト支援装置
１１  演算装置（ＣＰＵ）
１２  主記憶装置（ＲＡＭ）
１３  通信制御部
１４  通信ＩＦ部
１５  補助記憶装置
１６  表示制御部
１７  表示部
１８  情報入力・指定部
１０１  要素情報取得手段
１０２  表示処理手段
１０３  操作内容入力手段
１０４  識別要素入力手段
１０５  コマンド生成手段
１０６  重複検出手段
１０７  画面決定手段
１０８  記憶部
２  サーバ装置
【要約】      （修正有）【課題】画面を構成する画面要素に対する操作を定義したコマンドを用いて正確かつ効率的にテストスクリプトを生成するテスト支援装置、テスト支援プログラム及び、テスト支援方法を提供する。【解決手段】テスト支援装置１は、要素情報取得手段１０１、表示処理手段１０２、操作内容入力手段１０３、識別要素入力手段１０４、コマンド生成手段１０５、重複検出手段１０６、画面決定手段１０７及び記憶部１０８を備える。要素情報取得手段は、画面要素に関する要素情報を取得する。表示処理手段は、要素情報の分類に基づいて、操作対象とする画面要素に対して実行可能な操作内容を一覧に表示処理する。操作内容入力手段は、表示処理手段により一覧に表示処理された操作内容から任意の操作内容の選択を受け付ける。コマンド生成手段は、操作内容入力手段により選択を受け付けた操作内容に基づいてコマンドの操作内容部を生成する。【選択図】図２【図１】
0006830701.tif 000002
【図２】
0006830701.tif 000003
【図３】
0006830701.tif 000004
【図４】
0006830701.tif 000005
【図５】
0006830701.tif 000006
【図６】
0006830701.tif 000007
【図７】
0006830701.tif 000008
【図８】
0006830701.tif 000009
【図９】
0006830701.tif 000010