JP2010102620A - ユーザ操作シナリオ生成装置、方法およびプログラム - Google Patents
ユーザ操作シナリオ生成装置、方法およびプログラム Download PDFInfo
- Publication number
- JP2010102620A JP2010102620A JP2008275384A JP2008275384A JP2010102620A JP 2010102620 A JP2010102620 A JP 2010102620A JP 2008275384 A JP2008275384 A JP 2008275384A JP 2008275384 A JP2008275384 A JP 2008275384A JP 2010102620 A JP2010102620 A JP 2010102620A
- Authority
- JP
- Japan
- Prior art keywords
- gui
- user operation
- gui component
- operation scenario
- component
- 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コンポーネントを検出するプログラム解析手段10と、各GUIコンポーネントに対して可能な操作を示す情報およびGUIフレームワークの制約を示す情報とに基づいて、プログラム解析手段10によって検出されたGUIコンポーネントに対して可能な操作を特定するGUIコンポーネント操作特定手段20と、GUIコンポーネント操作特定手段20によって特定されたGUIコンポーネント操作に基づいて、テスト対象であるGUIアプリケーションに対するユーザ操作の手順を決定し、その旨を規定したユーザ操作シナリオを生成するユーザ操作シナリオ生成手段30とを備える。
【選択図】 図1
【解決手段】GUIアプリケーションのプログラムコードを解析し、該GUIアプリケーションに用いられているGUIコンポーネントを検出するプログラム解析手段10と、各GUIコンポーネントに対して可能な操作を示す情報およびGUIフレームワークの制約を示す情報とに基づいて、プログラム解析手段10によって検出されたGUIコンポーネントに対して可能な操作を特定するGUIコンポーネント操作特定手段20と、GUIコンポーネント操作特定手段20によって特定されたGUIコンポーネント操作に基づいて、テスト対象であるGUIアプリケーションに対するユーザ操作の手順を決定し、その旨を規定したユーザ操作シナリオを生成するユーザ操作シナリオ生成手段30とを備える。
【選択図】 図1
Description
本発明は、GUIアプリケーションに対するユーザ操作シナリオを生成するユーザ操作シナリオ生成装置、ユーザ操作シナリオ生成方法およびユーザ操作シナリオ生成用プログラムに関する。
近年、GUIライブラリの複雑化や高度化に伴ない、GUIアプリケーションに対するユーザ操作のテストが非常に複雑になっている。
GUIアプリケーションに対するユーザ操作のテストの多くは、テスターが仕様書をもとに、ユーザ操作シナリオ(テストにおけるユーザ操作の手順を規定した情報。テスト設計)の作成を行い、テスト実施を手動または自動で行っている。一般に利用されているGUIテスト自動化ツール(例えば、下記ツール1,ツール2)は、最初にテスターが手動で操作を行い、その操作を記録して再現するという回帰テストに利用されている。
・ツール1:IBM Rational Functional Tester(http://www−06.ibm.com/jp/software/rational/products/test/rft/)
・ツール2:HP QuickTest Professional software(http://h10078.www1.hp.com/cda/hpms/display/main/hpms_content.jsp?zn=bto&cp=1−11−127−24^1352_4000_306__)
・ツール2:HP QuickTest Professional software(http://h10078.www1.hp.com/cda/hpms/display/main/hpms_content.jsp?zn=bto&cp=1−11−127−24^1352_4000_306__)
なお、GUIアプリケーションに対するユーザ操作のテストに用いるユーザ操作シナリオの自動生成に関連する技術として、例えば、特許文献1には、GUIの操作を自動的に行うGUIテスト装置が記載されている。また、特許文献2には、プログラム作成工程で生成されるプログラムの構造等を表す情報から、システムテストの実施に際して必要な情報を自動的に作成するソフトウェア開発支援装置が記載されている。
しかし、テスターが仕様書をもとに手動でユーザ操作シナリオを作成する場合には、GUIの構成変更があると作成しなおさなければならず、テストの効率化にならない場合が多い。また、属人性を排除できず、ユーザ操作シナリオの網羅性が保証されないという問題もある。
なお、特許文献1に記載されているGUIテスト装置は、GUIの操作に対応するイベント情報を作成し、作成されるイベントの情報から実際のイベントを作成し、それをテスト対象のアプリケーションに送出することにより、テストの手間と期間とを低減することを目的としている。従って、テスト実施において効果的なユーザ操作シナリオを自動生成しようということは考慮されていない。例えば、特許文献1には、イベント情報の作成に関し、実際のGUI操作から作成したり、簡易言語にて記述させた操作記述を翻訳することにより作成することが記載されている。しかし、その実際に操作させたり操作記述をユーザに記述させるのでは、属人性が排除できない。従って、テストすべきユーザ操作の手順として網羅性が保証されないという手動でユーザ操作シナリオを生成する場合と同様の問題が生じる。
また、特許文献2に記載されているソフトウェア開発支援装置は、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コンポーネント操作特定手段と、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は、本発明によるユーザ操作シナリオ生成装置の構成例を示すブロック図である。図1に示すユーザ操作シナリオ生成装置100は、プログラム解析手段10と、GUIコンポーネント操作特定手段20と、ユーザ操作シナリオ生成手段30とを備えている。
プログラム解析手段10は、テスト対象であるGUIアプリケーションのプログラムコードを解析し、該GUIアプリケーションに用いられているGUIコンポーネントを検出する。
GUIコンポーネント操作特定手段20は、各GUIコンポーネントに対して可能な操作を示す情報およびGUIフレームワークの制約を示す情報とに基づいて、プログラム解析手段10によって検出されたGUIコンポーネントに対して可能な操作を特定する。
ユーザ操作シナリオ生成手段30は、GUIコンポーネント操作特定手段20によって特定されたGUIコンポーネント操作に基づいて、テスト対象であるGUIアプリケーションに対するユーザ操作の手順を決定し、その旨を規定したユーザ操作シナリオを生成する。ユーザ操作シナリオ生成手段30は、例えば、最大操作シナリオ長の範囲内において、各GUIコンポーネントに対して可能な操作を並び替えることにより生成される各手順から制約に違反するものを削除した結果残った手順を、テスト対象であるGUIアプリケーションに対するユーザ操作の手順として決定してもよい。なお、最大操作シナリオ長は、ユーザが設定してもよいし、検出されたGUIコンポーネントの数や各GUIコンポーネントの最大操作回数から求めてもよい。
また、図2は、本発明によるユーザ操作シナリオ生成装置の他の構成例を示すブロック図である。図2に示すように、ユーザ操作シナリオ生成装置100は、さらに、GUIコンポーネント情報保持手段40と、操作設定手段50とを備えていてもよい。また、プログラム解析手段10は、GUIライブラリ判別手段11と、GUIコンポーネント抽出手段12とを含んでいてもよい。
GUIライブラリ判別手段11は、テスト対象であるGUIアプリケーションのプログラムコードが使用しているGUIライブラリを判別する。また、GUIコンポーネント抽出手段12は、テスト対象であるGUIアプリケーションのプログラムコードから、当該GUIアプリケーションの各画面に用いられているGUIコンポーネントの情報を抽出する。
GUIコンポーネント情報保持手段40は、テスト対象であるGUIアプリケーションに用いられる可能性のある各GUIコンポーネントに対して可能な操作を示す情報およびGUIフレームワークの制約を示す情報とを保持する。GUIフレームワークの制約を示す情報として、例えば、各画面のGUIコンポーネントに対する必須操作または不許可操作を規定した操作制約を示す情報と、各画面の最大操作回数を示す情報と、各GUIコンポーネントの操作の繰り返し限度回数を示す情報のうちの少なくともいずれかを含む情報を保持してもよい。なお、図2に示す例では、ユーザ操作シナリオ生成装置100がGUIコンポーネント情報保持手段40を備える例を示しているが、GUIコンポーネント情報保持手段40は、独立したデータベースシステムとして実装されていてもよい。そのような場合には、ユーザ操作シナリオ生成装置100とそのデータベースシステムとがアクセス可能に接続されていればよい。
操作設定手段50は、GUIコンポーネントに対して可能な操作またはGUIフレームワークの制約のうち少なくともいずれかをユーザからの指示に基づき設定する。
以下、より具体的な実施形態について説明する。図3は、本実施形態におけるユーザ操作シナリオ生成装置の構成例を示すブロック図である。図3に示すユーザ操作シナリオ生成装置100は、プログラム解析部101と、GUIコンポーネント操作特定部102と、操作設定部103と、ユーザ操作シナリオ生成部104と、GUIコンポーネントデータベース105(以下、GUIコンポーネントDB105という。)とを備えている。
なお、本実施形態において、プログラム解析部101と、GUIコンポーネント操作特定部102と、操作設定部103と、ユーザ操作シナリオ生成部104とは、例えば、プログラムに従って動作するCPUによって実現される。また、GUIコンポーネントDB105は、記憶装置および該記憶装置のアクセス制御を行う制御手段によって実現される。なお、操作設定部103は、プログラムに従って動作するCPUと、ディスプレイ等の情報をユーザに提示する出力装置と、マウス,キーボード等のユーザに情報を入力させる入力装置とによって実現される場合もある。
なお、本実施形態におけるプログラム解析部101は、図1および図2に示したプログラム解析手段10に相当する処理手段である。また、GUIコンポーネント操作特定部102は、図1および図2に示したGUIコンポーネント操作特定手段20に相当する処理部である。また、操作設定部103は、図2に示した操作設定手段50に相当する処理部である。また、ユーザ操作シナリオ生成部104は、図1および図2に示したユーザ操作シナリオ生成手段30に相当する処理部である。また、GUIコンポーネントDB105は、図2に示したGUIコンポーネント情報保持手段40に相当する記憶部である。
プログラム解析部101は、GUIライブラリ決定機能と、GUIコンポーネント検出機能を持つ。GUIライブラリ決定機能は、入力されるGUIプログラム200のファイル拡張子やプログラムコードで使用されているGUIコンポーネント名をGUIコンポーネントDB105に問合せ、使用されているGUIライブラリを決定する。GUIコンポーネント検出機能は、入力されるGUIプログラム200のプログラムコードから、GUIライブラリ決定機能により決定されたGUIライブラリの各コンポーネントを検出し、各画面で用いられているユーザ操作の可能なGUIコンポーネントの一覧(以下、GUIコンポーネント一覧という。)を作成する。なお、GUIコンポーネント一覧は、より具体的には、検出された各画面で用いられているユーザ操作の可能なGUIコンポーネントを特定可能な情報を一覧にして示す情報である。
GUIコンポーネント操作特定部102は、GUIコンポーネントDB105と連携し、プログラム解析部101(より具体的には、GUIコンポーネント検出機能)が検出した各画面のGUIコンポーネントについて、該GUIコンポーネントに対して可能な操作の情報を取得し、操作一覧を作成する。なお、操作一覧は、より具体的には、各々のGUIコンポーネントに対して可能な操作を示す情報を一覧にして示す情報である。、
操作設定部103は、GUIコンポーネント操作特定部102が作成した各GUIコンポーネントの操作一覧に対して、必須操作や不許可操作といった操作制約の設定、また各画面の最大操作回数の設定や各GUIコンポーネントの操作の繰り返し限度回数の設定を行う。実際のアプリケーションでは行われることのない操作や繰り返し限度回数等を設定することにより、より精度の高い操作シナリオが生成可能となる。なお、操作設定部103は、ユーザ操作に応じて、このようなGUIフレームワークの制約の設定を行ってもよい。
ユーザ操作シナリオ生成部104は、最終的に生成された操作一覧に基づき、ユーザ操作シナリオを生成する。ユーザ操作シナリオは各画面のGUIコンポーネントに対する各操作を設定された情報をもとに並び替えることによって、シナリオとして生成する。
GUIコンポーネントDB105は、各種GUIライブラリが提供しているコンポーネントに対して可能な操作や各操作の制約等を知識として保持している。例えば、Swingライブラリ関しては以下のような知識を保持していてもよい。SwingライブラリにはJWindow、JLabel等のGUIコンポーネントが存在する。各コンポーネントに対して可能操作として、クリック、ドラッグ、閉じる、マウスダウン、マウスアップ等の操作を示す情報を保持してもよい。また、マウスダウンの後にはマウスアップという操作が必ず発生するといった制約や閉じるの後はユーザ操作はできないという制約を示す情報を保持してもよい。
このようなGUIコンポーネントDB105と連携することにより、GUIフレームワークにおける制約のため、実際には行われることのない操作を除外することが可能となる。
本例では、ユーザ操作シナリオ生成装置がこれらの部位から構成され、GUIプログラム200を入力として動作し、ユーザ操作シナリオ300を出力する。
次に、本実施形態の動作について説明する。図4は、本実施形態のユーザ操作シナリオ生成装置の動作の一例を示すフローチャートである。図4に示すように、本実施形態では、例えば、GUIプログラム200を受け取ると、プログラム解析部101が入力されたGUIプログラム200を解析し、GUIコンポーネントDB105を参照して、GUIライブラリを決定する(ステップS101)。GUIライブラリは、例えば、入力されるGUIプログラム200のファイル拡張子やプログラムコードに記述されているGUIコンポーネント名を指定して、GUIコンポーネントDB105に問合せを行い、GUIライブラリの情報と一致したものを使用GUIライブラリとして決定すればよい。
次に、プログラム解析部101は、決定したGUIライブラリの情報を基に、入力されたGUIプログラム200から、各画面に用いられているユーザの操作可能なGUIコンポーネントを検出し、GUIコンポーネント一覧を作成する(ステップS102)。
プログラム解析部101によってGUIコンポーネント一覧が作成されると、次にGUIコンポーネント操作特定部102は、GUIコンポーネント一覧に含まれる各GUIコンポーネントについて、該GUIコンポーネントに対して可能な操作を、GUIコンポーネントDB105より取得し、操作一覧を作成する(ステップS103)。
操作一覧が作成されると、操作設定部103は、作成された操作一覧に対して、必須操作や不許可操作といった操作制約の設定、各画面の最大操作回数、各操作の繰り返し限度回数などの設定を行う(ステップS104)。操作設定部103は、例えば、各画面のGUIコンポーネント操作一覧に対して、必須操作や不許可操作といった操作制約の設定や各画面の最大操作回数の設定や各GUIコンポーネントの操作の繰り返し限度回数の設定をユーザが入力できるような入力手段(例えば、設定画面等)を提示し、ユーザ操作に応じて設定してもよい。
最後に、ユーザ操作シナリオ生成部104は、最終的に作成された操作一覧に基づき、各GUIコンポーネントに対して可能な操作を、上記制約のもとに並べ、ユーザ操作シナリオ300を生成する(ステップS105)。
以上のように、本実施形態によれば、GUIプログラムからユーザ操作シナリオを自動生成することができる。また、ユーザ操作シナリオの生成工程から属人性を排除し、網羅的なユーザ操作シナリオを生成することができる。
以下、具体的な例を提示して本実施形態の動作を説明する。ここでは、図5に示すGUIを実現するGUIアプリケーションのプログラムが入力された場合を例に用いる。また、このGUIアプリケーションは、Java(登録商標) Swingアプリケーションであり、画面が1しかないと仮定する。
入力として図5に示すGUIを実現するプログラムコードを受け取ると、本装置では、プログラム解析部101がGUIプログラムコードの解析を行う。まず、GUIライブラリ決定機能で入力GUIプログラム内で使用されているGUIライブラリの判別を行い、使用されているGUIライブラリを決定する。この例の場合、GUIライブラリ決定機能は、”***.java”というファイルを入力として受け取り、ファイル拡張子および使用されているGUIコンポーネント名からSwingライブラリが使用されていると判別し、テスト対象のGUIアプリケーションがJava Swingアプリケーションであると認識する。
次に、GUIコンポーネント抽出機能で、Java SwingアプリケーションのGUIコンポーネントを抽出する。GUIコンポーネント抽出機能は、例えば、GUIプログラムコードを順に解析し、GUIコンポートが実体化されている記述を探索することにより、GUIコンポーネントを抽出してもよい。本例では、以下のGUIコンポーネントが抽出され、これを示すGUIコンポーネント一覧が作成される。
1.JWindow
2.JLabel
3.JButton
1.JWindow
2.JLabel
3.JButton
次に、GUIコンポーネント操作特定部102が、GUIコンポーネントDB105に問合せてGUIコンポーネント一覧に含まれる各コンポーネントに対して可能な操作を取得し、操作一覧を作成する。図6は、本例において作成される操作一覧の例を示す説明図である。図6に示す例では、例えば、GUIコンポーネント「JWindow」に対しては、最小化、最大化、閉じる、クリック、ドラッグが可能操作として示されている。また、例えば、GUIコンポーネント「JLabel」に対しては、クリックとドラッグが可能操作として示されている。また、例えば、GUIコンポーネント「JButton」に対しては、クリックとドラッグが可能操作として示されている。なお、本例では、説明を簡単にするために、実際のGUIコンポーネントに対して可能な操作とは異なる例を示している。また、画面が複数存在する場合は、図6に示す操作一覧を画面毎に複数作成すればよい。
次に、操作設定部103が、必須操作や不許可操作といった操作制約の設定、また各画面の最大操作回数、各操作の繰り返し回数の設定を行う。この設定はGUIコンポーネントDB105に事前に登録してある情報を参照して行ってもよいし、この段階(操作一覧が作成された時点)で利用者に入力手段を提示して設定させることにより行ってもよい。
図7は、操作設定部103による設定後の操作一覧の例を示す説明図である。図7に示す例では、GUIコンポーネント「JWindow」の閉じる操作の後にはユーザはどのような操作も行えないという制約があるので「閉じる」操作にEndマーク(図7における”(E)”マーク)がつけられている。また、「閉じる」操作以外の操作は不許可とし、操作一覧から削除されている。また、GUIコンポーネント「JLabel」については、「クリック」操作は不許可として操作一覧から削除されるとともに、各操作に対する繰り返し限度回数が2回と設定されている。また、GUIコンポーネント「JButton」については、「ドラッグ」操作は不許可として操作一覧から削除されるとともに、各操作に対する繰り返し限度回数が2回と設定されている。また、図示省略しているが、この画面の最大操作回数は3回として設定されているとする。この画面の最大操作回数は、ユーザ操作シナリオにおいて最大操作シナリオ長として用いられる。
以上の情報を得ると、ユーザ操作シナリオ生成部104は、ユーザ操作シナリオを作成する。操作一覧で示される各GUIコンポーネントの操作を上記設定した制約をもとに並べ、網羅的なシナリオを作成する。本例では、図8に示すような網羅的な17通りのユーザ操作シナリオが生成される。
ユーザ操作シナリオ生成部104は、各操作の組み合わせの生成を、次のように行ってもよい。まず、操作一覧より最大操作シナリオ長を求める。求めた最大操作シナリオ長の範囲内における各長さでの操作を組み合わせて操作手順を生成する。操作手順の生成は、取りうる操作の単純な並び替えによって行えばよい。次に、生成した操作手順群から制約に違反するものを削除する。
本例の場合、最大操作シナリオ長が3であることが求まるため、シナリオ長=1,2,3における操作シナリオを生成すればよい。図9は、ユーザ操作シナリオの生成過程の例を示す説明図である。なお、図9(a)は、最大操作シナリオ長に基づく操作手順の生成の例を示す説明図である。また、図9(b)は、制約に基づく操作手順の削除の例を示す説明図である。例えば、図9(a)に示すように、まず操作シナリオ長を1に設定して、3通りの操作手順(1−1)〜(1−3)を生成する。また、操作シナリオ長を2に設定して、6通りの操作手順(2−1)〜(2−6)を生成する。また、操作シナリオ長を3に設定して、6通りの操作手順(3−1)〜(3−6)を生成する。この時点では、計15通りの操作手順が生成される。なお、本例では、説明を簡単にするため、各操作に対する繰り返し限度回数が1回である場合を例示している。
次に、生成された計15通りの操作手順に対して、制約による削除を行う。本例では、「JWindow」の「閉じる」操作に対してEndマークが設定されているので、本操作の後に操作がある操作手順、および「JWindow」の「閉じる」操作で終了していない操作手順を削除すればよい。例えば、図9(b)に示すように、操作手順(1−2),(1−3),(2−1),(2−2),(2−4),(2−6),(3−1),(3−2),(3−3),(3−5)を削除すればよい。
なお、画面が複数ある場合には、次の画面への操作を起こす操作に画面遷移マークを設定すればよい。画面遷移マークが設定されている操作については、Endマークと同様に処理すればよい。ただし、画面遷移マークの場合は次の画面に移行し、各画面のユーザ操作シナリオと合成する。
本発明は、GUIアプリケーションに対するユーザ操作のテストを行う用途に、好適に適用可能である。
100 ユーザ操作シナリオ生成装置
10 プログラム解析手段
11 GUIコンポーネント抽出手段
12 GUIライブラリ判別手段
20 GUIコンポーネント操作特定手段
30 ユーザ操作シナリオ生成手段
40 GUI情報保持手段
50 操作設定手段
101 プログラム解析部
102 GUIコンポーネント操作特定部
103 操作設定部
104 ユーザ操作シナリオ生成部
105 GUIコンポーネントデータベース(GUIコンポーネントDB)
200 GUIプログラム(GUIアプリケーションのプログラムコード)
300 ユーザ操作シナリオ
10 プログラム解析手段
11 GUIコンポーネント抽出手段
12 GUIライブラリ判別手段
20 GUIコンポーネント操作特定手段
30 ユーザ操作シナリオ生成手段
40 GUI情報保持手段
50 操作設定手段
101 プログラム解析部
102 GUIコンポーネント操作特定部
103 操作設定部
104 ユーザ操作シナリオ生成部
105 GUIコンポーネントデータベース(GUIコンポーネントDB)
200 GUIプログラム(GUIアプリケーションのプログラムコード)
300 ユーザ操作シナリオ
Claims (11)
- テスト対象であるGUIアプリケーションに対するユーザ操作の手順を規定する情報であるユーザ操作シナリオを生成するユーザ操作シナリオ生成装置であって、
前記GUIアプリケーションのプログラムコードを解析し、該GUIアプリケーションに用いられているGUIコンポーネントを検出するプログラム解析手段と、
各GUIコンポーネントに対して可能な操作を示す情報およびGUIフレームワークの制約を示す情報とに基づいて、前記プログラム解析手段によって検出されたGUIコンポーネントに対して可能な操作を特定するGUIコンポーネント操作特定手段と、
前記GUIコンポーネント操作特定手段によって特定されたGUIコンポーネント操作に基づいて、テスト対象であるGUIアプリケーションに対するユーザ操作の手順を決定し、その旨を規定したユーザ操作シナリオを生成するユーザ操作シナリオ生成手段とを備えた
ことを特徴とするユーザ操作シナリオ生成装置。 - テスト対象であるGUIアプリケーションに用いられる可能性のある各GUIコンポーネントに対して可能な操作を示す情報およびGUIフレームワークの制約を示す情報とを保持するGUIコンポーネント情報保持手段を備えた
請求項1に記載のユーザ操作シナリオ生成装置。 - GUIコンポーネントに対して可能な操作またはGUIフレームワークの制約のうち少なくともいずれかをユーザからの指示に基づき設定する操作設定手段を備えた
請求項1または請求項2に記載のユーザ操作シナリオ生成装置。 - プログラム解析手段は、
テスト対象であるGUIアプリケーションのプログラムコードが使用しているGUIライブラリを判別するGUIライブラリ判別手段と、
テスト対象であるGUIアプリケーションのプログラムコードから、当該GUIアプリケーションの各画面に用いられているGUIコンポーネントの情報を抽出するGUIコンポーネント抽出手段とを含む
請求項1から請求項3のうちのいずれか1項に記載のユーザ操作シナリオ生成装置。 - ユーザ操作シナリオ生成手段は、最大操作シナリオ長の範囲内において、各GUIコンポーネントに対して可能な操作を並び替えることにより生成される各手順から制約に違反するものを削除した結果残った手順を、テスト対象であるGUIアプリケーションに対するユーザ操作の手順として決定する
請求項1から請求項4のうちのいずれか1項に記載のユーザ操作シナリオ生成装置。 - GUIフレームワークの制約を示す情報は、各画面のGUIコンポーネントに対する必須操作または不許可操作を規定した操作制約を示す情報と、各画面の最大操作回数を示す情報と、各GUIコンポーネントの操作の繰り返し限度回数を示す情報のうちの少なくともいずれかを含む
請求項2または請求項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コンポーネントに対して可能な操作またはGUIフレームワークの制約のうち少なくともいずれかをユーザからの指示に基づき設定する操作設定ステップを含む
請求項8に記載のユーザ操作シナリオ生成方法。 - テスト対象であるGUIアプリケーションに対するユーザ操作の手順を規定する情報であるユーザ操作シナリオを生成するためのユーザ操作シナリオ生成用プログラムであって、
コンピュータに、
前記GUIアプリケーションのプログラムコードを解析し、該GUIアプリケーションに用いられているGUIコンポーネントを検出するプログラム解析処理、
各GUIコンポーネントに対して可能な操作を示す情報およびGUIフレームワークの制約を示す情報とに基づいて、検出されたGUIコンポーネントに対して可能な操作を特定するGUIコンポーネント操作特定処理、および
特定されたGUIコンポーネント操作に基づいて、テスト対象であるGUIアプリケーションに対するユーザ操作の手順を決定し、その旨を規定したユーザ操作シナリオを生成するユーザ操作シナリオ生成処理
を実行させるためのユーザ操作シナリオ生成用プログラム。 - コンピュータに、
GUIコンポーネントに対して可能な操作またはGUIフレームワークの制約のうち少なくともいずれかをユーザからの指示に基づき設定する操作設定処理を実行させる
請求項10に記載のユーザ操作シナリオ生成用プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008275384A JP2010102620A (ja) | 2008-10-27 | 2008-10-27 | ユーザ操作シナリオ生成装置、方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008275384A JP2010102620A (ja) | 2008-10-27 | 2008-10-27 | ユーザ操作シナリオ生成装置、方法およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010102620A true JP2010102620A (ja) | 2010-05-06 |
Family
ID=42293196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008275384A Pending JP2010102620A (ja) | 2008-10-27 | 2008-10-27 | ユーザ操作シナリオ生成装置、方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010102620A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101460860B1 (ko) * | 2012-11-08 | 2014-11-17 | 경북대학교 산학협력단 | 상태 기반의 테스트 시나리오 모델을 이용한 gui 테스트 장치 및 방법 |
JP2017111798A (ja) * | 2015-12-18 | 2017-06-22 | 富士通株式会社 | イベント駆動型ソフトウェア試験 |
JP2017224277A (ja) * | 2016-03-22 | 2017-12-21 | タタ コンサルタンシー サービシズ リミテッドTATA Consultancy Services Limited | モデル駆動手法による自動化されたユーザインターフェース(ui)テストのための方法およびシステム |
JP2019185648A (ja) * | 2018-04-17 | 2019-10-24 | KLab株式会社 | デバッグ装置、シミュレーション装置及びデバッグ用のプログラム |
WO2021176523A1 (ja) * | 2020-03-02 | 2021-09-10 | 日本電信電話株式会社 | 画面認識装置、画面認識方法およびプログラム |
KR102432855B1 (ko) * | 2022-03-15 | 2022-08-12 | 김형중 | 애플리케이션 제작 방법 및 장치 |
-
2008
- 2008-10-27 JP JP2008275384A patent/JP2010102620A/ja active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101460860B1 (ko) * | 2012-11-08 | 2014-11-17 | 경북대학교 산학협력단 | 상태 기반의 테스트 시나리오 모델을 이용한 gui 테스트 장치 및 방법 |
JP2017111798A (ja) * | 2015-12-18 | 2017-06-22 | 富士通株式会社 | イベント駆動型ソフトウェア試験 |
JP2017224277A (ja) * | 2016-03-22 | 2017-12-21 | タタ コンサルタンシー サービシズ リミテッドTATA Consultancy Services Limited | モデル駆動手法による自動化されたユーザインターフェース(ui)テストのための方法およびシステム |
JP2019185648A (ja) * | 2018-04-17 | 2019-10-24 | KLab株式会社 | デバッグ装置、シミュレーション装置及びデバッグ用のプログラム |
WO2021176523A1 (ja) * | 2020-03-02 | 2021-09-10 | 日本電信電話株式会社 | 画面認識装置、画面認識方法およびプログラム |
JPWO2021176523A1 (ja) * | 2020-03-02 | 2021-09-10 | ||
JP7416203B2 (ja) | 2020-03-02 | 2024-01-17 | 日本電信電話株式会社 | 画面認識装置、画面認識方法およびプログラム |
US11954507B2 (en) | 2020-03-02 | 2024-04-09 | Nippon Telegraph And Telephone Corporation | GUI component recognition apparatus, method and program |
KR102432855B1 (ko) * | 2022-03-15 | 2022-08-12 | 김형중 | 애플리케이션 제작 방법 및 장치 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4395761B2 (ja) | プログラムテスト支援装置およびその方法 | |
JP6973846B2 (ja) | カバレッジに基づく設計モデル用自動テストケース拡張のためのシステムおよび方法 | |
US11074162B2 (en) | System and a method for automated script generation for application testing | |
US20100199263A1 (en) | Test case pattern matching | |
JP2010102620A (ja) | ユーザ操作シナリオ生成装置、方法およびプログラム | |
JP2012208830A (ja) | プログラムテスト装置、プログラムテスト方法、およびプログラム | |
Aho et al. | Automated java gui modeling for model-based testing purposes | |
US20190129832A1 (en) | System and method for test data generation for use in model based testing using source code test annotations and constraint solving | |
US9734042B1 (en) | System, method, and computer program for automated parameterized software testing | |
US7272753B2 (en) | Methods and apparatus for translating application tests for execution with simulation software tools | |
Espada et al. | Performance Analysis of Spotify® for Android with Model‐Based Testing | |
Martinez et al. | Automated Localisation Testing in Industry with Test^*∗ | |
WO2020209227A1 (ja) | 解析装置、解析方法、及びプログラム | |
US11615016B2 (en) | System and method for executing a test case | |
KR20150128711A (ko) | 컴퓨터 시스템 활동의 트레이스 타임라인을 분석하기 위한 방법 및 시스템 | |
US10579761B1 (en) | Method and system for reconstructing a graph presentation of a previously executed verification test | |
US20070061781A1 (en) | Stochastic testing directed by static test automation | |
JP2009230420A (ja) | ソースコード品質管理装置 | |
JP2008225683A (ja) | 画面操作システムおよびプログラム | |
KR20230044380A (ko) | 코드 점검 인터페이스 제공 방법, 그리고 이를 구현하기 위한 장치 | |
JP2006185055A (ja) | 計算機システムの設計支援システムおよび設計支援プログラム | |
Lemieux | Mining temporal properties of data invariants | |
JP7380851B2 (ja) | テストスクリプト生成装置、テストスクリプト生成方法及びプログラム | |
JP2009134360A (ja) | モデル検査システム、モデル検査方法およびモデル検査用プログラム | |
WO2020209139A1 (ja) | 類似遷移特定装置、類似遷移特定方法及びプログラム |