JP2009163609A - テストデータ生成用プログラム、および装置 - Google Patents
テストデータ生成用プログラム、および装置 Download PDFInfo
- Publication number
- JP2009163609A JP2009163609A JP2008002161A JP2008002161A JP2009163609A JP 2009163609 A JP2009163609 A JP 2009163609A JP 2008002161 A JP2008002161 A JP 2008002161A JP 2008002161 A JP2008002161 A JP 2008002161A JP 2009163609 A JP2009163609 A JP 2009163609A
- Authority
- JP
- Japan
- Prior art keywords
- test
- program
- input data
- data
- test case
- 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.)
- Withdrawn
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】最小限のテストケースから様々なバリエーションのテストケースを生成するテストデータ生成用プログラム、および装置を提供する。
【解決手段】上記課題を解決するために、テストデータ生成装置100に、テストケースを記憶するテストケース記憶部101と、新たなテストケースを生成するテスト入力データ生成部102と、テストケースにしたがってテスト対象のプログラム(以下、「アプリケーション110」という)を実行させるプログラム実行部103と、新たなテストケースを生成するテストケース生成部104と、を備える。
【選択図】図1
【解決手段】上記課題を解決するために、テストデータ生成装置100に、テストケースを記憶するテストケース記憶部101と、新たなテストケースを生成するテスト入力データ生成部102と、テストケースにしたがってテスト対象のプログラム(以下、「アプリケーション110」という)を実行させるプログラム実行部103と、新たなテストケースを生成するテストケース生成部104と、を備える。
【選択図】図1
Description
本発明は、ソフトウェアのテストに使用するテストデータを生成するプログラム、および装置に関する。
一般に、Webアプリケーションなどのソフトウェアを開発する場合、開発段階に応じてテスト作業を行なう。この時、テスト仕様書を作成して、テストをどのような手順で行なうかを決めてからテスト作業を行なう。
例えば、一定の機能毎にテストを行なう単体テスト、それらのモジュールを結合して実現する機能毎にテストを行なう結合テスト(統合テスト)、ソフトウェア全体を動作させて行なうシステムテスト等のテストがある。
テスト仕様書は、開発者が手作業で、または自動化作成ツール等のプログラムを利用して作成する。このテスト仕様書には、アプリケーションに対する入力データや操作(以下、「テスト入力データ」という)と、その入力や操作を行なったときに得られる結果(以下、「テスト出力データ」という)を記述する。
例えば、オンラインショッピングや電子掲示板などウェブ機能を利用したアプリケーション(以下、「Webアプリケーション」という)におけるテスト入力データとしては、テキストボックス等に入力するテキスト情報、チェックボックスやラジオボタン、リストボックス等の選択的入力項目、ボタンの押下等で発生するイベント情報、テスト開始前のデータベースやファイル等の状態(永続化情報)などが考えられる。
また、テスト出力データとしては、遷移画面の種別、表示するテキスト情報、画面を構成する部品であるコンポーネント情報、イメージや音声等のメディア情報、永続化情報、フォントのサイズや色などが考えられる。
テストは一般的には図17のように行なわれる。すなわち、上述のテスト仕様書に基づいて、テスト入力データ1701をWebブラウザを介して入力し、アプリケーション1702を動作させる。そして、アプリケーション1702が出力する情報がテスト出力データ1703と一致するか否かを目視で、または自動化ツールを利用して確認する。特許文献1には、入力データを自動生成してテストを行なうソフトウェア作成方法について開示されている。
ここで、通常の(Ajax等の特殊な要素を含まない)Webアプリケーションにおけるテスト入力データ1701としては、以下のようなものが挙げられる。
1.Webブラウザ画面への入力項目
(1)テキスト情報
(2)選択情報(チェックボックス、ラジオボタン、リストボックス等)
(3)HTTP通信を発生させるイベント(ボタンの押下等)
2.永続化情報
(1)データベースの初期化
(2)Webアプリケーションの設定ファイル
テスト仕様書としてテスト入力データ1701を作成する際には、これらのデータを組み合わせて作成する。そして、例えば、テスト入力データ1701を用いて、以下のようにテストが行なわれる。
1.Webブラウザ画面への入力項目
(1)テキスト情報
(2)選択情報(チェックボックス、ラジオボタン、リストボックス等)
(3)HTTP通信を発生させるイベント(ボタンの押下等)
2.永続化情報
(1)データベースの初期化
(2)Webアプリケーションの設定ファイル
テスト仕様書としてテスト入力データ1701を作成する際には、これらのデータを組み合わせて作成する。そして、例えば、テスト入力データ1701を用いて、以下のようにテストが行なわれる。
STEP1.テスト時に必要となる設定ファイルを用意するとともに、テスト開始前のデータベースに初期値を投入する。
STEP2.Webアプリケーションのトップページに遷移する。そして、当該画面に対してテキスト情報や選択情報を入力し、ボタンの押下等により次のページに遷移する。
STEP2.Webアプリケーションのトップページに遷移する。そして、当該画面に対してテキスト情報や選択情報を入力し、ボタンの押下等により次のページに遷移する。
STEP3.更に遷移先のページにおける画面に対しても、同様にテキスト情報や選択情報を入力し、ボタンの押下等により次のページに遷移する。同様の処理を繰返して、テスト完了のページまで遷移する。
このSTEP1.〜STEP3.の作業をテストケースといい、テスト仕様書には複数のテストケースが記述される。
また、通常の(Ajax等の特殊な要素を含まない)Webアプリケーションにおけるテスト出力データ1703としては、以下のようなものが挙げられる。
また、通常の(Ajax等の特殊な要素を含まない)Webアプリケーションにおけるテスト出力データ1703としては、以下のようなものが挙げられる。
1.Webブラウザ画面への出力項目
(1)画面名(テンプレートの種別)
(2)テキスト情報(文字列内容、色、サイズ、位置)
(3)コンポーネント情報(コンポーネント種別、文字列、状態)
(4)グラフィックス、音声その他のメディア情報
2.永続化情報
(1)データベースの結果値
(2)ログ情報
3.その他
(1)コードカバレッジ(プログラムの実行範囲)
(2)メール等(HTTP以外の通信)
これらのテスト出力データ1703は、Webブラウザの画面やデータベースが更新されたタイミングでその正誤が判断される。また、コードカバレッジやメールについては、テスト入力データ1701による画面遷移がテスト完了の画面まで進んだタイミングでその正誤が判断される。
(1)画面名(テンプレートの種別)
(2)テキスト情報(文字列内容、色、サイズ、位置)
(3)コンポーネント情報(コンポーネント種別、文字列、状態)
(4)グラフィックス、音声その他のメディア情報
2.永続化情報
(1)データベースの結果値
(2)ログ情報
3.その他
(1)コードカバレッジ(プログラムの実行範囲)
(2)メール等(HTTP以外の通信)
これらのテスト出力データ1703は、Webブラウザの画面やデータベースが更新されたタイミングでその正誤が判断される。また、コードカバレッジやメールについては、テスト入力データ1701による画面遷移がテスト完了の画面まで進んだタイミングでその正誤が判断される。
ここで、テストケースを作成する際には、テスト入力データをできるだけ多く作成し、各テストケースの実行結果がテスト出力データと一致することをテストしていく必要がある。ただし、単純なテスト入力データを数多く用意すればよいのではなく、最小限のテスト入力データで最大のテストパターンを実行できることが望ましい。「良いテスト入力データ」の条件として、以下のようなものが挙げられる。
1.多くのバグを出現させることができる。
2.他のテストケースと異なるテスト出力データを発生させることができる。
3.コードカバレッジを向上させることができる(他のテストケースで実行できていないコードを実行させることができる)。
2.他のテストケースと異なるテスト出力データを発生させることができる。
3.コードカバレッジを向上させることができる(他のテストケースで実行できていないコードを実行させることができる)。
従来、テスト入力データを自動的に作成する場合、プログラムソース等から予想されるテスト結果を列挙し、各テスト結果を引き起こすテスト入力データを作成している。そして、テスト実行時に、作成したテスト入力データをWebブラウザやデータベースに投入している。
これらの作業を自動化するツールとしては、テスト実行時の入力を自動化するスクリプト言語が存在する。テスト入力データをスクリプトとして用意すると、テストケースのバリエーションを増やす際に、変更のある箇所だけを修正すればよいため、効率的にテスト
ケースを増やすことができる。
ケースを増やすことができる。
また、テスト入力データを自動生成するテストデータ作成支援ツールとしては、「SIMPLIA TF−LINDA」等が存在している。これらのツールは、生成のアルゴリズムとして乱数や連続値を利用し、ユーザの指定した文字数、文字種別等の条件で大量のテストデータを生成することができる。
しかし、上述のスクリプト言語を用いた場合、テスト入力データのバリエーションについては手動で作成する必要がある。そのため、テスト入力データの規模が大きくなると、作業量も増大するため、スクリプトの作成が困難になる。また、人手でテスト入力データを作成することになるので、テストパターンに漏れが生じる恐れがある。
また、上述の「SIMPLIA TF−LINDA」のようなテストデータ作成支援ツールにおいても、あらかじめ決められたテスト項目を網羅するようにテスト入力データを生成するのが一般的であり、上述した「良いテスト入力データ」を得ることは難しい。
特開平11−102288号公報
本発明は、上述した問題に鑑みてなされたものであり、その解決しようとする課題は、最小限のテストケースから様々なバリエーションのテストケースを生成するテストデータ生成用プログラム、および装置を提供することである。
上記課題を解決するために、本テストデータ用プログラムは、所望のプログラムの動作をテストするために使用する入出力データを生成するプログラムにおいて、前記プログラムの一連の動作に必要なデータであるテスト入力データと、該テスト入力データに応じて前記プログラムの実行の結果得られるテスト出力データと、で構成される既存テストケースを記憶するテストケース記憶部から、任意の既存テストケースを取得し、該既存テストケースのテスト入力データと異なる新たなテスト入力データを生成するテスト入力データ生成処理と、該新たなテスト入力データを前記プログラムに与えて前記一連の動作を実行させるプログラム実行処理と、該プログラムの実行結果から新たなテスト出力データを取得して、前記既存テストケースのテスト出力データと比較し、該比較の結果に所定の差異を検出すると、前記新たなテスト入力データと前記新たなテスト出力データとで構成する新たなテストケースを生成し、該テストケースを前記テストケース記憶部に記憶するテストケース生成処理と、を情報処理装置に実行させるプログラムである。
本プログラムを情報処理装置に実行させると、テストケース生成処理により、テスト対象のプログラムの実行結果得られる新たなテスト出力データと、既存テストケースのテスト出力データと比較し、比較の結果に所定の差異が検出される場合のみ、新たなテスト入力データと新たなテスト出力データとで構成する新たなテストケースを生成される。
その結果、例えば、1つのテストケースから様々なバリエーションのテストケースを容易に生成することが可能となる。
以上に説明したように、本発明によると、最小限のテストケースから様々なバリエーションのテストケースを生成するテストデータ生成用プログラム、および装置を提供することが可能となる。
以下、本発明の実施形態について、図1〜図16に基づいて説明する。
図1は、本実施例に係るテストデータ生成装置100の概要を説明する図である。
図1に示すテストデータ生成装置100は、テストケースを記憶するテストケース記憶部101と、新たなテストケースを生成するテスト入力データ生成部102と、テストケースにしたがってテスト対象のプログラム(以下、「アプリケーション110」という)を実行させるプログラム実行部103と、新たなテストケースを生成するテストケース生成部104と、を備える。なお、図示するアプリケーション110には、アプリケーション実行手段を含む。
図1は、本実施例に係るテストデータ生成装置100の概要を説明する図である。
図1に示すテストデータ生成装置100は、テストケースを記憶するテストケース記憶部101と、新たなテストケースを生成するテスト入力データ生成部102と、テストケースにしたがってテスト対象のプログラム(以下、「アプリケーション110」という)を実行させるプログラム実行部103と、新たなテストケースを生成するテストケース生成部104と、を備える。なお、図示するアプリケーション110には、アプリケーション実行手段を含む。
テストケース記憶部101は、アプリケーション110の一連の動作に必要なテスト入力データと、当該テスト入力データに応じてアプリケーション110の実行の結果得られるテスト出力データと、で構成されるテストケースを記憶する。既にテストケース記憶部101に記憶されているテストケースを既存テストケースという。
なお、テストケースは、テスト入力データとテスト出力データとの1または2以上の組からなるデータ群である。また、テスト入力データには、アプリケーション110の実行に必要な様々なデータが含まれる。同様に、テスト出力データには、アプリケーション110の実行の結果得られる様々なデータが含まれる。
テスト入力データ生成部102は、テストケース記憶部101に記憶された任意の既存テストケースを取得し、当該既存テストケースのテスト入力データの一部または全部を変更することにより新たなテスト入力データを生成する。
プログラム実行部103は、新たなテスト入力データ(変更されていない既存テストケースのテスト入力データも含む)をアプリケーション110に与えて一連の動作を実行させる。
ここで、テスト入力データは、ネットワークやWebブラウザを介してアプリケーション110に与えてもよいし直接アプリケーション110に与えてもよい。また、一連の動作とは、1または2以上の所望の目的を達成するまでの動作をいう。例えば、オンラインショッピング用のWebアプリケーションの場合、注文可能な状態から、注文が完了するまでの動作やエラー表示を行なうまでの動作などをいう。
テストケース生成部104は、アプリケーション110の実行結果から新たなテスト出力データを取得し、既存テストケースのテスト出力データと比較を行なう。そして、比較の結果に所定の差異を検出すると、新たなテスト入力データと新たなテスト出力データとで構成する新たなテストケースを生成し、テストケース記憶部に記憶する。
ここで、テスト出力データは、アプリケーション110の実行の結果、直接またはネットワークを介して得られるデータであってもよいし、当該実行の結果、Webブラウザに表示される表示データ(例えば、HTMLやXML等のフォーマットデータ)から取得してもよい。
図2は、本実施例に係るテストデータ生成装置100の構成例を示す図である。
本実施例に係るテストデータ生成装置100は、テストケース情報を記憶するテスト仕様書データベース201と、テスト対象となるWebアプリケーションへのテスト入力データを生成する入力データ生成器202と、テスト入力データをWebブラウザ204に入力してWebアプリケーションを実行する自動実行エンジン203と、Webアプリケーションからの指示に応じて所定の画面を表示するWebブラウザ204と、Webブラ
ウザ204の画面から実行結果を取得する実行結果取得エンジン205と、実行結果がテスト出力データとして望ましいデータか否かを判定する実行結果判定器206と、自動実行エンジン203や実行結果取得エンジン205に対して実行を指示するテスト指示装置207と、データ等の入力手段である入力装置208と、を備える。
本実施例に係るテストデータ生成装置100は、テストケース情報を記憶するテスト仕様書データベース201と、テスト対象となるWebアプリケーションへのテスト入力データを生成する入力データ生成器202と、テスト入力データをWebブラウザ204に入力してWebアプリケーションを実行する自動実行エンジン203と、Webアプリケーションからの指示に応じて所定の画面を表示するWebブラウザ204と、Webブラ
ウザ204の画面から実行結果を取得する実行結果取得エンジン205と、実行結果がテスト出力データとして望ましいデータか否かを判定する実行結果判定器206と、自動実行エンジン203や実行結果取得エンジン205に対して実行を指示するテスト指示装置207と、データ等の入力手段である入力装置208と、を備える。
なお、テストケース情報とは、テストケースの実行に必要なデータであって、テスト入力データおよびテスト出力データで構成されるデータをいう。
図2に示すWebサーバ209は、試験対象となるWebアプリケーションを実行するサーバであり、DBサーバ210は、Webアプリケーションが使用するデータベースサーバである。本実施例では、テストデータ生成装置100と別にこれらサーバを用意しているが、テストデータ生成装置100がWebサーバ209やDBサーバ210を備えてもよい。
図2に示すWebサーバ209は、試験対象となるWebアプリケーションを実行するサーバであり、DBサーバ210は、Webアプリケーションが使用するデータベースサーバである。本実施例では、テストデータ生成装置100と別にこれらサーバを用意しているが、テストデータ生成装置100がWebサーバ209やDBサーバ210を備えてもよい。
テストデータ生成装置100と、Webサーバ209、DBサーバ210は、TCP/IPネットワークによりそれぞれ接続されている。また、キーボードやマウス等で構成される入力装置208は、テストデータ生成装置100とUSB等の接続機構で接続され、テスト実施者がテストデータ生成装置100に対して所望の操作を指示することができるようになっている。
Webブラウザ204やテスト指示装置207は、入力装置4からの操作を受け付けて、自動実行エンジン203や実行結果取得エンジン205、Webサーバ209に処理の実行を指示する。
入力データ生成器202は、テスト仕様書データベース201から任意のテストケースを取得し、テストケースを構成するテスト入力データの一部を変更して新たなテスト入力データを生成する。そして、生成した入力テストデータを自動実行エンジン203に通知する。
自動実行エンジン203は、テスト指示装置207から指示を受けると、任意のテストケースにしたがってWebブラウザ204を操作する。例えば、入力データ生成器202が生成した入力テストデータをWebブラウザ204画面の入力部に入力し、Webアプリケーションを操作する。
実行結果取得エンジン205は、Webブラウザ204が画面上に表示するWebアプリケーションの実行結果やDBサーバ210におけるデータベース状態を取得する。
出力結果判定器206は、実行結果取得エンジン205が取得した実行結果と、テストケースにおけるテスト出力データとを比較する。そして、比較結果から実行したテストケースが良好なテストケースか否かを判断し、良好なテストケースと判断した場合には、新たなテストケースとしてテスト仕様書データベース201に記憶する。
出力結果判定器206は、実行結果取得エンジン205が取得した実行結果と、テストケースにおけるテスト出力データとを比較する。そして、比較結果から実行したテストケースが良好なテストケースか否かを判断し、良好なテストケースと判断した場合には、新たなテストケースとしてテスト仕様書データベース201に記憶する。
例えば、実行結果取得エンジン205が取得した実行結果が、テスト仕様書データベース201に格納されているテストケースにおけるテスト出力データ群に一致するものがない場合、当該テストケースを良好なテストケースと判断する。
なお、テストデータ生成装置100を構成する入力データ生成器202、自動実行エンジン203、実行結果取得エンジン205および出力結果判定器206は、必要に応じて、テストケース情報の集合を管理するテスト仕様書データベース201に対してテストケース情報の内容を参照・変更・追加を行なうことが可能となっている。
以下に説明する本実施例では、簡易なオンラインショッピングのWebアプリケーショ
ンについて、テストデータ生成装置100を適用してテストケースを生成する処理を説明する。ただし、Webアプリケーションをオンラインショッピングに限定する趣旨ではない。
ンについて、テストデータ生成装置100を適用してテストケースを生成する処理を説明する。ただし、Webアプリケーションをオンラインショッピングに限定する趣旨ではない。
図3は、本実施例に係るテストデータ生成装置100を適用するWebアプリケーションを説明する図である。また、図4は、本実施例に係るWebアプリケーションの遷移画面とテスト入力データについて示した図である。
本実施例に係るテストデータ生成装置100の処理の理解を簡単にするために、Webアプリケーションは、(1)Webブラウザ204上の検索画面401から本のタイトルが検索でき、(2)その検索結果を示す検索結果画面402を表示し、(3)「買い物かごに移動」を指示すると買い物かご画面403に遷移して当該画面から「注文」または「商品追加」の操作が行なえ、(4)「注文」ボタンを押下すると確認画面404に遷移して当該画面から「購入決定」または「キャンセル」の操作が行なえるものとする。
DBサーバ210には、テスト開始前にデータベース初期値410を記憶させてDBサーバ210を初期状態に設定する。なお、この作業は、スクリプト等を使用してテスト開始時に行なえばよい。
ステップS301において、例えば、自動実行エンジン203が、Webブラウザ204に対してトップページへの遷移を指示すると、Webアプリケーションは、Webブラウザ204に検索画面401を表示させる。
この時、自動実行エンジン203は、テスト入力データ411にしたがってWebブラウザ204に対して操作を行なう。例えば、検索画面401の「タイトル欄」に本のタイトルを入力し、「検索」ボタンを押下する。すると、Webサーバ209は、処理をステップS302に移行する。
ステップS302において、Webアプリケーションは、DBサーバ210と通信を行ない、Webブラウザ204から受け取った本のタイトルを検索する。そして、Webブラウザ204に検索結果画面402を表示させる。
例えば、自動実行エンジン203が、テスト入力データ412にしたがって、検索結果画面402における「買い物かごに移動」をマウス等で選択すると、Webサーバ209は、処理をステップS303に移行する。
ステップS303において、Webアプリケーションは、Webブラウザ204に買い物かご画面403を表示させる。
例えば、自動実行エンジン203が、入力テストデータ413にしたがって、「注文」ボタンを押下すると、Webサーバ209は、処理をステップS304に移行する。
例えば、自動実行エンジン203が、入力テストデータ413にしたがって、「注文」ボタンを押下すると、Webサーバ209は、処理をステップS304に移行する。
ステップS304において、Webアプリケーションは、Webブラウザ204に確認画面404を表示させる。自動実行エンジン203が、テスト入力データ414にしたがって、「購入決定」ボタンを押下すると、Webサーバ209は、Webブラウザ204に完了画面405を表示して処理を終了する。
本実施例では、以上に説明した一連のWebアプリケーションの入出力動作を「基本シナリオ」といい、基本シナリオのテストケースを基本テストケースという。また、基本シナリオを基本に様々に派生したシナリオを派生シナリオといい、派生シナリオのテストケースを派生テストケースという。
例えば、ステップS301において検索結果が0件であった場合のシナリオ、ステップS302において検索の結果在庫なしであった場合のシナリオ、ステップS303において利用者が「商品追加」ボタンを押下した場合のシナリオ、ステップS304において利用者が「キャンセル」ボタンを押下した場合のシナリオ、などが派生シナリオとなる。
図5は、図3および図4で説明した基本テストケースにおけるテスト入力データおよびテスト出力データについて説明する図である。以下、図3で示した基本テストケースの各ステップで使用するテスト入力データ/テスト出力データの具体例を示している。
ステップS301、すなわち、初期状態から検索画面への遷移をテストするために、DBサーバ210を初期状態にするためのテスト入力データ410が使用される。この時、Webアプリケーションのトップページ(検索画面)を表示するだけなので、テスト出力データは必要ない。
ステップS302、すなわち、検索画面から検索結果画面への遷移をテストするために、タイトル入力欄への入力データ(図5では、文字列「プログラム入門」)と、ボタン操作(図5では、「検索」のボタン押下)からなるテスト入力データ411が使用される。
この時、図4に示した検索結果画面402が期待されるので、検索結果画面上に表示される表示項目(図5では、書籍名「プログラミング入門」、価格「1,000円」およびボタン「買い物かごに入れる」)からなるテスト出力データ511aが使用される。
また、DBサーバ210の状態に変更はないので、テスト入力データ410と同じデータがテスト出力データ511bとして使用される。
ステップS303、すなわち、検索結果画面から買い物かご画面への遷移をテストするために、ボタン操作(図5では、「買い物かごに入れる」の選択)からなるテスト入力データ412が使用される。
ステップS303、すなわち、検索結果画面から買い物かご画面への遷移をテストするために、ボタン操作(図5では、「買い物かごに入れる」の選択)からなるテスト入力データ412が使用される。
この時、図4に示した買い物かご画面403が期待されるので、買い物かご画面上に表示される表示項目(図5では、書籍名「プログラミング入門」、価格「1,000円」、数量「1冊」、ボタン「注文」および「商品追加」)からなるテスト出力データ512aが使用される。
また、タイトル「プログラミング入門」の書籍の在庫が1冊減るので、DBサーバ210内の変更状態を示すテスト出力データがテスト出力データ512bとして使用される。
ステップS304やステップS305における画面遷移についても、同様にしてテスト入力データ、テスト出力データを使用してテストが行なわれる。
ステップS304やステップS305における画面遷移についても、同様にしてテスト入力データ、テスト出力データを使用してテストが行なわれる。
図6および図7は、図5に示した基本テストケースのデータ構成の例を示す図である。
図5に示したように、本実施例に係るWebアプリケーションのテストをするためには、各ステップにおけるWebブラウザ204の入出力データとDBサーバ210の状態とが必要となる。
図5に示したように、本実施例に係るWebアプリケーションのテストをするためには、各ステップにおけるWebブラウザ204の入出力データとDBサーバ210の状態とが必要となる。
すなわち、本実施例におけるテストケースは、Webブラウザ204の入出力データとDBサーバ210の状態の2つの情報で構成される。図6は、基本テストケースにおけるWebブラウザ204の入出力データ(以下、「テスト入出力データ600」という)を示し、図7は、基本テストケースにおけるDBサーバ210の状態(以下、「DB入出力データ700」という)を示す。
図6に示すテスト入出力データ600は、画面名、入出力区分、グループ、繰り返し、項目名および項目値で構成されている。
画面名は、Webブラウザ204に表示される画面を識別する名称を示す。例えば、検索画面、検索結果画面などである。また、入出力区分は、テスト入力データかテスト出力データかの区別を示す。グループは、各表示画面を任意のグループにグループ化した場合に当該表示画面が属するグループ名を示し、繰り返しは、当該画面の繰り返し表示回数を示す。項目は、テスト入力データを入力する項目、またはテスト出力データが出力される項目(ボタン操作・制御を含む)を示す。
画面名は、Webブラウザ204に表示される画面を識別する名称を示す。例えば、検索画面、検索結果画面などである。また、入出力区分は、テスト入力データかテスト出力データかの区別を示す。グループは、各表示画面を任意のグループにグループ化した場合に当該表示画面が属するグループ名を示し、繰り返しは、当該画面の繰り返し表示回数を示す。項目は、テスト入力データを入力する項目、またはテスト出力データが出力される項目(ボタン操作・制御を含む)を示す。
また、図7に示すように、DB入出力データ700は、画面名、入出力区分、テーブル名、繰り返し、更新内容および値で構成されている。
画面名は、Webブラウザ204に表示される画面名を示す。例えば、検索画面、検索結果画面などである。なお、初期状態とは、Webアプリケーション実行開始時におけるDBサーバ210の状態をいう。また、入出力区分は、テスト入力データかテスト出力データかの区別を示す。テーブル名は、当該値を管理するテーブル名を示す。また、繰り返しは、当該値の繰り返し出力回数を示す。また、値は、当該表示画面におけるDBサーバ210内に格納される値を示す。
画面名は、Webブラウザ204に表示される画面名を示す。例えば、検索画面、検索結果画面などである。なお、初期状態とは、Webアプリケーション実行開始時におけるDBサーバ210の状態をいう。また、入出力区分は、テスト入力データかテスト出力データかの区別を示す。テーブル名は、当該値を管理するテーブル名を示す。また、繰り返しは、当該値の繰り返し出力回数を示す。また、値は、当該表示画面におけるDBサーバ210内に格納される値を示す。
更新内容は、当該値が直前の表示画面から新規に作成されるものか更新されるものか削除されるものかを示す。本実施例に係るDBサーバ210の状態は、直前の表示画面(検索画面の場合には初期状態)からの差分のみを記録するからである。例えば、図7に示す例では、買い物かご画面は、直前の表示画面におけるタイトル「プログラミング入門」の在庫数が更新され、在庫数が3に変化することを示している。他の項目については変化がないため省略されている。
以上に説明したテスト入出力データ600およびDB入出力データ700の構成は、一例であってこれに限定する趣旨ではない。テスト入出力データ600およびDB入出力データ700の構成は、Webアプリケーションに応じて適宜変更する必要があるのは当然である。
図8は、本実施例に係るテストデータ生成装置100の処理の概要を示すフローチャートである。
テストデータ生成処理を開始すると、テストデータ生成装置100は、処理をステップS801に移行する。そして、テストデータ生成装置100は、テスト仕様書データベース201にあらかじめ記憶されている基本テストケースを取得する。そして、テストデータ生成装置100は、処理をステップS802に移行する。なお、ステップS801の処理は、テスト実施者が手作業で行なってもよい。
テストデータ生成処理を開始すると、テストデータ生成装置100は、処理をステップS801に移行する。そして、テストデータ生成装置100は、テスト仕様書データベース201にあらかじめ記憶されている基本テストケースを取得する。そして、テストデータ生成装置100は、処理をステップS802に移行する。なお、ステップS801の処理は、テスト実施者が手作業で行なってもよい。
ステップS802において、テストデータ生成装置100は、基本テストケースにしたがって、図3〜図5に示したテスト入力データをDBサーバ210やWebブラウザ204に入力し、操作を行なってテストを実行する。
ステップS803において、テストデータ生成装置100は、ステップS801およびS802の処理によって得られる基本テストケースのテスト入出力データについて統計的解析を行なって、テストケース内の同一値項目を検出する。
ステップS804において、テストデータ生成装置100は、テストデータ生成装置100内の図示しない記憶装置に記憶するデータ生成フラグを参照する。そして、データ生成フラグがオンの場合、まだテストケースを生成する必要があると判断し、処理をステップS804に移行する。
ステップS805において、テストデータ生成装置100は、当該テストケースの一部または全部のテスト入力データを編集し、新たなテスト入力データを生成する。以下、この新たなテスト入力データを「新テスト入力データ」という。
ステップS806において、テストデータ生成装置100は、ステップS802と同様に、新テスト入力データを用いてテストを実行し、ステップ毎の実行結果を新たなテスト出力データとして出力する。以下、この新たなテスト出力データを「新テスト出力データ」という。また、以上の処理で得られた新テスト入力データと新テスト出力データとで構成されるテストケースを「新テストケース」という。
ステップS807において、テストデータ生成装置100は、テスト仕様書データベース201に記憶されているテストケースと、ステップS806の処理によって得た新テストケースと、を比較し、各テストケースとの差異を抽出する。
ステップS808において、テストデータ生成装置100は、差異がある場合には、処理をステップS809に移行する。また、ステップS808において、差異がない場合、データ生成装置100は、処理をステップS804に移行し、ステップS804〜S808の処理を繰り返し行なう。
ステップS809において、データ生成装置100は、新テストケースをテスト仕様書データベース201に記憶する。そして、処理をステップS810に移行する。
ステップS810において、データ生成装置100は、新テストケースを新たに基本テストケースと設定する。そして、データ生成装置100は、処理をステップS803に移行し、ステップS803〜S810の処理を繰り返し行なう。
ステップS810において、データ生成装置100は、新テストケースを新たに基本テストケースと設定する。そして、データ生成装置100は、処理をステップS803に移行し、ステップS803〜S810の処理を繰り返し行なう。
一方、ステップS804において、データ生成フラグがオフの場合、テストデータ生成装置100は、これ以上テストケースを生成する必要がないと判断し、処理をステップS811に移行する。ステップS811において、データ生成装置100は、テストケースの一覧を出力(表示)すると、処理をステップS812に移行してテストデータ生成処理を終了する。
図9は、図8に示したステップS802の具体的な処理を示すフローチャートである。
ステップS901において、自動実行エンジン203は、テスト仕様書データベース201を参照し、あらかじめ記憶されている基本テストケース(ただし、テスト入力データのみ。以下、「基本テスト入力データ」という)を取得する。そして、例えば、基本テスト入力データに含まれるテスト入力データ410を、DBサーバ210に投入してDBサーバ210を初期状態にする。
ステップS901において、自動実行エンジン203は、テスト仕様書データベース201を参照し、あらかじめ記憶されている基本テストケース(ただし、テスト入力データのみ。以下、「基本テスト入力データ」という)を取得する。そして、例えば、基本テスト入力データに含まれるテスト入力データ410を、DBサーバ210に投入してDBサーバ210を初期状態にする。
ステップS902において、自動実行エンジン203は、トップページ(検索画面)のURLをWebブラウザ204に入力し、Webブラウザ204の表示画面を検索画面に遷移させる。
ステップS903において、自動実行エンジン203は、検索画面401に表示された入力フォーム内に、基本テスト入力データに含まれるテスト入力データ411を入力しWebブラウザ204を操作する。テスト入力データ411を使用する場合、自動実行エンジン203は、入力フォームに「プログラミング入門」を入力し、「検索」ボタンを押下する操作を行なう。すると、Webサーバ209上で実行されているWebアプリケーションは、DBサーバ210を参照し、「プログラミング入門」を検索する。そして、検索結果の表示画面をWebブラウザ204に表示させる。
ステップS904において、実行結果取得エンジン205は、Webブラウザ204上に表示された検索結果画面から所定の画面出力項目を抽出する。例えば、図6に示したように、Webブラウザ204上に表示される画面が、XML形式のデータである場合、所定の画面出力項目と対応付けたタグで挟まれる文字列を抽出することにより各表示画面に出力される項目値を得ることができる。なお、画面出力項目の抽出は、他の既存の技術を使用して行なってもよい。
また、実行結果取得エンジン205は、DBサーバ210の状態(例えば、図9に示すDB出力データ911b)を取得する。
ステップ905において、自動実行エンジン203は、Webブラウザ204上に表示されている表示画面が最終画面か否かを判断する。例えば、テスト入出力データ600において、入力するべきテスト入力データがなくなった場合や、当該表示画面におけボタン名が一致しない場合などに、当該表示画面が最終画面と判断すればよい。
ステップ905において、自動実行エンジン203は、Webブラウザ204上に表示されている表示画面が最終画面か否かを判断する。例えば、テスト入出力データ600において、入力するべきテスト入力データがなくなった場合や、当該表示画面におけボタン名が一致しない場合などに、当該表示画面が最終画面と判断すればよい。
そして、当該表示画面が最終画面でないと判断すると、自動実行エンジン203は、処理をステップS903に移行する。そして、ステップS903〜S905の処理を繰り返し行なう。
また、ステップS905において、当該表示画面が最終画面であると判断すると、自動実行エンジン203は、処理をステップS906に移行する。そして、基本テスト入力データと、ステップS901〜S905の処理によって得た画面出力データ(例えば、画面出力データ911a)と、DB出力データ(例えば、DB出力データ911b)と、から基本テストケース(テスト入出力データ600およびDB入出力データ700)を生成する。そして、当該基本テストケースを、テスト仕様書データベース201に登録する。
図10は、図8に示したステップS803の具体的な処理を示すフローチャートである。
ステップS1001において、自動実行エンジン203は、基本テストケースについて統計的解析処理を行なう。本実施例では、基本テストケースにおける項目値(例えば、テスト入出力データ600の項目値)や値(例えば、DB入出力データ700の値)が、データベース初期値、テスト入力データ、画面出力データとしてそれぞれ使用された回数を算出する。
ステップS1001において、自動実行エンジン203は、基本テストケースについて統計的解析処理を行なう。本実施例では、基本テストケースにおける項目値(例えば、テスト入出力データ600の項目値)や値(例えば、DB入出力データ700の値)が、データベース初期値、テスト入力データ、画面出力データとしてそれぞれ使用された回数を算出する。
例えば、図5に示した基本テストケースの場合、図10に示す統計表1001が得られる。統計表1001に記載の「プログラミング入門」は、データベース初期値およびテスト入力データとして1回、画面出力データとして2回使用されたことを示す。
ステップS1002において、自動実行エンジン203は、ステップS1001で算出した使用回数が2以上の項目値または値を抽出する。以下、この項目値または値を「同一値項目」という。
例えば、図10に示す統計表1001からは、画面出力データとして2回使用された項目値「プログラミング入門」と、画面出力データとして3回使用された値「1000」が同一項目として抽出される。
なお、複数の同一値項目がある場合は、データベース初期値、テスト入力データおよび画面出力データの全てに使用された項目ほど高い優先順位を与え、使用回数が多いものほど高い優先順位を与える。ただし、上述した同一値項目の抽出方法は例示であって、これに限定する趣旨ではない。必要に応じて、他の方法を用いて同一値項目を抽出してもよい
。
。
図11は、図8に示したステップS805の具体的な処理を示すフローチャートである。
ステップS1101において、入力データ生成器202は、基本テストケース内の同一値項目について、以下の処理を行なって、新たなテストケースを生成する。
ステップS1101において、入力データ生成器202は、基本テストケース内の同一値項目について、以下の処理を行なって、新たなテストケースを生成する。
(1)テスト入力データに含まれる同一値項目ついて、任意の文字列または値を変更する(1文字変更、1文字削除、1文字追加など)。例えば、「プログラミング入門」を、「ペログラミング入門」、「プログラミング入」、「プログラミング入門あ」などに変更する。
(2)データベース初期値に含まれる同一値項目について、任意の文字列または値を変更する。
(3)データベース初期値について、同一値項目を含むレコードの他のカラムの文字列または値を変更する。
(3)データベース初期値について、同一値項目を含むレコードの他のカラムの文字列または値を変更する。
(4)同一値項目を含まないテスト入力データの文字列または値を変更する。
(5)データベース初期値について、同一値項目を含まないレコードの他のカラムの文字列または値を変更する。
(5)データベース初期値について、同一値項目を含まないレコードの他のカラムの文字列または値を変更する。
なお、上述した(1)〜(5)の処理は、あらかじめ優先順位を付け、当該優先順位にしたがって適宜同一値項目に対して処理を行なう。
ステップS1102において、入力データ生成器202は、十分な数のバリエーションのテストケースが生成されているか否かを判別する。
ステップS1102において、入力データ生成器202は、十分な数のバリエーションのテストケースが生成されているか否かを判別する。
例えば、入力データ生成器202は、テスト仕様書データベース201を参照して記憶されているテストケースの数を取得し、十分な数のテストケースが得られたか否かを判断する。例えば、テスト実行前にあらかじめ十分と考えられる数を設定しておき、テストケースの数が当該数に達したら十分な数に達したと判断してもよいし、N回以上異なるバリエーションのテストケースが作成されなった場合に十分な数に達したと判断してもよい。また、新たに生成されるテストケースの増加割合が一定以下に減少した場合に十分な数に達したと判断してもよい。
そして、十分な数のテストケースが得られていない場合、テストデータ生成装置100は、本処理を終了する(ステップSS1104)。また、十分な数のテストケースが得られている場合、テストデータ生成装置100は、処理をステップS1103に移行し、データ生成可能フラグをオフにする。そして、テストデータ生成装置100は、本処理を終了する(ステップS1104)。
図12は、図11に示したステップS1101の同一値項目に対して行なわれる処理の具体例を示す図である。
本実施例では、同一値項目が文字列である場合、当該文字列に対して1文字変更、1文字削除、1文字追加の処理を行なっている。
本実施例では、同一値項目が文字列である場合、当該文字列に対して1文字変更、1文字削除、1文字追加の処理を行なっている。
また、同一値項目が値(数値)である場合、当該値に対して1を加算、1を減算、桁数を1桁増加、桁数を1桁削減、最大値に変更、最大値+1の値に変更、最小値に変更、最小値−1の値に変更、0に変更、1に変更などの処理を行なう。
また、同一値項目がボタン押下等のイベントである場合、押下するボタンを変更する、
発生させるイベント(マウスオーバー、フォーカスイン等)を変更するなどの処理を行なう。
発生させるイベント(マウスオーバー、フォーカスイン等)を変更するなどの処理を行なう。
以下に、同一値項目が文字列「プログラミング入門」の場合について説明するが、これに限定する趣旨でないのは当然である。
(1)テスト入力データに含まれる同一値項目を変更する場合、例えば、文字列「プログラミング入門」を、「ペログラミング入門」、「プログラミング入」、「プログラミング入門あ」などと変更する。
(1)テスト入力データに含まれる同一値項目を変更する場合、例えば、文字列「プログラミング入門」を、「ペログラミング入門」、「プログラミング入」、「プログラミング入門あ」などと変更する。
(2)データベース初期値に含まれる同一値項目を変更する場合、(1)と同様に、文字列「プログラミング入門」を、「ペログラミング入門」、「プログラミング入」、「プログラミング入門あ」などと変更する。
(3)データベース初期値について、同一値項目を含むレコードの他のカラムを変更する場合、「プログラミング入門」の価格を1001円(または999円)や1円(または0円)、在庫数を40や1、0などに変更する。
(4)同一値項目を含まないテスト入力データを変更する場合、例えば、「キャンセル」ボタンの押下にイベントを変更する。
(5)データベース初期値について、同一値項目を含まないレコードの他のカラムの文字列または値を変更する場合、例えば、文字列「小説1」を「小説2」、「小説」、「小説1あ」、小説1の価格を20000円などに変更する。
(5)データベース初期値について、同一値項目を含まないレコードの他のカラムの文字列または値を変更する場合、例えば、文字列「小説1」を「小説2」、「小説」、「小説1あ」、小説1の価格を20000円などに変更する。
図13は、図8に示したステップS807およびS808の具体的な処理を示すフローチャートである。
ステップS1301において、自動実行エンジン203は、テスト仕様書データベース201に記憶されている既存のテストケース(以下、「既存テストケース」という)との差異の有無を示す「差異フラグ」をオフに設定する。
ステップS1301において、自動実行エンジン203は、テスト仕様書データベース201に記憶されている既存のテストケース(以下、「既存テストケース」という)との差異の有無を示す「差異フラグ」をオフに設定する。
ステップS1302において、自動実行エンジン203は、テスト仕様書データベース201を参照し、以下に示すステップS1303〜S1305の処理を実施していない既存テストケースの有無を判断する。
そして、ステップS1303〜S1305の処理を実施していない既存テストケースがある場合、自動実行エンジン203は、処理をステップS1303に移行する。
ステップS1303において、自動実行エンジン203は、テスト仕様書データベース201を参照し、任意の既存テストケースを取得する。
ステップS1303において、自動実行エンジン203は、テスト仕様書データベース201を参照し、任意の既存テストケースを取得する。
ステップS1304において、自動実行エンジン203は、既存テストケースと新テストケースとを比較する。例えば、テスト入出力データについて、画面名毎にテスト入力データの項目値やテスト出力データの項目値を比較し、DB入出力データについて、画面名毎にテスト入力データの値やテスト出力データの値を比較する。
ステップS1305において、自動実行エンジン203は、ステップS1304の比較の結果に差異がある場合には、差異フラグをオンに設定する。そして、自動実行エンジン203は、処理をステップS1302に移行する。
ここで、差異を検出する際に、テスト出力データの文字列や数値の内容が変化したとしても、両テストケースは同一であるとみなしてもよい。例えば、表示画面中の文字列が1文字異なる結果が得られたとしても、それは良いテストケースとはならない場合があるか
らである。そこで、以下の条件を満たす場合に両テストケースが異なると判断してもよい。
らである。そこで、以下の条件を満たす場合に両テストケースが異なると判断してもよい。
(1)既存テストケースと比較して、基本テストケースと遷移先画面が異なる場合。
(2)既存テストケースと比較して、基本テストケースと遷移先画面のテスト出力データが異なる場合(例えば、遷移先画面に表示される項目名、項目値、検索結果の表示行数等が異なる場合)。
(2)既存テストケースと比較して、基本テストケースと遷移先画面のテスト出力データが異なる場合(例えば、遷移先画面に表示される項目名、項目値、検索結果の表示行数等が異なる場合)。
(3)既存テストケースと比較して、基本テストケースと同一値項目が異なる場合、または同一値項目の使用回数が異なる場合(同一値項目以外の項目は相違点としてのインパクトが低いため除外することが目的である)。
一方、ステップS1302において、全ての既存テストケース対して、ステップS1303〜S1305の処理が完了した場合、自動実行エンジン203は、処理をステップS1306に移行する。
ステップS1306において、自動実行エンジン203は、差異フラグを参照する。そして、差異フラグがオンの場合、自動実行エンジン203は、処理をステップS809に移行する。また、差異フラグがオフの場合、自動実行エンジン203は、処理をステップS804に移行する。
図14、図15および図16は、図13に示したステップS1304におけるテストケースの比較処理について説明する図である。
以下、図14に示すテストケースの場合について具体的に説明する。
以下、図14に示すテストケースの場合について具体的に説明する。
新テストケースAは、Webブラウザ204に対して所定のテスト入力データを入力し、所定の操作することにより、「検索画面」、「検索結果一覧画面(検索結果を1件表示)」、「買い物かご画面」、「確認画面」、「完了画面」の順に画面遷移するテストケースである。
同様に、既存テストケースBは、「検索結果画面」、「検索結果一覧画面」、「エラー画面」の順に遷移するテストケースであり、既存テストケースCは、「検索画面」、「検索結果一覧画面(検索結果を2件表示)」、「買い物かご画面」、「確認画面」、「完了画面」の順に遷移するテストケースである。
ステップS1304における比較処理において、自動実行エンジン203は、まず、画面遷移の順番を比較する。新テストケースAと既存テストケースBとは、遷移する画面が異なるので、自動実行エンジン203は、両テストケースに差異があると判断する。
また、自動実行エンジン203は、表示画面毎に、画面出力データを比較する。例えば、新テストケースAにおける検索結果画面は、検索結果を1件表示するのに対し、既存テストケースCにおける検索結果画面は、検索結果を2件表示するので、自動実行エンジン203は、両テストケースに差異があると判断する。
図15は、差異のある新テストケースAと既存テストケースBの具体例を示す図である。
新テストケースAが、データベース初期状態に対してテスト入力データ410、検索画面に対してテスト入力データ411、検索結果画面に対してテスト入力データ412を使用するテストケースの場合、当該画面は、買い物かご画面に遷移する。
新テストケースAが、データベース初期状態に対してテスト入力データ410、検索画面に対してテスト入力データ411、検索結果画面に対してテスト入力データ412を使用するテストケースの場合、当該画面は、買い物かご画面に遷移する。
一方、既存テストケースBが、データベース初期値に対して、テスト入力データ410と「プログラミング入門」の在庫数が異なる(在庫数が「0」の)テスト入力データ1510を使用し、検索画面に対してテスト入力データ411、検索結果画面に対してテスト入力データ412を使用するテストケースの場合、検索結果画面において「買い物かごに入れる」を選択すると、在庫がないためにエラー画面に遷移する。
自動実行エンジン203は、買い物かご画面とエラー画面との差異を検出し、新テストケースAと既存テストケースBとに差異があると判断する。
図16は、差異のある新テストケースAと既存テストケースCの具体例を示す図である。
図16は、差異のある新テストケースAと既存テストケースCの具体例を示す図である。
新テストケースAが、データベース初期状態に対してテスト入力データ410、検索画面に対してテスト入力データ1611aを使用する場合、検索結果画面には、画面出力データ1612aが表示される。
新テストケースAが、データベース初期状態に対してテスト入力データ410、検索画面に対してテスト入力データ1611bを使用する場合、検索結果画面には、画面出力データ1612bが表示される。
画面出力データ1612aは、「ビジネス書1」を検索した検索結果であり、画面出力データ1612bは、「ビジネス書」を検索した検索結果であるので異なる。
自動実行エンジン203は、検索結果画面から取得する画面出力データ1612aと画面出力データ1612bとの差異を検出し、新テストケースAと既存テストケースCとに差異があると判断する。
自動実行エンジン203は、検索結果画面から取得する画面出力データ1612aと画面出力データ1612bとの差異を検出し、新テストケースAと既存テストケースCとに差異があると判断する。
なお、本実施例では、Webアプリケーションのテストデータを生成する場合について説明したが、任意のアプリケーションについて本実施例に係るテストデータ生成装置100は適用することが可能である。
以上に説明したように、本実施例に係るテストデータ生成装置100は、最初に与えられたテストケースを基に自動で生成したテスト入力データを使用してテストを実施する。そして、実施の結果得るテスト出力データであって既存のテストケースと異なるテスト出力データが発生したことを検出し、そのテスト入力データとテスト出力データとから新たなテストケースを生成する。その結果、多数の異なるテストケースを容易に生成することが可能となる。
また、従来手作業で作成せざるを得なかったテストバリエーションの作成を効率的に行なうことができるようになるので、Webアプリケーションのテストにかかる工数を削減することが可能となる。
また、手動でテストケースを作成する場合には見落としがちなテストケースも洗い出せる可能性が高くなり、結果としてWebアプリケーションの品質を向上させることが可能となる。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1) 所望のプログラムの動作をテストするために使用する入出力データを生成するプログラムにおいて、
前記プログラムの一連の動作に必要なデータであるテスト入力データと、該テスト入力データに応じて前記プログラムの実行の結果得られるテスト出力データと、で構成される既存テストケースを記憶するテストケース記憶部から、任意の既存テストケースを取得し
、該既存テストケースのテスト入力データと異なる新たなテスト入力データを生成するテスト入力データ生成処理と、
該新たなテスト入力データを前記プログラムに与えて前記一連の動作を実行させるプログラム実行処理と、
該プログラムの実行結果から新たなテスト出力データを取得して、前記既存テストケースのテスト出力データと比較し、該比較の結果に所定の差異を検出すると、前記新たなテスト入力データと前記新たなテスト出力データとで構成する新たなテストケースを生成し、該テストケースを前記テストケース記憶部に記憶するテストケース生成処理と、
を情報処理装置に実行させるプログラム。
(付記2) 前記テスト出力データには、前記プログラムの実行の結果表示される表示画面の種類が含まれる、
ことを特徴とする付記1に記載のプログラム。
(付記3) 前記テスト出力データには、前記プログラムの実行の結果表示される表示画面毎の表示項目が含まれる、
ことを特徴とする付記1に記載のプログラム。
(付記4) 前記テストケース生成処理は、前記プログラムの実行の結果表示される所定の表示画面が一方には存在し他方には存在しない場合に、前記所定の差異が存在すると判断する、 ことを特徴とする付記1に記載のプログラム。
(付記5) 前記テストケース生成処理は、前記一連の動作内に、前記プログラムの実行の結果表示される所定の表示項目の出現回数が異なる場合に、前記所定の差異が存在すると判断する、
ことを特徴とする付記1に記載のプログラム。
(付記6) 前記プログラムがWebアプリケーションである場合、前記テスト入力データには、前記プログラムが表示する表示画面への入力データと、画面操作指示と、が含まれる、
ことを特徴とする付記1に記載のプログラム。
(付記7) 前記プログラムがWebアプリケーションである場合、前記テスト入力データには、前記プログラムが表示する表示画面への入力データと、画面操作指示と、が含まれる、
ことを特徴とする付記1に記載のプログラム。
(付記8) 前記プログラムがWebアプリケーションである場合、前記テスト出力データには、前記プログラムが使用するデータベースの状態が含まれる、
ことを特徴とする付記1に記載のプログラム。
(付記9) 前記入力データ生成処理は、前記テスト入力データに含まれる文字列または数値を一部または全部変更することで前記新たなテスト入力データを生成する、
ことを特徴とする付記1に記載のプログラム。
(付記10) 前記テスト入力データ生成処理は、前記一連の動作内に、前記テスト入力データと、前記テスト出力データと、が出現する回数を算出し、所定回数以上出現するテスト入力データまたはテスト出力データを変更することで、前記新たなテスト入力データを生成する、 ことを特徴とする付記1に記載のプログラム。
(付記11)
所望のプログラムの動作をテストするために使用する入出力データを生成する方法において、
前記プログラムの一連の動作に必要なデータであるテスト入力データと、該テスト入力データに応じて前記プログラムの実行の結果得られるテスト出力データと、で構成される既存テストケースを記憶するテストケース記憶部から、任意の既存テストケースを取得し、該既存テストケースのテスト入力データと異なる新たなテスト入力データを生成するテスト入力データ生成処理と、
該新たなテスト入力データを前記プログラムに与えて前記一連の動作を実行させるプログラム実行処理と、
該プログラムの実行結果から新たなテスト出力データを取得して、前記既存テストケースのテスト出力データと比較し、該比較の結果に所定の差異を検出すると、前記新たなテスト入力データと前記新たなテスト出力データとで構成する新たなテストケースを生成し、該テストケースを前記テストケース記憶部に記憶するテストケース生成処理と、
を実行する方法。
(付記12) 所望のプログラムの動作をテストするデータを生成するテストデータ生成装置において、
前記プログラムの一連の動作に必要なデータであるテスト入力データと、該テスト入力データに応じて前記プログラムの実行の結果得られるテスト出力データと、で構成される既存テストケースを記憶するテストケース記憶部と、
前記テストケース記憶部から任意の既存テストケースを取得し、該既存テストケースのテスト入力データと異なる新たなテスト入力データを生成するテスト入力データ生成部と、
該新たなテスト入力データを前記プログラムに与えて前記一連の動作を実行させるプログラム実行部と、
該プログラムの実行結果から新たなテスト出力データを取得して、前記既存テストケースのテスト出力データと比較し、該比較の結果に所定の差異を検出すると、前記新たなテスト入力データと前記新たなテスト出力データとで構成する新たなテストケースを生成し、該テストケースを前記テストケース記憶部に記憶するテストケース生成部と、
を備えるテストデータ生成装置。
(付記1) 所望のプログラムの動作をテストするために使用する入出力データを生成するプログラムにおいて、
前記プログラムの一連の動作に必要なデータであるテスト入力データと、該テスト入力データに応じて前記プログラムの実行の結果得られるテスト出力データと、で構成される既存テストケースを記憶するテストケース記憶部から、任意の既存テストケースを取得し
、該既存テストケースのテスト入力データと異なる新たなテスト入力データを生成するテスト入力データ生成処理と、
該新たなテスト入力データを前記プログラムに与えて前記一連の動作を実行させるプログラム実行処理と、
該プログラムの実行結果から新たなテスト出力データを取得して、前記既存テストケースのテスト出力データと比較し、該比較の結果に所定の差異を検出すると、前記新たなテスト入力データと前記新たなテスト出力データとで構成する新たなテストケースを生成し、該テストケースを前記テストケース記憶部に記憶するテストケース生成処理と、
を情報処理装置に実行させるプログラム。
(付記2) 前記テスト出力データには、前記プログラムの実行の結果表示される表示画面の種類が含まれる、
ことを特徴とする付記1に記載のプログラム。
(付記3) 前記テスト出力データには、前記プログラムの実行の結果表示される表示画面毎の表示項目が含まれる、
ことを特徴とする付記1に記載のプログラム。
(付記4) 前記テストケース生成処理は、前記プログラムの実行の結果表示される所定の表示画面が一方には存在し他方には存在しない場合に、前記所定の差異が存在すると判断する、 ことを特徴とする付記1に記載のプログラム。
(付記5) 前記テストケース生成処理は、前記一連の動作内に、前記プログラムの実行の結果表示される所定の表示項目の出現回数が異なる場合に、前記所定の差異が存在すると判断する、
ことを特徴とする付記1に記載のプログラム。
(付記6) 前記プログラムがWebアプリケーションである場合、前記テスト入力データには、前記プログラムが表示する表示画面への入力データと、画面操作指示と、が含まれる、
ことを特徴とする付記1に記載のプログラム。
(付記7) 前記プログラムがWebアプリケーションである場合、前記テスト入力データには、前記プログラムが表示する表示画面への入力データと、画面操作指示と、が含まれる、
ことを特徴とする付記1に記載のプログラム。
(付記8) 前記プログラムがWebアプリケーションである場合、前記テスト出力データには、前記プログラムが使用するデータベースの状態が含まれる、
ことを特徴とする付記1に記載のプログラム。
(付記9) 前記入力データ生成処理は、前記テスト入力データに含まれる文字列または数値を一部または全部変更することで前記新たなテスト入力データを生成する、
ことを特徴とする付記1に記載のプログラム。
(付記10) 前記テスト入力データ生成処理は、前記一連の動作内に、前記テスト入力データと、前記テスト出力データと、が出現する回数を算出し、所定回数以上出現するテスト入力データまたはテスト出力データを変更することで、前記新たなテスト入力データを生成する、 ことを特徴とする付記1に記載のプログラム。
(付記11)
所望のプログラムの動作をテストするために使用する入出力データを生成する方法において、
前記プログラムの一連の動作に必要なデータであるテスト入力データと、該テスト入力データに応じて前記プログラムの実行の結果得られるテスト出力データと、で構成される既存テストケースを記憶するテストケース記憶部から、任意の既存テストケースを取得し、該既存テストケースのテスト入力データと異なる新たなテスト入力データを生成するテスト入力データ生成処理と、
該新たなテスト入力データを前記プログラムに与えて前記一連の動作を実行させるプログラム実行処理と、
該プログラムの実行結果から新たなテスト出力データを取得して、前記既存テストケースのテスト出力データと比較し、該比較の結果に所定の差異を検出すると、前記新たなテスト入力データと前記新たなテスト出力データとで構成する新たなテストケースを生成し、該テストケースを前記テストケース記憶部に記憶するテストケース生成処理と、
を実行する方法。
(付記12) 所望のプログラムの動作をテストするデータを生成するテストデータ生成装置において、
前記プログラムの一連の動作に必要なデータであるテスト入力データと、該テスト入力データに応じて前記プログラムの実行の結果得られるテスト出力データと、で構成される既存テストケースを記憶するテストケース記憶部と、
前記テストケース記憶部から任意の既存テストケースを取得し、該既存テストケースのテスト入力データと異なる新たなテスト入力データを生成するテスト入力データ生成部と、
該新たなテスト入力データを前記プログラムに与えて前記一連の動作を実行させるプログラム実行部と、
該プログラムの実行結果から新たなテスト出力データを取得して、前記既存テストケースのテスト出力データと比較し、該比較の結果に所定の差異を検出すると、前記新たなテスト入力データと前記新たなテスト出力データとで構成する新たなテストケースを生成し、該テストケースを前記テストケース記憶部に記憶するテストケース生成部と、
を備えるテストデータ生成装置。
100 テストデータ生成装置
101 テストケース記憶部
102 テスト入力データ生成部
103 プログラム実行部
104 テストケース生成部
110 アプリケーション
101 テストケース記憶部
102 テスト入力データ生成部
103 プログラム実行部
104 テストケース生成部
110 アプリケーション
Claims (5)
- 所望のプログラムの動作をテストするために使用する入出力データを生成するプログラムにおいて、
前記プログラムの一連の動作に必要なデータであるテスト入力データと、該テスト入力データに応じて前記プログラムの実行の結果得られるテスト出力データと、で構成される既存テストケースを記憶するテストケース記憶部から、任意の既存テストケースを取得し、該既存テストケースのテスト入力データと異なる新たなテスト入力データを生成するテスト入力データ生成処理と、
該新たなテスト入力データを前記プログラムに与えて前記一連の動作を実行させるプログラム実行処理と、
該プログラムの実行結果から新たなテスト出力データを取得して、前記既存テストケースのテスト出力データと比較し、該比較の結果に所定の差異を検出すると、前記新たなテスト入力データと前記新たなテスト出力データとで構成する新たなテストケースを生成し、該テストケースを前記テストケース記憶部に記憶するテストケース生成処理と、
を情報処理装置に実行させるプログラム。 - 前記テストケース生成処理は、前記プログラムの実行の結果表示される所定の表示画面が一方には存在し他方には存在しない場合に、前記所定の差異が存在すると判断する、
ことを特徴とする請求項1に記載のプログラム。 - 前記テストケース生成処理は、前記一連の動作内に、前記プログラムの実行の結果表示される所定の表示項目の出現回数が異なる場合に、前記所定の差異が存在すると判断する、
ことを特徴とする請求項1に記載のプログラム。 - 所望のプログラムの動作をテストするために使用する入出力データを生成する方法において、
前記プログラムの一連の動作に必要なデータであるテスト入力データと、該テスト入力データに応じて前記プログラムの実行の結果得られるテスト出力データと、で構成される既存テストケースを記憶するテストケース記憶部から、任意の既存テストケースを取得し、該既存テストケースのテスト入力データと異なる新たなテスト入力データを生成するテスト入力データ生成処理と、
該新たなテスト入力データを前記プログラムに与えて前記一連の動作を実行させるプログラム実行処理と、
該プログラムの実行結果から新たなテスト出力データを取得して、前記既存テストケースのテスト出力データと比較し、該比較の結果に所定の差異を検出すると、前記新たなテスト入力データと前記新たなテスト出力データとで構成する新たなテストケースを生成し、該テストケースを前記テストケース記憶部に記憶するテストケース生成処理と、
を実行する方法。 - 所望のプログラムの動作をテストするデータを生成するテストデータ生成装置において、
前記プログラムの一連の動作に必要なデータであるテスト入力データと、該テスト入力データに応じて前記プログラムの実行の結果得られるテスト出力データと、で構成される既存テストケースを記憶するテストケース記憶部と、
前記テストケース記憶部から任意の既存テストケースを取得し、該既存テストケースのテスト入力データと異なる新たなテスト入力データを生成するテスト入力データ生成部と、
該新たなテスト入力データを前記プログラムに与えて前記一連の動作を実行させるプロ
グラム実行部と、
該プログラムの実行結果から新たなテスト出力データを取得して、前記既存テストケースのテスト出力データと比較し、該比較の結果に所定の差異を検出すると、前記新たなテスト入力データと前記新たなテスト出力データとで構成する新たなテストケースを生成し、該テストケースを前記テストケース記憶部に記憶するテストケース生成部と、
を備えるテストデータ生成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008002161A JP2009163609A (ja) | 2008-01-09 | 2008-01-09 | テストデータ生成用プログラム、および装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008002161A JP2009163609A (ja) | 2008-01-09 | 2008-01-09 | テストデータ生成用プログラム、および装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009163609A true JP2009163609A (ja) | 2009-07-23 |
Family
ID=40966133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008002161A Withdrawn JP2009163609A (ja) | 2008-01-09 | 2008-01-09 | テストデータ生成用プログラム、および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009163609A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012185642A (ja) * | 2011-03-04 | 2012-09-27 | Internatl Business Mach Corp <Ibm> | テスト・ケース生成方法、プログラム及びシステム |
US8838607B2 (en) | 2012-10-17 | 2014-09-16 | International Business Machines Corporation | Software system test case creation |
JP2016048470A (ja) * | 2014-08-27 | 2016-04-07 | 日本電気株式会社 | アプリケーションテスト支援装置、そのデータ処理方法、およびプログラム |
JP2017041171A (ja) * | 2015-08-21 | 2017-02-23 | 株式会社日立製作所 | テストシナリオ生成支援装置およびテストシナリオ生成支援方法 |
JP2019021341A (ja) * | 2018-10-11 | 2019-02-07 | 日本電気株式会社 | アプリケーションテスト支援装置、そのデータ処理方法、およびプログラム |
JP2020119005A (ja) * | 2019-01-18 | 2020-08-06 | ソフトバンク株式会社 | テストケースの作成支援装置及びプログラム |
JP2021135921A (ja) * | 2020-02-28 | 2021-09-13 | 三菱電機インフォメーションシステムズ株式会社 | 派生テスト装置、派生テスト方法、および、派生テストプログラム |
WO2022249420A1 (ja) * | 2021-05-27 | 2022-12-01 | 日本電信電話株式会社 | テスト生成装置、テスト生成方法、及びプログラム |
-
2008
- 2008-01-09 JP JP2008002161A patent/JP2009163609A/ja not_active Withdrawn
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012185642A (ja) * | 2011-03-04 | 2012-09-27 | Internatl Business Mach Corp <Ibm> | テスト・ケース生成方法、プログラム及びシステム |
US9465724B2 (en) | 2011-03-04 | 2016-10-11 | International Business Machines Corporation | Method, program, and system for generating test cases |
US9483385B2 (en) | 2011-03-04 | 2016-11-01 | International Business Machines Corporation | Method, program, and system for generating test cases |
US8838607B2 (en) | 2012-10-17 | 2014-09-16 | International Business Machines Corporation | Software system test case creation |
US8965887B2 (en) | 2012-10-17 | 2015-02-24 | International Business Machines Corporation | Software system test case creation |
JP2016048470A (ja) * | 2014-08-27 | 2016-04-07 | 日本電気株式会社 | アプリケーションテスト支援装置、そのデータ処理方法、およびプログラム |
JP2017041171A (ja) * | 2015-08-21 | 2017-02-23 | 株式会社日立製作所 | テストシナリオ生成支援装置およびテストシナリオ生成支援方法 |
JP2019021341A (ja) * | 2018-10-11 | 2019-02-07 | 日本電気株式会社 | アプリケーションテスト支援装置、そのデータ処理方法、およびプログラム |
JP2020119005A (ja) * | 2019-01-18 | 2020-08-06 | ソフトバンク株式会社 | テストケースの作成支援装置及びプログラム |
JP2021135921A (ja) * | 2020-02-28 | 2021-09-13 | 三菱電機インフォメーションシステムズ株式会社 | 派生テスト装置、派生テスト方法、および、派生テストプログラム |
WO2022249420A1 (ja) * | 2021-05-27 | 2022-12-01 | 日本電信電話株式会社 | テスト生成装置、テスト生成方法、及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009163609A (ja) | テストデータ生成用プログラム、および装置 | |
US8104020B2 (en) | Method and system to automate software testing using sniffer side and browser side recording and a toolbar interface | |
Hanchett et al. | Vue. js in Action | |
US20140258989A1 (en) | Method and system for automating a scene-based test | |
CN111414166A (zh) | 代码的生成方法、装置、设备及存储介质 | |
US20220229505A1 (en) | Method and apparatus for providing prototype of graphical user interface | |
Garreau | Redux in action | |
CN106484389A (zh) | 动作流分段管理 | |
JP2012118968A (ja) | ユーザに支援式ビジネス分析を提供する方法、コンピュータ・プログラムおよび装置 | |
JP5460629B2 (ja) | 表形式ソフトウェア仕様作成支援方法、及び装置 | |
JP2011039786A (ja) | ソフトウェアテスト支援装置、ソフトウェアテスト支援方法、及びプログラム | |
CN107491311B (zh) | 生成页面文件的方法、系统以及计算机设备 | |
CN113095056A (zh) | 生成方法、处理方法、装置、电子设备以及介质 | |
CN111459483B (zh) | 界面的处理方法和装置 | |
JP4977681B2 (ja) | データパターン/テストデータ生成・蓄積方法及びシステム | |
JP6552162B2 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
US20080195453A1 (en) | Organisational Representational System | |
CN112257450A (zh) | 数据处理方法、装置、可读存储介质及设备 | |
JP2015148925A (ja) | プログラム生成装置および方法 | |
JP2008117029A (ja) | 運用作業手順作成時の不正手順チェックアウト方法、障害発生防止のためのコマンド生成方法、および自動実行コマンド生成システム、ならびにそのプログラム | |
JP2014186678A (ja) | 部品生成システムおよび方法ならびにプログラム | |
US8769506B2 (en) | Using a command interpreter at design time | |
CN111381862A (zh) | 多场景数据适配展示方法、装置、电子设备及存储介质 | |
CN111488283B (zh) | 任务生成方法、装置、电子设备及存储介质 | |
JP4459092B2 (ja) | ルール獲得システム及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20110405 |