(57)【要約】      （修正有）【課題】ソフトウェアのテスト設計において、優先度付きのテストシナリオを生成する。【解決手段】優先度付きテストシナリオ生成装置１００において、ステップＤＢ１６０は、テスト設計者名とプロジェクト名を項目として含むステップが格納され、スキル値算出部１２０は、ステップＤＢに格納された各ステップのテスト設計者名及びプロジェクト名に基づいて、テスト設計者毎に、テスト設計者が設計したステップの数と、テスト設計者が関わったプロジェクトの数とを算出し、これらの数を用いて当該テスト設計者のスキル値を算出する。関連シナリオ生成部１３０は、基本シナリオを構成するステップと所定の項目が同一となるステップをステップＤＢから取得し、当該基本シナリオのステップを、ステップＤＢから取得したステップで置換して新たなテストシナリオを生成し、スキル値算出手段により算出されたスキル値に基づいて優先度を付与する。【選択図】図１
2017033158.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアのテスト設計において、優先度付きのテストシナリオを生成する優先度付きテストシナリオ生成装置であって、
テスト設計者名とプロジェクト名を項目として含むステップが格納されたステップDBと、
前記ステップDBに格納された各ステップのテスト設計者名及びプロジェクト名に基づいて、テスト設計者毎に、テスト設計者が設計したステップの数と、当該テスト設計者が関わったプロジェクトの数とを算出し、当該ステップの数と当該プロジェクトの数を用いて当該テスト設計者のスキル値を算出するスキル値算出手段と、
与えられた基本シナリオを構成するステップと所定の項目が同一となるステップを前記ステップDBから取得し、当該基本シナリオのステップを、前記ステップDBから取得したステップで置換して新たなテストシナリオを生成し、当該テストシナリオに対し、前記スキル値算出手段により算出されたスキル値に基づいて優先度を付与する関連シナリオ生成手段と
を備えることを特徴とする優先度付きテストシナリオ生成装置。
【請求項２】
前記スキル値算出手段は、前記ステップDBにおける全ステップ数に対する前記ステップの数の割合と、前記ステップDBにおける全プロジェクト数に対する前記プロジェクトの数の割合とを所定の重みを付けて加算することにより前記テスト設計者のスキル値を算出する
ことを特徴とする請求項１に記載の優先度付きテストシナリオ生成装置。
【請求項３】
前記関連シナリオ生成手段は、前記基本シナリオを構成するステップと所定の項目が同一となるステップとして、複数のステップを前記ステップDBから取得し、当該複数のステップをグループ分けし、前記テストシナリオの元となるグループにおけるテスト設計者のスキル値を合計することにより前記優先度を算出する
ことを特徴とする請求項１又は２に記載の優先度付きテストシナリオ生成装置。
【請求項４】
前記基本シナリオにおけるテスト設計者名とプロジェクト名を含むステップを前記ステップDBに格納する基本シナリオステップ記録手段
を備えることを特徴とする請求項１ないし３のうちいずれか１項に記載の優先度付きテストシナリオ生成装置。
【請求項５】
ソフトウェアのテスト設計において、優先度付きのテストシナリオを生成する優先度付きテストシナリオ生成装置が実行する優先度付きテストシナリオ生成方法であって
前記優先度付きテストシナリオ生成装置は、テスト設計者名とプロジェクト名を項目として含むステップが格納されたステップDBを備え、
前記ステップDBに格納された各ステップのテスト設計者名及びプロジェクト名に基づいて、テスト設計者毎に、テスト設計者が設計したステップの数と、当該テスト設計者が関わったプロジェクトの数とを算出し、当該ステップの数と当該プロジェクトの数を用いて当該テスト設計者のスキル値を算出するスキル値算出手順と、
与えられた基本シナリオを構成するステップと所定の項目が同一となるステップを前記ステップDBから取得し、当該基本シナリオのステップを、前記ステップDBから取得したステップで置換して新たなテストシナリオを生成し、当該テストシナリオに対し、前記スキル値算出手順により算出されたスキル値に基づいて優先度を付与する関連シナリオ生成手順と
を備えることを特徴とする優先度付きテストシナリオ生成方法。
【請求項６】
前記スキル値算出手順において、前記優先度付きテストシナリオ生成装置は、前記ステップDBにおける全ステップ数に対する前記ステップの数の割合と、前記ステップDBにおける全プロジェクト数に対する前記プロジェクトの数の割合とを所定の重みを付けて加算することにより前記テスト設計者のスキル値を算出する
ことを特徴とする請求項５に記載の優先度付きテストシナリオ生成方法。
【請求項７】
前記関連シナリオ生成手順において、前記優先度付きテストシナリオ生成装置は、前記基本シナリオを構成するステップと所定の項目が同一となるステップとして、複数のステップを前記ステップDBから取得し、当該複数のステップをグループ分けし、前記テストシナリオの元となるグループにおけるテスト設計者のスキル値を合計することにより前記優先度を算出する
ことを特徴とする請求項５又は６に記載の優先度付きテストシナリオ生成方法。
【請求項８】
コンピュータを、請求項１ないし４のうちいずれか１項に記載の優先度付きテストシナリオ生成装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Webアプリケーション等のソフトウェアのテスト設計において、テストシナリオを自動生成する技術に関連するものである。
【背景技術】
【０００２】
ソフトウェア開発の全体の工程の中でテスト工程の占める割合は高いが、従来から、テストは手動で行われるのが一般的である。そのため、漏れやミスが発生したり、大きなコストがかかるといった問題がある。このような問題に対し、テストを自動化する種々の取り組みがなされている。
【０００３】
例えば、ソフトウェアのテスト設計の段階において、ソフトウェア設計書情報に基づきテストシナリオを自動生成する従来技術がある。また、特許文献１には、テスト対象のソフトウェアとは別のソフトウェアにおけるテストシナリオに基づき、テスト対象のソフトウェアのテストシナリオのバリエーションを自動生成する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−２２３５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載された従来のテストシナリオ生成技術では、多くのテストシナリオが自動生成されるために、全てのテストシナリオを用いてテストを実施するとテスト実施に労力がかかるという問題がある。生成された多くのテストシナリオの中からテスト実施の対象とするテストシナリオを絞り込むことが望ましいが、生成されたテストシナリオに優先度が付されていないため、ユーザが一つ一つのテストシナリオの内容を見て、テストシナリオを絞り込む必要があり、それには多大な労力がかかるという問題がある。
【０００６】
本発明は上記の点に鑑みてなされたものであり、ソフトウェアのテスト設計において、優先度付きのテストシナリオを生成することを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の実施の形態によれば、ソフトウェアのテスト設計において、優先度付きのテストシナリオを生成する優先度付きテストシナリオ生成装置であって、
テスト設計者名とプロジェクト名を項目として含むステップが格納されたステップDBと、
前記ステップDBに格納された各ステップのテスト設計者名及びプロジェクト名に基づいて、テスト設計者毎に、テスト設計者が設計したステップの数と、当該テスト設計者が関わったプロジェクトの数とを算出し、当該ステップの数と当該プロジェクトの数を用いて当該テスト設計者のスキル値を算出するスキル値算出手段と、
与えられた基本シナリオを構成するステップと所定の項目が同一となるステップを前記ステップDBから取得し、当該基本シナリオのステップを、前記ステップDBから取得したステップで置換して新たなテストシナリオを生成し、当該テストシナリオに対し、前記スキル値算出手段により算出されたスキル値に基づいて優先度を付与する関連シナリオ生成手段と
を備えることを特徴とする優先度付きテストシナリオ生成装置が提供される。
【０００８】
また、本発明の実施の形態によれば、ソフトウェアのテスト設計において、優先度付きのテストシナリオを生成する優先度付きテストシナリオ生成装置が実行する優先度付きテストシナリオ生成方法であって
前記優先度付きテストシナリオ生成装置は、テスト設計者名とプロジェクト名を項目として含むステップが格納されたステップDBを備え、
前記ステップDBに格納された各ステップのテスト設計者名及びプロジェクト名に基づいて、テスト設計者毎に、テスト設計者が設計したステップの数と、当該テスト設計者が関わったプロジェクトの数とを算出し、当該ステップの数と当該プロジェクトの数を用いて当該テスト設計者のスキル値を算出するスキル値算出手順と、
与えられた基本シナリオを構成するステップと所定の項目が同一となるステップを前記ステップDBから取得し、当該基本シナリオのステップを、前記ステップDBから取得したステップで置換して新たなテストシナリオを生成し、当該テストシナリオに対し、前記スキル値算出手順により算出されたスキル値に基づいて優先度を付与する関連シナリオ生成手順と
を備えることを特徴とする優先度付きテストシナリオ生成方法が提供される。
【発明の効果】
【０００９】
本発明の実施の形態によれば、ソフトウェアのテスト設計において、優先度付きのテストシナリオを生成することが可能となる。
【００１０】
この優先度は、テスト設計者のスキル値に基づいて付与されており、スキル値が高いテスト設計者が作成したテストケースはバグ検出能力が高いため、この優先度に基づいて、ユーザが一つ一つのテストシナリオの内容を見る労力をかけることなく、バグ検出に効果的なテストシナリオを絞り込むことが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態における優先度付きテストシナリオ生成装置の構成図である。
【図２】本発明の実施の形態におけるステップDBの例である。
【図３】本発明の実施の形態における概要動作のフローチャートである。
【図４】関連シナリオ集合生成処理のフローチャートである。
【図５】基本シナリオと置換対象ステップの例である。
【図６】テスト設計者のスキル値を計算する処理のフローチャートである。
【図７】優先度を含む関連シナリオを生成する処理のフローチャートである。
【図８】関連シナリオの例を示す図である。
【図９】基本シナリオのステップを記録する処理のフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明の実施の形態を説明する。なお、以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
【００１３】
（装置構成、動作概要）
図１は、本発明の実施の形態における優先度付きテストシナリオ生成装置１００の構成図である。図１に示すように、本実施の形態に係る優先度付きテストシナリオ生成装置１００は、基本シナリオ入力部１１０、テスト設計者スキル値計算部１２０、関連シナリオ生成部１３０、基本シナリオステップ記録部１４０、関連シナリオ出力部１５０、ステップDB１６０を有する。
【００１４】
図１に示す例では、ユーザ端末１０と優先度付きテストシナリオ生成装置１００が別の装置（例：クライアント−サーバの構成）であることを想定し、ユーザ端末１０から優先度付きテストシナリオ生成装置１００に対して基本シナリオ集合を入力し、ユーザ端末１０に関連シナリオ集合グループを出力することとしているが、これは例であり、優先度付きテストシナリオ生成装置１００がユーザ端末（ＰＣ等）であってもよい。
【００１５】
本実施の形態におけるテストシナリオは複数のステップで構成されている。本実施の形態では、与えられたテストシナリオ（基本シナリオ）から、ステップDB１６０に格納された情報を用いて、優先度の付いた関連シナリオを生成し、出力することとしている。
【００１６】
なお、「基本シナリオ」は、例えば、正しく処理が行われるシナリオを指す。一例として、Webページ上での処理の流れを表わすシナリオを使用する場合に、「基本シナリオ」は例えば、ユーザIDとパスワードが正しく入力され、ログインが正しく行われるシナリオである。「関連シナリオ」とは、基本シナリオの中のある処理（あるステップ）を異常なものとしたシナリオを指す。例えば、「関連シナリオ」は、ユーザIDに対応しないパスワードが入力されログインが正しく行われないシナリオである。なお、これらは例であり、「基本シナリオ」として、ある処理を異常なものとしたシナリオを用いてもよい。
【００１７】
また、本実施の形態において自動生成される優先度付きの関連シナリオを、優先度付きのテストシナリオのバリエーションと呼んでもよい。
【００１８】
ステップDB１６０には、テスト対象のソフトウェアとは別のソフトウェアにおけるテスト設計で作成されたテストシナリオを構成していたステップが格納されている。図２に示すように、各ステップは複数の項目からなり、当該複数の項目は、各ステップに一意に付与されるステップId、プロセスタイプ、ステップタイプ、ステップ名、ステップ値、テスト設計者名、プロジェクト名を含む。なお、これらはステップを構成する項目の例であり、これら以外の項目を用いることとしてもよい。
【００１９】
本実施の形態に係る優先度付きテストシナリオ生成装置１００は、例えば、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、優先度付きテストシナリオ生成装置１００が有する機能は、当該コンピュータに内蔵されるＣＰＵやメモリなどのハードウェア資源を用いて、優先度付きテストシナリオ生成装置１００で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体（可搬メモリ等）に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
【００２０】
以下、上記の構成を備える優先度付きテストシナリオ生成装置１００の概要動作を図３のフローチャートを参照して説明する。詳細動作については、概要動作の後に順次説明する。
【００２１】
なお、各機能部の処理で作成／生成されたデータは、優先度付きテストシナリオ生成装置１００におけるメモリ（記憶手段）に格納され、他の機能部から適宜参照されて処理に用いられる。従って、以下の処理の説明では、既に入力／作成／生成されたデータやテーブルを利用する場合、それをメモリから読み出すこととしている。なお、このような処理形態は一例である。
【００２２】
ステップＳ１１０）基本シナリオ入力部１１０は、ユーザ端末１０から入力された基本シナリオ集合を読み込む。ここで入力される基本シナリオは、BNFで記述されており、以下の構造を有する。なお、以下の"<xxx>"は非終端記号であり、"xxx:yyy"は終端記号であり、xxxはyyy型であることを示す。
【００２３】
<基本シナリオ集合>::=<基本シナリオ>*
<基本シナリオ>::=基本シナリオId:Integer<シナリオ>
<シナリオ>::=<ステップ>＋プロセスタイプ：String
<ステップ>::=ステップId:Integer 
プロセスタイプ：String
ステップタイプ：String
ステップ名：String
ステップ値：String
テスト設計者名:String
プロジェクト名:String
ステップＳ１１２）テスト設計者スキル値計算部１２０は、テスト設計者毎のスキル値を計算し、テスト設計者スキル値テーブルを作成する。テスト設計者スキル値テーブルのデータ構造は下記のとおりである。
【００２４】
<テスト設計者スキル値テーブル> ::= <テスト設計者スキル値>+
<テスト設計者スキル値> ::= テスト設計者名:String スキル値:Double
ステップＳ１１２の詳細な処理については図６で詳述する。
【００２５】
ステップＳ１１５）関連シナリオ生成部１３０は、空の関連シナリオ集合グループを作成する。関連シナリオ集合グループのデータ構造は下記のとおりである。
【００２６】
<関連シナリオ集合グループ>::=<関連シナリオ集合>*
<関連シナリオ集合>::=生成元基本シナリオId: Integer<関連シナリオ>*
<関連シナリオ>::=関連シナリオId: Integer<シナリオ> 優先度:Double
以下のステップＳ１２０及びステップＳ１３０の処理は、入力された基本シナリオ集合の各基本シナリオに対して実行される。
【００２７】
ステップＳ１２０）関連シナリオ生成部１３０は、メモリから基本シナリオ、及びテスト設計者スキル値テーブルを読み出し、ステップDB１６０を参照して、基本シナリオから関連シナリオ集合を生成する。当該ステップＳ１２０の詳細な処理については図４等を参照して詳述する。
【００２８】
ステップＳ１３０）関連シナリオ生成部１３０は、メモリに格納されている関連シナリオ集合グループに、生成した関連シナリオ集合を追加する。
【００２９】
ステップＳ１４０）基本シナリオステップ記録部１４０は、メモリから各基本シナリオを読み出し、各基本シナリオのステップをステップDB１６０に記録する。当該処理の詳細は図９で詳述する。
【００３０】
ステップＳ１５０）関連シナリオ出力部１５０は、関連シナリオ集合グループをメモリから読み込んでユーザ端末１０に出力する。
【００３１】
出力された関連シナリオは、Webアプリケーション等のソフトウェアのテストに用いられる。
【００３２】
（関連シナリオ集合生成処理）
次に、図３のステップＳ１２０における関連シナリオ集合の生成処理を、図４のフローチャートを参照して詳細に説明する。
【００３３】
ステップＳ２１０）関連シナリオ生成部１３０は、メモリから基本シナリオを読み込む。
【００３４】
ステップＳ２１５）関連シナリオ生成部１３０は、メモリからテスト設計者スキル値テーブルを読み込む。
【００３５】
ステップＳ２２０）関連シナリオ生成部１３０は、基本シナリオから、空の置換ステップ候補集合を作成する。置換ステップ候補集合のデータ構造は下記のとおりである。
【００３６】
<置換ステップ候補集合> ::= <置換ステップ候補>+
<置換ステップ候補> ::= 置換対象ステップId:Integer 置換後ステップId:Integer
置換対象ステップIdは基本シナリオを構成するステップのIdである。また、置換後ステップIdはステップDB１６０から取り出したステップのIdである。
【００３７】
以下のステップＳ２３０とステップＳ２４０については、ステップＳ２１０で読み込んだ基本シナリオの各ステップに対して実行される。
【００３８】
ステップＳ２３０）関連シナリオ生成部１３０は、対象となる基本シナリオのステップに対して、ステップDB１６０から置換する候補となるステップを取り出す。具体的には、対象となる基本シナリオのステップと「プロセスタイプ、ステップタイプ、ステップ名」が一致するステップをステップDB１６０から全て抽出する。なお、「プロセスタイプ、ステップタイプ、ステップ名」が一致するステップを抽出することは一例である。これら以外の複数項目の組み合わせが一致するステップを抽出することとしてもよい。
【００３９】
図５は、置換する候補となるステップを抽出する例を示す。図５の例において、基本シナリオにおける「Input:Username」というステップは、プロセスタイプが"Registration"、ステップタイプが"Input"、ステップ名が"username"であるので、ステップDB１６０におけるステップ群（ステップId=001〜006）と一致する。従って、ステップDB１６０からId=001〜006のステップを抽出する。図５の例では、更に、基本シナリオにおける「Input:password」というステップに対して、ステップDB１６０からステップId=007〜010のステップを抽出し、基本シナリオにおける「Input:email」というステップに対して、ステップDB１６０からステップId=011〜012のステップを抽出することが示されている。
【００４０】
図４のステップＳ２４０の処理は、対象となる基本シナリオのステップに対してステップDB１６０から抽出された各ステップに対して実行する。
【００４１】
ステップＳ２４０）関連シナリオ生成部１３０は、ステップＳ２３０で取得したステップを、置換ステップ候補集合へ追加する。すなわち、置換ステップ候補を新たに生成し、当該置換ステップ候補の置換対象ステップIdには、対象となる基本シナリオのステップのIdを設定し、置換後のステップIdにはステップＳ２３０でステップDB１６０から抽出されたステップのIdを設定し、当該置換ステップ候補を置換ステップ候補集合に追加する。
【００４２】
図５の例では、例えば、基本シナリオにおけるId＝003のステップに関して、ステップDB１６０からId=011〜012のステップが取得されるので、置換ステップ候補として「置換対象ステップId, 置換後ステップId」＝「003, 011」及び「003, 012」が得られ、これらが置換ステップ候補集合に追加される。
【００４３】
ステップＳ２５０）関連シナリオ生成部１３０は、空の関連シナリオ集合を作成する。
【００４４】
次に、関連シナリオ生成部１３０は、以下のステップＳ２６０、Ｓ２７０、及びＳ２８０の処理を基本シナリオの各ステップに対して実行する。
【００４５】
ステップＳ２６０）関連シナリオ生成部１３０は、ステップＳ２４０までの処理で生成された置換ステップ候補集合から、対象となる基本シナリオのステップのIdと置換対象ステップのIdが一致する置換ステップ候補を全て取り出し、置換ステップ候補群とする。例えば、対象となる基本シナリオのステップのIdが003であるとすると、図５の例では、置換ステップ候補として、「置換対象ステップId, 置換後ステップId」＝「003, 011」及び「003, 012」が取得される。
【００４６】
ステップＳ２７０）関連シナリオ生成部１３０は、ステップＳ２６０で取得した置換ステップ候補群に基づき、優先度を含む関連シナリオを生成する。当該処理の詳細は図７で詳述する。
【００４７】
ステップＳ２８０）関連シナリオ生成部１３０は、対象となる基本シナリオのステップに対応する関連シナリオ群を関連シナリオ集合に追加する。
【００４８】
以下、上記のステップＳ２７０における優先度を含む関連シナリオの生成処理を詳細に説明するが、当該処理における優先度の計算ではテスト設計者のスキル値を使用するので、まず、テスト設計者のスキル値を計算する処理について説明する。
【００４９】
（テスト設計者のスキル値を計算する処理）
図３のステップＳ１１２におけるテスト設計者のスキル値を計算する処理を図６のフローチャートを参照して詳細に説明する。
【００５０】
ステップＳ３１０）テスト設計者スキル値計算部１２０は、空のテスト設計者スキル値テーブルを作成する。
【００５１】
ステップＳ３２０）テスト設計者スキル値計算部１２０は、ステップDB１６０から全てのステップを読み込む。
【００５２】
ステップＳ３３０）テスト設計者スキル値計算部１２０は、ステップDB１６０の全ステップ数を計算する。例えば図２の例では、全ステップ数=18となる。
【００５３】
ステップＳ３４０）テスト設計者スキル値計算部１２０は、ステップDB１６０の全プロジェクト数を計算する。すなわち、重複のないプロジェクト一覧を取得し、その数をカウントして全プロジェクト数とする。例えば図２の例では、全プロジェクト数=4となる。
【００５４】
ステップＳ３５０）テスト設計者スキル値計算部１２０は、ステップDB１６０の全ステップから重複のないテスト設計者一覧リストを作成する。例えば、テスト設計者が3つのステップにそれぞれSuzuki, Tanaka, Suzukiと登録されていた場合は、Suzuki,Tanakaという2名のテスト設計者リストを作成する。
【００５５】
以下のステップＳ３６０、Ｓ３７０の処理は各テスト設計者に対して行われる。
【００５６】
ステップＳ３６０）テスト設計者スキル値計算部１２０は、テスト設計者のスキル値を計算する。具体的には、対象とするテスト設計者名がXであるとすると、テスト設計者名がXであるステップをステップDB１６０から全て取得し、それらステップの数、及び、それらステップのプロジェクト名を重複なくカウントした数(Xが関わったプロジェクト数)を用いて、以下の計算式の計算を行うことでテスト設計者のスキル値を計算する。
【００５７】
計算式：スキル値=0.5*(テスト設計者名がXであるステップの数/全ステップ数)+0.5*( Xが関わったプロジェクト数/全プロジェクト数)
例えば、図２の例におけるSuzukiのスキル値は、0.5*(5/18)+0.5*(4/4)=0.64と計算される。なお、本実施の形態では、「テスト設計者名がXであるステップの数/全ステップ数」と「Xが関わったプロジェクト数/全プロジェクト数」のそれぞれに0.5の重みを付けて加算しているが、これは例であり、これ以外の重みを付けてもよい。
【００５８】
ステップＳ３７０）テスト設計者スキル値計算部１２０は、ステップＳ３６０で対象としたテスト設計者名と、そのスキル値をテスト設計者スキル値テーブルへ追加する。
【００５９】
上記のようにして、ステップDB１６０の情報に基づきスキル値を計算するので、より多くのステップを作成し、より多くのプロジェクトでテストを設計しているテスト設計者へより高いスキル値を付与することができる。
【００６０】
より多くのステップを作成(テストバリエーションを作成)しており、多くのプロジェクトへ参加しているテスト設計者が作成するテストはバグ検出能力が高いため、このスキル値に基づきテストシナリオへ優先度を付与することで、バグ検出能力の高いテストシナリオへ高い優先度を付けることができる。
【００６１】
（優先度を含む関連シナリオ生成処理）
次に、図４のステップＳ２７０における優先度を含む関連シナリオ生成処理について、図７のフローチャートを参照して詳細に説明する。
【００６２】
ステップＳ４１０）関連シナリオ生成部１３０は、メモリから、基本シナリオ、対象となる基本シナリオのステップ、及び、図４のステップＳ２６０で取得した置換ステップ候補群を読み込む。
【００６３】
ステップＳ４１５）関連シナリオ生成部１３０は、メモリからテスト設計者スキル値テーブルを読み込む。
【００６４】
ステップＳ４２０）関連シナリオ生成部１３０は、空の関連シナリオ群を作成する。
【００６５】
ステップＳ４３０）関連シナリオ生成部１３０は、置換ステップ候補群を、生成する関連シナリオ毎にグループ分けする。すなわち、関連シナリオ生成部１３０は、置換ステップ候補群の置換後ステップIdに対応するそれぞれのステップについて、ステップ値が同一であるステップをそれぞれ同じグループとしてまとめ1つの置換ステップ集合とする。
【００６６】
具体例を図８を参照して説明する。図８は、図５の例における「BasicId=001, Input:username」のステップを、ステップDB１６０から取り出したステップ（Id=001〜006）と置換することで３つの関連シナリオ(1),(2),(3)を生成する例を示している。
【００６７】
図８に示す例において、ステップＳ４３０の処理により、ステップDB１６０から取り出した６つのステップが、３つのステップ集合にグループ分けされている。例えば、置換後ステップId=001〜006のうち、Id=001〜004のステップ値が同一（too long）であるため、これらは１つの置換ステップ集合としてまとめられている。
【００６８】
以下のステップＳ４４０〜Ｓ４６０は、置換ステップ集合群における置換ステップ集合のそれぞれに対して実行される。
【００６９】
ステップＳ４４０）関連シナリオ生成部１３０は、テスト設計者スキル値テーブルに基づき、関連シナリオの優先度を計算する。すなわち、関連シナリオ生成部１３０は、置換ステップ集合からそれぞれのステップのテスト設計者名を重複なく取得し（これをT1,T2,…,Tnとおく）、Ti(1...n)のそれぞれのスキル値をテスト設計者スキル値テーブルから求め(S1, S2,…,Snとおく)、優先度をS1+S2+…+Snで計算する。
【００７０】
図８においては、例えば、Id=001〜004の置換ステップ集合において、テスト設計者名を重複なく取得すると、「Sato, Suzuki」が取得される。前述したスキル値計算処理により、全ステップ数=18、全プロジェクト数=4であり、Suzukiのスキル値は0.5*(5/18)+0.5*(4/4)=0.64として算出され、Satoのスキル値は0.5*(3/18)+0.5*(2/4)=0.33として算出されている。
【００７１】
従って、Id=001〜004の置換ステップ集合に対応する関連シナリオ(1)の優先度は、0.64(Suzukiのスキル値)+0.33(Satoのスキル値)=0.97として算出される。同様にして、関連シナリオ(2)の優先度は、0.64(Suzukiのスキル値)=0.64として算出される。
【００７２】
ステップＳ４５０）関連シナリオ生成部１３０は、優先度が付された関連シナリオを１つ作成する。具体的には、関連シナリオ生成部１３０は、基本シナリオを複製し、置換ステップ集合の置換対象ステップId、及び置換後ステップIdを元に、複製した基本シナリオのステップを置換することで、新たな関連シナリオを生成する。そして、関連シナリオの優先度として、ステップＳ４４０で算出した優先度を設定する。
【００７３】
例えば、ここでの処理が図８に示す関連シナリオ(1)に対応する置換ステップ集合（置換対象ステップId=001、置換後ステップId=001〜004）に対する処理であるとすると、関連シナリオ生成部１３０は、基本シナリオの複製におけるId=001のステップを、置換後ステップId=001〜004の共通値（Input, username, too long）からなるステップに置き換えることで関連シナリオ(1)を生成する。また、既に計算した優先度0.97が関連シナリオ(1)に付与される。
【００７４】
ステップＳ４６０）関連シナリオ生成部１３０は、ステップＳ４５０で生成した関連シナリオを関連シナリオ群へ追加する。
【００７５】
上記のように、ステップDB１６０の中で、「プロセスタイプ，ステップタイプ，ステップ名，ステップ値」が全て一致する複数のステップそれぞれの作成者であるテスト設計者のスキル値の総和をとることで優先度を算出し、この優先度の付与された 関連シナリオを自動的に作成する。すなわち、従来技術では生成することができなかった優先度付きテストシナリオを生成することが可能となっている。
【００７６】
（基本シナリオのステップを記録する処理）
次に、図３のステップＳ１４０における基本シナリオのステップを記録する処理を、図９のフローチャートを参照して詳細に説明する。
【００７７】
ステップＳ５１０）基本シナリオステップ記録部１４０は、メモリから基本シナリオ集合を読み込む。
【００７８】
以下のステップＳ５２０の処理は、基本シナリオ集合の各基本シナリオにおける各ステップに対して行われる。
【００７９】
ステップＳ５２０）基本シナリオステップ記録部１４０は、基本シナリオ集合の各基本シナリオの対象ステップをステップDB１６０へ新規に格納する。本実施の形態では、対象ステップのテスト設計者、プロジェクト名を含めて格納される。ここでは、対象ステップと同じステップがステップDB１６０に既に格納されている場合には、格納を行わず、対象ステップが、ステップDB１６０に存在しない場合に、当該対象ステップをステップDB１６０に格納する。
【００８０】
このように、基本シナリオステップ記録部１４０による処理を行うことにより、テスト設計者が作成したテストシナリオ（基本シナリオ）を構成する全てのステップは、ステップDB１６０へと蓄積される。これにより、基本シナリオにおけるテスト設計者及びプロジェクト名が付与された各ステップをステップDB１６０へ追加することができるので、テスト設計者のスキル値を計算することができる。また、関連シナリオ生成部１３０では、当該ステップDB１６０からステップを取り出し、優先度付きの関連シナリオを生成することが可能となる。
【００８１】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【００８２】
１０  ユーザ端末
１００  テストシナリオバリエーション生成装置
１１０  基本シナリオ入力部
１２０  テスト設計者スキル値計算部
１３０  関連シナリオ生成部
１４０  基本シナリオステップ記録部
１５０  関連シナリオ出力部
１６０  ステップＤＢ
【図１】
2017033158.tif 000003
【図２】
2017033158.tif 000004
【図３】
2017033158.tif 000005
【図４】
2017033158.tif 000006
【図５】
2017033158.tif 000007
【図６】
2017033158.tif 000008
【図７】
2017033158.tif 000009
【図８】
2017033158.tif 000010
【図９】
2017033158.tif 000011