JP2013077159A - テスト自動化システム - Google Patents
テスト自動化システム Download PDFInfo
- Publication number
- JP2013077159A JP2013077159A JP2011216545A JP2011216545A JP2013077159A JP 2013077159 A JP2013077159 A JP 2013077159A JP 2011216545 A JP2011216545 A JP 2011216545A JP 2011216545 A JP2011216545 A JP 2011216545A JP 2013077159 A JP2013077159 A JP 2013077159A
- Authority
- JP
- Japan
- Prior art keywords
- test
- script
- test script
- automation device
- database
- 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.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【解決手段】 テスト対象GUIアプリケーションに対する操作を記録・再生する複数のテスト自動化装置と、複数のテスト自動化装置を使ってテスト対象GUIアプリケーションに対する操作を記録・再生する併合テスト自動化装置と、テスト自動化装置と併合テスト自動化装置とテスト対象GUIアプリケーションを配するテスト実行マシンと、テスト実行マシンの入力部および表示部とから構成し、複数のテスト自動化装置によって記録されたテストスクリプトを局所的に動作確認し、正常に動作することを確認した部分のスクリプトを抽出し、それらを結合して1つのテストスクリプトを生成する。
【選択図】 図1
Description
この装置を利用して、従来は人がテスト対象アプリケーションを直接操作することによって行っていたテストを、そのテストの操作手順を記述したテストスクリプトを作成することで、コンピュータに自動実行させることができる。
また、コンピュータに対して入力した操作手順をテストスクリプトとして記録することができるテストスクリプト記録装置がある。
これら1組のテストスクリプト記録装置とテストスクリプト再生装置を使用し、テスト対象GUIアプリケーションに対するテスト操作をテストスクリプトとして記録する機能と、記録したテストスクリプトを再生する機能を併せ持つテスト自動化装置がある。
テスト自動化装置2201には、テスト対象GUIアプリケーション2202に対して入力した操作手順をテストスクリプトとして記録するテストスクリプト記録装置2206、テストスクリプトを再生するテストスクリプト再生装置2207、テストスクリプトを登録するテストスクリプトデータベース2208が備えられている。
このテストスクリプト記録装置2206の記録状態は、入力部2204への記録終了操作によって解除することができる。
また、入力部2204への再生操作によってテストスクリプト再生装置2207にテストスクリプトを指定して実行すると、指定したテストスクリプトが再生される。再生が終了すると、表示部2205に再生結果が表示される。
先行技術として下記の特許文献1がある。
一方、一部のアプリケーションフレームワークにのみ対応するテスト自動化装置は多く開発されている。
近年増加している複数のアプリケーションフレームワークを組み合わせて開発されたGUIアプリケーションにおいては、1つのテスト自動化装置を使ってテスト操作を正常に記録、および再生させることは困難である。
テスト操作の記録または再生に失敗した場合は、正常に再生できるようになるまで、テストスクリプトを手作業で修正する必要がある。
また、正常に再生できるスクリプトであっても、対象のアプリケーションがテスト自動化装置に対応していないアプリケーションフレームワークである場合は、ボタンやテキストボックスといった画面部品に固有の属性値を認識できないために、再現性の低い操作内容に変換されて記録されることがある。例えば、特定のボタンをマウスで押下する操作が、記録時にそのボタンが表示されていたスクリーン座標に向かってマウスのボタンを押下する操作に変換されることがある。また、特定のテキストボックスに対して文字列を入力する操作が、テスト実行マシンのキーボードを押下する操作に変換されることがある。
例えば、あるスクリーン座標に向かってマウスのボタンを押下する操作は、テスト対象GUIアプリケーションの画面の仕様変更によって、操作対象の画面部品の位置が変更された場合に再現できなくなる。テスト対象GUIアプリケーションの仕様変更以外でも、テストデータによって画面部品の表示位置が変わる場合は、テストデータの変更によっても再現できなくなる。
このように不安定なスクリプトは再現性が低くなるため、再現性の高いスクリプト(以降、安定なスクリプトという)が生成されることが望ましい。
前記テスト自動化装置が、前記テスト対象GUIアプリケーションに対して入力した操作手順をテストスクリプトとして記録するテストスクリプト記録装置と、前記テストスクリプトを再生するテストスクリプト再生装置と、前記テストスクリプトを登録するテストスクリプトデータベースとを備え、
前記併合テスト自動化装置が、当該装置が使用する前記テスト自動化装置の一覧を登録したテスト自動化装置リストに登録されたテスト自動化装置と連携してテストスクリプトを記録する併合テストスクリプト記録装置と、前記テスト自動化装置リストに登録されたテスト自動化装置と連携して併合テストスクリプトを再生する併合テストスクリプト再生装置と、前記併合テストスクリプト記録装置が生成するテストスクリプトを登録する併合テストスクリプトデータベースとを備え、
前記併合テストスクリプト記録装置が、前記テスト自動化装置が生成したテストスクリプトを複数個のテストスクリプトに分割するテストスクリプト分割部と、テストスクリプトの再現性が高いかどうかを記述内容から静的に評価するテストスクリプト静的評価部と、分割したテストスクリプトを結合し、その結合パターンが有効かどうかを実際に再生して評価するテストスクリプト動的評価部と、指定した結合パターンに従ってテストスクリプトを併合するテストスクリプト併合部と、前記スクリプト動的評価部で再生可能と評価されたスクリプトを格納する再生可能スクリプトデータベースと、テストスクリプト中に現れる再現性の低いコマンドの一覧を登録する不安定コマンドデータベースと、前記テストスクリプト動的評価部で再生可能と評価されたスクリプト結合パターンを登録するスクリプト結合パターンデータベースと、前記テストスクリプト分割部で分割されたスクリプトおよび前記静的評価部において算出された静的評価結果を登録する分割スクリプトデータベースとを備えることを特徴とする。
(1)対応するアプリケーションフレームワークの異なる複数のテスト自動化装置でテストスクリプトの記録・再生を行い、記録・再生が正常に行えたテストスクリプトを組み合わせて1つのテストスクリプトを生成するため、幅広いアプリケーションフレームワークに対してテスト操作の記録および再生を行うことができる。
(2)再現性が高いかどうかをテストスクリプトの記述内容から静的に評価し、静的評価値の良いものから優先して動作確認するため、テストスクリプトの動作確認コストを必要最小限に抑えることができる。
(3)テストスクリプトを部分的に静的評価し、静的評価の良い部分を優先して併合するため、全体的に再現性の高いテストスクリプトを生成することができる。
(4)動作確認済みのテストスクリプトの記述パターン・結合パターンを学習し、静的評価時に学習済みのパターンと一致するテストスクリプトに良い評価値を与えるため、動作確認済みのパターンを優先して動作確認することができる。
図1は、本発明の一実施の形態例を示すシステム構成図である。
本テスト自動化システムは、テスト対象GUIアプリケーション0101と、テスト対象GUIアプリケーション0101に対する操作を記録・再生する複数のテスト自動化装置0102a,0102bと、複数のテスト自動化装置0102a,0102bを使ってテスト対象GUIアプリケーション0101に対する操作を記録・再生する併合テスト自動化装置0103と、複数のテスト自動化装置0102a,0102bと併合テスト自動化装置0103とテスト対象GUIアプリケーション0101を配するテスト実行マシン0104と、テスト実行マシン0104の入力部0105および表示部0106とから構成されている。
テスト自動化装置0102a,0102bには、テスト対象GUIアプリケーション0101に対して入力した操作手順をテストスクリプトとして記録するテストスクリプト記録装置0107、テストスクリプトを再生するテストスクリプト再生装置0108、テストスクリプトを登録するテストスクリプトデータベース0109が備えられている。
各テスト自動化装置のテストスクリプトデータベース0109には、そのテスト自動化装置によって生成された、テスト対象GUIアプリケーション0101に対する操作手順を記述したテストスクリプトが複数登録される。
併合テスト自動化装置0103には、この装置が使用するテスト自動化装置の一覧を登録するテスト自動化装置リスト0110、テスト自動化装置リスト0110に登録されたテスト自動化装置と連携してテストスクリプトを記録する併合テストスクリプト記録装置0111、テスト自動化装置リスト0110に登録されたテスト自動化装置と連携してテストスクリプトを再生する併合テストスクリプト再生装置0112、併合テストスクリプト記録装置0111が生成するテストスクリプトを登録する併合テストスクリプトデータベース0113が備えられている。
テスト自動化装置の起動コマンドは、記録開始コマンド、記録終了コマンド、参照コマンド、再生コマンド、の4種類を登録する。また、これらの起動コマンドに加え、テストスクリプトを分割する単位となるテストスクリプト分割文も併せて登録する。
併合テスト自動化装置0103の併合テストスクリプトデータベース0113には、複数のテストスクリプトを併合して作成したテストスクリプトが複数登録される。
併合テストスクリプトデータベース0113に登録されるテストスクリプトには、異なる言語によるテストスクリプト記述が混在することもある。
テスト実行マシン上でコマンド「fbrowser.exe」にURLを引数として与えて実行すると、Webブラウザ「FBrowser」が起動し、指定したURLのWebページを表示できる。
いま、テスト実行マシン上でコマンド「fbrowser.exe http://targetapp.com/search.jsp」を指定すると、Webブラウザ「FBrowser」が起動してファイル検索ページ0201が表示され、検索キーを入力することを促す。このファイル検索ページ0201のテキストボックス0204に任意の文字列を入力して検索ボタン0205を押下すると、テキストボックス0204に入力された文字列を含む名前のファイルを検索し、検索結果のファイル名の一覧を表示する検索結果一覧ページ0202に遷移する。
検索結果一覧ページ0202に表示されるファイル名はハイパーリンクとなっており、このハイパーリンク0207を押下すると、図3に示すファイルのダウンロード方法を指定するファイルのダウンロード画面0203がポップアップする。
ここで、検索結果一覧ページ0202に表示されるハイパーリンクは、使用するテストデータを変更した場合に表示位置が変わることがある。例えば、テストデータにファイルを1つ追加した場合は、そのファイル名を含む検索キーで検索したときに、検索結果が1行増えることになる。ファイルのダウンロード画面0203は、テスト実行マシンのオペレーションシステムが表示する画面であり、ブラウザ「FBrowser」とは異なるアプリケーションフレームワーク「W」を使用する。
一方、ファイルのダウンロード画面0203でキャンセルボタン0209を押下すると、ファイルのダウンロード画面0203が閉じるだけで、ファイルのダウンロードは行われない。なお、ファイル検索ページ0201のテキストボックス0204のName属性は"検索キー"とする。
図4(a)の操作手順は、ファイル検索アプリケーションを起動して検索キー"pumpkin"を検索し、検索結果からキャプションが"pumpkin035.txt"のハイパーリンクを押下し、ダウンロードを実行する操作手順である。
図4(b)の操作手順は、ファイル検索アプリケーションを起動して検索キー"pumpkin"を検索し、検索結果からキャプションが"pumpkin035.txt"のハイパーリンクを押下し、ダウンロードをキャンセルする操作手順である。
この2つの操作手順は、5行目のファイルのダウンロード画面で押下するボタンが「保存」か「キャンセル」かという違いだけである。
テスト自動化装置リスト0110のレコードは、1つのテスト自動化装置について、テスト自動化装置名属性0401、記録開始コマンド属性0402、記録終了コマンド属性0403、参照コマンド属性0404、再生コマンド属性0405、スクリプト分割文属性0406を指定して登録する。
スクリプト分割文属性0406には、テストスクリプト分割処理において、スクリプトを分割する行を特定するために使用する文を指定する。
図5で示すレコードは、テスト自動化装置「testCR」と「fastTest」の2つに関するものである。
図5の例では、スクリプト分割文属性0406に、画面をフォーカスするコマンドを指定している。具体的には、「testCR」はコマンド「AttachWindow」を、テスト自動化装置「fastTest」はコマンド「assertTitle」を指定している。これは、スクリプトの分割および結合を画面単位で行うことを意図している。
不安定コマンドデータベース0119のレコードは、テスト自動化装置の名前を指定するテスト自動化装置名属性0501と、そのテスト自動化装置において、再現性の低いコマンドのパターンを指定する不安定コマンド属性0502の2つの属性を指定して登録する。
ここで登録した不安定コマンドは、テストスクリプト静的評価処理において、静的評価値を算出する際に使用される。
本テスト実行システムでは、テスト自動化装置ごとに不安定コマンドを事前に登録しておき、実際に記録されたテストスクリプトに対し、不安定コマンドがいくつ含まれているかを算出することによって、そのテストスクリプトが安定なスクリプトであるか不安定なスクリプトであるかを評価する。具体的には、テストスクリプトが含む不安定コマンドの数が少ないほど良い評価を与えることとする。
図7で示すテストスクリプトは、テスト自動化装置「testCR」と「fastTest」を使い、テスト対象GUIアプリケーションに対する図3の操作手順をテストスクリプトとして記録したものである。
図7(a)のテストスクリプトは、テスト自動化装置「testCR」を使って、図4(a)の操作手順を記録した、名前が「TC0001」のテストスクリプトである。
テスト自動化装置「testCR」は、アプリケーションフレームワーク「W」に対応するが、アプリケーションフレームワーク「M」には対応しない。このため、Webブラウザ「FBrowser」に対する操作を正しく記録できず、不安定コマンドを使って記録される。
例えば、3行目,5行目,7行目,11行目のスクリプトは、Webページに表示されたボタンやハイパーリンクを押下する操作を記録したものであるが、座標を指定して押下する不安定コマンド「ClickAt」を使用したスクリプトに変換されている。さらに、4行目のスクリプトは、Webページに表示されたテキストボックスに文字列を入力する操作を記録したものであるが、テスト実行マシンのキーボードを押下する不安定コマンド「Type」を使用したスクリプトに変換されている。
「ClickButton」コマンドを使用したスクリプトに変換されている。
図7(b)のテストスクリプトは、テスト自動化装置「fastTest」を使って、図4(a)の操作手順を記録した、名前が「TC0001」のテストスクリプトである。
テスト自動化装置「fastTest」は、アプリケーションフレームワーク「M」に対応するが、アプリケーションフレームワーク「W」には対応しない。このため、ファイルのダウンロード画面0203に対する操作を記録することができない。
例えば、6行目のスクリプトはファイル「pumpkin035.txt」のハイパーリンク0207を押下する操作であるが、続く7行目のスクリプトは、画面をフォーカスするコマンド「assertTitle」を使ってファイル検索ページ0201をフォーカスする操作となっており、ファイルのダウンロード画面0203に対する操作内容が一切記録されていない。このため、このテストスクリプト(b)は正しく再生することができない。
殆どの記述は図7(a)のテストスクリプトと同一であるが、9行目で押下するボタンがファイルのダウンロード画面0203のキャンセルボタン0209となっている。
図8(b)のテストスクリプトは、テスト自動化装置「fastTest」を使って、図4(b)の操作手順を記録した、名前が「TC0002」のテストスクリプトである。
ファイルのダウンロード画面0203を記録できないため、図7(b)のテストスクリプトと同一のテストスクリプトとなっている。
分割スクリプトデータベース0121のレコードは、スクリプトを記録したテスト自動化装置の名前であるテスト自動化装置名属性0701と、スクリプト名属性0702と、分割位置を表す分割番号属性0703と、分割したスクリプト部分が操作する画面の名前である画面名属性0704と、分割スクリプト属性0705と、分割スクリプトの静的評価値属性0706と、分割スクリプトが既に動作確認済みかどうかを表す再生可能フラグ属性0707との7つの属性で登録する。
図9の分割スクリプトは、図7(a)のテストスクリプトをスクリプト分割文
「AttachWindow("%1")」で分割したレコードと、図7(b)のテストスクリプトをスクリプト分割文「assertTitle("%1")」で分割したレコードが複数登録されている。
また、図9(b)の分割スクリプトは、図8(a)のテストスクリプトをスクリプト分割文「AttachWindow("%1")」で分割したレコードと、図8(b)のテストスクリプトをスクリプト分割文「assertTitle("%1")」で分割したレコードが複数登録されている。
静的評価値属性0706には、分割スクリプト属性0705の中に現れる、不安定コマンドの回数を負数にして指定する。
再生可能フラグ属性0707には、テストスクリプト静的評価処理において、分割スクリプト属性0705が再生可能スクリプトデータベース0118に登録されたスクリプトと一致していた場合は「True」、未登録であった場合は「False」を指定する。
再生可能スクリプトデータベース0118のレコードは、スクリプトを記録したテスト自動化装置の名前であるテスト自動化装置名属性0801と、スクリプトが操作する画面の名前である画面名属性0802と、スクリプト属性0803と、このスクリプトの静的評価値属性0804との4つの属性で登録する。
具体的には、図11の上から1つ目のレコードは、図9の上から1つ目のレコードに相当し、図11の上から2つ目のレコードは、図9の上から4つ目のレコードに相当し、図11の上から3つ目のレコードは、図9の上から7つ目のレコードに相当し、図11の上から4つ目のレコードは、図9の上から8つ目のレコードに相当し、図11の上から5つ目のレコードは、図9の上から9つ目のレコードに相当する。
静的評価値属性0804は、テストスクリプト動的評価処理において、分割スクリプトデータベース0121にある静的評価値属性0706に対して「10」加算したものが登録されている。
例えば、再生可能スクリプトデータベース0118が図11の状態で、図8(a)(b)のテストスクリプトを対象に、テストスクリプト分割処理、テストスクリプト静的評価処理を行った結果が、図10で示すようなものとなっている。
図10の上から1つ目、上から7つ目、上から8つ目、上から9つ目のスクリプトの分割スクリプトは、図11の再生可能スクリプトと一致するため、静的評価値属性0706が静的評価値属性0804の値に更新され、また、再生可能フラグ属性0707の値が「True」に更新されている。
スクリプト結合パターンデータベース0120のレコードは、テストスクリプト動的評価処理において動作を確認した画面遷移パターンについて、遷移前画面名属性0901と、遷移後画面名属性0902の2つの属性で登録する。
図12で示すレコードは、テストスクリプト動的評価処理において、図9の分割スクリプトについて動作確認を行った際、再生に成功した画面遷移パターンが登録されている。遷移前画面属性0901には、「NULL」を指定することができる。この場合は、最初の画面に遷移する前の状態を表す。
本テスト実行システムでは、一度動作確認した画面遷移パターンをスクリプト結合パターンデータベース0120に保存しておき、次回以降のテストスクリプト動的評価処理において、スクリプト結合パターンデータベース0120に登録された画面遷移を優先して動作確認を試みる。この機能によって、不要な動作確認のコスト削減を実現する。
図13で示すテストスクリプトは、テストスクリプト併合処理において、テスト自動化装置「testCR」と「fastTest」によって記録された2つのテストスクリプトを、1つのテストスクリプトとして併合したものである。
図13のテストスクリプトは、図7(a)と(b)のテストスクリプトを併合したものであり、図14のテストスクリプトは、図8(a)と(b)のテストスクリプトを併合したものとなっている。
テスト自動化装置Xを指定するテスト自動化装置選択文を記述した行から、次のテスト自動化装置選択文が現れる行までは、テスト自動化装置Xによって再生可能なスクリプトを記述する。例えば、図14の7行目はテスト自動化装置「testCR」を指定するテスト自動化装置選択文であり、10行目はテスト自動化装置「fastTest」を指定するテスト自動化装置選択文である。そして、この2つのテスト自動化装置選択文の間にある8行目と9行目のスクリプトは、テスト自動化装置「testCR」によって再生可能なスクリプトとなっている。
以下、以上のように構成されたテスト実行システムの動作を説明する。
併合テスト自動化装置0103で本処理を開始する前に、テスト自動化装置リスト0110に、テストスクリプトを記録するテスト自動化装置の一覧を登録しておく必要がある。
まず、呼び出し元から与えられた引数を用いて、変数を初期化する(ステップ1101)。TSNは、これから記録する操作手順に対するテストスクリプトの名前を格納する変数である。
続いて、ステップ1102〜ステップ1105にて、テスト自動化装置リスト0110に登録された各テスト自動化装置の記録開始コマンド属性0402を使用し、名前をTSNとして、テストスクリプトの記録を開始する。全てのテスト自動化装置リスト0110について記録開始コマンドを実行したら、処理を終了する。
併合テスト自動化装置0103は、以上の処理を、テスト実行マシン0104の入力部0105に記録開始操作が行われる度に実行する。
なお、生成されるテストスクリプトは、そのスクリプトを生成したテスト自動化装置が備えるテストスクリプトデータベース0109に登録される。例えば、テスト自動化装置「testCR」が生成するテストスクリプトは、テスト自動化装置「testCR」が備えるテストスクリプトデータベースに登録される。
本処理は、併合テスト自動化装置0103でテストスクリプト記録開始処理を実行した場合のみ実行することができる。
本処理では、テスト自動化装置リスト0110に登録された各テスト自動化装置の記録終了コマンド属性0403を実行し、テストスクリプトの記録状態を終了させる(ステップ1201〜ステップ1204)。
併合テスト自動化装置0103は、以上の処理を、テスト実行マシン0104の入力部0105に記録終了操作が行われる度に実行する。
本処理は、併合テスト自動化装置0103でテストスクリプト記録開始処理、およびテストスクリプト記録終了処理を行い、各テスト自動化装置によってテストスクリプトを生成した状態でのみ実行することができる。
まず、呼び出し元から与えられた引数を用いて、変数を初期化する(ステップ1301)。
TSNは、これから併合するテストスクリプトの名前を格納する変数である。
SCLは、テストスクリプト動的評価処理において、分割スクリプトデータベース0121のレコードが、連続して再生可能な順番で格納される。SCLは、長さ0のリストとして初期化する。
分割スクリプトデータベース0121のレコードを削除したら、引数としてTSNを指定し、テストスクリプト分割処理を実行する(ステップ1303)。このテストスクリプト分割処理において、テスト自動化装置リスト0110のスクリプト分割文属性0406によって1つのテストスクリプトを複数個のスクリプトに分割し、分割スクリプトデータベース0121に登録する。
続いて、引数としてTSNとSCLを指定し、テストスクリプト動的評価処理を実行する(ステップ1305)。このテストスクリプト動的評価処理において、静的評価値の高いスクリプトを優先して動作確認を行い、連続して再生可能なスクリプトのリストを変数SCLに格納する。
併合テスト自動化装置0103は、以上の処理を、テスト実行マシン0104の入力部0105に併合操作が行われる度に実行する。
本処理は、複数のテスト自動化装置0102a,0102bによって記録されたスクリプトを、スクリプト分割文が現れる行によって分割し、分割スクリプトデータベース0121に登録するものである。
まず、呼び出し元から与えられた引数を用いて、変数を初期化する(ステップ1401)。TSNは、これから分割するテストスクリプトの名前を格納する変数である。
なお、本処理で分割されたスクリプトは、ステップ1407において、分割スクリプトデータベース0121に登録される。この登録の際には、予め算出したスクリプトの分割位置N、テストスクリプト分割文SCと合致する行から取得した画面名SNも併せて登録する。
ステップ1402〜1412が終了したら、本処理は終了する。
併合テスト自動化装置0103は、以上の処理を、テストスクリプト併合処理において呼び出される度に実行する。
本処理は、分割スクリプトデータベース0121に登録されたスクリプトを記述内容によって静的に評価し、その評価結果を分割スクリプトデータベース0121に登録するものである。
まず、呼び出し元から与えられた引数を用いて、変数を初期化する(ステップ1501)。TSNは、これから静的評価するテストスクリプトの名前を格納する変数である。
続いて、ステップ1502〜ステップ1516において、分割スクリプトデータベース0121に登録された、スクリプト名属性0702がTSNである全ての分割スクリプトBSRの静的評価値を算出する。
分割スクリプトBSRと一致する再生可能スクリプトデータベース0118のスクリプトが存在しない場合は、不安定コマンドデータベース0119に登録された再現性の低い不安定コマンドが、BSRのスクリプト中に現れる回数を算出し、その回数の負数であるEでBSRの静的評価値属性0706を更新し、BSRの再生可能フラグ属性0707をFalseに更新する(ステップ1503〜ステップ1505、ステップ1509〜1515、ステップ1508)。
併合テスト自動化装置0103は、以上の処理を、テストスクリプト併合処理において呼び出される度に実行する。
本処理は、分割スクリプトデータベース0121に登録されたスクリプトを、その静的評価値の高いものを優先して動作確認し、連続して再生可能な順番で分割スクリプトを並べたリストを返すものである。
まず、呼び出し元から与えられた引数を用いて、変数を初期化する(ステップ1601)。TSNは、これから静的評価するテストスクリプトの名前を格納する変数である。
SCLは、本処理の結果を格納する参照変数であり、この変数の値は呼び出し元から参照することができる。Nは、現在の分割番号をテスト自動化装置ごとに格納するマップ変数である。テスト自動化装置によっては、特定の画面に対する操作を記録できないことがあるため、テストスクリプトを画面単位で分割する場合、スクリプトの分割数が一致しない事がある。この分割数のズレを補正するために、マップ変数Nを使用し、現在の動的評価の対象である分割スクリプトの分割番号をテスト自動化装置ごとに管理する。ステップ1602〜1604は、このマップ変数Nに対し、全てのテスト自動化装置の分割位置を1で初期化する処理である。
なお、本処理を終了する際は、呼び出し元に変数SCLの値を戻り値として返す。
併合テスト自動化装置0103は、以上の処理を、テストスクリプト併合処理において呼び出される度に実行する。
本処理は再帰呼び出しが可能であり、各呼び出しごとに、固有の変数を作成する。
まず、呼び出し元から与えられた引数を用いて、変数を初期化する(ステップ1701〜1707)。SCL2は、これまでの動的評価によって、連続して再生可能な順番で分割スクリプトが格納されているリスト変数である。
N2は、各テスト自動化装置における、現在の分割番号を格納するマップ変数である。RRは、各テスト自動化装置における、現在の分割番号の分割スクリプトを格納する集合変数である。ステップ1702〜1707は、このRRの初期化処理である。
RRに分割スクリプトが存在しない場合は、本処理の戻り値として、引数であるSCL2をそのまま設定し(ステップ1708〜ステップ1709)、処理を終了する。
上記フローは、全ての分割位置についての探索が終了し、分割スクリプトのリストSCL2が完成したことを表している。
続くステップ1713では、スクリプト結合パターンデータベース0120より、遷移前画面がBSである場合に、その遷移後画面として再生実績のある画面の集合BSSを取得する。
そして、まず最初に、集合PRに対し、サブルーチン2を実行して動作確認し(ステップ1715)、戻り値RSを確認する(ステップ1716)。サブルーチン2の戻り値RSがNULLでない場合は、PRの1つの要素を遷移後画面とする、連続して再生可能な分割スクリプトのリストがRSに格納されている。よって、戻り値がNULLでない場合は、本処理の戻り値としてRSを設定し(ステップ1717)、処理を終了する。
併合テスト自動化装置0103は、以上の処理を、テストスクリプト動的評価処理において、本処理が再帰的に呼び出される度に実行する。
図32及び図33にこの動的評価処理結果の例を示している。
本処理は再帰呼び出しが可能であり、各呼び出しごとに、固有の変数を作成する。
まず、呼び出し元から与えられた引数を用いて、変数を初期化する(ステップ1801)。SCL3は、これまでの動的評価によって、連続して再生可能な順番で分割スクリプトが格納されているリスト変数である。
N3は、各テスト自動化装置における、現在の分割番号を格納するマップ変数である。
Rは、現在動作確認対象となっている分割スクリプトの集合であり、テストスクリプト動的評価処理のサブルーチン1のステップ1714で作成した変数PRとIRのいずれかが代入される。
併合テストスクリプト再生処理のサブルーチンを実行することで分割スクリプトRIの動作確認を行い(ステップ1804〜1805)、再生に成功したら、その分割スクリプトRIを再生可能スクリプトデータベース0118のレコードとして追加し(ステップ1806〜1807)、再生に成功した画面遷移パターンをスクリプト結合パターンデータベース0120に追加する(ステップ1808)。再生可能スクリプトデータベース0118に分割スクリプトのレコードを追加する場合は、分割スクリプトの静的評価値属性0706に「10」を加算したものを登録する。これは、スクリプトに含まれる不安定コマンドの数が同じであっても、動作確認実績のあるスクリプトの優先度を高くするためである。
併合テスト自動化装置0103は、以上の処理を、テストスクリプト動的評価処理において、本処理が再帰的に呼び出される度に実行する。
本処理は、テストスクリプト動的評価処理において、連続して再生可能な順番で格納された分割スクリプトのリストに従い、併合テストスクリプト再生処理において再生可能な、1つのテストスクリプトを生成するものである。
まず、呼び出し元から与えられた引数を用いて、変数を初期化する(ステップ1901)。SCLは、テストスクリプト動的評価処理によって生成された、連続して再生可能な順番で分割スクリプトが格納されているリスト変数である。
TSNは、これから生成するテストスクリプトの名前を格納する変数である。
Mは、併合後のスクリプトを格納する変数であり、NULLで初期化する。
併合テスト自動化装置0103は、以上の処理を、テストスクリプト併合処理において呼び出される度に実行する。
本処理は、テストスクリプトの名前を与えることで、併合テストスクリプトデータベース0113に登録されたテストスクリプトを再生するものである。
まず、呼び出し元から与えられた引数を用いて、変数を初期化する(ステップ2001)。TSNは、これから再生するテストスクリプトの名前を格納する変数である。
Sは、テスト自動化装置選択文によって分割したスクリプトを格納する変数である。
TAは、スクリプトSを再生するテスト自動化装置の名前である。
変数の初期化が終わったら、併合テストスクリプトデータベース0113より、名前がTSNであるテストスクリプトTSを開く(ステップ2002)。
分割したスクリプトSの再生は、併合テストスクリプト再生処理のサブルーチンを使用して行う(ステップ2006)。Sを再生するテスト自動化装置TAは、テスト自動化装置選択文を文字列解析することによって取得する(ステップ2007)。
ループAの全ての処理が終わったら、ステップ2010の処理に移る
ステップ2010〜2011では、ループAにおいて再生できなかった、テストスクリプトTSの最後の分割スクリプトを再生する。
併合テスト自動化装置0103は、以上の処理を、テスト実行マシン0104の入力部0105に再生操作が行われる度に実行する。
本処理は、テストスクリプトの名前を与えてテストスクリプトデータベース0109からテストスクリプトを検索するのではなく、テストスクリプトの記述内容を直接与えて再生する処理であり、併合テストスクリプト再生処理、テストスクリプト動的評価処理において、実行されるものである。
まず、呼び出し元から与えられた引数を用いて、変数を初期化する(ステップ2101)。
S2は、再生するスクリプトを格納する変数である。
TA2は、スクリプトS2の再生に使用するテスト自動化装置の名前である。
続いて、テスト自動化装置TA2を使用してスクリプトS2を再生し(ステップ2102〜2104)、その再生結果を戻り値として設定し(ステップ2105〜2107)、処理を終了する。
併合テスト自動化装置0103は、以上の処理を、併合テストスクリプト再生処理、テストスクリプト動作確認処理において呼び出される度に実行する。
0102 テスト自動化装置
0103 併合テスト自動化装置
0104 テスト実行マシン
0107 テストスクリプト記録装置
0108 テストスクリプト再生装置
0111 併合テストスクリプト記録装置
0114 テストスクリプト分割部
0115 テストスクリプト静的評価部
0116 テストスクリプト動的評価部
0117 テストスクリプト併合部
0112 併合テストスクリプト再生装置
Claims (1)
- テスト対象GUIアプリケーションに対する操作を記録・再生する複数のテスト自動化装置と、複数のテスト自動化装置を使ってテスト対象GUIアプリケーションに対する操作を記録・再生する併合テスト自動化装置と、前記テスト自動化装置と前記併合テスト自動化装置とテスト対象GUIアプリケーションを配するテスト実行マシンと、テスト実行マシンの入力部および表示部とからなり、
前記テスト自動化装置が、前記テスト対象GUIアプリケーションに対して入力した操作手順をテストスクリプトとして記録するテストスクリプト記録装置と、前記テストスクリプトを再生するテストスクリプト再生装置と、前記テストスクリプトを登録するテストスクリプトデータベースとを備え、
前記併合テスト自動化装置が、当該装置が使用する前記テスト自動化装置の一覧を登録したテスト自動化装置リストに登録されたテスト自動化装置と連携してテストスクリプトを記録する併合テストスクリプト記録装置と、前記テスト自動化装置リストに登録されたテスト自動化装置と連携して併合テストスクリプトを再生する併合テストスクリプト再生装置と、前記併合テストスクリプト記録装置が生成するテストスクリプトを登録する併合テストスクリプトデータベースとを備え、
前記併合テストスクリプト記録装置が、前記テスト自動化装置が生成したテストスクリプトを複数個のテストスクリプトに分割するテストスクリプト分割部と、テストスクリプトの再現性が高いかどうかを記述内容から静的に評価するテストスクリプト静的評価部と、分割したテストスクリプトを結合し、その結合パターンが有効かどうかを実際に再生して評価するテストスクリプト動的評価部と、指定した結合パターンに従ってテストスクリプトを併合するテストスクリプト併合部と、前記スクリプト動的評価部で再生可能と評価されたスクリプトを格納する再生可能スクリプトデータベースと、テストスクリプト中に現れる再現性の低いコマンドの一覧を登録する不安定コマンドデータベースと、前記テストスクリプト動的評価部で再生可能と評価されたスクリプト結合パターンを登録するスクリプト結合パターンデータベースと、前記テストスクリプト分割部で分割されたスクリプトおよび前記静的評価部において算出された静的評価結果を登録する分割スクリプトデータベースとを備える
ことを特徴とするテスト自動化システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011216545A JP5677924B2 (ja) | 2011-09-30 | 2011-09-30 | テスト自動化システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011216545A JP5677924B2 (ja) | 2011-09-30 | 2011-09-30 | テスト自動化システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013077159A true JP2013077159A (ja) | 2013-04-25 |
JP5677924B2 JP5677924B2 (ja) | 2015-02-25 |
Family
ID=48480575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011216545A Expired - Fee Related JP5677924B2 (ja) | 2011-09-30 | 2011-09-30 | テスト自動化システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5677924B2 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103425123A (zh) * | 2013-08-15 | 2013-12-04 | 上海固泰科技有限公司 | 一种基于软件脚本的can总线自动化测试方法 |
CN106201873A (zh) * | 2016-07-01 | 2016-12-07 | 网易(杭州)网络有限公司 | 测试脚本的处理方法和装置 |
JP2017102807A (ja) * | 2015-12-04 | 2017-06-08 | 株式会社日立製作所 | テスト支援装置、テスト支援方法、及びプログラム |
JP2018113015A (ja) * | 2016-09-23 | 2018-07-19 | ケーピーアイティ テクノロジーズ リミテッド | オートノマスシステムの検証法 |
KR20230030142A (ko) * | 2021-08-25 | 2023-03-06 | 한국과학기술원 | 최적화된 실행기를 활용한 자바스크립트 정적 분석 가속화 시스템 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5513316A (en) * | 1990-09-07 | 1996-04-30 | Computervision Corporation | Method and apparatus for exercising an integrated software system |
JP2006018827A (ja) * | 2004-06-30 | 2006-01-19 | Microsoft Corp | スマート・ユーザ・インターフェース記録および再生フレームワーク |
JP2008040537A (ja) * | 2006-08-01 | 2008-02-21 | Hitachi Information Systems Ltd | Guiテスト支援システム及びテスト支援用アプリケーションプログラム |
JP2009140155A (ja) * | 2007-12-05 | 2009-06-25 | Fujitsu Ltd | アプリケーションプログラムのテストプログラム |
JP2010186332A (ja) * | 2009-02-12 | 2010-08-26 | Hitachi Software Eng Co Ltd | テスト実行システム |
-
2011
- 2011-09-30 JP JP2011216545A patent/JP5677924B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5513316A (en) * | 1990-09-07 | 1996-04-30 | Computervision Corporation | Method and apparatus for exercising an integrated software system |
JP2006018827A (ja) * | 2004-06-30 | 2006-01-19 | Microsoft Corp | スマート・ユーザ・インターフェース記録および再生フレームワーク |
JP2008040537A (ja) * | 2006-08-01 | 2008-02-21 | Hitachi Information Systems Ltd | Guiテスト支援システム及びテスト支援用アプリケーションプログラム |
JP2009140155A (ja) * | 2007-12-05 | 2009-06-25 | Fujitsu Ltd | アプリケーションプログラムのテストプログラム |
JP2010186332A (ja) * | 2009-02-12 | 2010-08-26 | Hitachi Software Eng Co Ltd | テスト実行システム |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103425123A (zh) * | 2013-08-15 | 2013-12-04 | 上海固泰科技有限公司 | 一种基于软件脚本的can总线自动化测试方法 |
JP2017102807A (ja) * | 2015-12-04 | 2017-06-08 | 株式会社日立製作所 | テスト支援装置、テスト支援方法、及びプログラム |
CN106201873A (zh) * | 2016-07-01 | 2016-12-07 | 网易(杭州)网络有限公司 | 测试脚本的处理方法和装置 |
JP2018113015A (ja) * | 2016-09-23 | 2018-07-19 | ケーピーアイティ テクノロジーズ リミテッド | オートノマスシステムの検証法 |
JP7064303B2 (ja) | 2016-09-23 | 2022-05-10 | ケーピーアイティ テクノロジーズ リミテッド | オートノマスシステムの検証法 |
KR20230030142A (ko) * | 2021-08-25 | 2023-03-06 | 한국과학기술원 | 최적화된 실행기를 활용한 자바스크립트 정적 분석 가속화 시스템 |
KR102514805B1 (ko) | 2021-08-25 | 2023-03-29 | 한국과학기술원 | 최적화된 실행기를 활용한 자바스크립트 정적 분석 가속화 시스템 |
Also Published As
Publication number | Publication date |
---|---|
JP5677924B2 (ja) | 2015-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10409564B2 (en) | Recording and playback of development sessions | |
KR101120756B1 (ko) | 사용자 인터페이스 상에서의 사용자 액션을 설명하는텍스트를 자동으로 생성하는 시스템, 방법 및 그 컴퓨터실행가능 명령어를 포함하는 컴퓨터 판독가능 매체 | |
US7036079B2 (en) | Importation of automatically generated content | |
US10191832B2 (en) | Multi-language playback framework | |
JP5677924B2 (ja) | テスト自動化システム | |
JP2015141664A (ja) | 構造化文書に基づいて動画を動的に作成する方法、並びに、その電子装置、電子システム、及び電子装置用プログラム | |
JP2011145747A (ja) | スタイル要素を用いた画面表示の選択した表示領域をコピーアンドペーストする方法、システム及びプログラム | |
CN113505082B (zh) | 应用程序测试方法及装置 | |
KR20100056338A (ko) | 재활용도를 높일 수 있는 gui 테스트 자동화 시스템 및 그 방법 | |
CN116630990B (zh) | Rpa流程元素路径智能修复方法及系统 | |
JP2013137584A (ja) | 電子機器、表示方法、およびプログラム | |
US10430309B2 (en) | Duplicating a task sequence from a graphical user interface interaction for a development application in view of trace data | |
JP4602312B2 (ja) | 機器設定装置、機器設定方法、情報取得装置、情報取得方法、記録媒体及びプログラム | |
CN111767214B (zh) | 软件ui的自动化测试方法及装置 | |
CN112380871A (zh) | 语义识别方法、设备及介质 | |
JP2006127117A (ja) | Web閲覧操作の記録・再生方法及び装置及びプログラム及びプログラムを格納した記憶媒体 | |
JP2005135369A (ja) | 処理装置、応用プログラム、リソース再生方法、応用プログラム生成方法及びリソースデータ群のデータ構造 | |
KR20150027426A (ko) | 애플리케이션 자동검증 시스템 및 방법 | |
JP5735075B2 (ja) | 電子機器、表示方法、およびプログラム | |
JP2008243048A (ja) | 対話装置、対話方法及びプログラム | |
JP2008299493A (ja) | コンテンツ作成支援システム及びコンピュータプログラム | |
JP6419902B1 (ja) | プログラム比較方法、プログラム比較装置およびプログラム比較プログラム | |
JP3536670B2 (ja) | マルチメディアデータの提示方法及びシステム及びマルチメディアデータの提示プログラムを格納した記憶媒体 | |
KR20140080717A (ko) | 태스크 그래프 기반 대화 처리 시스템의 태스크 그래프 구축 장치 및 방법 | |
JP5251863B2 (ja) | ツリ−構造を利用した、ユ−ザ・インタフェイスの構成要素情報の記録およびユ−ザ・インタ−フェイス操作を記録再生するためのプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140107 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140724 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140801 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140929 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20141222 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150105 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5677924 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |