(57)【特許請求の範囲】
【請求項１】
テスト対象画面のテストに使用されたテストシナリオであって、前記テスト対象画面における操作対象の画面要素と、前記画面要素に対する操作を表すキーワードと、前記キーワードにより表される操作において必要なデータとから成るテストシナリオと、前記画面要素に対する操作を定義した画面構成情報と、前記テスト対象画面とを用いて、前記テスト対象画面のテストに用いる複数の派生シナリオであって、各々が前記画面要素と前記キーワードと前記データとから成る複数の派生シナリオを生成する派生シナリオ生成部と、
前記複数の派生シナリオを用いて前記テスト対象画面のテストを派生テストとして実行し、前記派生テストの実行により出力された実行結果画面と前記派生テストを行った派生シナリオと対応付けて実行結果情報として記憶部に記憶する派生テスト実行部と、
前記実行結果情報に含まれる実行結果画面を実行結果に基づいて複数のグループに分類し、前記複数のグループの各グループに分類された前記実行結果画面の数に基づいて、各グループに、当該グループに含まれる実行結果画面を確認する作業の優先順位を設定する結果評価部と
を備える派生テスト装置。
【請求項２】
前記派生シナリオ生成部は、
前記テストシナリオに設定されているデータをテストデータとしてテストデータ情報に蓄積し、
前記テストデータ情報と、前記画面構成情報と、前記テスト対象画面とを用いて、前記テスト対象画面において操作可能なシナリオを前記複数の派生シナリオとして生成する請求項１に記載の派生テスト装置。
【請求項３】
前記画面構成情報は、
前記テスト対象画面における画面要素と前記画面要素の種別とを対応付けた画面要素情報と、
前記画面要素の種別と前記画面要素の種別に対して使用可能な操作を表すキーワードとを対応付けた使用可能キーワード情報と、
前記画面要素に対する操作を表すキーワードと前記キーワードにより表される操作についてのデータの使用とを対応付けたデータ使用情報と
を備える請求項２に記載の派生テスト装置。
【請求項４】
前記派生シナリオ生成部は、
前記テスト対象画面から画面要素を抽出し、前記画面要素情報と前記使用可能キーワード情報と前記データ使用情報と前記テストデータ情報とに基づいて、抽出された前記画面要素の各々に対して、使用可能なキーワードを設定するとともに、設定された前記キーワードにデータが使用される場合はテストデータを設定することにより画面要素単位でのシナリオを生成し、前記画面要素単位でのシナリオを組み合わせることにより派生元シナリオを生成し、前記派生元シナリオから各々がテスト手順の順序を有する前記複数の派生シナリオを生成する請求項３に記載の派生テスト装置。
【請求項５】
前記派生シナリオ生成部は、
前記複数の派生シナリオのうち少なくとも１つの派生シナリオについて、前記画面要素の操作順を入れ替えることにより新たな派生シナリオを生成する請求項１から請求項４のいずれか１項に記載の派生テスト装置。
【請求項６】
前記派生シナリオ生成部は、
前記複数の派生シナリオのうち少なくとも１つの派生シナリオについて、前記画面要素の操作を繰り返すことにより新たな派生シナリオを生成する請求項１から請求項５のいずれか１項に記載の派生テスト装置。
【請求項７】
コンピュータが、テスト対象画面のテストに使用されたテストシナリオであって、前記テスト対象画面における操作対象の画面要素と、前記画面要素に対する操作を表すキーワードと、前記キーワードにより表される操作において必要なデータとから成るテストシナリオと、前記画面要素に対する操作を定義した画面構成情報と、前記テスト対象画面とを用いて、前記テスト対象画面のテストに用いる複数の派生シナリオであって、各々が前記画面要素と前記キーワードと前記データとから成る複数の派生シナリオを生成し、
コンピュータが、前記複数の派生シナリオを用いて前記テスト対象画面のテストを派生テストとして実行し、前記派生テストの実行により出力された実行結果画面と前記派生テストを行った派生シナリオと対応付けて実行結果情報として記憶部に記憶し、
コンピュータが、前記実行結果情報に含まれる実行結果画面を実行結果に基づいて複数のグループに分類し、前記複数のグループの各グループに分類された前記実行結果画面の数に基づいて、各グループに、当該グループに含まれる実行結果画面を確認する作業の優先順位を設定する派生テスト方法。
【請求項８】
派生シナリオ生成部が、テスト対象画面のテストに使用されたテストシナリオであって、前記テスト対象画面における操作対象の画面要素と、前記画面要素に対する操作を表すキーワードと、前記キーワードにより表される操作において必要なデータとから成るテストシナリオと、前記画面要素に対する操作を定義した画面構成情報と、前記テスト対象画面とを用いて、前記テスト対象画面のテストに用いる複数の派生シナリオであって、各々が前記画面要素と前記キーワードと前記データとから成る複数の派生シナリオを生成する派生シナリオ生成処理と、
派生テスト実行部が、前記複数の派生シナリオを用いて前記テスト対象画面のテストを派生テストとして実行し、前記派生テストの実行により出力された実行結果画面と前記派生テストを行った派生シナリオと対応付けて実行結果情報として記憶部に記憶する派生テスト実行処理と、
前記実行結果情報に含まれる実行結果画面を実行結果に基づいて複数のグループに分類し、前記複数のグループの各グループに分類された前記実行結果画面の数に基づいて、各グループに、当該グループに含まれる実行結果画面を確認する作業の優先順位を設定する結果評価処理と
をコンピュータに実行させる派生テストプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、派生テスト装置、派生テスト方法、および、派生テストプログラムに関する。特に、品質強化のための派生テストを行う派生テスト装置、派生テスト方法、および、派生テストプログラムに関する。
【背景技術】
【０００２】
システム開発では、ウォーターフォール型による開発が多い。製造工程の遅れが発生すると、複数のテスト工程を並行する、あるいは、テスト工程を短くするといった方法が採られる。このように、工数に対してテスト項目を多くすると、製造とテストの実施順に制約ができ、重要度の高いテストが後回しになる場合がある。また、優先度が低いテストが実施されない場合がある。また、テスト工程においては、期間が短くなっても品質を確保する必要がある。
【０００３】
そこで、品質強化を図るために、バグが収束し始めた段階で使用されるモンキーテストと呼ばれるバグ検知ツールが存在する。具体的には、Ｗｅｂアプリケーション向けの「ｇｒｅｍｌｉｎｓ．ｊｓ」といったツールがある。「ｇｒｅｍｌｉｎｓ．ｊｓ」では、画面のクリックおよびキーボード入力をランダムに実施する。
【０００４】
また、特許文献１には、テスト未実行である分岐処理を実行させる分岐条件を満たすように、テストケースのバリエーションを生成する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１６−０４８４７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１の技術では、分岐条件を満たすようにテストケースのバリエーションを生成するため、ランダムな操作を実現することはできない。よって、バグが収束し始めた段階で使用されるモンキーテストのような効果は期待できない。
また、「ｇｒｅｍｌｉｎｓ．ｊｓ」といったランダムな操作を行うツールでは、テスト手順が残らないため、エラー発生時の再現が困難であるという課題がある。
【０００７】
本開示では、ランダムな操作に相当する操作を実現する派生テストのための派生シナリオを、テスト手順がわかるように生成し、品質強化に貢献するとともにエラー発生時の再現を可能とすることを目的とする。
【課題を解決するための手段】
【０００８】
本開示に係る派生テスト装置は、
テスト対象画面のテストに使用されたテストシナリオであって、前記テスト対象画面における操作対象である画面要素と、前記画面要素に対する操作を表すキーワードと、前記キーワードにより表される操作において必要なデータとから成るテストシナリオと、前記画面要素に対する操作を定義した画面構成情報と、前記テスト対象画面とを用いて、前記テスト対象画面のテストに用いる複数の派生シナリオであって、各々が前記画面要素と前記キーワードと前記データとから成る複数の派生シナリオを生成する派生シナリオ生成部と、
前記複数の派生シナリオを用いて前記テスト対象画面のテストを派生テストとして実行し、前記派生テストの実行により出力された実行結果画面と、前記派生テストに用いられた派生シナリオとを対応付けて実行結果情報として記憶部に記憶する派生テスト実行部とを備える。
【０００９】
前記派生シナリオ生成部は、
前記テストシナリオに設定されているデータをテストデータとしてテストデータ情報に蓄積し、
前記テストデータ情報と、前記画面構成情報と、前記テスト対象画面とを用いて、前記テスト対象画面において操作可能なシナリオを前記複数の派生シナリオとして生成する。
【００１０】
前記画面構成情報は、
前記テスト対象画面における画面要素と前記画面要素の種別とを対応付けた画面要素情報と、
前記画面要素の種別と前記画面要素の種別に対して使用可能な操作を表すキーワードとを対応付けた使用可能キーワード情報と、
前記画面要素に対する操作を表すキーワードと前記キーワードにより表される操作についてのデータの使用とを対応付けたデータ使用情報と
を備える。
【００１１】
前記派生シナリオ生成部は、
前記テスト対象画面から画面要素を抽出し、前記画面要素情報と前記使用可能キーワード情報と前記データ使用情報と前記テストデータ情報とに基づいて、抽出された前記画面要素の各々に対して、使用可能なキーワードを設定するとともに、設定された前記キーワードにデータが使用される場合はテストデータを設定することにより画面要素単位でのシナリオを生成し、前記画面要素単位でのシナリオを組み合わせることにより派生元シナリオを生成し、前記派生元シナリオから各々がテスト手順の順序を有する前記複数の派生シナリオを生成する。
【００１２】
前記派生テスト装置は、
前記実行結果情報に含まれる実行結果画面を実行結果に基づいて複数のグループに分類し、前記複数のグループの各グループに分類された前記実行結果画面の数に基づいて、各グループに、当該グループに含まれる実行結果画面を確認する作業の優先順位を設定する結果評価部を備える。
【００１３】
前記派生シナリオ生成部は、
前記複数の派生シナリオのうち少なくとも１つの派生シナリオについて、前記画面要素の操作順を入れ替えることにより新たな派生シナリオを生成する。
【００１４】
前記派生シナリオ生成部は、
前記複数の派生シナリオのうち少なくとも１つの派生シナリオについて、前記画面要素の操作を繰り返すことにより新たな派生シナリオを生成する。
【００１５】
本開示に係る派生テスト方法は、
派生シナリオ生成部が、テスト対象画面のテストに使用されたテストシナリオであって、前記テスト対象画面における操作対象の画面要素と、前記画面要素に対する操作を表すキーワードと、前記キーワードにより表される操作において必要なデータとから成るテストシナリオと、前記画面要素に対する操作を定義した画面構成情報と、前記テスト対象画面とを用いて、前記テスト対象画面のテストに用いる複数の派生シナリオであって、各々が前記画面要素と前記キーワードと前記データとから成る複数の派生シナリオを生成し、
派生テスト実行部が、前記複数の派生シナリオを用いて前記テスト対象画面のテストを派生テストとして実行し、前記派生テストの実行により出力された実行結果画面と前記派生テストを行った派生シナリオと対応付けて実行結果情報として記憶部に記憶する。
【００１６】
本開示に係る派生プログラムは、
派生シナリオ生成部が、テスト対象画面のテストに使用されたテストシナリオであって、前記テスト対象画面における操作対象の画面要素と、前記画面要素に対する操作を表すキーワードと、前記キーワードにより表される操作において必要なデータとから成るテストシナリオと、前記画面要素に対する操作を定義した画面構成情報と、前記テスト対象画面とを用いて、前記テスト対象画面のテストに用いる複数の派生シナリオであって、各々が前記画面要素と前記キーワードと前記データとから成る複数の派生シナリオを生成する派生シナリオ生成処理と、
派生テスト実行部が、前記複数の派生シナリオを用いて前記テスト対象画面のテストを派生テストとして実行し、前記派生テストの実行により出力された実行結果画面と前記派生テストを行った派生シナリオと対応付けて実行結果情報として記憶部に記憶する派生テスト実行処理と
をコンピュータに実行させる。
【発明の効果】
【００１７】
本開示に係る派生テスト装置によれば、ランダムな操作テストに相当する派生テストに用いられる派生シナリオを、テスト手順がわかるように生成するので、品質強化に貢献するとともにエラー発生時の再現を可能とすることができる。
【図面の簡単な説明】
【００１８】
【図１】実施の形態１に係る派生テスト装置の構成例。
【図２】実施の形態１に係るテスト対象画面の例を示す図。
【図３】実施の形態１に係るテストシナリオおよび派生シナリオの例を示す図。
【図４】実施の形態１に係るテストシナリオおよび派生シナリオと同様の構造を有する試験スクリプトによるキーワード駆動テストの例。
【図５】実施の形態１に係る派生テスト装置の派生テスト処理のフロー図。
【図６】実施の形態１に係るテストシナリオと画面構成情報とテストデータ情報の構成例を示す図。
【図７】実施の形態１に係る派生シナリオの構成例を示す図。
【図８】実施の形態１に係る派生シナリオ生成部のシナリオ設定処理のフロー図。
【図９】実施の形態１に係るシナリオ設定処理のステップＳ４１の具体例。
【図１０】実施の形態１に係るシナリオ設定処理のステップＳ４２の具体例。
【図１１】実施の形態１に係るシナリオ設定処理のステップＳ４３の具体例。
【図１２】実施の形態１に係る結果評価部による結果評価処理を示すフロー図。
【図１３】実施の形態１に係る結果評価部による実行結果画面の分類処理の具体例を示す模式図。
【図１４】実施の形態１に係る結果評価部による優先順位付与の具体例を示す模式図。
【図１５】実施の形態１の変形例に係る派生テスト装置の構成例。
【発明を実施するための形態】
【００１９】
以下、本実施の形態について、図を用いて説明する。各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。また、以下の図では各構成部材の大きさの関係が実際のものとは異なる場合がある。また、実施の形態の説明において、上、下、左、右、前、後、表、裏といった向きあるいは位置が示されている場合がある。これらの表記は、説明の便宜上の記載であり、装置、器具、あるいは部品等の配置、方向および向きを限定するものではない。
【００２０】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１を用いて、本実施の形態に係る派生テスト装置１００の構成例について説明する。  派生テスト装置１００は、コンピュータである。派生テスト装置１００は、プロセッサ９１０を備えるとともに、メモリ９２１、補助記憶装置９２２、入力インタフェース９３０、出力インタフェース９４０、および通信装置９５０といった他のハードウェアを備える。プロセッサ９１０は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００２１】
派生テスト装置１００は、機能要素として、派生シナリオ生成部１１０と派生テスト実行部１２０と結果評価部１３０と記憶部１４０を備える。
記憶部１４０には、テスト対象画面１０とテストシナリオ２０と画面構成情報３０とテストデータ情報３１と派生シナリオ４０と実行結果情報５０と実行結果分類５１が記憶される。
【００２２】
派生シナリオ生成部１１０と派生テスト実行部１２０と結果評価部１３０の機能は、ソフトウェアにより実現される。記憶部１４０は、メモリ９２１に備えられる。なお、記憶部１４０は、補助記憶装置９２２に備えられていてもよいし、メモリ９２１と補助記憶装置９２２に分散して備えられていてもよい。
【００２３】
プロセッサ９１０は、派生テストプログラムを実行する装置である。派生テストプログラムは、派生シナリオ生成部１１０と派生テスト実行部１２０と結果評価部１３０の機能を実現するプログラムである。
プロセッサ９１０は、演算処理を行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。プロセッサ９１０の具体例は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
【００２４】
メモリ９２１は、データを一時的に記憶する記憶装置である。メモリ９２１の具体例は、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、あるいはＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
補助記憶装置９２２は、データを保管する記憶装置である。補助記憶装置９２２の具体例は、ＨＤＤである。また、補助記憶装置９２２は、ＳＤ（登録商標）メモリカード、ＣＦ、ＮＡＮＤフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤといった可搬の記憶媒体であってもよい。なお、ＨＤＤは、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略語である。ＳＤ（登録商標）は、Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌの略語である。ＣＦは、ＣｏｍｐａｃｔＦｌａｓｈ（登録商標）の略語である。ＤＶＤは、Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋの略語である。
【００２５】
入力インタフェース９３０は、マウス、キーボード、あるいはタッチパネルといった入力装置と接続されるポートである。入力インタフェース９３０は、具体的には、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）端子である。なお、入力インタフェース９３０は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）と接続されるポートであってもよい。
【００２６】
出力インタフェース９４０は、ディスプレイといった出力機器のケーブルが接続されるポートである。出力インタフェース９４０は、具体的には、ＵＳＢ端子またはＨＤＭＩ（登録商標）（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）端子である。ディスプレイは、具体的には、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）である。
【００２７】
通信装置９５０は、レシーバとトランスミッタを有する。通信装置９５０は、ＬＡＮ、インターネット、あるいは電話回線といった通信網に接続している。通信装置９５０は、具体的には、通信チップまたはＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
【００２８】
派生テストプログラムは、派生テスト装置１００において実行される。派生テストプログラムは、プロセッサ９１０に読み込まれ、プロセッサ９１０によって実行される。メモリ９２１には、派生テストプログラムだけでなく、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）も記憶されている。プロセッサ９１０は、ＯＳを実行しながら、派生テストプログラムを実行する。派生テストプログラムおよびＯＳは、補助記憶装置９２２に記憶されていてもよい。補助記憶装置９２２に記憶されている派生テストプログラムおよびＯＳは、メモリ９２１にロードされ、プロセッサ９１０によって実行される。なお、派生テストプログラムの一部または全部がＯＳに組み込まれていてもよい。
【００２９】
派生テスト装置１００は、プロセッサ９１０を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、派生テストプログラムの実行を分担する。それぞれのプロセッサは、プロセッサ９１０と同じように、派生テストプログラムを実行する装置である。
【００３０】
派生テストプログラムにより利用、処理または出力されるデータ、情報、信号値および変数値は、メモリ９２１、補助記憶装置９２２、または、プロセッサ９１０内のレジスタあるいはキャッシュメモリに記憶される。
【００３１】
派生シナリオ生成部１１０と派生テスト実行部１２０と結果評価部１３０の各部の「部」を「処理」、「手順」あるいは「工程」に読み替えてもよい。派生テストプログラムは、派生シナリオ生成処理と派生テスト実行処理と結果評価処理を、コンピュータに実行させる。派生シナリオ生成処理と派生テスト実行処理と結果評価処理の「処理」を「プログラム」、「プログラムプロダクト」、「プログラムを記憶したコンピュータ読取可能な記憶媒体」、または「プログラムを記録したコンピュータ読取可能な記録媒体」に読み替えてもよい。また、派生テスト方法は、派生テスト装置１００が派生テストプログラムを実行することにより行われる方法である。
派生テストプログラムは、コンピュータ読取可能な記録媒体に格納されて提供されてもよい。また、派生テストプログラムは、プログラムプロダクトとして提供されてもよい。
【００３２】
＊＊＊動作の説明＊＊＊
次に、本実施の形態に係る派生テスト装置１００の動作について説明する。派生テスト装置１００の動作手順は、派生テスト方法に相当する。また、派生テスト装置１００の動作を実現するプログラムは、派生テストプログラムに相当する。
【００３３】
まず、テスト対象となるテスト対象画面１０の例、テスト対象画面１０のテストに使用されたテストシナリオ２０の例、および、テスト対象画面１０の派生テストに使用する派生シナリオ４０の例について説明する。
【００３４】
図２は、本実施の形態に係るテスト対象画面１０の例を示す図である。
テスト対象画面１０において操作が可能な要素を画面要素１１という。画面要素１１はオブジェクトとも呼ばれる。
図２のテスト対象画面１０において操作が可能な画面要素１１は、「ユーザ名」、「パスワード」、「ログイン」、および「クリア」である。
「ユーザ名」および「パスワード」の画面要素１１の種別は、テキストを入力することが可能なテキストボックスである。また、「ログイン」および「クリア」の画面要素１１の種別は、クリックあるいはダブルクリックが可能なボタンである。
【００３５】
図３は、本実施の形態に係るテストシナリオ２０および派生シナリオ４０の例を示す図である。
テストシナリオ２０は、テスト対象画面１０のテストに使用されたシナリオである。具体的には、テストシナリオ２０は、テスト対象画面１０の通常のテストに使用されるシナリオであり、テスト対象画面１０の通常のテストに使用された後に、派生テスト装置１００に読み込まれる。テストシナリオ２０は、正解値を有するシナリオである。テストシナリオ２０は、正解値が予め設定された通常のテストのために手動で生成される場合が多い。
テストシナリオ２０は、テスト対象画面１０における操作対象の画面要素１１と、画面要素１１に対する操作を表すキーワード１２と、キーワード１２により表される操作において必要なデータ１３とから構成される。キーワード１２により表される操作においてデータが必要ない場合には、データ１３の欄に「−」が設定される。
【００３６】
図３のテストシナリオ２０では、テスト対象画面１０において、ユーザ名に「ｕｓｅｒ」を入力し、パスワードに「ｐａｓｓ」を入力し、ログインボタンをクリックする、というシナリオが設定されている。
【００３７】
図３では、派生シナリオ生成部１１０は、テストシナリオ２０を読み込み、複数の派生シナリオ４０を自動で生成する。派生シナリオ４０は、品質強化のために行われる派生テストに用いられる。派生シナリオ４０は、大量に生成され、ランダムな操作に相当する操作を実現する。
派生シナリオ４０も、テストシナリオ２０と同様に、画面要素１１と、キーワード１２と、データ１３とから構成される。
例えば、図３の上段の派生シナリオ４０では、テスト対象画面１０において、ユーザ名に「ｐ＠ｓｓ」を入力し、パスワードに「ｐａｓｓ」を入力し、ログインボタンをクリックする、というシナリオが設定されている。また、図３の下段の派生シナリオ４０では、テスト対象画面１０において、ユーザ名に「ｕｓｅｒ」を入力し、パスワードに「ｐａｓｓ」を入力し、キャンセルボタンをクリックする、というシナリオが設定されている。
なお派生シナリオ４０は、上の行から順番に実行していくものとし、実行順序、つまりテスト手順がわかるように生成している。
【００３８】
図４を用いて、本実施の形態に係るテストシナリオ２０および派生シナリオ４０と同様の構造を有する試験スクリプトによるキーワード駆動テストの例を簡単に説明する。
本実施の形態に係るテストシナリオ２０および派生シナリオ４０と同様の構造を有する試験スクリプトは、スクリプティングレベル５（ＩＳＯ／ＩＥＣ／ＩＥＥＥ  ２９１１９−５）のキーワード駆動スクリプトである。キーワード駆動スクリプトによるキーワード駆動テストとは、操作をキーワード化し、操作関数とデータとを外部ファイルから読み込んで使用する方式である。
【００３９】
キーワード駆動テストツールは、キーワードと操作関数を対応付けたキーワードライブラリと、画面要素であるオブジェクトとオブジェクトを識別するオブジェクトＩＤ（ＩＤｅｎｔｉｆｉｅｒ）を対応付けたオブジェクトリポジトリとを備える。キーワード駆動テストツールの動作の概要は、以下の通りである。
（１）キーワード駆動テストツールが、試験スクリプトを読み込む。
（２）キーワード駆動テストツールは、キーワードライブラリとオブジェクトリポジトリを参照し、実行用コードを生成する。
（３）キーワード駆動テストツールが実行用コードを実行することにより、テスト対象画面の操作テストが実施される。
【００４０】
図５は、本実施の形態に係る派生テスト装置１００の派生テスト処理のフロー図である。
また、図６は、本実施の形態に係るテストシナリオ２０と画面構成情報３０とテストデータ情報３１の構成例を示す図である。図７は、本実施の形態に係る派生シナリオ４０の構成例を示す図である。
図８は、本実施の形態に係る派生シナリオ生成部１１０のシナリオ設定処理のフロー図である。図９は、本実施の形態に係るシナリオ設定処理のステップＳ４１の具体例である。図１０は、本実施の形態に係るシナリオ設定処理のステップＳ４２の具体例である。図１１は、本実施の形態に係るシナリオ設定処理のステップＳ４３の具体例である。
【００４１】
図５から図１１を用いて、本実施の形態に係る派生テスト装置１００の動作について説明する。
【００４２】
ステップＳ１０１において、派生テスト装置１００が、テストシナリオ２０を読み込む。テストシナリオ２０は、記憶部１４０に記憶される。ここでのテストシナリオ２０は、上述の通り、既に通常のテストに用いられた後のシナリオであり、正解値ありのシナリオである。
【００４３】
ステップＳ１０２において、派生シナリオ生成部１１０は、テストシナリオ２０に設定されているデータをテストデータとしてテストデータ情報３１に蓄積する。
【００４４】
図６に示すように、テストデータ情報３１は、番号３１１と、テストデータ３１２とから構成される。派生シナリオ生成部１１０は、複数のテストシナリオ２０の各々に設定されているデータの内容のすべてを、テストデータ３１２としてテストデータ情報３１に蓄積する。なお、異なるテストデータに同一のデータが設定されている場合は、１つのみをテストデータ３１２とする。すなわち、テストデータ３１２は、番号３１１に対応付けられてユニークに蓄積され、重複することはない。
【００４５】
図６では、テストシナリオ２０として、テストシナリオ１、テストシナリオ２、およびテストシナリオ３が読み込まれている。そして、各テストシナリオのデータの内容が、テストデータ情報３１に蓄積される。テストシナリオ１とテストシナリオ３では、「ｐａｓｓ」が重複しているが、テストデータ情報３１には、番号３の「ｐａｓｓ」のみが設定される。
テストデータ情報３１は、試験データを蓄積する試験データリポジトリとも呼ばれる。
【００４６】
ステップＳ１０３において、派生テスト装置１００が、画面構成情報３０を読み込む。画面構成情報３０は、記憶部１４０に記憶される。なお、派生テスト装置１００が画面構成情報３０を読み込むのは、派生シナリオ４０を生成する前であればいつでもよい。
【００４７】
図６を用いて、本実施の形態に係る画面構成情報３０の構成例について説明する。
画面構成情報３０は、画面要素に対する操作を定義した情報である。画面構成情報３０は、画面要素情報３０１と、使用可能キーワード情報３０２と、データ使用情報３０３を備える。
【００４８】
画面要素情報３０１は、テスト対象画面１０における画面要素１１と画面要素１１の種別とを対応付けた情報である。
図６では、「ユーザ名」および「パスワード」の画面要素１１の種別には、テキストを入力することが可能なテキストボックスが設定される。また、「ログイン」および「クリア」の画面要素１１の種別は、スキップ、クリック、あるいはダブルクリックが可能なボタンが設定される。
【００４９】
使用可能キーワード情報３０２は、画面要素１１の種別と、画面要素１１の種別に対して使用可能な操作を表すキーワードとを対応付けた情報である。
図６では、画面要素１１の種別であるテキストボックスには、使用可能な操作を表すキーワードとして、「スキップ」と「入力」が設定されている。また、画面要素１１の種別であるボタンには、使用可能な操作を表すキーワードとして、「スキップ」、「クリック」、および「ダブルクリック」が設定されている。
【００５０】
データ使用情報３０３は、画面要素１１に対する操作を表すキーワードと、キーワードにより表される操作についてのデータの使用とを対応付けた情報である。
図６では、「スキップ」に対してデータ使用なしが設定され、「入力」に対してデータ使用ありが設定され、「クリック」に対してデータ使用なしが設定され、「ダブルクリック」に対してデータ使用なしが設定されている。
【００５１】
これらの画面構成情報３０は、例えば、テスト対象画面１０の通常のテストに用いられるテストシナリオ２０が作成される際に生成される。よって、テストシナリオ２０を用いて派生シナリオと作成する際には、画面構成情報３０は、既に生成されている。
【００５２】
ステップＳ１０４において、派生シナリオ生成部１１０は、複数の派生シナリオ４０を生成するシナリオ設定処理を実行する。シナリオ設定処理は、図７に示すように、テストデータ情報３１と、画面構成情報３０と、テスト対象画面１０とを用いて、テスト対象画面１０において操作可能なシナリオを複数の派生シナリオ４０として生成する処理である。
【００５３】
＜シナリオ設定処理：ステップＳ１０４＞
ステップＳ４１において、派生シナリオ生成部１１０は、テスト対象画面１０から画面要素１１を抽出する。具体的には、テスト対象画面１０がＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ・Ｍａｒｋｕｐ・Ｌａｎｇｕａｇｅ）形式で構成されているのであれば、タグ情報を抽出することにより、画面要素であるオブジェクトとオブジェクトＩＤとを抽出する。具体的には、図７のテスト対象画面１０から、「ユーザ名」、「パスワード」、「ログイン」、および、「クリア」が抽出される。派生シナリオ生成部１１０は、これらの画面要素１１の名称をメモリ９２１上に記憶する。
【００５４】
次に、派生シナリオ生成部１１０は、画面要素情報３０１と使用可能キーワード情報３０２とデータ使用情報３０３とテストデータ情報３１とに基づいて、記憶された画面要素１１の各々に対して、使用可能なキーワードを設定するとともに、設定されたキーワードにデータが使用される場合はテストデータを設定する。
【００５５】
具体的には、図９に示すように、派生シナリオ生成部１１０は、「ユーザ名」、「パスワード」、「ログイン」、および、「クリア」の各々に対して、キーワード１２を設定し、該当のキーワード１２がデータ使用情報３０３にデータ使用すると指定されている場合は、テストデータ３１２を順次設定したレコードを生成する。ステップＳ４１では、全ての画面要素１１に対して、キーワード１２とデータ１３の組み合わせ候補を生成し、画面要素１１単位でのシナリオとして、メモリ９２１のメモリ領域に記憶する処理を繰り返す。画面要素１１単位でのシナリオを画面要素単位シナリオ４１とする。
【００５６】
ステップＳ４１の処理により、図９の例では、「ユーザ名」と「パスワード」とには６レコード、「ログイン」と「クリア」とには３レコードの画面要素単位シナリオ４１が生成されることになる。
【００５７】
ステップＳ４２において、派生シナリオ生成部１１０は、各画面要素における画面要素単位シナリオ４１から１レコードずつ選定して組み合わせることにより、派生元シナリオ４２を生成する。派生元シナリオ４２は、各画面要素における画面要素単位シナリオ４１のレコード数を乗算した数が生成される。
【００５８】
図１０に示す具体例では、派生シナリオ生成部１１０は、「ユーザ名」、「パスワード」、「ログイン」、「クリア」おける画面要素単位シナリオ４１を１レコードずつ選定し、組み合せを生成する。よって、各画面要素における画面要素単位シナリオ４１のレコード数を乗算した数、つまり、６×６×３×３＝３２４とおりの派生元シナリオ４２が生成される。なお派生元シナリオ４２は、まだテスト手順の情報を有していない。なお、図１０における組み合わせの線は、画面要素単位シナリオ４１の１レコード目と隣接する画面要素単位シナリオ４１のレコードとを組み合わせる線であり、組み合わせの一部のみを示している。
【００５９】
ステップＳ４３において、派生シナリオ生成部１１０は、派生元シナリオ４２に基づき、各々がテスト手順の情報を有する複数の派生シナリオ４０を生成する。派生シナリオ４０は、派生元シナリオ４２の最大値から１まで１ずつ減算した数を乗算した数が生成される。図１１に示すように、１つの派生元シナリオ４２からテスト手順の情報を有する複数の派生シナリオ４０が生成される。
【００６０】
図１１に示す具体例では、派生シナリオ生成部１１０は、「ユーザ名」、「パスワード」、「ログイン」、「クリア」の順序を全て網羅した複数の派生シナリオ４０を生成する。図１１に示す具体例では、１つの派生元シナリオ４２に対応して、４×３×２×１、つまり２４とおりの派生シナリオ４０が生成される。全体としては、３２４×２４、つまり７，７７６とおりの派生シナリオ４０が生成される。
【００６１】
なお、本実施の形態の方法によらず、操作可能な画面要素とキーワードとデータの組み合わせをすべて網羅するように複数の派生シナリオを生成することができれば、処理はどのような方法を採用してもよい。
【００６２】
＜派生テスト実行処理：ステップＳ１０５＞
ステップＳ１０５において、派生テスト実行部１２０は、複数の派生シナリオ４０を用いてテスト対象画面１０のテストを派生テストとして実行する。そして、派生テスト実行部１２０は、派生テストの実行により出力された実行結果画面と派生テストを行った派生シナリオと対応付けて実行結果情報５０として記憶部１４０に記憶する。
【００６３】
＜結果評価処理：ステップＳ１０６＞
ステップＳ１０６において、結果評価部１３０は、実行結果情報５０に含まれる実行結果画面を、実行結果に基づいて複数のグループに分類する。そして、結果評価部１３０は、複数のグループの各グループに分類された実行結果画面の数に基づいて、各グループに、当該グループに含まれる実行結果画面を確認する作業の優先順位を設定する。
【００６４】
図１２は、本実施の形態に係る結果評価部１３０による結果評価処理を示すフロー図である。
図１３は、本実施の形態に係る結果評価部１３０による実行結果画面の分類処理の具体例を示す模式図である。
図１４は、本実施の形態に係る結果評価部１３０による優先順位付与の具体例を示す模式図である。
【００６５】
ステップＳ６１において、結果評価部１３０は、実行結果情報５０に含まれる実行結果画面５０１を読み込む。図１３および図１４に示すように、各実行結果画面５０１は、派生テストに用いた派生シナリオに対応付けられている。
【００６６】
ステップＳ６２およびステップＳ６３において、結果評価部１３０は、実行結果画面５０１を分類する。具体的には、結果評価部１３０は、クラスタリングを用いて実行結果画面５０１を分類する。まず、結果評価部１３０は、クラスタ数を決定する（ステップＳ６２）。クラスタ数は、予めユーザにより設定されていてもよいし、実行結果画面５０１の数から自動的に算出される数でもよい。そして、結果評価部１３０は、クラスタリングを用いて実行結果画面５０１を分類する（ステップＳ６３）。例えば、学習なしの手法であれば、ｘ−ｍｅａｎｓ、あるいは、ｋ−ｍｅａｎｓといった手法を用いる。また、学習ありの手法であれば、ＳＶＭ（サポートベクタマシン）といった手法を用いる。ＳＶＭの場合は、手動で作成したテストシナリオ２０の結果を学習させて、分類のためのモデルを作成する。
【００６７】
図１３に示すように、結果評価部１３０は、例えば、画面遷移なし、エラー発生、および、ログイン完了の３つのグループに実行結果画面５０１を分類する。
【００６８】
また、結果評価部１３０は、各グループに分類された実行結果画面５０１の数に基づいて、各グループに確認作業の優先順位を設定してもよい。例えば、結果評価部１３０は、各グループに分類された実行結果画面５０１の数が少ない方から高い優先順位を設定する。これにより、確認作業に要する時間を削減することができる。あるいは、結果評価部１３０は、エラーが発生したグループのみについて、各グループに分類された実行結果画面５０１の数が少ない方から高い優先順位を設定するとしてもよい。これにより、確認作業に要する時間をより削減することができる。
【００６９】
ステップＳ６４において、結果評価部１３０は、実行結果分類５１を、出力インタフェース９４０を介して出力する。
図１４に示すように、結果評価部１３０は、各グループに分類した実行結果画面５０１および派生シナリオ４０と、各グループに付与された優先順位とを出力する。なお、優先順位に替えて、各グループに分類された派生シナリオ４０の数を出力してもよい。
【００７０】
＊＊＊他の構成＊＊＊
＜変形例１＞
本実施の形態の変形例として、派生シナリオ生成部１１０は、図５のステップＳ１０４の処理を終了し、複数の派生シナリオ４０が生成された後に、さらに派生シナリオ４０を生成してもよい。
具体的には、派生シナリオ生成部１１０は、生成した複数の派生シナリオのうち少なくとも１つの派生シナリオについて、画面要素１１の一部の操作を順次繰り返すことにより新たな派生シナリオを生成する。
例えば、図７の派生シナリオ１において、２行目を複数回繰り返す派生シナリオを新たに作成してもよい。さらに、その派生シナリオの操作順を変更することで新たな派生シナリオを作成することができる。
【００７１】
＜変形例２＞
本実施の形態では、派生シナリオ生成部１１０と派生テスト実行部１２０と結果評価部１３０の機能がソフトウェアで実現される。変形例として、派生シナリオ生成部１１０と派生テスト実行部１２０と結果評価部１３０の機能がハードウェアで実現されてもよい。
具体的には、派生テスト装置１００は、プロセッサ９１０に替えて電子回路９０９を備える。
【００７２】
図１５は、本実施の形態の変形例に係る派生テスト装置１００の構成を示す図である。
電子回路９０９は、派生シナリオ生成部１１０と派生テスト実行部１２０と結果評価部１３０の機能を実現する専用の電子回路である。電子回路９０９は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ、ＡＳＩＣ、または、ＦＰＧＡである。ＧＡは、Ｇａｔｅ  Ａｒｒａｙの略語である。ＡＳＩＣは、Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略語である。ＦＰＧＡは、Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略語である。
【００７３】
派生シナリオ生成部１１０と派生テスト実行部１２０と結果評価部１３０の機能は、１つの電子回路で実現されてもよいし、複数の電子回路に分散して実現されてもよい。
【００７４】
別の変形例として、派生シナリオ生成部１１０と派生テスト実行部１２０と結果評価部１３０の一部の機能が電子回路で実現され、残りの機能がソフトウェアで実現されてもよい。また、派生シナリオ生成部１１０と派生テスト実行部１２０と結果評価部１３０の一部またはすべての機能がファームウェアで実現されてもよい。
【００７５】
プロセッサと電子回路の各々は、プロセッシングサーキットリとも呼ばれる。つまり、派生シナリオ生成部１１０と派生テスト実行部１２０と結果評価部１３０の機能は、プロセッシングサーキットリにより実現される。
【００７６】
＊＊＊本実施の形態の効果の説明＊＊＊
以上のように、本実施の形態に係る派生テスト装置１００では、品質強化のために行われる派生テストに用いる派生シナリオを、大量に自動生成することができるので、ランダムな操作に相当する操作を実現することができる。
また、本実施の形態に係る派生テスト装置１００では、派生シナリオを、テスト手順がわかるように生成するので、エラー発生時の再現することで、予期していないテスト結果があった場合にトレースすることが可能となる。
【００７７】
本実施の形態に係る派生テスト装置１００による派生テストは、さらなる品質強化のために、バグが収束し始めた段階において、深夜帯または専用テスト環境といた状況で実施されることが想定される。つまりバグの収束のために行う通常のテストの後で、派生シナリオ４０を用いて実施されるのが派生テストとなる。
本実施の形態に係る派生テスト装置１００によれば、分類された実行結果画面および派生シナリオと、確認作業の優先順位とが出力されるので、試験担当者による確認作業に要する時間を削減することができる。例えば、分類された試験結果画面の少ないグループを優先的にチェックすることにより、まれに発生するケースのチェックを効率的に実施することができ、作業時間の削減につながる。
【００７８】
以上の実施の形態１では、派生テスト装置の各部を独立した機能ブロックとして説明した。しかし、派生テスト装置の構成は、上述した実施の形態のような構成でなくてもよい。派生テスト装置の機能ブロックは、上述した実施の形態で説明した機能を実現することができれば、どのような構成でもよい。また、派生テスト装置は、１つの装置でなく、複数の装置から構成されたシステムでもよい。
また、実施の形態１のうち、複数の部分を組み合わせて実施しても構わない。あるいは、この実施の形態のうち、１つの部分を実施しても構わない。その他、この実施の形態を、全体としてあるいは部分的に、どのように組み合わせて実施しても構わない。
すなわち、実施の形態１では、実施の形態の自由な組み合わせ、あるいは実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【００７９】
なお、上述した実施の形態は、本質的に好ましい例示であって、本開示の範囲、本開示の適用物の範囲、および本開示の用途の範囲を制限することを意図するものではない。上述した実施の形態は、必要に応じて種々の変更が可能である。
【符号の説明】
【００８０】
１０  テスト対象画面、１１  画面要素、１２  キーワード、１３  データ、２０  テストシナリオ、３０  画面構成情報、３１  テストデータ情報、４０  派生シナリオ、４１  画面要素単位シナリオ、４２  派生元シナリオ、５０  実行結果情報、５１  実行結果分類、１００  派生テスト装置、１１０  派生シナリオ生成部、１２０  派生テスト実行部、１３０  結果評価部、１４０  記憶部、３０１  画面要素情報、３０２  使用可能キーワード情報、３０３  データ使用情報、３１１  番号、３１２  テストデータ、５０１  実行結果画面、９０９  電子回路、９１０  プロセッサ、９２１  メモリ、９２２  補助記憶装置、９３０  入力インタフェース、９４０  出力インタフェース、９５０  通信装置。
【要約】
【課題】品質強化のための派生シナリオを、テスト手順がわかるように生成し、エラー発生時の再現を可能とすることを目的とする。
【解決手段】派生シナリオ生成部１１０は、テスト対象画面１０の画面要素と、画面要素に対応するキーワードと、必要なデータとから成るテストシナリオ２０と、画面構成情報３０と、テスト対象画面１０とを用いて、複数の派生シナリオ４０を生成する。派生シナリオ４０は、画面要素とキーワードとデータとから構成される。派生テスト実行部１２０は、複数の派生シナリオ４０を用いてテスト対象画面１０の派生テストを実行する。
【選択図】図１【図１】
0006916327.tif 000002
【図２】
0006916327.tif 000003
【図３】
0006916327.tif 000004
【図４】
0006916327.tif 000005
【図５】
0006916327.tif 000006
【図６】
0006916327.tif 000007
【図７】
0006916327.tif 000008
【図８】
0006916327.tif 000009
【図９】
0006916327.tif 000010
【図１０】
0006916327.tif 000011
【図１１】
0006916327.tif 000012
【図１２】
0006916327.tif 000013
【図１３】
0006916327.tif 000014
【図１４】
0006916327.tif 000015
【図１５】
0006916327.tif 000016