JP2011048714A - テスト支援方法およびテスト支援装置 - Google Patents
テスト支援方法およびテスト支援装置 Download PDFInfo
- Publication number
- JP2011048714A JP2011048714A JP2009197625A JP2009197625A JP2011048714A JP 2011048714 A JP2011048714 A JP 2011048714A JP 2009197625 A JP2009197625 A JP 2009197625A JP 2009197625 A JP2009197625 A JP 2009197625A JP 2011048714 A JP2011048714 A JP 2011048714A
- Authority
- JP
- Japan
- Prior art keywords
- command
- scenario
- state
- physical
- execution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】GUIに依存しないコマンド体系で記述することにより、GUIの違いを意識する必要のないGUIを利用したソフトウェアのテストシナリオを提供すること。
【解決手段】グラフィカル・ユーザ・インターフェース(以下、GUIと略記する)を利用したソフトウェアのテストをコンピュータに実行させるためのものである。グラフィカル・ユーザ・インターフェースの指定状態を検出するコマンドを付加した共通様式のシナリオを、グラフィカル・ユーザ・インターフェースに応じた様式のコマンドに変更して、指示するステップと、グラフィカル・ユーザ・インターフェースの状態が指定状態であるか判断するステップと、判断するステップで、グラフィカル・ユーザ・インターフェースが指定状態にあるとコマンドを実行するステップとを含む。GUIの違いに依存しない共通書式でテストシナリオを記述してソフトウェアのテストを実行することができる。
【選択図】図2
【解決手段】グラフィカル・ユーザ・インターフェース(以下、GUIと略記する)を利用したソフトウェアのテストをコンピュータに実行させるためのものである。グラフィカル・ユーザ・インターフェースの指定状態を検出するコマンドを付加した共通様式のシナリオを、グラフィカル・ユーザ・インターフェースに応じた様式のコマンドに変更して、指示するステップと、グラフィカル・ユーザ・インターフェースの状態が指定状態であるか判断するステップと、判断するステップで、グラフィカル・ユーザ・インターフェースが指定状態にあるとコマンドを実行するステップとを含む。GUIの違いに依存しない共通書式でテストシナリオを記述してソフトウェアのテストを実行することができる。
【選択図】図2
Description
本願に開示の技術は、グラフィカル・ユーザ・インターフェースを利用したソフトウェアを検証するテスト支援方法およびテスト支援装置に関する。
近年、グラフィカル・ユーザ・インターフェース(以下、GUIと略記する)を利用したソフトウェアについては、種々の試みがなされている。たとえば、GUIを伴うアプリケーションのプログラムの作成工程からテスト工程までを支援し、一連のGUIアプリケーション開発を効率的に行うことを目的とする技術が知られている。また、処理プロセスの稼働時に実施されるべき画面操作を、コマンド形式のシナリオに従って処理プロセスと切り離して実現する技術が知られている。また、GUIに伴うアプリケーションを表すためにユーザによって定義される構造仕様ファイル、状態遷移仕様ファイル、および個別状態仕様ファイルに従ってテストシナリオを生成する技術が知られている(特許文献1〜3など)。
しかしながら、背景技術に例示された技術は、何れも、対象となるソフトウェアが利用するGUIに応じてカスタマイズされるものである。当該GUIに適合するシナリオ言語に合わせて構築されるからである。GUIに適合するシナリオ言語ごとに個別にシナリオをカスタマイズせざるを得ず問題である。
本願に開示される技術は、上記の課題に鑑み提案されたものである。GUIに依存しないコマンド体系で記述することにより、GUIの違いを意識する必要のないGUIを利用したソフトウェアのテスト支援方法およびテスト支援装置を提供することを目的とする。
本願に開示される技術に係るテスト支援方法は、グラフィカル・ユーザ・インターフェース(以下、GUIと略記する)を利用したソフトウェアのテストをコンピュータに実行させるためのものである。テスト支援方法では、グラフィカル・ユーザ・インターフェースの指定状態を検出するコマンドを付加した共通様式のシナリオを、グラフィカル・ユーザ・インターフェースに応じた様式のコマンドに変更して、指示するステップと、グラフィカル・ユーザ・インターフェースの状態が指定状態であるか判断するステップと、判断するステップで、グラフィカル・ユーザ・インターフェースが指定状態にあるとコマンドを実行するステップとを含む。
本願に開示の技術に係るテスト支援方法によれば、テスト対象のソフトウェアが利用するGUIが異なりGUIごとに稼働する操作記述の書式が異なる場合にも、GUIの違いに依存しない共通書式でテストシナリオを記述してソフトウェアのテストを実行することができる。GUIごとにテストシナリオをカスタマイズする必要がなく、GUIの違いを意識することなく共通の書式によりGUIを利用したソフトウェアのテストシナリオを作成することができる。
GUIを利用して動作するソフトウェアの実行指示は、マウスやキーボードで行われる。この場合、実行する際の条件や実行後の確認はGUI画面上の表示により行われることが通常である。また、マウスやキーボードによる実行指示は、GUI画面上のボタンやチェックボックス等を操作することにより行われる。これらの操作はGUI画面上の表示や入力方法に依存して行われる。このため、GUIソフトウェアをテストする際のテストシナリオを作成する場合には、GUIごとに画面表示または/および実行指示の入力方法が異なる場合に、GUIごとの操作記述の仕様に応じてテストシナリオを作成する必要がある。特に、複数の装置が連携して動作するGUIソフトウェアをテストする際、装置ごとGUIごとの操作内容を機械化して遠隔操作により同期実行させることは複雑な制御が伴う場合もあり容易ではない。すなわち、装置ごとGUIごとに制御方法およびその実行方法が異なる場合があり、更に、実行結果も、装置ごとGUIごとに異なる場合も考えられる。装置数が増加し各装置で稼働するGUIの種類が増えるに従い、実行方法が多様化し実行結果やGUIの状態の判断も多様化する。これらの個々の実行方法と状態判断に対応しなければならなくなる。テストシナリオによる装置間の連携動作の制御を効率よく行うことが要請されている。
図1は、複数の装置PC1(1−5)、PC2(1−5’)で稼働するGUIソフトウェアのテストを行う際の制御の流れを示す図である。
図1では、テスト対象として2つの装置PC1(1−5)、PC2(1−5’)でGUIソフトウェアが稼働する場合である。装置PC1(1−5)、PC2(1−5’)を含むシステムで稼働するGUIソフトウェアのテストは、テスト制御部(1−1)により制御される。
テスト制御部(1−1)は、GUIソフトウェアによる装置PC1(1−5)、PC2(1−5’)間の連携動作を制御するために連携実行制御部(1−3)を備えている。連携実行制御部(1−3)には、装置PC1(1−5)、PC2(1−5’)ごとに記述されたシナリオ(1−2)が入力され、連携実行制御部(1−3)からは、装置PC1(1−5)、PC2(1−5’)ごとの実行ログ(1−4)が出力される。
連携実行制御部(1−3)は、入力されたシナリオ(1−2)から、各装置PC1(1−5)、PC2(1−5’)の各々に適合したシナリオを選択して各装置PC1(1−5)、PC2(1−5’)に転送する。装置PC1(1−5)、PC2(1−5’)には、それぞれに適合したシナリオ1(1−6)、シナリオ2(1−6’)が転送される。転送されたシナリオ1(1−6)、シナリオ2(1−6’)は、それぞれ、実行制御部1(1−7)、実行制御部2(1−7’)で処理されてGUI1(1−8)、GUI2(1−8’)を操作する。実行結果は、GUI1(1−8)、GUI2(1−8’)からそれぞれ、実行制御部1(1−7)、実行制御部2(1−7’)を経て、実行ログ1(1−9)、実行ログ2(1−9’)として、連携実行制御部(1−3)に返送される。その後、実行ログ(1−4)として蓄積される。
ここで、GUI1(1−8)、GUI2(1−8’)は、図示するように、それぞれ異なる画面構成をしており、操作方法、実行方法、状態表示、状態判断等はGUIごとに異なるものとする。このため、それぞれのGUI1(1−8)、GUI2(1−8’)にそれぞれ入力されるシナリオ1(1−6)、シナリオ2(1−6’)は異なっており、また、出力される実行ログ1(1−9)、実行ログ2(1−9’)も異なっている。
図1の制御では、連携実行制御部(1−3)において、装置PC1(1−5)、PC2(1−5’)ごとに、異なるシナリオ1(1−6)、シナリオ2(1−6’)を送信し、異なる実行ログ1(1−9)、実行ログ2(1−9’)を取得するように制御しなければならない。また、テスト制御部(1−1)では、装置PC1(1−5)、PC2(1−5’)間の連携制御を行うために、装置ごとにシナリオの入力タイミングや実行結果の取得タイミングを適合させねばならない。図1の制御では、テスト時間を考慮して装置間の連携動作のタイミングを余裕のないタイミングに設定すると、様々な装置間の状態を把握しながら制御する必要があるため複雑になり、連携動作が実行できない場合が生じる。また、装置間の連携動作のタイミングに余裕を持たせると、テスト動作の遅延を招来して、必要以上にテスト時間がかかりすぎることになる。
図2に示す制御は、図1の一般的な制御に代えて、実施形態での制御の流れを示す図である。
図2の実施形態では、図1のテスト制御部(1−1)に代えてテスト制御部(2−1)を備えている。また、図1の装置PC1(1−5)、PC2(1−5’)に代えて装置PC1(2−5)、PC2(2−5’)を備えている。
テスト制御部(2−1)では、装置PC1(2−5)、PC2(2−5’)に依存しない書式で記述された論理シナリオ(2−2)が第1変換制御部(2−3)に入力される。第1変換制御部(2−3)からは、装置PC1(2−5)、PC2(2−5’)に依存しない書式で記述された論理実行ログ(2−4)が出力される。
また、図示しない装置PC2(2−5’)の内部構成と同様に、装置PC1(2−5)には、第2変換制御部(2−10)が、テスト制御部(2−1)の第1変換制御部(2−3)に接続される。第2変換制御部(2−10)は、実行制御部1(1−7)に接続される。実行制御部1(1−7)は、GUI1(1−8)に接続される。実行制御部1(1−7)とGUI1(1−8)とは図1の場合と同様である。
テスト制御部(2−1)には、装置PC1(2−5)、PC2(2−5’)の違いに依存しない論理シナリオ(2−2)が格納されている。論理シナリオ(2−2)は、装置の違いを吸収した書式により記述されるので、装置の別または/および装置で稼働するGUIの別によらず、GUI上での実行手順、GUIの状態判断、実行結果の取得などを統一的に記述することができる。論理シナリオ(2−2)は、複数の装置間または/およびGUI間での連携制御・同期実行を統一的に記述することができる。
論理シナリオ(2−2)は、第1変換制御部(2−3)により準物理シナリオに変換される。準物理シナリオは、装置または/およびGUIに適合した書式で記述されたテストシナリオである。GUI固有の書式である物理シナリオとは、装置または/およびGUI上の状態を把握し、取得されるGUIの状態を保持する機能を有する点で準物理シナリオと異なっている。準物理シナリオは、各装置に備えられている第2変換制御部(2−10)が受信する。第2変換制御部(2−10)では、準物理シナリオ中に記述されている状態把握の指示や状態取得の指示に従い、GUI上の状態の把握や取得〜保持が行われる。GUI上の状態の把握がされることにより、テスト制御部(2−1)によるテストシナリオの遠隔制御によって個々の装置または/およびGUI間での連携制御を確実に行うことができる。また、簡易に状態把握・取得〜保持を行うことができる。各装置における制御状態を簡易に管理することができ、GUI上の操作実行に不適格な状態や操作実行の失敗などを容易に検出することができる。準物理シナリオは、第2変換制御部(2−10)で物理シナリオに変換され、実行制御部1(1−7)に転送される。
図3に第1の実施形態の第1変換制御部(2−3)の構成を例示する。先ず、論理シナリオ(2−2)が論理シナリオ読出部(2−3a)に入力される。論理シナリオ(2−2)は、
論理コマンド:論理コマンド名(論理装置名:状態 パラメータ1・・・パラメータn)・・(1)
の書式を有している。論理シナリオ読出部(2−3a)は、論理コマンド(1)を取り込む。次に、論理シナリオ実行部(2−3b)において、論理コマンド(1)を、「論理コマンド名」、「論理装置名」、「状態」、「パラメータ1〜n」に分解する。これにより、論理コマンド名を解釈し、物理コマンドへの変換の準備をする。具体的には、「状態」の有無、「パラメータ1〜n」の数等をチェックする。
論理コマンド:論理コマンド名(論理装置名:状態 パラメータ1・・・パラメータn)・・(1)
の書式を有している。論理シナリオ読出部(2−3a)は、論理コマンド(1)を取り込む。次に、論理シナリオ実行部(2−3b)において、論理コマンド(1)を、「論理コマンド名」、「論理装置名」、「状態」、「パラメータ1〜n」に分解する。これにより、論理コマンド名を解釈し、物理コマンドへの変換の準備をする。具体的には、「状態」の有無、「パラメータ1〜n」の数等をチェックする。
ここで、「論理コマンド名」は、GUIソフトウェアの指示を装置やGUIの別に依存しない形式で記述したものである。指示とは、例えば、ボタンクリック、文字入力などである。「論理装置名」は、制御対象となる装置または/およびGUIを識別する論理値である。同一の装置で複数のGUIが稼働する場合は、GUIごとに異なる「論理装置名」が付与される。「状態」は、コマンドを実行するGUIの制御状態を示し、例えば、コマンドがボタンクリックであれば、そのボタンが存在する状態、またはそのボタンを含む画面が存在する状態を示す。コマンドを実行する際のGUIの状態を記述するものである。記述された「状態」においてコマンド実行が指示される。コマンド入力時に指定の「状態」になければ、シナリオの実行を中断してエラーメッセージ等を返す等の処理が行われる。変数を示す「パラメータ1〜n」は、コマンド実行時の各種の指示情報である。例えば、コマンドがボタンクリック(&CLK_BTN(後述))であれば、マウスボタンの場合には左/右の何れのボタンであるか、またシングルクリックであるかダブルクリックであるか等が指示される。また、コマンドが状態取得コマンド(&ST_SET等(後述))であれば、検出すべきGUI上の状態と、その状態が検出された場合に変数あるいは状態を示す文字列として設定することが指定される。
シナリオ論理/物理変換部(2−3c)では、論理コマンド(2−2)を、
準物理コマンド:物理コマンド名:状態 パラメータ1・・・パラメータn・・(2)
の書式に変換する。
準物理コマンド:物理コマンド名:状態 パラメータ1・・・パラメータn・・(2)
の書式に変換する。
具体的には、「論理装置名」を論理/物理変換テーブル(2−3f)から検索して、検索された「論理装置名」に対応する物理装置の「IPアドレス」、「GUIの物理コマンドおよびパラメータ群」を取得する。そして、「GUIの物理コマンドおよびパラメータ群」において、「論理コマンド名」に対応する「物理コマンド形式」を取得する。取得された「物理コマンド形式」に従い、準物理コマンド(2)を生成する。ここで、コマンドが状態取得コマンド(&ST_SET等(後述))である場合、GUI上の制御状態が検出すべき状態である場合に、状態設定するパラメータとして、識別子「ST」と状態変数あるいは状態を示す文字列とにより「ST:状態」なるパラメータが付与される。準物理コマンド(2)は、「IPアドレス」により指定された装置に送信される。
「IPアドレス」により指定された装置に送信された準物理コマンド(2)は各装置に備えられている第2変換制御部で物理コマンドに変換される。図4は、第1の実施形態の第2変換制御部の構成を示す。また、図4は装置PC1(2−5)について記載しているが他の装置についても同様である。
第2変換制御部(2−10)では、準物理コマンド(2)は物理シナリオ受信部(2−10a)で受信される。準物理コマンド(2)は物理シナリオ実行部(2−10b)に転送される。物理シナリオ実行部(2−10b)では、論理シナリオ実行部(2−3b)での場合と同様に、準物理コマンド(2)を各要素に分解する。「物理コマンド名」、「状態」、「パラメータ1〜n」である。これにより、物理コマンド名を解釈し、GUI上の「状態」を確認した上で物理コマンドに変換する準備をする。
状態管理判定部(2−10c)では、状態管理テーブル(2−10f)を参照して、準物理コマンド(2)から分解抽出された「状態」が状態管理テーブル(2−10f)に格納されている「状態」に一致するか否かが判断される。一致していれば「物理コマンド名」は実行可能なコマンドであると判断される。
状態管理判定部(2−10c)により実行可能であると判断されれば、準物理コマンド(2)は、
物理コマンド:物理コマンド名 パラメータ1・・・パラメータn・・(3)
の書式に変換され、実行制御部1(1−7)に転送される。その後、GUI1(1−8)にて実行される。実行結果は、物理コマンド(3)ごとに実行状態管理部(2−10d)において、実行結果の良否の情報が設定される。
物理コマンド:物理コマンド名 パラメータ1・・・パラメータn・・(3)
の書式に変換され、実行制御部1(1−7)に転送される。その後、GUI1(1−8)にて実行される。実行結果は、物理コマンド(3)ごとに実行状態管理部(2−10d)において、実行結果の良否の情報が設定される。
コマンドが状態取得コマンド(&ST_SET等(後述))である場合、準物理コマンド(2)においては、「ST:状態」なるパラメータが付与されている。GUI1(1−8)において正常に実行がなされると、「ST:状態」なるパラメータに応じて、実行状態管理部(2−10d)において状態管理テーブル(2−10f)に「ST:状態」なるパラメータで指定された「状態」が保持される。
一方、状態管理判定部(2−10c)により、準物理コマンド(2)から分解抽出された「状態」が状態管理テーブル(2−10f)に格納されている「状態」と不一致であると判断されると、「物理コマンド名」は実行不可であると判断される。この場合、状態管理判定部(2−10c)は、実行不可の情報を実行状態管理部(2−10d)に設定する。
状態管理判定部(2−10c)では、「ST:状態」なるパラメータにより指定される「状態」を状態管理テーブル(2−10f)に保持すると共に、コマンドが実行された場合の実行結果の良否情報、コマンドの実行条件であるGUI上の状態の不一致による実行不可情報が収集される。収集された情報は、実行ログ、画面イメージ、画面情報ファイル等の実行に係る情報と合わせて、実行ログ送信部(2−10e)を介して第1変換制御部(2−3)の実行ログ論理/物理変換部(2−3d)(図3)に送信される。
GUI上の制御状態は、状態取得コマンド(&ST_SET等(後述))により取得されると、状態管理テーブル(2−10f)に状態変数あるいは制御状態を示す文字列の形態で保持される。これにより、コマンド実行の際にGUI上の制御状態を判断する必要のある場合、コマンドの実行ごとに制御状態を問い合わせる処理を行う必要がなくなる。単に、状態管理テーブル(2−10f)に対象となる状態変数あるいは制御状態を示す文字列が保持されているか否かの問い合わせを行えばよい。制御状態の確認処理といった処理の煩雑さを解消してテストシナリオを簡略化することができる。更に、状態確認を行う際の処理時間の短縮を図ることができる。一連のコマンド列を遅滞なく実行することができる。
図3に戻って、第2変換制御部(2−10)から送信されてきた、物理実行ログは、実行ログ論理/物理変換部(2−3d)により受信される。受信された物理実行ログは装置ごとに異なる書式で記載されている。このうち、コマンドごとの実行結果または/およびテスト結果(”TRUE”、”FALSE”、”Got result:OK”、”Got result:ERROR”)については、装置やGUIに依存しない書式である論理実行ログ(”OK”、”ERROR”)に変換される。変換テーブルは論理/物理変換テーブル(2−3f)に格納されている。その他の物理実行ログは変換されない。変換された論理実行ログ(”OK”、”ERROR”)および装置やGUIごとの書式で記述された物理実行ログは、実行ログ記録部(2−3e)により、論理実行ログ(2−4)(図2)として記録される。また、論理実行ログ(”OK”、”ERROR”)は、論理シナリオ実行部(2−3b)にフィードバックされる。コマンドごとの実行結果または/およびテスト結果に応じて、後続のテストシナリオを制御することができる。
図5には、第2の実施形態の第1変換制御部の構成を例示する。図6は、第2の実施形態の第2変換制御部の構成を例示する。図5は、図4の第2変換制御の状態管理判定部(2−10c)、状態管理テーブル(2−10f)、実行状態管理部(2−10d)をPC1側である第2変換制御部ではなく、テスト制御部(2−1)に移した例示である。図5、6では、図3と同じ構成のものは同じ番号で動作説明する。
また、図5の状態管理テーブル(2−3h)は、PCごとに対応したテーブルを備えている。論理シナリオ(2−2)は、複数の論理コマンドを備え、その論理コマンドが論理コマンド名(論路装置名:状態 パラメータ1・・・パラメータn)の書式を有している。論理シナリオ読出部(2−3a)は、論理シナリオ(2−2)から論理コマンドを順次読み取る。論理シナリオ実行部(2−3b)は、論理シナリオ読出部(2−3a)で読み取った論理コマンドを「論理コマンド名」、「論理装置名」、「状態」、「パラメータ1〜n」に分解する。この分解により、論理コマンド名を解釈し、物理コマンドへの変換の準備をする。具体的には、「状態」の有無、「パラメータ1〜n」の数等をチェックする。シナリオ論理/物理変換部(2−3c)は、論理コマンドを、準物理コマンド(物理コマンド名:状態 パラメータ1・・・パラメータn)という書式に変換し、状態管理判定部(2−3g)と図6の物理シナリオ受信部(2−10a)に出力する。
具体的には、「論理装置名」を論理/物理変換テーブル(2−3f)から検索して、検索された「論理装置名」に対応する物理装置の「IPアドレス」、「GUIの物理コマンドおよびパラメータ群」を取得する。そして、「GUIの物理コマンドおよびパラメータ群」において、「論理コマンド名」に対応する「物理コマンド形式」を取得する。取得された「物理コマンド形式」に従い、準物理コマンドを生成する。ここで、コマンドが状態取得コマンド(&ST_SET等(後述))である場合、GUI上の状態が検出すべき状態である場合に、状態設定するパラメータとして、識別子「ST」と変数あるいは状態を示す文字列とにより「ST:状態」なるパラメータが付与される。
図6の物理シナリオ実行部(2−10b)は、物理シナリオ受信部(2−10a)で受けた準物理コマンドを物理コマンドに変換し、実行制御部(1−7)へ送信する。実行制御部(1−7)は、物理コマンドをGUIソフトウェア(1−8)で実行させる。実行制御部(1―7)は、GUIソフトウェア(1−8)で物理コマンドを実行した結果、画面イメージや画像および画像情報ファイルを実行ログ送信部(2−10e)に送る。実行ログ送信部(2−10e)は、実行した結果と画面イメージと画像情報ファイルを実行ログ論理/物理変換部(2−3d)に送信する。
状態管理判定部(2−3g)では、シナリオ論理/物理変換部(2−3c)で変換された準物理コマンドから分解抽出された「状態」が、論理装置名から対象となるPCの状態管理テーブル(2−3h)を参照して、状態管理テーブル(2−3h)に格納されている「状態」と一致するか否かが判断される。状態管理判定部(2−3g)では、一致していると判定すれば実行可能なコマンドであると判断し、準物理コマンドを第2変換制御(2−10)へ転送される。
一方、状態管理判定部(2−3g)は、準物理コマンドから分解抽出された「状態」と状態管理テーブル(2−3h)に格納されている「状態」と不一致であると判断されると、「物理コマンド名」は実行不可であると判断される。この場合、状態管理判定部(2−3g)は、実行不可のコマンド情報であることを実行状態管理部(2−3i)に通知する。実行状態管理部(2−3i)は、実行ログ論理/物理変換部(2−3d)へコマンドの実行不可を示す情報を送信する。
実行ログ論理/物理変換部(2−3d)は、実行ログ送信部(2−10e)からコマンド実行結果の良否情報、実行ログ、画面イメージおよび画面情報ファイル等の情報、実行状態管理部(2−3i)からのコマンドの実行不可を示す情報を受ける。実行ログ/物理変換部(2−3d)は、受けた情報のうち、コマンド実行結果の良否情報とコマンドの実行不可を示す情報を論理実行ログに変換して、その論理実行ログを論理シナリオ実行部(2−3b)にフィードバックして、それ以外の実行ログ、画面イメージおよび画面情報ファイル等の情報を変換しないで、実行ログ記憶部(2−3e)に送る。論理シナリオ実行部(2−3b)は、実行ログ論理/物理変換部(2−3d)からのコマンドごとの実行結果やコマンドの実行不可に応じて、後続のテストシナリオを制御することができる。
実行ログ記憶部(2−3e)は、論理実行ログと論理変換されない実行ログ、画面イメージおよび画面情報ファイル等の情報とを論理実行ログ(2−4)に記録させる。
図7に、テストシナリオの処理の流れを示す。論理シナリオ(2−2)は、シナリオ論理/物理変換部(2−3c)において、論理/物理変換テーブル(2−3f)を参照して論理―物理シナリオ変換が行われる(A)。これにより、準物理シナリオに変換される。準物理シナリオは、各装置PC1(2−5)、PC2(2−5’)に送信される。各装置PC1(2−5)、PC2(2−5’)の第2変換制御部(2−10)(装置PC1(2−5)の場合。装置PC2(2−5’)についても同様。)において、準物理シナリオの構成する準物理コマンド(2)は物理コマンド(3)に変換される(B1、B2)。物理コマンドが、各装置PC1(2−5)、PC2(2−5’)の実行制御部1(1−7)、実行制御部2(1−7’)で実行される(C1、C2)。実行結果として装置ごとに書式の異なる物理実行ログが、実行状態管理部(2−10e)(装置PC1(2−5)の場合。装置PC2(2−5’)についても同様。)を経て、実行ログ送信部(2−10e)(装置PC1(2−5)の場合。装置PC2(2−5’)についても同様。)から送信される(D1、D2)。送信された物理実行ログは、第1変換制御部(2−3)の実行ログ論理/物理変換部(2−3d)において受信される。受信された物理実行ログのうちコマンドごとの実行結果または/およびテスト結果が、論理/物理変換テーブル(2−3f)により論理実行ログに変換される(E)。変換された論理実行ログおよびその他の物理実行ログは、実行ログ記録部(2−3e)により論理実行ログ(2−4)として記録される。GUIソフトウェアの改変時の再テストにおいて、同じテストシナリオを使用してテスト行うことにより、新たに得られた実行ログと記録されている論理実行ログ(2−4)との比較をしてソフトウェアの検査を行うことができる。
図8は、論理/物理変換テーブルの一例である。論理装置名として[PC1]、[PC2]、[PC3_1]、[PC3_2]の各々について、IPアドレス、稼働するGUIの種別、および論理実行ログの定義を備えている。ここで、論理装置名[PC3_1]および[PC3_2]は、同じ装置PC3である。同じ装置PC3において2種類のGUI(GUI1、GUI2)が稼働するために、GUIごとに個別に論理装置名[PC3_1]、[PC3_2]が定義されている。
IPアドレスは、論理装置名[PC1]、[PC2]で固有に定義されている。また、論理装置名[PC3_1]および[PC3_2]では、同じ装置PC3であるのでIPアドレスは同一である。GUIの種別は、論理装置名として[PC1]、[PC2]、および[PC3_1]については、GUI1が定義されている。論理装置名として[PC3_2]については、GUI2が定義されている。論理実行ログについては、[LOG1]、[LOG2]が定義されている。
また、種別ごとのGUI(GUI1、GUI2)の定義では、論理コマンドと物理コマンドとの対応関係が定義されている。論理コマンドの”ACTIVATE”、”CLK_BTN”、”EXEC”、”SENDSTR”、”ST_SET”のそれぞれについて、GUI1では、物理コマンドの”Activate”、”ClkItem”、”Exec”、”SendStr”、”Visible”がP1、P2、P3のようなパラメータと共に定義されている。同様に、GUI2では、”selectwindow”、”clk”、”openwindow”、”type”、”status”がパラメータと共に定義されている。
また、LOG1の定義では、各コマンドに対して、正常実行であるか実行不可であるかを示す物理実行ログとして、正常実行の場合に”TRUE”、実行不可の場合に”FALSE”が定義されている。また、LOG2の定義でも同様に、正常実行の場合に”Got result:OK”、実行不可の場合に”Got result:ERRPR”が定義されている。装置ごとGUIごとに物理実行ログが異なる書式であっても論理実行ログとして統一されたログ(”OK”、”ERROR”)が返されることとなる。
図9乃至図13には、テストシナリオの具体例を示す。図9は論理シナリオの一例である。図10、11は準物理シナリオの一例である。図12、13は物理シナリオの一例である。
図9の論理シナリオにおいて、0001行−0016行は定義規定の行である。0001行−0008行は装置PC1についての定義部分である。0009行−0016行は装置PC2についての定義部分である。各々の装置PC1、PC2で固有のファイル名、呼称などを予め登録しておく。
論理シナリオ(図9)の0017行−0041行が実行部分である。0017行−0023行、および0025行−0031行では、それぞれ、装置PC1、PC2に同様の操作を行う。論理シナリオ(図9)の0017行−0023行は装置PC1に関する準物理シナリオ(図10)の1001行−1007行、および物理シナリオ(図12)の1001行−1007行に対応する。また、論理シナリオ(図9)の0025行−0031行は装置PC2に関する準物理シナリオ(図11)の2001行−2007行、および物理シナリオ(図13)の2001行−2007行に対応する。
論理シナリオ(図9)の”&EXEC”(0017、0025)コマンドによりアプリケーションが起動される。”&EXEC”(0017)コマンドは、装置PC1について準物理シナリオ(図10)および物理シナリオ(図12)の”Exec”(1001)コマンドに変換される。”&EXEC”(0025)コマンドは、装置PC2について準物理シナリオ(図11)および物理シナリオ(図13)の”openwindow”(2001)コマンドに変換される。
論理シナリオ(図9)の”&ACTIVATE”(0018、0026)コマンドにより起動したアプリケーションのウィンドウをアクティブにする。” &ACTIVATE”(0018)コマンドは、装置PC1について準物理シナリオ(図10)および物理シナリオ(図12)の”Activate”(1002)コマンドに変換される。” &ACTIVATE”(0026)コマンドは、装置PC2について準物理シナリオ(図11)および物理シナリオ(図13)の”selectwindow”(2002)コマンドに変換される。
論理シナリオ(図9)の”&ST_SET”(0019、0027)コマンドによりアクティブとしたウィンドウの状態を取得し、取得した状態が”$TITLE1_LOGIN”(装置PC1)、”$TITLE2_LOGIN”(装置PC2)で定義した状態、即ち、“ログイン画面”(装置PC1)、“Login Page”(装置PC2)であれば、状態管理テーブルに”LOGIN”の状態変数あるいは文字列を保持する。” &ST_SET”(0019)コマンドは、装置PC1について準物理シナリオ(図10)および物理シナリオ(図12)の”Visible”(1003)コマンドに変換される。” &ST_SET”(0027)コマンドは、装置PC2について準物理シナリオ(図11)および物理シナリオ(図13)の”status”(2003)コマンドに変換される。
論理シナリオ(図9)の”&SENDSTR”(0020−0021、0028−0029)コマンドにより、装置PC1、装置PC2で起動したアプリケーションのウィンドウの状態が”LOGIN”の状態であることを条件としてユーザ名とパスワードを入力する。”&SENDSTR”(0020−0021)コマンドは、装置PC1について準物理シナリオ(図10)および物理シナリオ(図12)の”SendStr”(1004−1005)コマンドに変換される。” &SENDSTR”(0028−0029)コマンドは、装置PC2について準物理シナリオ(図11)および物理シナリオ(図13)の”type”(2004−2005)コマンドに変換される。
論理シナリオ(図9)の”&CLK_BTN”(0022、0030)コマンドにより、装置PC1、装置PC2で起動したアプリケーションのウィンドウの状態が”LOGIN”の状態であることを条件として”OK”ボタン(装置PC1)、”LOGIN”ボタン(装置PC2)を押下する。”&CLK_BTN”(0022)コマンドは、装置PC1について準物理シナリオ(図10)および物理シナリオ(図12)の”ClkItem”(1006)コマンドに変換される。” &CLK_BTN”(0030)コマンドは、装置PC2について準物理シナリオ(図11)および物理シナリオ(図13)の”clk”(2006)コマンドに変換される。
論理シナリオ(図9)の”&ST_SET”(0023、0031)コマンドにより、装置PC1、装置PC2で起動したアプリケーションのウィンドウの状態が”LOGIN”の状態であることを条件として、アクティブとしたウィンドウの制御状態を取得し、取得した制御状態が”$TITLE1_OPE”(装置PC1)、”$TITLE2_OPE”(装置PC2)で定義した制御状態、即ち、“操作画面”(装置PC1)、“Operation Page”(装置PC2)であれば、状態管理テーブルに”OPE”の状態変数あるいは文字列を保持する。”&ST_SET”(0023)コマンドは、装置PC1について準物理シナリオ(図10)および物理シナリオ(図12)の”Visible”(1007)コマンドに変換される。”&ST_SET”(0031)コマンドは、装置PC2について準物理シナリオ(図11)および物理シナリオ(図13)の”status”(2007)コマンドに変換される。
論理シナリオ(図9)の”&CLK_BTN”(0033)コマンドにより、装置PC1で起動したアプリケーションのウィンドウの状態が”OPE”の状態であることを条件として、装置PC1のウィンドウの”BTN1”ボタンを押下する。” &CLK_BTN”(0033)コマンドは、装置PC1について準物理シナリオ(図10)および物理シナリオ(図12)の”ClkItem”(1008)コマンドに変換される。
論理シナリオ(図9)の”&ST_SET”(0035)コマンドにより、装置PC2で起動したアプリケーションのウィンドウの状態が”OPE”の状態であることを条件として、装置PC2のウィンドウの”Status”が”オペ1“の状態であれば、状態管理テーブルに”OPE2”の状態変数あるいは文字列を保持する。”&ST_SET”(0035)コマンドは、装置PC2について準物理シナリオ(図11)および物理シナリオ(図13)の”status”(2008)コマンドに変換される。
論理シナリオ(図9)の”&CLK_BTN”(0036)コマンドにより、装置PC2で起動したアプリケーションのウィンドウの状態が”OPE2”の状態であることを条件として、装置PC2のウィンドウの”OP1”ボタンを押下する。”&CLK_BTN”(0036)コマンドは、装置PC2について準物理シナリオ(図11)および物理シナリオ(図13)の”clk”(2009)コマンドに変換される。
論理シナリオ(図9)の”&ST_SET”(0038)コマンドにより、装置PC1で起動したアプリケーションのウィンドウの状態が”OPE”の状態であることを条件として、装置PC1のウィンドウの“操作状態”が”Ope1”の状態であれば、状態管理テーブルに”OPE1”の状態変数あるいは文字列を保持する。”&ST_SET”(0038)コマンドは、装置PC1について準物理シナリオ(図10)および物理シナリオ(図12)の”Visible”(1009)コマンドに変換される。
論理シナリオ(図9)の”&CLK_BTN”(0039)コマンドにより、装置PC1で起動したアプリケーションのウィンドウの状態が”OPE1”の状態であることを条件として、装置PC1のウィンドウの“終了”ボタンを押下する。”&CLK_BTN”(0039)コマンドは、装置PC1について準物理シナリオ(図10)および物理シナリオ(図12)の”ClkItem”(1010)コマンドに変換される。
論理シナリオ(図9)の”&CLK_BTN”(0041)コマンドにより、装置PC2で起動したアプリケーションのウィンドウの状態が”OPE2”の状態であることを条件として、装置PC2のウィンドウの”EXIT”ボタンを押下する。”&CLK_BTN”(0041)コマンドは、装置PC2について準物理シナリオ(図11)および物理シナリオ(図13)の”clk”(2010)コマンドに変換される。
以上、詳細に説明したように、実施形態によれば、テスト制御部(2−1)には、装置または/およびGUIの違いに依存しない論理シナリオ(2−2)が格納されており、装置または/およびGUIの違いを吸収することができる。装置やGUIの別によらず、GUI上での実行手順、GUIの状態判断、実行結果の取得などを統一的に記述することができる。複数の装置間または/およびGUI間での連携制御・同期実行を統一的に記述することができる。
第2変換制御部(2−10)では、準物理シナリオ中に記述されている状態把握の指示や状態取得の指示に従い、GUI上の状態の把握や取得〜保持が行われる。テスト制御部(2−1)によるテストシナリオの遠隔制御においても、個々の装置やGUIにおける状態を把握して連携制御を確実に行うことができる。また、取得された状態を状態管理テーブル(2−10f)に保持して、状態の把握を簡易に行うことができる。各装置やGUIにおける制御状態を簡易に管理することができ、GUI上の操作実行に不適格な状態や操作実行の失敗などを容易に検出することができる。
ここで、状態管理テーブル(2−10f)における状態の保持は、状態取得コマンド(&ST_SET等)により取得された状態を状態変数あるいは状態を示す文字列の形態で保持することにより行うことができる。これにより、コマンド実行の際にGUI上の状態の判断は、状態変数あるいは状態を示す文字列が保持されているか否かにより行うことができる。状態の確認処理といった処理の煩雑さを解消してテストシナリオを簡略化することができる。更に、状態確認を行う際の処理時間の短縮を図ることができる。一連のコマンド列を遅滞なく実行することができる。
尚、実施形態に開示された態様以外にも、種々の改良、変更が可能であることは言うまでもない。
例えば、実施形態では、複数の装置で構成されているGUIソフトウェアをテストする場合について説明したが、本願はこれに限定されるものではない。単一の装置やGUIに対しても適用することができる。即ち、装置上で稼働するGUIの種別に関わらず、同じテストシナリオでテスト行うことができる。
また、実施形態では、1つのGUI上の状態を把握する場合について説明したが、複数の装置または/GUIの状態を取得してこれらの状態の組み合わせに応じてコマンドを実行する構成とすることができることは言うまでもない。
例えば、実施形態では、複数の装置で構成されているGUIソフトウェアをテストする場合について説明したが、本願はこれに限定されるものではない。単一の装置やGUIに対しても適用することができる。即ち、装置上で稼働するGUIの種別に関わらず、同じテストシナリオでテスト行うことができる。
また、実施形態では、1つのGUI上の状態を把握する場合について説明したが、複数の装置または/GUIの状態を取得してこれらの状態の組み合わせに応じてコマンドを実行する構成とすることができることは言うまでもない。
(1−1)、(2−1) テスト制御部
(1−5)、(2−5) 装置PC1
(1−5’)、(2−5’) 装置PC2
(1−7) 実行制御部1
(1−8) GUI1
(1−8’) GUI2
(2−2) 論理シナリオ
(2−3) 第1変換制御部
(2−3a) 論理シナリオ読出部
(2−3b) 論理シナリオ実行部
(2−3c) シナリオ論理/物理変換部
(2−3d) 実行ログ論理/物理変換部
(2−3e) 実行ログ記録部
(2−3f) 論理/物理変換テーブル
(2−4) 論理実行ログ
(2−10) 第2変換制御部
(2−10a) 物理シナリオ受信部
(2−10b) 物理シナリオ実行部
(2−10c) 状態管理判定部
(2−10d) 実行状態管理部
(2−10e) 実行ログ送信部
(2−10f) 状態管理テーブル
(1−5)、(2−5) 装置PC1
(1−5’)、(2−5’) 装置PC2
(1−7) 実行制御部1
(1−8) GUI1
(1−8’) GUI2
(2−2) 論理シナリオ
(2−3) 第1変換制御部
(2−3a) 論理シナリオ読出部
(2−3b) 論理シナリオ実行部
(2−3c) シナリオ論理/物理変換部
(2−3d) 実行ログ論理/物理変換部
(2−3e) 実行ログ記録部
(2−3f) 論理/物理変換テーブル
(2−4) 論理実行ログ
(2−10) 第2変換制御部
(2−10a) 物理シナリオ受信部
(2−10b) 物理シナリオ実行部
(2−10c) 状態管理判定部
(2−10d) 実行状態管理部
(2−10e) 実行ログ送信部
(2−10f) 状態管理テーブル
Claims (5)
- グラフィカル・ユーザ・インターフェースを利用したソフトウェアのテストをコンピュータに実行させるテスト支援方法であって、
前記グラフィカル・ユーザ・インターフェースの指定状態を検出するコマンドを付加した共通様式のシナリオを、前記グラフィカル・ユーザ・インターフェースに応じた様式のコマンドに変更して、指示するステップと、
前記グラフィカル・ユーザ・インターフェースの状態が前記指定状態であるか判断するステップと、
前記判断するステップで、前記グラフィカル・ユーザ・インターフェースが前記指定状態にあると前記コマンドを実行するステップとが行われることを特徴とするテスト支援方法。 - 前記ソフトウェアが複数の処理装置の間で連携して動作する場合、
前記コマンドは、前記処理装置で稼働する前記グラフィカル・ユーザ・インターフェースを特定する識別子を備えることを特徴とする請求項1に記載のテスト支援方法。 - 前記指示するステップでは、前記コマンドの書式を、前記グラフィカル・ユーザ・インターフェースに適合した固有書式に変換し、
前記実行するステップにおける実行結果を、共通書式に変換して返送するステップを追加することを特徴とする請求項2に記載のテスト支援方法。 - 前記グラフィカル・ユーザ・インターフェースの状態を状態変数として保持し、前記指定状態が、保持された前記前記状態変数と一致すれば、前記コマンドを実行するステップが行われることを特徴とする請求項1乃至3の少なくとも何れか1項に記載のテスト支援方法。
- グラフィカル・ユーザ・インターフェースを利用したソフトウェアのテストをコンピュータに実行させるテスト支援装置であって、
前記グラフィカル・ユーザ・インターフェースの指定状態を検出するコマンドを付加した共通様式のシナリオを、前記グラフィカル・ユーザ・インターフェースに応じた様式のコマンドに変更して、指示する変更指示部と、
前記グラフィカル・ユーザ・インターフェースの状態が前記指定状態であるか判断する判断部と、
前記判断するステップで、前記グラフィカル・ユーザ・インターフェースが前記指定状態にあると前記コマンドを実行する実行部とを備えたことを特徴とするテスト支援装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009197625A JP2011048714A (ja) | 2009-08-28 | 2009-08-28 | テスト支援方法およびテスト支援装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009197625A JP2011048714A (ja) | 2009-08-28 | 2009-08-28 | テスト支援方法およびテスト支援装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011048714A true JP2011048714A (ja) | 2011-03-10 |
Family
ID=43834941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009197625A Pending JP2011048714A (ja) | 2009-08-28 | 2009-08-28 | テスト支援方法およびテスト支援装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011048714A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014126900A (ja) * | 2012-12-25 | 2014-07-07 | Nec Corp | プログラム解析装置、プログラム解析方法、及び、プログラム解析プログラム |
JP2021108130A (ja) * | 2016-10-20 | 2021-07-29 | ワイ ソフト コーポレーション アー エスY Soft Corporation,A.S. | 組み込みシステムの汎用自動試験 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11112658A (ja) * | 1997-09-30 | 1999-04-23 | Fujitsu Ltd | 交換機装置の試験実行制御方法及びその装置 |
JP2001306358A (ja) * | 2000-04-27 | 2001-11-02 | Ricoh Co Ltd | Guiプログラムのテスト装置、guiプログラムのテスト方法及び該方法に用いる記録媒体 |
JP2003330754A (ja) * | 2002-05-15 | 2003-11-21 | Nippon Telegr & Teleph Corp <Ntt> | サービス提供システムおよび試験装置および試験方法 |
JP2004110267A (ja) * | 2002-09-17 | 2004-04-08 | Fuji Xerox Co Ltd | テスト実行装置、方法およびプログラム |
JP2007193504A (ja) * | 2006-01-18 | 2007-08-02 | Hitachi Information Systems Ltd | テストケース作成方法、テストケース作成システム及びテストケース作成プログラム |
-
2009
- 2009-08-28 JP JP2009197625A patent/JP2011048714A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11112658A (ja) * | 1997-09-30 | 1999-04-23 | Fujitsu Ltd | 交換機装置の試験実行制御方法及びその装置 |
JP2001306358A (ja) * | 2000-04-27 | 2001-11-02 | Ricoh Co Ltd | Guiプログラムのテスト装置、guiプログラムのテスト方法及び該方法に用いる記録媒体 |
JP2003330754A (ja) * | 2002-05-15 | 2003-11-21 | Nippon Telegr & Teleph Corp <Ntt> | サービス提供システムおよび試験装置および試験方法 |
JP2004110267A (ja) * | 2002-09-17 | 2004-04-08 | Fuji Xerox Co Ltd | テスト実行装置、方法およびプログラム |
JP2007193504A (ja) * | 2006-01-18 | 2007-08-02 | Hitachi Information Systems Ltd | テストケース作成方法、テストケース作成システム及びテストケース作成プログラム |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014126900A (ja) * | 2012-12-25 | 2014-07-07 | Nec Corp | プログラム解析装置、プログラム解析方法、及び、プログラム解析プログラム |
JP2021108130A (ja) * | 2016-10-20 | 2021-07-29 | ワイ ソフト コーポレーション アー エスY Soft Corporation,A.S. | 組み込みシステムの汎用自動試験 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9886375B2 (en) | Automated execution of functional test scripts on a remote system within a unit testing framework | |
US8839107B2 (en) | Context based script generation | |
US8572437B2 (en) | Multi-platform test automation enhancement | |
US6182246B1 (en) | Protocol acknowledgment between homogeneous system | |
US8356282B1 (en) | Integrated development environment for the development of electronic signal testing strategies | |
US20050114854A1 (en) | System and method for dynamic cooperative distributed execution of computer tasks without a centralized controller | |
CN111104315A (zh) | 一种测试脚本生成方法及装置、计算机可读存储介质 | |
JP2007519117A (ja) | OSGiサービスプラットホームのテスト方法及びこれを利用したテストツール | |
KR102529142B1 (ko) | 소프트웨어 애플리케이션의 테스트 프로세스를 자동화하기 위한 방법 및 시스템 | |
JP2019525373A (ja) | テストケースの生成方法 | |
CN109460268B (zh) | 应用参数配置方法、装置和系统 | |
JP5968451B2 (ja) | 計算機システム、及びプログラム | |
JP2011048714A (ja) | テスト支援方法およびテスト支援装置 | |
JP6436705B2 (ja) | テスト実行装置、テスト実行方法およびコンピュータプログラム | |
JP2010102620A (ja) | ユーザ操作シナリオ生成装置、方法およびプログラム | |
JP2008293382A (ja) | テスト仕様自動生成方式 | |
JP4257364B2 (ja) | 通信エラー情報出力プログラム、通信エラー情報出力方法および通信エラー情報出力装置 | |
KR100930962B1 (ko) | 알피씨 기반 소프트웨어의 원격지 보안 테스팅 장치 및방법 | |
WO2000075783A1 (en) | Protocol acknowledgment between homogeneous systems | |
JP6436704B2 (ja) | テスト実行装置、テスト実行方法およびコンピュータプログラム | |
JP2006155047A (ja) | 検証システム及び検証方法 | |
CN112685285A (zh) | 用户界面测试用例生成方法和装置 | |
JP5668836B2 (ja) | 情報処理装置,情報取得方法及び情報取得プログラム | |
JP6353759B2 (ja) | テスト実行装置、テスト実行方法およびコンピュータプログラム | |
CN110532151A (zh) | 一种监测工具的自动运行方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120510 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130918 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130924 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140304 |