(57)【特許請求の範囲】
【請求項１】
テスト対象のアプリケーションに関するユースケースシナリオを保持する記憶装置と、
前記ユースケースシナリオから画面表示に関する語彙を所定規則で特定し、当該特定した語彙に対応する画面オブジェクトを、当該ユースケースシナリオごとに所定アルゴリズムで特定し、各画面オブジェクトに関して予め規定されたテストパターンに基づいてテストシナリオを生成する演算装置と、
を備え、
前記演算装置は、
前記特定した画面オブジェクトを、当該ユースケースシナリオに対応する所定画面データに設定して画面モックアップを生成して、当該画面モックアップを所定の表示装置に出力し、ユーザによる画面オブジェクトへの入力内容を入力装置から取得して、当該入力内容を各画面オブジェクトに関するテストパターンとし、当該テストパターンに基づいて更なるテストシナリオを生成して、当該生成した更なるテストシナリオと前記テストシナリオとをマージしたテストシナリオを生成するものであり、
前記ユースケースシナリオにおいてユーザが行う各操作に対応したユースケースステップに関する情報を組み合わせて、当該ユースケースステップを記述したユースケースシナリオのテキストを生成し、前記画面モックアップに含まれる前記画面オブジェクトの直下に配置して表示する、
ことを特徴とするテストシナリオ生成支援装置。
【請求項２】
前記演算装置は、
前記テストシナリオの生成に際し、作成済みのテストシナリオとの間で、所定アルゴリズムに基づいて互いに類似するテストシナリオを特定し、当該類似するテストシナリオに関する情報を表示装置に出力する処理を更に実行するものである、
ことを特徴とする請求項１に記載のテストシナリオ生成支援装置。
【請求項３】
テスト対象のアプリケーションに関するユースケースシナリオを保持する記憶装置を備えた情報処理装置が、
前記ユースケースシナリオから画面表示に関する語彙を所定規則で特定し、当該特定した語彙に対応する画面オブジェクトを、当該ユースケースシナリオごとに所定アルゴリズムで特定し、各画面オブジェクトに関して予め規定されたテストパターンに基づいてテストシナリオを生成し、
前記特定した画面オブジェクトを、当該ユースケースシナリオに対応する所定画面データに設定して画面モックアップを生成して、当該画面モックアップを所定の表示装置に出力し、ユーザによる画面オブジェクトへの入力内容を入力装置から取得して、当該入力内容を各画面オブジェクトに関するテストパターンとし、当該テストパターンに基づいて更なるテストシナリオを生成して、当該生成した更なるテストシナリオと前記テストシナリオとをマージしたテストシナリオを生成し、
前記ユースケースシナリオにおいてユーザが行う各操作に対応したユースケースステップに関する情報を組み合わせて、当該ユースケースステップを記述したユースケースシナリオのテキストを生成し、前記画面モックアップに含まれる前記画面オブジェクトの直下に配置して表示する、
ことを特徴とするテストシナリオ生成支援方法。
【請求項４】
前記情報処理装置が、
前記テストシナリオの生成に際し、作成済みのテストシナリオとの間で、所定アルゴリズムに基づいて互いに類似するテストシナリオを特定し、当該類似するテストシナリオに関する情報を表示装置に出力する処理を更に実行する、
ことを特徴とする請求項３に記載のテストシナリオ生成支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テストシナリオ生成支援装置およびテストシナリオ生成支援方法に関するものであり、具体的には、過不足無いテストシナリオの効率的な生成を支援可能とする技術に関する。
【背景技術】
【０００２】
アプリケーション開発に際しては、顧客からの要望等を要件定義として纏め、この要件定義に基づき、ユーザの操作手順を表すユースケースシナリオの作成等を含め、必要となる機能の設計、詳細化を行い、その実装を行う。こうして開発されるアプリケーションは、その品質を確保すべくテストシナリオに基づくテスト工程が実施される。こうしたアプリケーション開発に伴う各種のシナリオ生成技術として、以下のような技術が従来から提案されている。
【０００３】
すなわち、コンピュータが、各業務ユースケース記述で定義された所定語句の、業務ユースケース記述間での連なりを検索して、業務ユースケース間の関連を特定し業務ユースケース間の関連付けを行い、当該関連付けに応じて業務ユースケースフローを生成する処理と、業務ユースケースフローに含まれる各業務ユースケースの上位にある業務機能を業務機能階層の情報により特定し、業務ユースケースフローにおいて異なる業務機能間を跨る業務ユースケースの連なりを特定して、当該連なりに応じた業務機能間を関連付けし業務フローを生成する処理と、生成した業務ユースケースフローないし業務フローを表示装置に表示する処理とを実行する技術（特許文献１参照）などが提案されている。
【０００４】
また、入力されたユーザとシステム間のインタラクションの流れを示すユースケース記述に基づいて実行経路を抽出し、実行経路記憶手段に格納する実行経路抽出手段と、前記ユースケース記述と、画面間の遷移を示す画面遷移図のマッチングを行い、該画面遷移図には存在するが該ユースケース記述には存在しない遷移がある場合は、該ユースケース記述が不完全であると判断するマッチング手段と、前記マッチング手段で前記ユースケース記述が不完全であると判断された場合に、該マッチング手段において画面遷移図から見つけたユースケース記述から欠落している遷移について新たな実行経路を生成し、前記実行経路記憶手段に格納する欠落補完手段と、前記実行経路記憶手段から実行経路を読み出して、該実行経路に対するテスト項目を生成するテスト項目生成手段と、を有するシナリオテストのテスト項目生成装置（特許文献２参照）なども提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−１８２４１０号公報
【特許文献２】特開２０１３−５８０７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来におけるテストシナリオ生成に際しては、生成担当者自身が設計や定義、或いは確認作業を逐一行うべき状況が多く発生する。そうした状況下では作業工数が増大しやすく、全体としてアプリケーションの開発効率も低下しがちとなる。また、例えば業務アプリケーションはその規模の大きさゆえに、テストシナリオ生成時にテスト事象の見落としや重複が発生し、生成するテストシナリオに過不足が生じるケースも懸念される。その場合、アプリケーション品質の低下を招く事態にもなる。
【０００７】
そこで本発明の目的は、過不足無いテストシナリオの効率的な生成を支援可能とする技術を提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決する本発明のテストシナリオ生成支援装置は、テスト対象のアプリケーションに関するユースケースシナリオを保持する記憶装置と、前記ユースケースシナリオから画面表示に関する語彙を所定規則で特定し、当該特定した語彙に対応する画面オブジェクトを、当該ユースケースシナリオごとに所定アルゴリズムで特定し、各画面オブジェクトに関して予め規定されたテストパターンに基づいてテストシナリオを生成する演算装置とを備え、前記演算装置は、前記特定した画面オブジェクトを、当該ユースケースシナリオに対応する所定画面データに設定して画面モックアップを生成して、当該画面モックアップを所定の表示装置に出力し、ユーザによる画面オブジェクトへの入力内容を入力装置から取得して、当該入力内容を各画面オブジェクトに関するテストパターンとし、当該テストパターンに基づいて更なるテストシナリオを生成して、当該生成した更なるテストシナリオと前記テストシナリオとをマージしたテストシナリオを生成するものであり、前記ユースケースシナリオにおいてユーザが行う各操作に対応したユースケースステップに関する情報を組み合わせて、当該ユースケースステップを記述したユースケースシナリオのテキストを生成し、前記画面モックアップに含まれる前記画面オブジェクトの直下に配置して表示することを特徴とする。
【０００９】
また本発明のテストシナリオ生成支援方法は、テスト対象のアプリケーションに関するユースケースシナリオを保持する記憶装置を備えた情報処理装置が、前記ユースケースシナリオから画面表示に関する語彙を所定規則で特定し、当該特定した語彙に対応する画面オブジェクトを、当該ユースケースシナリオごとに所定アルゴリズムで特定し、各画面オブジェクトに関して予め規定されたテストパターンに基づいてテストシナリオを生成し、前記特定した画面オブジェクトを、当該ユースケースシナリオに対応する所定画面データに設定して画面モックアップを生成して、当該画面モックアップを所定の表示装置に出力し、ユーザによる画面オブジェクトへの入力内容を入力装置から取得して、当該入力内容を各画面オブジェクトに関するテストパターンとし、当該テストパターンに基づいて更なるテストシナリオを生成して、当該生成した更なるテストシナリオと前記テストシナリオとをマージしたテストシナリオを生成し、前記ユースケースシナリオにおいてユーザが行う各操作に対応したユースケースステップに関する情報を組み合わせて、当該ユースケースステップを記述したユースケースシナリオのテキストを生成し、前記画面モックアップに含まれる前記画面オブジェクトの直下に配置して表示することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、過不足無いテストシナリオの効率的な生成を支援可能となる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態におけるテストシナリオ生成支援装置の構成例を示す図である。
【図２】本実施形態におけるテーブル関連図である。
【図３】本実施形態におけるユースケースシナリオ記述テーブルの構成例を示す図である。
【図４】本実施形態におけるオブジェクト属性テーブルの構成例を示す図である。
【図５】本実施形態におけるテストシナリオ生成支援方法のフロー例を示す図である。
【図６】本実施形態における画面データテーブルの構成例を示す図である。
【図７】本実施形態における画面オブジェクトデータテーブルの構成例を示す図である。
【図８】本実施形態におけるテストパターンテーブルの構成例を示す図である。
【図９】本実施形態におけるテストシナリオステップテーブル（テストパターンベース）の構成例１を示す図である。
【図１０】本実施形態におけるテストシナリオテーブル（テストパターンベース）の構成例１を示す図である。
【図１１】本実施形態におけるテストシナリオステップテーブル（ユースケースベース）の構成例２を示す図である。
【図１２】本実施形態におけるテストシナリオテーブル（ユースケースベース）の構成例２を示す図である。
【図１３】本実施形態における画面例１を示す図である。
【図１４】本実施形態における画面例２を示す図である。
【図１５】本実施形態における画面例３を示す図である。
【図１６】本実施形態における画面例４を示す図である。
【図１７】本実施形態におけるテストシナリオ例を示す図である。
【発明を実施するための形態】
【００１２】
−−−装置構成−−−
以下に本発明の実施形態について図面を用いて詳細に説明する。図１は、本実施形態に
おけるテストシナリオ生成支援装置１００の構成例を示す図である。図１に示すテストシナリオ生成支援装置１００は、過不足無いテストシナリオの効率的な生成を支援可能とするコンピュータ装置である。
【００１３】
こうしたテストシナリオ生成支援装置１００のハードウェア構成は以下の如くとなる。すなわちテストシナリオ生成支援装置１００は、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）やハードディスクドライブなど適宜な不揮発性記憶素子で構成される記憶装置１０１、ＲＡＭなど揮発性記憶素子で構成されるメモリ１０３、記憶装置１０１に保持されるプログラム１０２をメモリ１０３に読み出すなどして実行し装置自体の統括制御を行なうとともに各種判定、演算及び制御処理を行なうＣＰＵなどの演算装置１０４、ユーザからのキー入力や音声入力を受け付ける入力装置１０５、および、処理データの表示を行うディスプレイ等の表示装置１０６、を備える。
【００１４】
なお、記憶装置１０１内には、本実施形態のテストシナリオ生成支援装置１００として必要な機能を実装する為のプログラム１０２の他、テーブル類が少なくとも記憶されている。このテーブル類は、図２で関係性を例示するように、ユースケースシナリオ記述テーブル１１０、オブジェクト属性テーブル１１１、画面データテーブル１１２、画面オブジェクトデータテーブル１１３、テストパターンテーブル１１４、テストシナリオステップテーブル（テストパターンベース）１１５、テストシナリオテーブル（テストパターンベース）１１６、テストシナリオステップテーブル（ユースケースベース）１１７、および、テストシナリオテーブル（ユースケースベース）１１８、から構成される。また、各テーブルのレコードは、所定値をキーに所定のテーブル間で結びついた構成となっている。
【００１５】
上述のテーブル群が含むテーブルのうち、ユースケースシナリオ記述テーブル１１０の詳細を図３に示す。本実施形態におけるユースケースシナリオ記述テーブル１１０は、テスト対象のアプリケーションに関して、当該アプリケーションの設計担当者等が記述したユースケースシナリオを格納したテーブルである。
【００１６】
このユースケースシナリオ記述テーブル１１０は、ユースケースシナリオを一意に示すユースケースシナリオＮｏ．をキーとして、当該ユースケースシナリオにおいてユーザが行う各操作に対応したユースケースステップＮｏ．、当該ユースケースステップの動作主体を主に示す「名詞」、動作主体の動作内容を示す「動詞」、動作の直接的な対象を示す目的語「与格目的語」、動作により間接的に影響を受ける対象を示す「対格目的語」、その動作の実行条件を示す「条件」、その動作の実行後の遷移先となるユースケースステップを示す「遷移先ユースケースステップＮｏ．」といった各項目の値を対応付けたレコードの集合体となっている。
【００１７】
当該ユースケースシナリオ記述テーブル１１０の作成経緯としては種々想定出来るが、例えば、テストシナリオ生成支援装置１００が、上述した各項目についての入力欄を備えた適宜なインターフェイスを表示装置１０６に出力し、入力欄での入力値を入力装置１０５から取得する、といったケースを想定出来る。
【００１８】
或いは、テストシナリオ生成支援装置１００が、形態素解析プログラムなど適宜な自然言語解析プログラムを用いて、従来通りの形態で記述されたユースケースシナリオに対する解析処理を実行し、動詞が含まれる一文において、その主語を上述の「名詞」欄に、動詞を「動詞」欄に、といった処理を行って各レコードを構成するといったケースも想定出来る。いずれにしても、生成手法については限定しない。
【００１９】
図４は本実施形態におけるオブジェクト属性テーブル１１１の構成例を示す図である。本実施形態におけるオブジェクト属性テーブル１１１は、画面オブジェクトをユースケー
スシナリオから特定するためのルールを規定したテーブルである。当該オブジェクト属性テーブル１１１は、画面オブジェクトを一意に示すオブジェクトＮｏ．をキーに、そのオブジェクト名、ユースケースシナリオ中で特定すべき判定語、種別、といった値を対応付けたレコードの集合体となっている。
【００２０】
なお、上述のテーブル群を構成する他のテーブルについての具体例については、フロー等の説明に沿って後述するものとする。
【００２１】
−−−機能例−−−
続いて、本実施形態のテストシナリオ生成支援装置１００が備える機能について説明する。上述したように、以下に説明する機能は、例えばテストシナリオ生成支援装置１００が備えるプログラム１０２を実行することで実装される機能と言える。
【００２２】
本実施形態におけるテストシナリオ生成支援装置１００は、テスト対象のアプリケーションに関するユースケースシナリオであるユースケースシナリオ記述テーブル１１０を記憶装置１０１から読み出し、このユースケースシナリオ記述テーブル１１０から画面表示に関する語彙を、オブジェクト属性テーブル１１１で規定する所定規則で特定し、当該特定した語彙に対応する画面オブジェクトを、当該ユースケースシナリオごとに所定アルゴリズムで特定する機能を備えている。
【００２３】
また、テストシナリオ生成支援１００は、上述で特定した各画面オブジェクトに関し、テストパターンテーブル１１４で予め規定されたテストパターンに基づいてテストシナリオ（テストパターンベース）を生成し、これをテストシナリオテーブル１１６に格納し、表示装置１０６に出力する機能を備えている。
【００２４】
また、テストシナリオ生成支援装置１００は、上述のように特定した画面オブジェクトを、当該ユースケースシナリオに対応して予め記憶装置１０１で保持する所定画面データに設定することで画面モックアップを生成し、当該画面モックアップを表示装置１０６に出力する機能を備えている。
【００２５】
この場合、テストシナリオ生成支援装置１００は、上述のように表示装置１０６で表示した画面モックアップを介した、ユーザによる画面オブジェクトへの入力内容を入力装置１０５から取得し、当該入力内容を各画面オブジェクトに関するテストパターンとしてメモリ１０３に格納する機能を備えている。
【００２６】
また、テストシナリオ生成支援装置１００は、こうして画面モックアップを介して得た当該テストパターンに基づいて、更なるテストシナリオ（ユースケースベース）を生成し、当該生成した更なるテストシナリオ（ユースケースベース）と、既に得ている上述のテストシナリオ（テストパターンベース）とをマージし、最終的なテストシナリオを生成する機能を備えている。
【００２７】
また、テストシナリオ生成支援装置１００は、上述した各テストシナリオの生成に際し、それまでに作成済みでメモリ１０３ないしテストシナリオテーブル（テストパターンベース）１１５、テストシナリオテーブル（ユースケースベース）１１８に保持している各テストシナリオとの間で、例えば所定の画面オブジェクト（例：所定値の入力欄）での入力値の概念が共通するなど、所定アルゴリズムに基づいて互いに類似するテストシナリオを特定し、当該類似するテストシナリオに関する情報を表示装置１０６に出力する機能を備えている。
【００２８】
−−−フロー例−−−
以下、本実施形態におけるテストシナリオ生成支援方法の実際手順について図に基づき説明する。以下で説明するテストシナリオ生成支援方法に対応する各種動作は、テストシナリオ生成支援装置１００がメモリ等に読み出して実行するプログラムによって実現される。そして、このプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
【００２９】
図５は、本実施形態のテストシナリオ生成支援方法におけるフロー例を示す図である。この場合、テストシナリオ生成支援装置１００は、ユースケースシナリオ記述テーブル１１０およびオブジェクト属性テーブル１１１を記憶装置１０１からメモリ１０３に読み込んで、ユースケースシナリオからの画面オブジェクトの特定等の解析処理を実行することで、画面データテーブル１１２および画面オブジェクトデータテーブル１１３を生成する（ｓ１００）。
【００３０】
以下に当該ステップｓ１００での処理の詳細について説明する。なお、上述の画面データテーブル１１２は、ユースケースシナリオ記述テーブル１１０が示すユースケースシナリオで利用する画面の一覧を管理するテーブルである。
【００３１】
この画面データテーブル１１２の生成に際し、テストシナリオ生成支援装置１００は、
【００３２】
例えばユーザが入力装置１０５で指定してきたユースケースシナリオＮｏ．をキーに、ユースケースシナリオ記述テーブル１１０においてレコードを検索し、該当レコードのうち「対格目的語」欄の値を読み取る。また、テストシナリオ生成支援装置１００は、オブジェクト属性テーブル１１１において、「オブジェクト名」欄の値が「画面」であるレコードの判定語「画面」を読み取る。
【００３３】
テストシナリオ生成支援装置１００は、ユースケースシナリオ記述テーブル１１０で読み取った「対格目的語」の値と、オブジェクト属性テーブル１１１から得た判定語「画面」を照合し、「対格目的語」の語尾が「画面」で終了している場合、当該「対格目的語」の値は画面オブジェクトを示すものとして特定する。
【００３４】
テストシナリオ生成支援装置１００は、画面データテーブル１１２で適宜な番号付与ルールで画面Ｎｏ．を生成し、新たなレコードを生成する。また、テストシナリオ生成支援装置１００は、上述で特定した画面オブジェクトの名称、すなわち「対格目的語」の値を、当該レコードにおける「画面名」欄に設定する。
【００３５】
図３で示すユースケースシナリオ記述テーブル１１０の場合、ユースケースシナリオＮｏ．「ＵＣ００１」、ユースケースステップＮｏ．「ＵＳ００２」のレコードに関して、「対格目的語」が「名前登録画面」であり、その語尾が「画面」である。そのため当該「名前登録画面」を画面オブジェクトを示す画面名として、画面データテーブル１１２に設定出来ることとなる。
【００３６】
また、テストシナリオ生成支援装置１００は、上述のように「画面名」を特定、設定する際、ユースケースシナリオ記述テーブル１１０における該当レコードの「ユースケースシナリオＮｏ」を取得し、画面データテーブル１１２における該当レコードの「抽出元ユースケースシナリオＮｏ」欄に設定する。上述の例であれば、「ＵＣ００１」が設定されることとなる。
【００３７】
また、画面オブジェクトデータテーブル１１３の生成について説明する。画面オブジェクトデータテーブル１１３は、ユースケースシナリオで利用する各画面の画面オブジェクトを管理するテーブルである。
【００３８】
この場合、テストシナリオ生成支援装置１００は、上述のユースケースシナリオ記述テーブル１１０における「与格目的語」と「対格目的語」の値に関して判定を行い、その結果に応じて、画面オブジェクトデータテーブル１１３に生成したレコードの「オブジェクト名」に値を設定する。
【００３９】
例えば、ユースケースシナリオ記述テーブル１１０の各レコードを参照し、その「与格目的語」と「対格目的語」の両方の欄に値が設定されており、そのうち「与格目的語」の値が、オブジェクト属性テーブル１１１の「判定語」列のいずれかの値で終わっている場合、テストシナリオ生成支援装置１００は、画面オブジェクトデータテーブル１１３の該当レコードにおける「オブジェクト名」欄に「与格目的語」の値を設定する。
【００４０】
一方、ユースケースシナリオ記述テーブル１１０の各レコードを参照し、その「対格目的語」のみに値が設定されており、その値がオブジェクト属性テーブル１１１の「判定語」列のいずれかの値で終わっている場合、テストシナリオ生成支援装置１００は、画面オブジェクトデータテーブル１１３の該当レコードにおける「オブジェクト名」欄に、対格目的語」の値を設定する。
【００４１】
他方、ユースケースシナリオ記述テーブル１１０の各レコードを参照し、その「与格目的語」と「対格目的語」のどちらも値が設定されておらず、その場合の「名詞」欄の値が“選択条件”かつ「条件」欄の値が“続行”であった場合、テストシナリオ生成支援装置１００は、画面オブジェクトデータテーブル１１３の該当レコードにおける「オブジェクト名」欄に、“続行／中断ラジオボタン”を設定する。
【００４２】
また、ユースケースシナリオ記述テーブル１１０の各レコードを参照し、その「動詞」欄の値が“確認する”かつ、一つ上のレコードの「動詞」欄の値が“確認する”でない場合（「動詞」の値が“確認する”である複数ステップに伴う、重複動作を防止するための条件）、テストシナリオ生成支援装置１００は、画面オブジェクトデータテーブル１１３における「オブジェクト名」欄に“正常／異常ラジオボタン”を設定する。
【００４３】
続いてテストシナリオ生成支援装置１００は、ユースケースシナリオ記述テーブル１１０における「与格目的語」と「対格目的語」の値に関して判定を行い、その結果に応じて、画面オブジェクトデータテーブル１１３に生成したレコードの「オブジェクトＮｏ．」に値を設定する。
【００４４】
例えば、テストシナリオ生成支援装置１００は、ユースケースシナリオ記述テーブル１１０の各レコードを参照し、その「与格目的語」と「対格目的語」の両方の欄に値が設定されており、そのうち「与格目的語」の値が、オブジェクト属性テーブル１１１の「判定語」列のいずれかの値で終わっている場合、該当レコードの「オブジェクトＮｏ．」欄の値を、画面オブジェクトデータテーブル１１３の該当レコードにおける「オブジェクトＮｏ．」欄に設定する。
【００４５】
また、テストシナリオ生成支援装置１００は、ユースケースシナリオ記述テーブル１１０の各レコードを参照し、その「対格目的語」のみに値が設定されており、その値が、オブジェクト属性テーブル１１１における「判定語」列のいずれかの値で終わっている場合、該当レコードの「オブジェクトＮｏ．」欄の値を、画面オブジェクトデータテーブル１１３の該当レコードにおける「オブジェクトＮｏ．」欄に設定する。
【００４６】
他方、テストシナリオ生成支援装置１００は、ユースケースシナリオ記述テーブル１１０の各レコードを参照し、その「与格目的語」と「対格目的語」のどちらの欄にも値が設
定されておらず、その場合の「名詞」欄の値が“選択条件”かつ「条件」欄の値が“続行”であった場合、該当レコードの「オブジェクト名」が“ラジオボタン”に対応するオブジェクトＮｏ．の値を、画面オブジェクトデータテーブル１１３の該当レコードにおける「オブジェクトＮｏ．」欄に設定する。本実施形態の場合、“ＯＢ００３”が設定される。
【００４７】
また、テストシナリオ生成支援装置１００は、ユースケースシナリオ記述テーブル１１０の各レコードを参照し、その「名詞」欄の値が“ユーザ”かつ「動詞」欄の値が“確認する”であった場合、該当レコードの「オブジェクト名」が“ラジオボタン”に対応するオブジェクトＮｏ．の値を、画面オブジェクトデータテーブル１１３の該当レコードにおける「オブジェクトＮｏ．」欄に設定する。
【００４８】
続いてテストシナリオ生成支援装置１００は、画面オブジェクトデータテーブル１１３における「オブジェクト名」を、ユースケースシナリオ記述テーブル１１０の与格目的語欄などから抽出した場合、ユースケースシナリオ記述テーブル１１０における「対格目的語」の語尾が“画面”であり、かつ抽出元のレコード（上述の与格目的語欄の値を含むレコード：ユースケースシナリオ記述テーブル１１０のもの）より、ユースケースステップＮｏ．が早い段階を示すもの（例：ユースケースステップＮｏ．の末尾値がより小さい）であって、かつ、最も近いユースケースステップＮｏ．のレコードを特定し、当該レコードの「対格目的語」の値を「画面名」に持つレコードを画面データテーブル１１２で特定する。またテストシナリオ生成支援装置１００は、特定したレコードが示す「画面Ｎｏ．」の値を、画面オブジェクトデータテーブル１１３における該当レコードに設定する。
【００４９】
また、テストシナリオ生成支援装置１００は、オブジェクト属性テーブル１１１におけるレコードのうち、「オブジェクト名」の値が「ラジオボタン」であるものを特定し、その判定語「項目」をキーに、ユースケースシナリオ記述テーブル１１０における「与格目的語」欄の値を検索する。
【００５０】
ここで、ユースケースシナリオ記述テーブル１１０における「与格目的語」欄の値が、“性別項目”など、オブジェクト属性テーブル１１１における「判定語」欄の値“項目”に合致するもの、すなわち“ラジオボタン”相当のものを特定し、その「対格目的語」の値（本例ではユースケースシナリオ記述テーブル１１０の「ユースケースステップＮｏ．」が“ＵＳ００４”のレコードの“男性、女性”）を、画面オブジェクトデータテーブル１１３の属性値欄に設定する。
【００５１】
また、上述の処理に際し、ユースケースシナリオ記述テーブル１１０において、「与格目的語」と「対格目的語」のどちらの欄にも値が設定されておらず、その「名詞」欄の値が“選択条件”かつ「条件」欄の値が“続行”であった場合、テストシナリオ生成支援装置１００は、“続行、中断”の値を、画面オブジェクトデータテーブル１１３の属性値欄に設定する。
【００５２】
また、ユースケースシナリオ記述テーブル１１０における「動詞」欄の値が“確認する”かつ、一つ上のレコードの「動詞」欄の値が“確認する”以外の場合、テストシナリオ生成支援装置１００は、“正常、異常”の値を、画面オブジェクトデータテーブル１１３の属性値欄に設定する。
【００５３】
また、テストシナリオ生成支援装置１００は、画面オブジェクトデータテーブル１１３におけるレコードの「オブジェクトＮｏ．」の値が、オブジェクト属性テーブル１１１の「オブジェクト名」欄の示す“テキストフィールド”に対応（本例では“ＯＢ００２”）する場合、画面オブジェクトデータテーブル１１３の初期値欄に“（空行）”を設定する
。
【００５４】
一方、画面オブジェクトデータテーブル１１３におけるレコードの「オブジェクトＮｏ．」の値が、オブジェクト属性テーブル１１１の「オブジェクト名」欄の示す“ラジオボタン”に対応（本例では“ＯＢ００３”）する場合、画面オブジェクトデータテーブル１１３の初期値欄に、当該画面オブジェクトデータテーブル１１３の当該レコードにおける「属性値」欄の値のうち先頭の値（本例では“ＧＯ００２”における“男性”）を設定する。
【００５５】
他方、画面オブジェクトデータテーブル１１３におけるレコードの「オブジェクトＮｏ．」の値が、上記いずれの場合にも該当しない場合、テストシナリオ生成支援装置１００は、“−”（初期値無し）を、画面オブジェクトデータテーブル１１３の初期値欄に設定する。
【００５６】
次に、テストシナリオ生成支援装置１００は、テストパターンに基づくテストシナリオの生成処理を実行する（ｓ１０１）。この場合、テストシナリオ生成支援装置１００は、テストシナリオステップテーブル１１５（テストパターンベーステストシナリオ生成後）の生成をまず実行する。
【００５７】
なお、テストシナリオ生成支援装置１００は、テストパターンテーブル１１４（図８）を記憶装置１０１に予め備えている。このテストパターンテーブル１１４は、テスト実施時の定型的な入力値をオブジェクト毎に規定したテーブルである。図８の例では、テストパターンを一意に示すテストパターンＮｏ．をキーとして、当該テストパターンで入力値等の属性が変化しうる画面オブジェクトを示す、オブジェクトＮｏ．と、その値のバリエーションを網羅する属性値、の各値が対応付けたレコードの集合体となっている。
【００５８】
テストシナリオ生成支援装置１００は、テストシナリオステップテーブル１１５の生成に際し、画面オブジェクトデータテーブル１１３の各レコードについて、「属性値」に値が設定されている場合はその全値を、テストシナリオステップテーブル１１５の「条件値」欄の候補値と特定する。
【００５９】
また、テストシナリオ生成支援装置１００は、画面オブジェクトデータテーブル１１３の各レコードにおける「オブジェクトＮｏ．」の値をキーに、テストパターンテーブル１１４で検索を行い、該当レコードの「属性値」を上述同様に候補値と特定する。
【００６０】
テストシナリオ生成支援装置１００は、こうして得た候補値を網羅的に全て組み合わせ、テストシナリオ全パターンを生成して、テストシナリオステップテーブル１１５に設定する。
【００６１】
テストシナリオステップテーブル１１５の構成は、図９で例示するとおりである。この場合、テストシナリオを一意に示すテストシナリオＮｏ．をキーに、当該テストシナリオ内でのステップを一意に示すテストシナリオステップＮｏ．、テスト対象のユースケースを一意に示すユースケースＮｏ、そこで使用される画面オブジェクトを一意に示す画面オブジェクトＮｏ、および当該画面オブジェクトで入力等される条件値の各値を対応付けたレコードの集合体となっている。
【００６２】
こうしたテストシナリオステップテーブル１１５のうち、例えば「ユースケースＮｏ．」欄の値は、テストシナリオ生成支援装置１００が、画面オブジェクトデータテーブル１１３における「画面Ｎｏ．」の値を、画面データテーブル１１２における「画面Ｎｏ．」欄に関して検索し、該当したレコードが示す「抽出元ユースケースシナリオＮｏ」の値を
設定する。
【００６３】
また、「画面オブジェクトＮｏ．」欄の値は、テストシナリオ生成支援装置１００が、画面オブジェクトデータテーブル１１３における「画面オブジェクトＮｏ．」欄の値を設定する。なお、各テストシナリオの最後に追加するレコードの場合、“−”を設定する。
【００６４】
また、「条件値」欄の値については、以下の処理で設定がなされる。すなわちテストシナリオ生成支援装置１００は、画面オブジェクトデータテーブル１１３における「属性値」欄の値が“−”の場合、テストシナリオステップテーブル１１５の「テストシナリオＮｏ．」のレコード毎に、「画面オブジェクトＮｏ．」を、テストパターンテーブル１１４における「オブジェクトＮｏ．」の値で検索し、対応した「属性値」の値を取得する。テストシナリオ生成支援装置１００は、テストシナリオ全体で、各テストシナリオステップＮｏ．に対応付けて入力する各条件値の組み合わせが網羅的になるように条件値を設定する。
【００６５】
また、画面オブジェクトデータテーブル１１３における「属性値」欄の値が“−”以外の場合、テストシナリオ生成支援装置１００は、いずれかの値を設定する（組み合わせが網羅的になるように設定する）。
【００６６】
続いてテストシナリオ生成支援装置１００は、テストシナリオテーブル（テストパターンベース）１１６（図１０）を生成する。この場合、テストシナリオ生成支援装置１００は、テストシナリオステップテーブル１１５にてテストシナリオを生成する毎に、テストシナリオテーブル１１６で１レコード生成する。
【００６７】
次にテストシナリオ生成支援装置１００は、テストシナリオステップテーブル１１５でテストシナリオを生成した際の「ユースケースＮｏ．」欄の値を、テストシナリオテーブル１１６の該当レコードにおける「ユースケースシナリオＮｏ」欄に設定する。
【００６８】
また、テストシナリオ生成支援装置１００は、テストシナリオステップテーブル１１５でテストシナリオを生成した際の「テストシナリオＮｏ．」欄の値を、テストシナリオテーブル１１６の該当レコードにおける「テストシナリオＮｏ．」欄に設定する。また、テストシナリオ生成支援装置１００は、テストシナリオテーブル１１６の該当レコードにおける「テスト分類」欄には“−”を設定し、同様に、「類似テストシナリオＮｏ．」欄に“−”を設定する。
【００６９】
テストシナリオ生成支援装置１００は、上述のようにユースケースシナリオから画面オブジェクトを特定したことに続き、当該ユースケースシナリオに対応する所定画面データに対応する各画面オブジェクトを設定して画面モックアップを生成する（ｓ１０２）。
【００７０】
この場合のテストシナリオ生成支援装置１００は、画面オブジェクトデータテーブル１１３における「画面Ｎｏ」が共通する各画面オブジェクト（オブジェクトＮｏ．に対応する所定のオブジェクトデータで、記憶装置１０１で予め保持）を、記憶装置１０１に予め保持する所定の画面フォーマットデータにセットして、画面モックアップを生成することとなる。
【００７１】
この時、テストシナリオ生成支援装置１００は、ユースケースシナリオ記述テーブル１１０における該当ユースケースステップの情報（名詞、動詞、与格目的語、対格目的語等の各値）を組み合わせて、ユースケースステップを記述したユースケースシナリオのテキストを生成し、各画面オブジェクトの直下に配置する。このことで利用者の画面入力を支援できる。また、テストシナリオ生成支援装置１００は、ラジオボタンなどの選択式の画
面オブジェクトに対しては、作成済みのテストシナリオを解析して各選択肢が選択された回数を表示する。このことで、選択の漏れや偏りを防止する。
【００７２】
上述した画面オブジェクトデータテーブル１１３等を備える場合、テストシナリオ生成支援装置１００が生成する画面モックアップとしては、図１３のテスト値登録画面５００、図１４のテスト値登録画面（名前欄履歴表示時）５１０、図１５の遷移先選択画面５２０、図１６の期待値登録画面５３０等を想定出来る。
【００７３】
なお、図１４で示すテスト値登録画面（名前欄履歴表示時）５１０は、表示させる画面オブジェクトが“テキストフィールド”（オブジェクト属性テーブル１１１で規定）に対応する場合に、入力済みの値（作成済みのテストシナリオを解析するなどして得る）を当該画面オブジェクトに表示させている。この構成により、ユーザは重複した入力及び入力漏れを回避しやすくなる。
【００７４】
また、図１５で示す遷移先選択画面５２０は、“続行／中断ラジオボタン”など処理を分岐させる画面オブジェクトを配置して構成したものである。また、図１６で示す期待値登録画面５３０は、“正常／異常ラジオボタン”などテストシナリオの期待値を入力する画面オブジェクトを元に作成する画面である。
【００７５】
ここで図５のフローの説明に戻る。テストシナリオ生成支援装置１００は、上述のように生成した画面モックアップを表示装置１０６に出力し、各画面オブジェクトに対するユーザ操作の値を入力装置１０５から取得する（ｓ１０３）。テストシナリオ生成支援装置１００は、ここで得た値を、テストシナリオステップテーブル（ユースケースベース）１１７における「条件値」欄の値としてメモリ１０３に保持する。
【００７６】
テストシナリオ生成支援装置１００は、図１１に示すテストシナリオステップテーブル（ユースケースベース）１１７を、テストシナリオステップテーブル（テストパターンベース）１１５と同様の方針で生成するが、上述のように、テストパターンテーブル１１４から属性値を得てこれを「条件値」欄に設定するのではなく、画面モックアップでユーザが操作した入力値を設定する点が異なっている。その他、テストシナリオステップテーブル（ユースケースベース）１１７と、テストシナリオステップテーブル（テストパターンベース）１１５の構成は同様である。こうした画面モックアップを介した値の取得と、テストシナリオステップテーブル（ユースケースベース）１１７のレコード生成の処理は、必要回数（例：画面モックアップの数）だけ繰り返し実行される。
【００７７】
これを受けたテストシナリオ生成支援装置１００は、画面モックアップからの値に基づき生成したテストシナリオステップテーブル（ユースケースベース）１１７により、図１２に例示するテストシナリオテーブル（ユースケースベース）を生成する（ｓ１０４）。
【００７８】
この場合、テストシナリオ生成支援装置１００は、上述の画面モックアップからの入力を受けてテストシナリオを生成するたびに、テストシナリオテーブル（ユースケースベース）１１８においてレコードを設定する。
【００７９】
この時、テストシナリオ生成支援装置１００は、「ユースケースシナリオＮｏ．」欄に、テストシナリオステップテーブル１１７でレコードを生成した際の、その「ユースケースＮｏ．」の値を設定する。また、テストシナリオ生成支援装置１００は、「テストシナリオＮｏ．」欄に、テストシナリオステップテーブル（ユースケースベース）１１７でレコードを生成した際の「テストシナリオＮｏ．」の値を“ＵＴＳ”＋３桁の連番（“００１”〜）を設定する。
【００８０】
また、テストシナリオ生成支援装置１００は、「テスト分類」欄に、画面オブジェクトデータテーブル１１３における“正常／異常ラジオボタン”に対して入力した値が「正常」の場合「正常系」、「異常」の場合「異常系」を設定する。
【００８１】
また、テストシナリオ生成支援装置１００は、テストシナリオステップテーブル（ユースケースベース）１１７でレコード、すなわちテストシナリオを生成した際に、テストシナリオステップテーブル（テストパターンベース）１１５、及びテストシナリオステップテーブル（ユースケースベース）１１７で生成済みのテストシナリオを照合して、例えばユーザ毎に設定する類似テストシナリオの条件を満たすテストシナリオがあった場合、時系列的に後で入力したテストシナリオに関して、その「類似テストシナリオＮｏ」欄に、時系列的に先のテストシナリオの「テストシナリオＮｏ．」を設定する。
【００８２】
例えば、ユーザが類似テストシナリオの条件として「名前欄に入力した値が全て全角文字であり、かつ他の入力が全て等しいこと」と設定した場合を想定する。この時、テストシナリオ生成支援装置１００は、テストシナリオステップテーブル（ユースケースベース）１１７のテストシナリオにおいて“ＵＴＳ００１”と“ＵＴＳ００２”を照合して、それぞれのテストシナリオステップＮｏが“ＵＳＳ０１”以外は全て等しい。また異なっている“ＵＳＳ０１”について、“ＵＴＳ００１”は「テスト名壱」、“ＵＴＳ００２”は「テスト名弐」であり共に全角文字である。
【００８３】
そのためテストシナリオ生成支援装置１００は、ユーザが設定した類似テストシナリオの条件を満たしていると判定し、“ＵＴＳ００１”と“ＵＴＳ００２”は類似テストシナリオであると判定する。その場合、テストシナリオ生成支援装置１００は、時系列が後で入力した“ＵＴＳ００２”の「類似テストシナリオＮｏ．」欄に「ＵＴＳ００１」を設定する。
【００８４】
最後にテストシナリオ生成支援装置１００は、上述のようにして得たテストシナリオステップテーブル（テストパターンベース）１１５（図９）と、テストシナリオステップテーブル（ユースケースベース）１１７（図１１）とをマージするなどして、図１７に例示するテストシナリオを最終的に生成し、これを表示装置１０６に出力する（ｓ１０５）。
本実施形態におけるテストシナリオ５４０は、図１７で例示するように、テストシナリオステップごとに、画面オブジェクトとその条件値のバリエーションを、テストシナリオごとの有無（図中の例では“○”が有）と、正常か異常かの区分、類似シナリオ、の各値と対応付けた構成となる。
【００８５】
以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【００８６】
こうした本実施形態によれば、過不足無いテストシナリオの効率的な生成を支援可能となる。
【００８７】
本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、本実施形態におけるテストシナリオ生成支援装置において、前記演算装置は、前記特定した画面オブジェクトを、当該ユースケースシナリオに対応する所定画面データに設定して画面モックアップを生成して、当該画面モックアップを所定の表示装置に出力し、ユーザによる画面オブジェクトへの入力内容を入力装置から取得して、当該入力内容を各画面オブジェクトに関するテストパターンとし、当該テストパターンに基づいて更なるテストシナリオを生成して、当該生成した更なるテストシナリオと前記テストシナリオとをマージしたテストシナリオを生成するものである、としてもよい。
【００８８】
これによれば、画面モックアップに対するユーザ操作からテストシナリオを自動生成し、テストシナリオ作成に要する工数を削減することが可能となる。また、上述のマージをテストシナリオ同士で行うこともあり、テストシナリオの漏れ防止を効果的に図って、ひいては、更に過不足無いテストシナリオの効率的な生成が可能となる。
【００８９】
本実施形態のテストシナリオ生成支援装置において、前記演算装置は、前記テストシナリオの生成に際し、作成済みのテストシナリオとの間で、所定アルゴリズムに基づいて互いに類似するテストシナリオを特定し、当該類似するテストシナリオに関する情報を表示装置に出力する処理を更に実行するものである、としてもよい。
【００９０】
これによれば、作成済みのテストシナリオ間で類似するものを検出し、テストシナリオの重複を効果的に防止出来る。ひいては、過不足無いテストシナリオの更に効率的な生成が可能となる。
【００９１】
本実施形態のテストシナリオ生成支援方法において、前記情報処理装置が、前記特定した画面オブジェクトを、当該ユースケースシナリオに対応する所定画面データに設定して画面モックアップを生成して、当該画面モックアップを所定の表示装置に出力し、ユーザによる画面オブジェクトへの入力内容を入力装置から取得して、当該入力内容を各画面オブジェクトに関するテストパターンとし、当該テストパターンに基づいて更なるテストシナリオを生成して、当該生成した更なるテストシナリオと前記テストシナリオとをマージしたテストシナリオを生成する、としてもよい。
【００９２】
本実施形態のテストシナリオ生成支援方法において、前記情報処理装置が、前記テストシナリオの生成に際し、作成済みのテストシナリオとの間で、所定アルゴリズムに基づいて互いに類似するテストシナリオを特定し、当該類似するテストシナリオに関する情報を表示装置に出力する処理を更に実行する、としてもよい。
【符号の説明】
【００９３】
１００  テストシナリオ生成支援装置
１０１  記憶装置
１０２  プログラム
１０３  メモリ
１０４  演算装置
１０５  入力装置
１０６  表示装置
１１０  ユースケースシナリオ記述テーブル
１１１  オブジェクト属性テーブル
１１２  画面データテーブル
１１３  画面オブジェクトデータテーブル
１１４  テストパターンテーブル
１１５  テストシナリオステップテーブル（テストパターンベース）
１１６  テストシナリオテーブル（テストパターンベース）
１１７  テストシナリオステップテーブル（ユースケースベース）
１１８  テストシナリオテーブル（ユースケースベース）
【図１】
0006542612.tif 000002
【図２】
0006542612.tif 000003
【図３】
0006542612.tif 000004
【図４】
0006542612.tif 000005
【図５】
0006542612.tif 000006
【図６】
0006542612.tif 000007
【図７】
0006542612.tif 000008
【図８】
0006542612.tif 000009
【図９】
0006542612.tif 000010
【図１０】
0006542612.tif 000011
【図１１】
0006542612.tif 000012
【図１２】
0006542612.tif 000013
【図１３】
0006542612.tif 000014
【図１４】
0006542612.tif 000015
【図１５】
0006542612.tif 000016
【図１６】
0006542612.tif 000017
【図１７】
0006542612.tif 000018