(57)【要約】【課題】  あるテストシナリオからいくつかのバリエーションである複数のテストシナリオを生成する。【解決手段】  本発明は、テスト対象のソフトウェアとは別のソフトウェアにおけるテスト設計で作成されたテストシナリオを構成するステップが格納されたステップDBを有し、与えられた基本シナリオを構成するステップと同一のプロセスタイプ、ステップタイプ、ステップ名を有するステップをステップＤＢから検索し、該基本シナリオのステップを、該ステップＤＢから検索されたステップで置換して新たなテストシナリオを生成し、関連シナリオとして出力し、基本シナリオの各ステップをステップDBに追加登録する。【選択図】  図１
2015022356.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションのテスト設計において、テストシナリオのバリエーションを生成するテストシナリオバリエーション生成装置であって、
テスト対象のソフトウェアとは別のソフトウェアにおけるテスト設計で作成されたテストシナリオを構成するステップが格納されたステップDBと、
与えられた基本シナリオを構成するステップと同一のプロセスタイプ、ステップタイプ、ステップ名を有するステップを前記ステップＤＢから検索し、該基本シナリオのステップを、該ステップＤＢから検索されたステップで置換して新たなテストシナリオを生成し、関連シナリオとして出力する関連シナリオ生成手段と、
を有することを特徴とするテストシナリオバリエーション生成装置。
【請求項２】
前記基本シナリオの各ステップを前記ステップDBに追加登録する基本シナリオステップ記録手段を更に有する、
請求項１記載のテストシナリオバリエーション生成装置。
【請求項３】
アプリケーションのテスト設計において、テストシナリオのバリエーションを生成するテストシナリオバリエーション生成方法であって、
テスト対象のソフトウェアとは別のソフトウェアにおけるテスト設計で作成されたテストシナリオを構成するステップが格納されたステップDBと、
関連シナリオ生成手段、基本シナリオステップ記録手段を有する装置において、
前記関連シナリオ生成手段が、与えられた基本シナリオを構成するステップと同一のプロセスタイプ、ステップタイプ、ステップ名を有するステップを前記ステップＤＢから検索し、該基本シナリオのステップを、該ステップＤＢから検索されたステップで置換して新たなテストシナリオを生成し、関連シナリオとして出力する関連シナリオ生成ステップと、
を行うことを特徴とするテストシナリオバリエーション生成方法。
【請求項４】
前記基本シナリオステップ記録手段が、前記基本シナリオの各ステップを前記ステップDBに追加登録する基本シナリオステップ記録ステップを更に行う
請求項３記載のテストシナリオバリエーション生成方法。
【請求項５】
コンピュータを、
請求項１または２に記載のテストシナリオバリエーション生成装置の各手段として機能させるためのテストシナリオバリエーション生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テストシナリオバリエーション生成装置及び方法及びプログラムに係り、特に、Webアプリケーションのテスト設計において、テストシナリオのバリエーションを生成するためのテストシナリオバリエーション生成装置及び方法及びプログラムに関する。
【背景技術】
【０００２】
従来のテストシナリオ生成の方法として、ファイルパスに基づいて設計ドキュメントを取得して、単一の中間言語（JavaObject）に変換し、さらに、ＸＭＩ形式UMLに変換し設計モデルを生成する。そして、当該設計モデルからテスト項目（入力エラーの有無、テスト経路、DB変更の有無、結果出力方法等）を取得し、テストシナリオを生成する方法がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第4966386号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、テスト対象のソフトウェアの設計書の情報のみに基づき、テストシナリオを生成しており、テスト対象のソフトウェアとは別のソフトウェアにおけるテストシナリオのバリエーションに基づきテストシナリオを生成することができないという問題がある。
【０００５】
本発明は上記の点に鑑みなされたもので、あるテストシナリオからいくつかのバリエーションである複数のテストシナリオを生成することが可能なテストシナリオバリエーション生成装置及び方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
一態様によれば、アプリケーションのテスト設計において、テストシナリオのバリエーションを生成するテストシナリオバリエーション生成装置であって、
テスト対象のソフトウェアとは別のソフトウェアにおけるテスト設計で作成されたテストシナリオを構成するステップが格納されたステップDBと、
与えられた基本シナリオを構成するステップと同一のプロセスタイプ、ステップタイプ、ステップ名を有するステップを前記ステップＤＢから検索し、該基本シナリオのステップを、該ステップＤＢから検索されたステップで置換して新たなテストシナリオを生成し、関連シナリオとして出力する関連シナリオ生成手段と、
前記基本シナリオの各ステップを前記ステップDBに追加登録する基本シナリオステップ記録手段と、を有することを特徴とするテストシナリオバリエーション生成装置が提供される。
【発明の効果】
【０００７】
上記の一態様によれば、テスト対象のソフトウェアとは別のソフトウェア（別チームが開発したソフトウェアも含む）のテストシナリオのバリエーションに基づき、テスト対象のソフトウェアのテストシナリオのバリエーションを作成することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施の形態におけるテストシナリオバリエーション生成装置の構成図である。
【図２】本発明の一実施の形態におけるステップDBの例である。
【図３】本発明の一実施の形態におけるメモリの領域の例である。
【図４】本発明の一実施の形態における概要動作のフローチャートである。
【図５】本発明の一実施の形態における関連シナリオ生成部の処理のフローチャートである。
【図６】本発明の一実施の形態における基本シナリオの基本ステップと置換対象ステップの例である。
【図７】本発明の一実施の形態における関連シナリオのバリエーション生成の例である。
【図８】本発明の一実施の形態における基本シナリオステップ記録部の処理のフローチャートである。
【発明を実施するための形態】
【０００９】
以下、図面と共に本発明の実施の形態を説明する。
【００１０】
図１は、本発明の一実施の形態におけるテストシナリオバリエーション生成装置の構成を示す。
【００１１】
同図に示すテストシナリオバリエーション生成装置１００は、基本シナリオ生成部１１０、関連シナリオ生成部１２０、ステップＤＢ１３０、基本シナリオステップ記録部１４０、関連シナリオ出力部１５０、メモリ１６０を有する。基本シナリオ生成部１１０と関連シナリオ出力部１５０はユーザ端末１０に接続されている。
【００１２】
ステップＤＢ１３０は、テスト対象のソフトウェアとは別のソフトウェアにおけるテスト設計で作成されたテストシナリオを構成していたステップが格納されており、図２に示すように、生成された各ステップに一意に付与されるステップId、プロセスタイプ（registration/login）、ステップタイプ（input/webtransition）、ステップ名、ステップ値を格納する。
【００１３】
メモリ１６０は、図３に示すように、基本シナリオ集合格納領域１６１、置換ステップ候補集合格納領域１６２、関連シナリオ集合グループ格納領域１６３、を有する。
【００１４】
基本シナリオ集合格納領域１６１には、基本シナリオ入力部１１０により、
<基本シナリオ集合>::=<基本シナリオ>
<基本シナリオ>::=基本シナリオId: Integer<シナリオ>
<シナリオ>::=<ステップ>＋プロセスタイプ：String
<ステップ>::=ステップId: Integer 
プロセスタイプ：String
ステップタイプ：String
ステップ名：String
ステップ値：String
置換ステップフラグ：Boolean
が格納される。
【００１５】
置換ステップ候補集合格納領域１６２には、関連シナリオ生成部１２０により、
<置換ステップ候補集合>::=<置換ステップ候補>+
<置換ステップ候補>::=置換対象ステップId: Integer 置換後ステップId: Integer
が格納される。
【００１６】
関連シナリオ集合グループ格納領域１６３には、関連シナリオ生成部１２０により、
<関連シナリオ集合グループ>::=<関連シナリオ集合>*
<関連シナリオ集合>::=生成元基本シナリオId: Integer<関連シナリオ>*
<関連シナリオ>::=関連シナリオId: Integer<シナリオ>
が格納される。
【００１７】
以下に、上記の構成における処理を説明する。
【００１８】
テストシナリオは複数のステップで構成されている。本発明では、与えられたテストシナリオ（基本シナリオ）から、ステップDB１３０に格納されたステップを用いて、そのテストシナリオのバリエーションである複数のテストシナリオ（関連シナリオ）を生成し、これをテストシナリオバリエーションとして出力する。
【００１９】
図４は、本発明の一実施の形態における概要動作のフローチャートである。
【００２０】
ステップ１００）  基本シナリオ入力部１１０は、ユーザ端末１０から入力された基本シナリオ集合（UML： Unified Modeling Language）を取得し、メモリ１６０の基本シナリオ集合格納領域１６１に格納する。ここで、入力される基本シナリオは、BNF(Backus Naur Form)で記述されており、以下の構成を有する。なお、以下の"<xxx>"は非終端記号であり、"xxx:yyy"は終端記号であり、xxxはyyy型であることを示す。
【００２１】
<基本シナリオ集合>::=<基本シナリオ>
<基本シナリオ>::=基本シナリオId:Integer<シナリオ>
<シナリオ>::=<ステップ>＋プロセスタイプ：String
<ステップ>::=ステップId:Integer 
プロセスタイプ：String
ステップタイプ：String
ステップ名：String
ステップ値：String
置換ステップフラグ：Boolean
ステップ２００）  関連シナリオ生成部１２０は、メモリ１６０上の関連シナリオ集合グループ格納領域１６３に空の関連シナリオ集合グループを生成する。
【００２２】
ステップ３００）  当該ステップ３００及び次のステップ４００の処理を、入力された基本シナリオ集合の各基本シナリオに対して繰り返す。
【００２３】
関連シナリオ生成部１２０は、メモリ１６０の基本シナリオ集合格納領域１６１から基本シナリオを読み出し、ステップDB１３０を参照して、基本シナリオから関連シナリオ集合を生成する。当該ステップの詳細な処理は図５に示す。
【００２４】
ステップ４００）  関連シナリオ生成部１２０は、メモリ１６０の関連シナリオ集合グループ格納領域１６３に生成した関連シナリオ集合を追加する。
【００２５】
ステップ５００）  基本シナリオステップ記録部１４０は、メモリ１６０の基本シナリオ集合格納領域１６１から基本シナリオを読み出し、各基本シナリオのステップをステップDB１３０に記録する。当該処理の詳細は図８で詳述する。
【００２６】
ステップ６００）  関連シナリオ出力部１５０は、関連シナリオ集合グループをメモリ１６０の関連シナリオ集合グループ格納領域１６３から読み込んでユーザ端末１０に出力する。当該処理が終了したらメモリ１６０の内容をクリアする。
【００２７】
次に、上記のステップ３００の処理について詳しく説明する。
【００２８】
図５は、本発明の一実施の形態における関連シナリオ集合生成のフローチャートである。
【００２９】
ステップ３０１）  関連シナリオ生成部１２０は、メモリ１６０の基本シナリオ集合格納領域１６１から基本シナリオを読み込む。
【００３０】
ステップ３０２）  関連シナリオ生成部１２０は、メモリ１６０の置換ステップ候補集合格納領域１６２に空の置換ステップ候補集合を作成する。ここで、生成元基本Idは、入力された基本シナリオnの基本シナリオIdを設定する。
【００３１】
ステップ３０３）  ステップDB１３０から置換する候補となるステップを取り出す。具体的には、基本シナリオのステップのプロセスタイプ、ステップタイプ、ステップ名が一致するステップをステップDB１３０から抽出する。図６の例では、基本シナリオにある「Input:Username」というステップは、プロセスタイプが"Registration"、プロセスタイプが"Input"、ステップ名が"username"であるので、ステップDB１３０におけるステップ群(ステップId001〜006)が一致するため、これを抽出する。
【００３２】
ステップ３０４）  関連シナリオ生成部１２０は、置換ステップ候補を新たに生成し、当該置換ステップ候補の置換対象ステップIdには、対象となる基本シナリオのステップのIdを設定し、置換後のステップIdにはステップ３０３でステップDB１３０から抽出されたステップ（置換対象ステップ）のIdを設定し、当該置換ステップ候補を置換ステップ候補集合格納領域１６２の集合に追加する。図６の例では、基本シナリオId＝001のステップに関しては、ステップDB１３０におけるId=001〜006のステップが置換対象となるので、置換ステップ候補は「001,001」、「001,002」、「001,003」、「001,004」、「001,005」、「001,006」の６つになる。これらを置換ステップ候補集合格納領域１６２に格納する。
【００３３】
当該処理を基本シナリオ入力部１１０から取得した各ステップに対して繰り返す。
【００３４】
ステップ３０５）  関連シナリオ生成部１２０は、メモリ１６０の関連シナリオ集合グループ格納領域１６３上に空の関連シナリオ集合を作成する。
【００３５】
ステップ３０６）  関連シナリオ生成部１２０は、メモリ１６０内の置換ステップ候補集合格納領域１６２の置換ステップ候補集合から、対象となる基本シナリオのステップのIdと置換対象ステップのIdが一致する置換ステップ候補を全て取り出す。
【００３６】
ステップ３０７）  取り出した置換ステップ候補に対して関連シナリオを一つ生成する。具体的には、対象となる基本シナリオを複製し、置換ステップ候補の置換対象ステップId、置換後ステップIdに基づいて、複製した基本シナリオのステップを置換することで、バリエーションとなる新たな関連シナリオを生成する。
【００３７】
図７の例では、図６の置換対象ステップId＝003の"input:email"ステップを複製し、その複製した置換ステップとステップDB１３０から取り出したステップと置換することで関連シナリオ（１）、（２）を生成する。なお、置換ステップには、場面（例えば、「registration」、「login」など）を表すタグ（プロセスタイプ）が付いているため、テスト対象とは別のソフトウェアの同一場面におけるテストシナリオに基づいて、テスト対象のソフトウェアにおける同一の場面に対応するテストシナリオのバリエーションを生成できる。
【００３８】
ステップ３０８）  関連シナリオ生成部１２０は、生成した関連シナリオをメモリ１６０の関連シナリオ集合グループ格納領域１６３の関連シナリオ集合に追加する。
【００３９】
次に、図４のステップ５００の処理について詳細に説明する。
【００４０】
図８は、本発明の一実施の形態における基本シナリオステップ記録部の処理のフローチャートである。
【００４１】
ステップ５０１）  基本シナリオステップ記録部１４０は、メモリ１６０の基本シナリオ集合格納領域１６１から基本シナリオ集合を読み込む。
【００４２】
ステップ５０２）  基本シナリオ集合の各基本シナリオの対象ステップのステップタイプ、ステップ名、ステップ値に一致するステップがステップDB１３０に存在するかを判定する。存在する場合は次の基本シナリオの対象ステップについて判定を行う。存在しない場合はステップ５０３に移行する。
【００４３】
ステップ５０３）  ステップDB１３０に該当するステップが存在しない場合には、対象となる基本シナリオのステップをステップDB１３０に新規に登録する。
【００４４】
上記のステップ５０２，５０３の処理を、基本シナリオ集合の各基本シナリオの各ステップに対して行う。
【００４５】
基本シナリオステップ記録部１４０の処理を行うことにより、テスト設計者が作成したテストシナリオ（基本シナリオ）を構成する全てのステップは、ステップDB１３０へと蓄積される。これにより、関連シナリオ生成部１２０では、当該ステップDB１３０からステップを取り出し、関連シナリオを生成するため、テスト対象のソフトウェアのテストシナリオのバリエーションを生成するときに、テスト対象とは別のソフトウェアのテスト設計者が作成したテストシナリオのバリエーションに基づいて、さらになるバリエーションを生成することができる。
【００４６】
なお、上記の図１に示すテストシナリオバリエーション生成装置１００の各構成要素の動作をプログラムとして構築し、テストシナリオバリエーション生成装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
【００４７】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【００４８】
１０  ユーザ端末
１００  テストシナリオバリエーション生成装置
１１０  基本シナリオ入力部
１２０  関連シナリオ生成部
１３０  ステップＤＢ
１４０  基本シナリオステップ記録部
１５０  関連シナリオ出力部
１６０  メモリ
１６１  基本シナリオ集合格納領域
１６２  置換ステップ候補集合格納領域
１６３  関連シナリオ集合グループ格納領域
【図１】
2015022356.tif 000003
【図２】
2015022356.tif 000004
【図３】
2015022356.tif 000005
【図４】
2015022356.tif 000006
【図５】
2015022356.tif 000007
【図６】
2015022356.tif 000008
【図７】
2015022356.tif 000009
【図８】
2015022356.tif 000010