(57)【要約】【課題】対象プログラムに対する試験の数が増えた場合でも、時間および労力をかけることなく、低コストで試験の構築および維持が可能な試験管理装置を提供する。【解決手段】対象プログラム１１に対する処理を記述したシナリオ要素をシナリオ要素保持手段１４で保持し、シナリオ要素の実行順序を記述した試験シナリオを試験シナリオ管理手段１３で管理する。試験シナリオ管理手段１３では、試験シナリオにおけるシナリオ要素の先頭からの出現順序に基づいて試験シナリオを管理する。この試験シナリオに基づいて試験実行手段１２で対象プログラム１１に対する試験を実行し、そのときに出力され、出力保持手段１５に保持された出力データを、正解保持手段１７に保持されている正解データと結果判定手段１６で比較して一致するか否かを判定する。このとき、複数の試験シナリオ間で共通するシナリオ要素に対しては、同じ正解データを用いる。【選択図】図１
2011123780.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアに対する試験を管理する試験管理装置であって、
前記ソフトウェアを構成するプログラムのうち、試験の対象となる対象プログラムに対する処理を記述したシナリオ要素を保持するシナリオ要素保持手段と、
前記シナリオ要素保持手段によって保持される前記シナリオ要素の実行順序を記述した試験シナリオを、前記試験シナリオにおける前記シナリオ要素の先頭からの出現順序に基づいて管理する試験シナリオ管理手段と、
前記試験シナリオ管理手段によって管理される前記試験シナリオに基づいて前記対象プログラムを制御することによって、前記対象プログラムに対する試験を実行する試験実行手段と、
前記試験実行手段によって前記試験が実行されたときに前記対象プログラムが出力する出力データを保持する出力保持手段と、
前記対象プログラムが、予め定める仕様に合致する動作を行ったときに出力するべきデータとして予め定められる正解データを含む正解情報を、前記シナリオ要素毎に保持する正解保持手段と、
前記出力保持手段によって保持される前記出力データと、前記正解保持手段によって保持される前記正解情報に含まれる前記正解データとを比較し、前記出力データと前記正解データとが一致しているか否かを判定する結果判定手段とを備え、
前記試験シナリオ管理手段によって複数の試験シナリオが管理され、前記複数の試験シナリオが共通のシナリオ要素を含み、かつ前記共通のシナリオ要素の出現順序が一致するとき、
前記結果判定手段は、前記共通のシナリオ要素の各シナリオ要素に対応する前記正解データとして、同じ正解データを用いることを特徴とする試験管理装置。
【請求項２】
前記試験シナリオ管理手段は、
前記共通のシナリオ要素を含み、かつ前記共通のシナリオ要素の出現順序が一致する前記複数の試験シナリオを管理するとき、前記共通のシナリオ要素を前記複数の試験シナリオに共有させて管理することを特徴とする請求項１に記載の試験管理装置。
【請求項３】
前記試験シナリオ管理手段は、
前記シナリオ要素に、そのシナリオ要素の前記出現順序を特定可能な位置番号を付加して前記試験シナリオを管理し、前記共通のシナリオ要素には、同じ位置番号を付加することを特徴とする請求項２に記載の試験管理装置。
【請求項４】
前記正解情報は、前記正解データを、他の正解情報に含まれる他の正解データと区別するための正解データ識別子を含み、
前記正解データ識別子は、その正解データ識別子が含まれる正解情報に対応するシナリオ要素の前記位置番号で与えられることを特徴とする請求項３に記載の試験管理装置。
【請求項５】
前記シナリオ要素は、他のシナリオ要素と区別するためのシナリオ要素識別子を含み、
前記試験シナリオは、前記シナリオ要素識別子が、そのシナリオ要素識別子を含むシナリオ要素の実行順序に従って記述されて構成され、
前記試験シナリオ管理手段は、
前記試験実行手段から前記試験シナリオを要求されると、前記試験シナリオに含まれる前記シナリオ要素識別子を含む前記シナリオ要素を前記シナリオ要素保持手段から取出し、取出した前記シナリオ要素を前記実行順序に従って連結するとともに、取出した前記シナリオ要素のシナリオ要素識別子を前記位置番号に置換して前記試験シナリオを作成し、作成した前記試験シナリオを前記試験実行手段に与えることを特徴とする請求項３または４に記載の試験管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの開発において、対象となるソフトウェアの試験を管理する試験管理装置に関し、より詳細には、対象となるソフトウェアに与える命令について記述した試験シナリオに基づいて試験を管理する試験管理装置に関する。
【背景技術】
【０００２】
短い納期で高品質なソフトウェアを開発するためには、ソフトウェアに対する試験を確実かつ効率的に実施できる環境が必要である。ソフトウェアに対する試験を効率的に実施するための装置が、たとえば特許文献１，２に開示されている。
【０００３】
特許文献１に開示されるソフトウェアのシステムテスト装置では、テストシナリオ実行手段によって、テストシナリオの内容を基にシステムテストを実行するとともに、実行結果照合手段によって、システムテストの実行結果が仕様に合致するかどうかの合否判定を行うことによって、ソフトウェアの試験を自動化している。実行結果照合手段は、システムテストの実行結果と、予め定義した個別状態仕様情報に記載されている値とを照合することによって、合否判定を行う。
【０００４】
また特許文献２に開示されるソフトウェアテスト装置では、試験シナリオに記録されているテスト項目に関するテストをテスト手段によって行い、そのテスト結果をオペレータに提示して、テスト結果に対する合否の入力を促し、判定結果をテスト結果受付手段で受付け、テスト結果集計手段で集計する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平９−２２３０４２号公報
【特許文献２】特開２００２−３５８２１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に開示されるソフトウェア自動試験装置では、実施する試験毎に、対応する個別状態仕様情報を正解データとして予め作成しておく必要がある。したがって、ソフトウェアを構成するプログラムのうち、試験の対象となる対象プログラムに対する試験の数が増加するほど、正解データの作成に多くの時間および労力が必要となり、コストが高くなるという問題がある。
【０００７】
特許文献２に開示されるソフトウェアテスト装置では、個々の試験シナリオが独立に管理されているので、試験実行後に行われる仕様に合致するか否かの合否判定は、全ての試験シナリオに対して行う必要がある。たとえば、対象プログラムに対する操作として、全く同一の内容が複数の試験シナリオ内に存在していても、別々に合否を判定する必要があるので、１つの試験シナリオにおける合否判定に使用される正解データを、別の試験シナリオにおける合否判定に利用することはできない。したがって、試験シナリオ毎に正解データを作成する必要があるので、正解データの作成に時間および労力がかかり、コストが高くなる。
【０００８】
このように特許文献１，２に開示される技術では、試験対象のソフトウェアが仕様に合致しているか否かの合否判定に使用する正解データの作成に時間および労力がかかり、コストが高くなるので、低コストでソフトウェアに対する試験を構築し、維持することが難しいという問題がある。
【０００９】
本発明の目的は、対象プログラムに対する試験の数が増えた場合でも、時間および労力をかけることなく、低コストで試験の構築および維持が可能な試験管理装置を提供することである。
【課題を解決するための手段】
【００１０】
本発明の試験管理装置は、ソフトウェアに対する試験を管理する試験管理装置であって、前記ソフトウェアを構成するプログラムのうち、試験の対象となる対象プログラムに対する処理を記述したシナリオ要素を保持するシナリオ要素保持手段と、前記シナリオ要素保持手段によって保持される前記シナリオ要素の実行順序を記述した試験シナリオを、前記試験シナリオにおける前記シナリオ要素の先頭からの出現順序に基づいて管理する試験シナリオ管理手段と、前記試験シナリオ管理手段によって管理される前記試験シナリオに基づいて前記対象プログラムを制御することによって、前記対象プログラムに対する試験を実行する試験実行手段と、前記試験実行手段によって前記試験が実行されたときに前記対象プログラムが出力する出力データを保持する出力保持手段と、前記対象プログラムが、予め定める仕様に合致する動作を行ったときに出力するべきデータとして予め定められる正解データを含む正解情報を、前記シナリオ要素毎に保持する正解保持手段と、前記出力保持手段によって保持される前記出力データと、前記正解保持手段によって保持される前記正解情報に含まれる前記正解データとを比較し、前記出力データと前記正解データとが一致しているか否かを判定する結果判定手段とを備え、前記試験シナリオ管理手段によって複数の試験シナリオが管理され、前記複数の試験シナリオが共通のシナリオ要素を含み、かつ前記共通のシナリオ要素の出現順序が一致するとき、前記結果判定手段は、前記共通のシナリオ要素の各シナリオ要素に対応する前記正解データとして、同じ正解データを用いることを特徴とする。
【発明の効果】
【００１１】
本発明の試験管理装置によれば、シナリオ要素保持手段によってシナリオ要素が保持され、このシナリオ要素の実行順序を記述した試験シナリオが試験シナリオ管理手段によって管理される。この試験シナリオに基づいて試験実行手段によって対象プログラムが制御されることによって、対象プログラムに対する試験が実行される。この試験によって対象プログラムから出力され、出力保持手段によって保持される出力データと、正解保持手段によって保持される正解情報の正解データとが結果判定手段によって比較され、出力データと正解データとが一致しているか否かが判定される。
【００１２】
試験シナリオ管理手段は、試験シナリオにおけるシナリオ要素の先頭からの出現順序に基づいて試験シナリオを管理する。この試験シナリオ管理手段によって複数の試験シナリオが管理され、この複数の試験シナリオが共通のシナリオ要素を含み、かつ共通のシナリオ要素の出現順序が一致するとき、結果判定手段は、共通のシナリオ要素の各シナリオ要素に対応する正解データとして同じ正解データを用いて、出力データとの比較を行う。これによって、複数の試験シナリオ間で共通のシナリオ要素に対しては、正解保持手段で別個に正解データを保持しておく必要がないので、正解保持手段によって保持しておくべき正解データの数を削減することができる。したがって、正解データの作成数および作成に要する作業時間を低減することができるので、対象プログラムに対する試験の数が増えた場合でも、時間および労力をかけることなく、低コストでソフトウェア試験の構築および維持を実現することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１の実施の形態である試験管理装置１０の構成の一例を示すブロック図である。
【図２】試験シナリオ管理手段１３によって保持される試験シナリオの一例を示す図である。
【図３】試験シナリオ管理手段１３によって保持されるシナリオ構成情報の一例を示す図である。
【図４】シナリオ要素保持手段１４によって保持されるシナリオ要素の一例を示す図である。
【図５】試験シナリオ管理手段１３で作成され、試験実行手段１２に与えられる試験シナリオＭの一例を示す図である。
【図６】正解保持手段１７によって保持される正解データの一例を示す図である。
【図７】対象プログラム１１の一例を模式的に示す図である。
【図８】第１の試験における試験シナリオ６０を示す図である。
【図９】試験シナリオ管理手段１３が保持する第１試験シナリオ６０のシナリオ構成情報６０Ａの内容を示す図である。
【図１０】試験シナリオ管理手段１３から試験実行手段１２に与えられる第１試験シナリオ６０を示す図である。
【図１１】結果判定手段１６による第１の試験における検証に用いられる正解データの一例を示す図である。
【図１２】第２の試験における試験シナリオ８０を示す図である。
【図１３】試験シナリオ管理手段１３が保持する第２試験シナリオ８０のシナリオ構成情報８０Ａの内容を示す図である。
【図１４】試験シナリオ管理手段１３から試験実行手段１２に与えられる第２試験シナリオ８０を示す図である。
【図１５】第２の試験における検証に用いられる正解データの一例を示す図である。
【図１６】シナリオ構成情報の作成処理の手順を示すフローチャートである。
【図１７】図１６に示すフローチャートの処理によって作成されるシナリオ構成情報１２０の一例を示す図である。
【図１８】図１７に示すシナリオ構成情報１２０を用いて作成された第２試験シナリオ１１０を示す図である。
【図１９】第１の試験および第２の試験に必要な正解データの一例を示す図である。
【図２０】試験シナリオ管理手段１３の管理対象となる試験シナリオ１３Ａ〜１３Ｃを示す図である。
【図２１】試験シナリオ管理手段１３が保持するシナリオ構成情報１４０を示す図である。
【図２２】図２１に示すシナリオ構成情報１４０の各節に付加された節番号を示す図である。
【図２３】図２０に示す試験シナリオ１３Ａ〜１３Ｃを一つずつシナリオ構成情報１４０に登録する処理の手順を示すフローチャートである。
【図２４】図２０に示す試験シナリオ１３Ａ〜１３Ｃを一つずつシナリオ構成情報１４０に登録する処理の手順を示すフローチャートである。
【図２５】図２０に示す試験シナリオ１３Ａ〜１３Ｃを一つずつシナリオ構成情報１４０に登録する処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１４】
＜第１の実施の形態＞
図１は、本発明の第１の実施の形態である試験管理装置１０の構成の一例を示すブロック図である。試験管理装置１０は、試験実行手段１２、試験シナリオ管理手段１３、シナリオ要素保持手段１４、出力保持手段１５、結果判定手段１６および正解保持手段１７を備えて構成される。試験管理装置１０は、ソフトウェアに対する試験（以下、単に「試験」という場合がある）を管理する。ソフトウェアは、１つまたは複数のプログラムによって構成される。試験管理装置１０は、ソフトウェアを構成するプログラムのうち、試験の対象となるプログラムである対象プログラム１１に対する処理を記述したシナリオ要素を含む試験シナリオに基づいて試験を実行する。試験シナリオは、試験シナリオ管理手段１３によって保持される。
【００１５】
対象プログラム１１に対する試験が実行されるとき、試験シナリオ管理手段１３に保持されている試験シナリオのうち、対象プログラム１１の試験を行う試験シナリオが、試験実行手段１２からの要求によって取出される。試験実行手段１２は、取出された試験シナリオの内容に従って対象プログラム１１を制御する。これによって、対象プログラム１１が動作する。対象プログラム１１は、プログラム内部の動作に対応した情報を出力する。以下、対象プログラム１１が出力する情報を、出力データという場合がある。本実施の形態における対象プログラム１１は、操作が行われる前の状態が同じであれば、同じ操作を加えた後の動作は、全く同一になるものとする。
【００１６】
試験シナリオは、１つまたは複数のシナリオ要素によって構成される。試験シナリオには、実行する順にシナリオ要素が記述される。対象プログラム１１に対する処理は、シナリオ要素単位で実行される。
【００１７】
シナリオ要素は、対象プログラム１１に対して行う操作の記述（以下「操作記述」という場合がある）、および対象プログラム１１に対して行う検証の記述（以下「検証記述」という場合がある）を含む。検証は、対象プログラム１１からの出力データの取得、出力保持手段１５への出力データの格納、および正解保持手段１７の保持する正解データと出力データとの比較による結果判定手段１６での成功判定を含む。
【００１８】
個々のシナリオ要素には、他のシナリオ要素と区別するための識別子であるシナリオ要素識別子（以下、単に「識別子」という場合がある）が付されている。たとえば、他のシナリオ要素と区別するためのシナリオ要素識別子を「Ｎ」と記述し、対象プログラム１１に含まれる関数の実行命令を「操作」と記述し、対象プログラム１１に対する検証を「検証」と記述するように定義した場合、「操作」および「検証」の２つの制御を順番に実行するシナリオ要素は、以下のように記述できる。ここで、「操作」の記述は、操作記述に該当し、「検証」の記述は、検証記述に該当する。
【００１９】
Ｎ
操作
検証
【００２０】
シナリオ要素は、シナリオ要素保持手段１４によって保持される。試験シナリオ管理手段１３は、対象プログラム１１の試験を行う試験シナリオと、試験シナリオに含まれるシナリオ要素の実行順序を表すシナリオ構成情報とを保持している。試験シナリオ管理手段１３によって保持される試験シナリオは、シナリオ要素の実行順序を記述したものであり、その試験シナリオに含まれるべきシナリオ要素のシナリオ要素識別子が、そのシナリオ要素識別子を含むシナリオ要素の実行順序に従って記述されて構成される。
【００２１】
試験シナリオ管理手段１３は、試験シナリオを、その試験シナリオにおけるシナリオ要素の先頭からの出現順序に基づいて管理する。前述のように、試験シナリオ管理手段１３によって保持されるシナリオ構成情報は、シナリオ要素の実行順序を表し、試験シナリオ管理手段１３によって保持される試験シナリオは、シナリオ要素の実行順序を記述したものであるので、試験シナリオにおけるシナリオ要素の先頭からの出現順序は、シナリオ構成情報から求めることができる。
【００２２】
試験実行手段１２から試験シナリオが要求されると、試験シナリオ管理手段１３は、シナリオ構成情報に基づいて、要求された試験シナリオに含まれるシナリオ要素を特定し、特定したシナリオ要素をシナリオ要素保持手段１４から取出す。試験シナリオ管理手段１３は、取出したシナリオ要素を、シナリオ構成情報に基づいて、シナリオ要素の実行順序に従って連結して試験シナリオを作成し、作成した試験シナリオを試験実行手段１２に与える。このとき、試験シナリオを構成するシナリオ要素の識別子には、そのシナリオ要素のシナリオ構成情報における位置を表す番号である位置番号が割当てられ、置換される。試験シナリオ管理手段１３で作成された試験シナリオは、シナリオ要素の識別子が位置番号に置換された状態で、試験実行手段１２に与えられる。
【００２３】
試験実行手段１２は、試験シナリオ管理手段１３から与えられた試験シナリオに基づいて、対象プログラム１１を制御することによって、対象プログラム１１に対する試験を実行する。これによって、対象プログラム１１は、プログラム内部の動作に応じた情報を出力データとして出力する。対象プログラム１１から出力された出力データは、試験実行手段１２を介して出力保持手段１５に与えられる。
【００２４】
出力保持手段１５は、試験実行手段１２から与えられる対象プログラム１１の出力データを保持する。出力保持手段１５は、不図示のメモリを含んで構成され、試験実行手段１２から与えられる対象プログラム１１の出力データを、そのまま、またはファイルとして、不図示のメモリに保持する。
【００２５】
正解保持手段１７は、結果判定手段１６で行う検証に用いる正解データを含む正解情報を保持する。正解保持手段１７は、正解情報をシナリオ要素毎に保持する。換言すれば、正解保持手段１７は、各シナリオ要素に対応する正解情報を保持する。ここで、「正解データ」とは、シナリオ要素の操作記述に従って対象プログラム１１を処理したときに、対象プログラム１１が、予め定める仕様に合致する動作を行った場合に出力するべきデータとして予め定められるデータを記述したものである。
【００２６】
正解データには、他の正解データと識別するための識別子である正解データ識別子が付されている。正解データと正解データ識別子とを合わせて、前述の正解情報という。正解情報は、正解データと正解データ識別子とを含む。たとえば、他の正解データと区別するための正解データ識別子を「Ａ」と記述し、正解データの内容を「正解」と記述するように定義した場合、正解データは、以下のように記述できる。
【００２７】
Ａ
正解
【００２８】
結果判定手段１６は、出力保持手段１５によって保持される出力データと、正解保持手段１７によって保持される正解データとを比較し、出力データと正解データとが一致しているか否かを判定する。これによって結果判定手段１６は、検証を行い、その検証が成功か失敗か、すなわち対象プログラム１１が、仕様に合致する出力データの出力に成功したか失敗したかを判定する成功判定を行う。このとき、試験実行手段１２は、実行している試験シナリオの操作記述に対応するシナリオ要素識別子と等しい正解データ識別子が付された正解データを正解保持手段１７から読出して結果判定手段１６に与える。結果判定手段１６は、試験実行手段１２から与えられた正解データと、出力保持手段１５が保持する出力データとの比較を行い、正解データと出力データとが一致していれば検証成功と判定し、一致していなければ検証失敗と判定する。
【００２９】
結果判定手段１６で行った検証の結果、すなわち検証成功か、検証失敗かの判定結果は、不図示の結果通知部に与えられる。結果通知部は、検証の結果を試験者に通知する。結果通知部は、たとえば、コンピュータのモニタ、または電子メールを送信する送信部などによって実現される。結果通知部がコンピュータのモニタによって実現される場合、たとえばモニタ画面に検証結果を表示することによって、検証結果が試験者に通知される。また結果通知部が送信部によって実現される場合、たとえば検証結果を記述した電子メールを試験者に宛てて送信することによって、検証結果が試験者に通知される。
【００３０】
図２は、試験シナリオ管理手段１３によって保持される試験シナリオの一例を示す図である。図３は、試験シナリオ管理手段１３によって保持されるシナリオ構成情報の一例を示す図である。図４は、シナリオ要素保持手段１４によって保持されるシナリオ要素の一例を示す図である。
【００３１】
図２に示すように、試験シナリオ管理手段１３で管理される対象の試験シナリオＭは、対象プログラム１１を操作するための複数のシナリオ要素を備えて構成される。試験シナリオは、その試験シナリオＭを構成するシナリオ要素を特定するために、そのシナリオ要素の識別子が実行順に記述されて構成される。たとえば、図２に示す試験シナリオＭは、３つのシナリオ要素から構成されており、これらのシナリオ要素に含まれる３つの識別子ｍ１〜ｍ３が、そのシナリオ要素の実行順序に従って記述されて構成される。以下、図２に示す３つのシナリオ要素をその識別子ｍ１〜ｍ３で区別し、第１シナリオ要素ｍ１、第２シナリオ要素ｍ２および第３シナリオ要素ｍ３という場合がある。
【００３２】
図３に示すように、試験シナリオ管理手段１３に、試験シナリオＭとともに保持されるシナリオ構成情報Ｎは、各試験シナリオＭを構成するシナリオ要素とその実行順序とが特定できるように、シナリオ要素の識別子を用いて表される。たとえば、図２に示す試験シナリオＭが保持される場合のシナリオ構成情報Ｎは、「ｍ１」−「ｍ２」−「ｍ３」と記述される。以下では、シナリオ構成情報における各シナリオ要素の位置を「節」という。図３に示す例では、「ｍ１」、「ｍ２」および「ｍ３」の位置が、それぞれ節である。
【００３３】
シナリオ構成情報は、試験シナリオと、その試験シナリオを構成するシナリオ要素の実行順序とが特定できるように、節に、その節を表す番号（以下「節番号」という場合がある）を付して管理される。節番号は、位置番号に相当する。本実施の形態では、節番号は、試験シナリオ名とシナリオ要素の識別子とを用いて表される。たとえば図３に示す例では、試験シナリオＭにおける節「ｍ１」の節番号を「Ｍ＿ｍ１」と表し、節「ｍ２」の節番号を「Ｍ＿ｍ１−Ｍ＿ｍ２」と表し、節「ｍ３」の節番号を「Ｍ＿ｍ１−Ｍ＿ｍ２−Ｍ＿ｍ３」と表す。
【００３４】
図２に示す試験シナリオＭが試験シナリオ管理手段１３によって保持される場合、シナリオ要素保持手段１４は、図４に示すように、図２に示す試験シナリオＭに必要なシナリオ要素、すなわち第１シナリオ要素ｍ１〜第３シナリオ要素ｍ３を保持する。各シナリオ要素ｍ１〜ｍ３は、たとえば図４に示すように、識別子と操作記述と検証記述とで記述される。
【００３５】
試験シナリオ管理手段１３は、図２に示すように識別子で記述された試験シナリオＭを保持している状態で、試験実行手段１２から試験シナリオＭが要求されると、保持しているシナリオ構成情報Ｎから、試験シナリオＭを構成するシナリオ要素を読取る。図２〜図４に示す例では、試験シナリオ管理手段１３は、試験シナリオＭを構成するシナリオ要素が、第１シナリオ要素ｍ１、第２シナリオ要素ｍ２および第３シナリオ要素ｍ３であることを読取る。続いて試験シナリオ管理手段１３は、読取ったシナリオ要素をシナリオ要素保持手段１４から取出す。図２〜図４に示す例では、試験シナリオ管理手段１３は、シナリオ要素保持手段１４から、第１シナリオ要素ｍ１、第２シナリオ要素ｍ２および第３シナリオ要素ｍ３を取出す。
【００３６】
次いで、試験シナリオ管理手段１３は、取出したシナリオ要素、図２〜図４に示す例では第１〜第３シナリオ要素ｍ１〜ｍ３を、シナリオ構成情報Ｎを元に連結して、試験シナリオＭを作成する。図２〜図４に示す例では、試験シナリオＭのシナリオ構成情報Ｎは「ｍ１−ｍ２−ｍ３」となっているので、試験シナリオ管理手段１３は、第１シナリオ要素ｍ１に続けて第２シナリオ要素ｍ２を連結し、さらに第３シナリオ要素ｍ３を連結することで、試験シナリオＭを作成する。このとき、試験シナリオ管理手段１３は、シナリオ要素の識別子の記述を、そのシナリオ要素のシナリオ構成情報における位置を表す節番号に書換える。たとえば第３シナリオ要素ｍ３の識別子「ｍ３」は、シナリオ構成情報Ｎの節「ｍ３」における節番号「Ｍ＿ｍ１−Ｍ＿ｍ２−Ｍ＿ｍ３」に書換えられる。
【００３７】
図５は、試験シナリオ管理手段１３で作成され、試験実行手段１２に与えられる試験シナリオＭの一例を示す図である。図５に示すように、試験シナリオ管理手段１３から試験実行手段１２に与えられる試験シナリオＭは、識別子が節番号に書換えられたシナリオ要素３Ａ〜３Ｃで記述される。図５において、参照符３Ａで表されるシナリオ要素は、第１シナリオ要素ｍ１の識別子が、その節番号「Ｍ＿ｍ１」に書換えられたものであり、参照符３Ｂで表されるシナリオ要素は、第２シナリオ要素ｍ２の識別子が、その節番号「Ｍ＿ｍ１−Ｍ＿ｍ２」に書換えられたものであり、参照符３Ｃで表されるシナリオ要素は、第３シナリオ要素ｍ３の識別子が、その節番号「Ｍ＿ｍ１−Ｍ＿ｍ２−Ｍ＿ｍ３」に書換えられたものである。
【００３８】
図６は、正解保持手段１７によって保持される正解データの一例を示す図である。図６では、図２〜図５に示す試験シナリオＭの検証に用いる正解データを含む正解情報を示す。前述のように、正解データは、正解データの内容に、他の正解データと区別するための正解データ識別子を付して記述される。本実施の形態では、正解データに付される正解データ識別子には、試験シナリオ管理手段１３が保持するシナリオ構成情報における各シナリオ要素の節番号が用いられる。シナリオ要素の操作記述によって対象プログラム１１が出力した出力データの検証には、そのシナリオ要素のシナリオ構成情報における節番号と同じ正解データ識別子が付された正解データが用いられる。
【００３９】
たとえば、図３に示すシナリオ構成情報Ｎにおいて、試験シナリオＭの第１シナリオ要素ｍ１の操作記述によって対象プログラム１１が出力した出力データの検証には、第１シナリオ要素ｍ１の節番号である「Ｍ＿ｍ１」と同じ識別子が付された正解データ（以下「第１正解データ」という場合がある）４Ａが用いられる。また第２シナリオ要素ｍ２の操作記述によって対象プログラム１１が出力した出力データの検証には、第２シナリオ要素ｍ２の節番号である「Ｍ＿ｍ１−Ｍ＿ｍ２」と同じ正解データ識別子が付された正解データ（以下「第２正解データ」という場合がある）４Ｂが用いられる。また第３シナリオ要素ｍ３の操作記述によって対象プログラム１１が出力した出力データの検証には、第３シナリオ要素ｍ３の節番号である「Ｍ＿ｍ１−Ｍ＿ｍ２−Ｍ＿ｍ３」と同じ正解データ識別子が付された正解データ（以下「第３正解データ」という場合がある）４Ｃが用いられる。
【００４０】
つまり、図６に示す３つの正解データ４Ａ〜４Ｃのうち、第１シナリオ要素ｍ１の節番号と同じ正解データ識別子が付された第１正解データ４Ａは、第１シナリオ要素ｍ１の検証に用いられる。第２シナリオ要素ｍ２の節番号と同じ正解データ識別子が付された第２正解データ４Ｂは、第１シナリオ要素ｍ１の操作を行った後の第２シナリオ要素ｍ２の検証に用いられる。第３シナリオ要素ｍ３の節番号と同じ正解データ識別子が付された第３正解データ４Ｃは、第１シナリオ要素ｍ１および第２シナリオ要素ｍ２の操作を行った後の第３シナリオ要素ｍ３の検証に用いられる。
【００４１】
本実施の形態では、正解データは、試験シナリオにおけるシナリオ要素毎に、かつ実行順序に応じて作成する必要がある。換言すると、試験シナリオを構成するシナリオ要素の組合せが同じでも、シナリオ要素の実行順序が入れ替わると、新たな正解データを作成する必要がある。
【００４２】
作成した正解データは、正解データ識別子として、シナリオ要素の節番号が付されて正解保持手段１７によって保持される。節番号は、シナリオ要素の出現順序、ひいては実行順序を表すので、シナリオ要素の出現順序が同じ試験シナリオについては、同じ正解データを共用することができる。したがって、前述のように、試験シナリオ管理手段１３によって、シナリオ構成情報を用いて、試験シナリオおよびその試験シナリオを構成するシナリオ要素を、シナリオ要素の出現順序がわかる形で保持しておくことによって、正解データの作成数を減らすことができる。この正解データの作成数を減らすことができるという効果について、以下に、具体的な試験を例に取上げて説明する。
【００４３】
図７は、対象プログラム１１の一例を模式的に示す図である。図７では、対象プログラム１１の一例として、使用者が不図示の入力操作部によって項目を選択すると、次々に画面を遷移するプログラムを示す。不図示の入力操作部は、表示画面に対し、次の画面を表示するのに必要な操作を与えるものであり、たとえばキーボードまたはマウスなどによって実現される。たとえば、キーボードによって文字を入力するか、またはマウス操作によって項目をクリックすることによって、表示されている項目の中から目的の項目を選択すると、新たな選択項目が表示され、表示された選択項目の中から目的の項目を選択すると、次の選択項目が表示される。
【００４４】
図７に示す対象プログラム１１は、プログラムを起動すると初期画面５０を表示する。初期画面５０では、「Ａ」と「Ｂ」と「Ｃ」の３つの項目が表示される。初期画面５０において、不図示の入力操作部によって、たとえば項目「Ａ」が選択されると、対象プログラム１１は、Ａ選択画面５１を表示する。Ａ選択画面５１では、「Ａ−１」、「Ａ−２」および「Ａ−３」の３つの項目が表示される。Ａ選択画面５１において、項目「Ａ−２」は、省略して「２」と表示され、項目「Ａ−３」は、省略して「３」と表示される。
【００４５】
Ａ選択画面５１で、項目「Ａ−１」が選択されると、対象プログラム１１は、Ａ−１選択画面５２を表示する。またＡ選択画面５１で、項目「Ａ−２」が選択されると、対象プログラム１１は、Ａ−２選択画面５３を表示する。また初期画面５０で項目「Ｂ」が選択されると、対象プログラム１１は、Ｂ選択画面５４を表示する。
【００４６】
以上の説明では、対象プログラム１１に対して、使用者が不図示の入力操作部を利用して、項目を選択する操作を加える場合の対象プログラム１１の動作を説明したが、対象プログラム１１は、個々の選択画面において選択する項目を、たとえばプログラム内部で実行する関数の引数として与えて適切な関数を実行することによって、使用者が操作を加える場合と同様の動作が得られるものとする。また対象プログラム１１は、プログラム内部で実行された内容に応じた出力データを出力するものとする。本実施の形態では、対象プログラム１１が出力する出力データは、文字列情報であるものとして説明する。
【００４７】
図７に示す対象プログラム１１に対し、第１の試験として、プログラムの起動、初期画面５０の表示、Ａ選択画面５１の表示の順に動作させる試験を実行する場合を考える。図８は、第１の試験における試験シナリオ６０を示す図である。試験シナリオ６０は、対象プログラム１１を操作するための複数のシナリオ要素を備えて構成される。図７に示す例では、試験シナリオ６０は、２個のシナリオ要素６Ａ，６Ｂ、すなわち第１シナリオ要素６Ａおよび第２シナリオ要素６Ｂを備えて構成される。
【００４８】
具体的に述べると、第１の試験を実行する試験シナリオ（以下「第１試験シナリオ」という場合がある）６０は、対象プログラム１１に対し、プログラムの起動および初期画面５０の表示の動作を行い、その動作結果である出力データを検証する第１シナリオ要素６Ａと、初期画面５０で項目「Ａ」を選択する動作およびＡ選択画面５１の表示の動作を行い、その動作結果である出力データを検証する第２シナリオ要素６Ｂとを備えて構成される。第１シナリオ要素６Ａの識別子を「１００」とし、第２シナリオ要素６Ｂの識別子を「２００」とする。
【００４９】
図９は、試験シナリオ管理手段１３が保持する第１試験シナリオ６０のシナリオ構成情報６０Ａの内容を示す図である。シナリオ構成情報６０Ａは、第１シナリオ要素６Ａの識別子「１００」と、第２シナリオ要素６Ｂの識別子「２００」とを用いて、「１００」−「２００」と記述される。図９では、シナリオ構成情報６０Ａにおける第１シナリオ要素６Ａの節を、参照符６Ｃで表し、第２シナリオ要素６Ｂの節を、参照符６Ｄで表す。第１シナリオ要素６Ａの節６Ｃには、節番号「６０＿１００」が付され、第２シナリオ要素６Ｂの節６Ｄには、節番号「６０＿１００−６０＿２００」が付される。
【００５０】
図１０は、試験シナリオ管理手段１３から試験実行手段１２に与えられる第１試験シナリオ６０を示す図である。図１０に示すように、試験シナリオ管理手段１３から試験実行手段１２に与えられる第１試験シナリオ６０は、対象プログラム１１を操作するための複数のシナリオ要素、本実施の形態では２個のシナリオ要素６Ｅ，６Ｆ、すなわち第１シナリオ要素６Ｅおよび第２シナリオ要素６Ｆを備えて構成される。図１０に示す第１シナリオ要素６Ｅおよび第２シナリオ要素６Ｆは、前述の手順によって、図８に示す第１シナリオ要素６Ａおよび第２シナリオ要素６Ｂの識別子が、それぞれ節番号に書換えられたものである。
【００５１】
図１０に示す第１シナリオ要素６Ｅには、識別子６１として「６０＿１００」が記述され、操作記述６２として「プログラム起動」が記述され、検証記述６３として「ログ検証」が記述される。第２シナリオ要素６Ｆには、識別子６４として「６０＿１００−６０＿２００」が記述され、操作記述６５として「Ａを選択」が記述され、検証記述６６として「ログ検証」が記述される。
【００５２】
このような第１試験シナリオ６０に基づいて、試験実行手段１２によって対象プログラム１１が制御され、第１の試験が実行される。対象プログラム１１は、試験実行手段１２によって制御されて、操作記述の内容に従って対象プログラム１１の関数を実行すると、画面を変えるように動作するとともに、プログラム内部で実行された内容に応じた出力データを出力する。
【００５３】
具体的に述べると、対象プログラム１１は、図１０に示す第１試験シナリオ６０に基づいて、以下の処理を行う。まず第１シナリオ要素６Ｅの操作記述６２である「プログラム起動」に従って、関数「Start_program()」を実行すると、対象プログラム１１は、前述の図７に示す初期画面５０を表示するとともに、プログラム内部の実行に応じた出力データを出力する。対象プログラム１１が出力した出力データは、出力保持手段１５によって保持される。その後、試験実行手段１２は、検証記述６３である「ログ検証」に従って、操作記述６２の操作によって対象プログラム１１が出力した出力データを結果判定手段１６によって検証する。
【００５４】
その後、対象プログラム１１は、第２シナリオ要素６Ｆの操作記述６５である「Ａを選択」に従って、関数「Select_Menu(A)」を実行すると、図７に示すＡ選択画面５１を表示するとともに、プログラム内部の実行に応じた出力データを出力する。その後、試験実行手段１２は、検証記述６６である「ログ検証」に従って、操作記述６５による出力データを結果判定手段１６によって検証する。
【００５５】
図１１は、結果判定手段１６による第１の試験における検証に用いられる正解データの一例を示す図である。図１１では、図１０に示す第１試験シナリオ６０の各シナリオ要素６Ｅ，６Ｆにおける検証記述６３，６６を実行するときに、正解保持手段１４から読出される正解データの一例を示す。図１０に示す第１試験シナリオ６０では、２個の検証記述６３，６６が存在するので、正解データとしても、２個の正解データ、すなわち第１正解データ７Ａおよび第２正解データ７Ｂが必要になる。
【００５６】
試験実行手段１２が図１０に示す第１試験シナリオ６０における検証記述６３，６６を実行して、出力データを検証するときには、試験実行手段１２の命令に従って正解保持手段１７から読出された正解データ７Ａ，７Ｂと、出力保持手段１５によって保持される出力データとの比較が結果判定手段１６で行われる。
【００５７】
具体的に述べると、図１０に示す第１試験シナリオ６０の第１シナリオ要素６Ｅの検証記述６３で行われる検証では、試験実行手段１２は、第１シナリオ要素６Ｅの識別子６１である「６０＿１００」を読取る。そして、試験実行手段１２の命令によって、正解データ識別子として「６０＿１００」が付された正解データである第１正解データ７Ａが正解保持手段１７から読出され、結果判定手段１６に送られる。試験実行手段１２は、正解保持手段１４から与えられた第１正解データ７Ａと、出力保持手段１５に保持されている出力データとが合致するか否かを、結果判定手段１６で比較することで検証を行う。
【００５８】
同様に、第２シナリオ要素６Ｆの検証記述６６の検証では、試験実行手段１２によって、第２シナリオ要素６Ｆの識別子６４である「６０＿１００−６０＿２００」が読取られ、正解保持手段１７が保持する正解データの中から、正解データ識別子として「６０＿１００−６０＿２００」が付された正解データである第２正解データ７Ｂが読出され、結果判定手段１６で行われる検証に用いられる。
【００５９】
本実施の形態では、対象プログラム１１が出力する出力データは文字列であるので、結果判定手段１６では、出力保持手段１５に保持されている出力データの文字と、正解保持手段１７から読出された正解データの文字とを一字ずつ比較し、全ての文字が一致した場合は成功と判定し、一致しない場合は失敗と判定する。
【００６０】
以上の説明では、前述の図７に示す対象プログラム１１の一例において、第１の試験として、プログラムの起動、初期画面５０の表示、Ａ選択画面５１の表示の順に動作させる試験について説明した。続いて、第２の試験として、プログラムの起動、初期画面５０の表示、Ｂ選択画面５４の表示の順に動作させる試験について考える。
【００６１】
図１２は、第２の試験における試験シナリオ８０を示す図である。第２の試験を実行する試験シナリオ（以下「第２試験シナリオ」という場合がある）８０は、対象プログラム１１に対し、プログラムの起動および初期画面５０の表示の動作を行い、その動作結果である出力データを検証する第１シナリオ要素８Ａと、初期画面５０で項目「Ｂ」を選択する動作およびＢ選択画面５４の表示の動作を行い、その動作結果である出力データを検証する第２シナリオ要素８Ｂとを備えて構成される。
【００６２】
第２試験シナリオ８０における第１シナリオ要素８Ａは、前述の図８に示す第１試験シナリオ６０における第１シナリオ要素６Ａで実現可能である。これは、第２試験シナリオ８０における第１シナリオ要素８Ａと、第１試験シナリオ６０における第１シナリオ要素６Ａとでは、シナリオ要素による操作が行われる前の状態が、対象プログラム１１が起動する前の状態であって、同じであり、この状態から「プログラム起動」という同じ操作が加えられて、初期画面５０を表示するという同じ結果が得られるためである。第２試験シナリオ８０の第１シナリオ要素８Ａの識別子には、第１試験シナリオ６０の第１シナリオ要素６Ａと同じ識別子である「１００」が用いられる。
【００６３】
第２試験シナリオ８０を構成するシナリオ要素のうち、残りの第２シナリオ要素８Ｂは、第１試験シナリオ６０を構成する他のシナリオ要素である第２シナリオ要素６Ｂでは実行が不可能である。したがって、第２試験シナリオ８０の第２シナリオ要素８Ｂには、第１試験シナリオ６０のシナリオ要素を利用することはできない。第２試験シナリオ８０の第２シナリオ要素８Ｂの識別子には、第１試験シナリオ６０の第２シナリオ要素８Ｂの識別子とは別の識別子、たとえば「２１０」が用いられる。
【００６４】
図１３は、試験シナリオ管理手段１３が保持する第２試験シナリオ８０のシナリオ構成情報８０Ａの内容を示す図である。第２試験シナリオ８０のシナリオ構成情報８０Ａは、第１シナリオ要素８Ａの識別子であって、第１試験シナリオ６０の第１シナリオ要素６Ａと同じ識別子である「１００」と、第２シナリオ要素８Ｂの識別子である「２１０」とを用いて、「１００−２１０」と記述される。第２試験シナリオ８０の第１シナリオ要素８Ａの節８Ｃには、節番号として「８０＿１００」が付され、第２シナリオ要素８Ｂの節８Ｄには、節番号として「８０＿１００−８０＿２１０」が付される。
【００６５】
図１４は、試験シナリオ管理手段１３から試験実行手段１２に与えられる第２試験シナリオ８０を示す図である。図１４では、前述の図１０に示す第１試験シナリオ６０と同じ内容の記述には、同一の参照符号を付して示す。図１４に示すように、第２試験シナリオ８０は、対象プログラム１１を操作するための複数のシナリオ要素、本実施の形態では２個のシナリオ要素８Ｅ，８Ｆ、すなわち第１シナリオ要素８Ｅおよび第２シナリオ要素８Ｆを備えて構成される。図１４に示す第１シナリオ要素８Ｅおよび第２シナリオ要素８Ｆは、前述の手順によって、図１２に示す第１シナリオ要素８Ａおよび第２シナリオ要素８Ｂの識別子が、それぞれ節番号に書換えられたものである。
【００６６】
図１０に示す第２試験シナリオ８０の第１シナリオ要素８Ｅには、識別子８１として「８０＿１００」が記述される。操作記述６２としては、第１試験シナリオ６０の第１シナリオ要素６Ａと同様に「プログラム起動」が記述される。検証記述６３としては、第１試験シナリオ６０の第１シナリオ要素６Ａと同様に「ログ検証」が記述される。第２シナリオ要素８Ｆには、識別子８４として「８０＿１００」が記述され、操作記述８５として「Ｂを選択」が記述され、検証記述８６として「ログ検証」が記述される。
【００６７】
図１５は、第２の試験における検証に用いられる正解データの一例を示す図である。第２の試験における検証では、前述の第１の試験における検証と同様に、２個の正解データ、すなわち第１正解データ９Ａおよび第２正解データ９Ｂが必要である。第１正解データ９Ａとしては、正解データ識別子として「８０＿１００」が付された正解データが作成され、第２正解データ９Ｂとしては、正解データ識別子として「８０＿１００−８０＿２１０」が付された正解データが作成される。第１および第２正解データ９Ａ，９Ｂは、正解保持手段１７によって保持される。
【００６８】
第２の試験は、図１４に示す第２試験シナリオ８０に基づいて、試験実行手段１２によって対象プログラム１１が制御されることによって実行される。対象プログラム１１は、第２試験シナリオ８０の第１シナリオ要素８Ｅの操作記述６２である「プログラム起動」に従って、関数「Start_Program()」を実行すると、前述の図７に示す初期画面５０を表示するとともに、プログラム内部の実行に応じた出力データを出力する。対象プログラム１１が出力した出力データは、出力保持手段１５によって保持される。その後、試験実行手段１２は、検証記述６３である「ログ検証」に従い、仕様に合致する出力データの出力に成功したか失敗したかの判定を結果判定手段１６で行う。具体的には、試験実行手段１２は、第１シナリオ要素８Ｅの識別子である「８０＿１００」を読取り、読取った識別子「８０＿１００」と同じ正解データ識別子が付された正解データである第１正解データ９Ａを正解保持手段１７から読出し、読出した第１正解データ９Ａと、出力保持手段１５に保持されている出力データとを結果判定手段１６で比較させて判定させる。
【００６９】
その後、試験実行手段１２は、第２シナリオ要素８Ｆの操作記述８５である「Ｂを選択」に従い、対象プログラム１１に関数「Select_Menu(B)」を実行させる。これによって対象プログラム１１は、前述の図７に示すＢ選択画面５４を表示するとともに、出力データを出力する。その後、試験実行手段１２は、検証記述８６である「ログ検証」に従い、正解データ識別子として「８０＿１００−８０＿２１０」が付された正解データである第２正解データ９Ｂを正解保持手段１７から読出し、読出した第２正解データ９Ｂを用いて、結果判定手段１６で出力結果の判定を行う。
【００７０】
以上に述べた第１および第２の試験における検証では、試験シナリオ６０，８０に含まれる検証記述の数の正解データが必要である。第１試験シナリオ６０には、図１０に示す２つの検証記述６３，６６が含まれるので、第１の試験では、図１１に示す２つの正解データ７Ａ，７Ｂが必要である。第２試験シナリオ８０には、図１４に示す２つの検証記述６３，８６が含まれるので、第２の試験では、図１５に示す２つの正解データ９Ａ，９Ｂが必要である。したがって、第１および第２の試験では、図１１に示す第１の試験における２つの正解データ７Ａ，７Ｂと、図１５に示す第２の試験における２つの正解データ９Ａ，９Ｂとの合計４個の正解データが必要である。
【００７１】
以下、正解データの作成数を減らすことができるという前述の効果を具体的に説明するために、第１の試験および第２の試験の内容をより詳細に説明する。
【００７２】
前述の図１０に示す第１の試験における第１シナリオ要素６Ｅは、操作記述６２の操作を実行し、検証記述６３に従い、対象プログラム１１が、図１１に示す第１正解データ７Ａと等しい出力データを出力するか否かを検証する処理を表す。また前述の図１４に示す第２の試験における第１シナリオ要素８Ｅは、操作記述６２の操作を実行し、検証記述６３に従い、対象プログラム１１が、図１５に示す第１正解データ９Ａと等しい出力データを出力するか否かを検証する処理を表す。
【００７３】
このように、対象プログラム１１に操作を加える前の状態、すなわちプログラムを起動する前の状態に対し、第１の試験では図１０に示す第１シナリオ要素６Ｅの操作記述６２の操作を行い、第２の試験では図１４に示す第１シナリオ要素８Ｅの操作記述６２の操作を行っている。これらの２つの操作記述によって対象プログラム１１に操作を加える前の状態は同じであり、この同じ状態に対して、全く同一の操作を行っているので、対象プログラム１１は、いずれの操作を行っても「初期画面」を表示し、かつ同じ出力データを出力する。この出力データを、第１の試験では図１１に示す第１正解データ７Ａと比較して検証を行い、第２の試験では図１５に示す第１正解データ９Ａと比較して検証を行っているが、第１の試験における第１正解データ７Ａと、第２の試験における第１正解データ９Ａとは、全く同一の内容となっている。
【００７４】
したがって、第２の試験における第１シナリオ要素８Ｅの検証には、第１の試験における第１シナリオ要素６Ｅの検証で用いられる第１正解データ７Ａの利用が可能であり、第２の試験における第１シナリオ要素８Ｅのために、図１５に示す第１正解データ９Ａを別途用意する必要は無い。さらに述べると、第２の試験における第１シナリオ要素８Ｅは、第１の試験における第１シナリオ要素６Ｅに置換え可能である。
【００７５】
これに対し、第１の試験における第２シナリオ要素６Ｆの操作記述６５、第２の試験における第２シナリオ要素８Ｆの操作記述８５とでは、対象プログラム１１に操作を加える前の状態は同じであり、いずれも図７に示す初期画面５０が表示されているが、対象プログラム１１に加える操作が異なるので、対象プログラム１１の動作結果および出力データは異なる。したがって、第１の試験における第２シナリオ要素６Ｆの検証記述６５による検証必要な正解データ７Ａと、第２の試験における第２シナリオ要素８Ｆの検証記述８５による検証に必要な正解データ９Ｂとは、内容が異なるので、別々に必要である。
【００７６】
以上のように、複数の試験シナリオ６０，８０におけるシナリオ要素の実行順および記述に着目することによって、正解データを共用することが可能になるので、作成すべき正解データの数を削減することができる。本実施の形態では、第１の試験および第２の試験における検証に用いる正解データとしては、３個の正解データを作成すればよく、１個の正解データを削減することができる。
【００７７】
以上のように複数の試験シナリオにおいて正解データを共用するために、本実施の形態では、以下のようにしてシナリオ構成情報を作成して試験シナリオ管理手段１３に保持する。図１６は、シナリオ構成情報の作成処理の手順を示すフローチャートである。図１６に示すフローチャートの各処理は、試験シナリオ管理手段１３によって実行される。ここでは、図１６に示すフローチャートの各処理が実行される前は、前述の図８〜図１０に示す第１の試験の試験シナリオである第１試験シナリオ６０およびそのシナリオ構成情報が試験シナリオ管理手段１３に登録されている状態であり、この状態から前述の図１２および図１４に示す第２の試験の試験シナリオである第２試験シナリオ８０を試験シナリオ管理手段１３に追加する処理を考える。図１６に示すフローチャートの処理は、使用者が不図示の試験シナリオ作成部で試験シナリオを作成し、試験シナリオを試験シナリオ管理手段１３に登録する指示を入力することによって、試験シナリオの登録指令が試験シナリオ管理手段１３に与えられると開始され、ステップａ１に移行する。試験シナリオ作成部については後述する。
【００７８】
ステップａ１では、試験シナリオ管理手段１３は、不図示の試験シナリオ作成部で使用者によって作成されて入力された試験シナリオを、登録すべき試験シナリオとして取得し、ステップａ２に移行する。前述の第２試験シナリオ８０を追加する処理の場合は、ステップａ１において第２試験シナリオ８０が取得される。
【００７９】
ステップａ２では、試験シナリオ管理手段１３は、既に試験シナリオ管理手段１３に試験シナリオがあるか否か、すなわち既に試験シナリオ管理手段１３で管理されている試験シナリオがあるか否かを判断し、試験シナリオがあると判断するとステップａ３に移行し、試験シナリオがないと判断するとステップａ７に移行する。前述の第２試験シナリオ８０を追加する処理の場合は、既に第１試験シナリオ６０が試験シナリオ管理手段１３で管理されているので、ステップａ２において試験シナリオがあると判断されて、ステップａ３に移行する。
【００８０】
ステップａ３では、試験シナリオ管理手段１３は、ステップａ１において取得した試験シナリオのシナリオ要素と、ステップａ２において既に試験シナリオ管理手段１３にある試験シナリオとして検出された試験シナリオ（以下「既存の試験シナリオ」という場合がある）のシナリオ要素とを取出し、ステップａ４に移行する。図１６に示すフローチャートの処理が開始されてから最初にステップａ３が実行される場合は、ステップａ１において取得された試験シナリオの先頭のシナリオ要素と、既存の試験シナリオの先頭のシナリオ要素とが取出される。前述の第２試験シナリオ８０を追加する処理では、ステップａ１において第２試験シナリオ８０が取得され、ステップａ２において第１試験シナリオ６０が検出されるので、ステップａ３では、第２試験シナリオ８０の先頭の試験シナリオである第１シナリオ要素８Ａと、第１試験シナリオ６０の先頭のシナリオ要素である第１シナリオ要素６Ａとが取出される。
【００８１】
ステップａ４では、試験シナリオ管理手段１３は、ステップａ１において取得した試験シナリオからステップａ３において取出したシナリオ要素の出現順序と、既存の試験シナリオからステップａ３において取出したシナリオ要素の出現順序とが同じであるか否かを判断する。試験実行手段１２は、ステップａ３において取出した２個のシナリオ要素の識別子を比較して、識別子が等しいか否かを判断することによって、シナリオ要素の出現順序が同じであるか否かを判断する。試験実行手段１２は、ステップａ３において取出した２個のシナリオ要素の識別子が等しいと判断すると、シナリオ要素の出現順序が同じであると判断してステップａ５に移行し、ステップａ３において取出した２個のシナリオ要素の識別子が等しくないと判断すると、シナリオ要素の出現順序が同じでないと判断してステップａ７に移行する。
【００８２】
前述の第２試験シナリオ８０を追加する処理の場合、ステップａ４では、第２試験シナリオ８０の第１シナリオ要素８Ａの識別子と、第１試験シナリオ６０の第１シナリオ要素６Ａの識別子とが比較される。図８および図１２に示すように、第２試験シナリオ８０の第１シナリオ要素８Ａの識別子は「１００」であり、第１試験シナリオ６０の第１シナリオ要素６Ａの識別子は「１００」であるので、ステップａ４では、２個のシナリオ要素の識別子が等しいと判断されて、シナリオ要素の出現順序が同じであると判断され、ステップａ５に移行する。
【００８３】
ステップａ５では、試験シナリオ管理手段１３は、ステップａ３において取出した２個のシナリオ要素を共通して管理するために、ステップａ４において出現順序が同じであると判断したシナリオ要素に共通の節番号を付加する。具体的には、試験シナリオ管理手段１３は、ステップａ１において取得した試験シナリオからステップａ３において取出したシナリオ要素に、節番号として、既存の試験シナリオからステップａ３において取出したシナリオ要素のシナリオ構成情報における節番号と同じ節番号を付加する。前述の第２試験シナリオ８０を追加する処理の場合は、ステップａ５において、第２試験シナリオ８０の第１シナリオ要素８Ａに、節番号として、第１試験シナリオ６０の第１シナリオ要素のシナリオ構成情報における節番号である「６０＿１００」が付加されている。このようにして節番号が付加されると、ステップａ６に移行する。
【００８４】
ステップａ６では、試験シナリオ管理手段１３は、ステップａ１において取得した試験シナリオに、ステップａ３において取出したシナリオ要素に続くシナリオ要素が存在するか否かを判断する。試験シナリオ管理手段１３は、続くシナリオ要素が存在すると判断するとステップａ３に戻り、続くシナリオ要素が存在しないと判断すると全ての処理手順を終了する。前述の第２試験シナリオ８０を追加する処理の場合、第２試験シナリオ８０には第２シナリオ要素８Ｂが存在するので、ステップａ３に戻る。
【００８５】
ステップａ３に戻ると、試験シナリオ管理手段１３は、ステップａ１において取得した試験シナリオおよびステップａ２において検出した既存の試験シナリオから、前回のステップａ３における処理で取出されたシナリオ要素に続くシナリオ要素、すなわち前回取出されたシナリオ要素の次に記述されたシナリオ要素を取出し、ステップａ４に移行する。前述の第２試験シナリオ８０を追加する処理の場合、第２試験シナリオ８０の第２シナリオ要素８Ｂと、第１試験シナリオ６０の第２シナリオ要素６Ｂとが取出され、ステップａ４に移行する。ステップａ４では、図８および図１２に示すように、第２試験シナリオ８０の第２シナリオ要素８Ｂの識別子は「２１０」であり、第１試験シナリオ６０の第２シナリオ要素６Ｂの識別子は「２００」であるので、シナリオ要素の出現順序が同じでないと判断され、ステップａ７に移行する。
【００８６】
ステップａ３において、既存の試験シナリオに、前回のステップａ３における処理で取出されたシナリオ要素に続くシナリオ要素が存在しない場合には、ステップａ１において取得した試験シナリオのみから、続くシナリオ要素が取出され、ステップａ４に移行する。この場合、ステップａ４では、シナリオ要素の出現順序が同じでないと判断されて、ステップａ７に移行する。
【００８７】
ステップａ７では、ステップａ１において取得した試験シナリオのシナリオ要素のうち、シナリオ構成情報に含まれていないシナリオ要素に節番号を付加して、シナリオ構成情報に追加する。前述の第２試験シナリオ８０を追加する処理の場合、第２試験シナリオ８０の第２シナリオ要素８Ｂに、節番号として「８０＿２１０」を付加し、シナリオ構成情報における節「１００」の後に追加する。このようにして節番号を付加してシナリオ構成情報にシナリオ要素を追加すると、全ての処理手順を終了する。
【００８８】
図１７は、図１６に示すフローチャートの処理によって作成されるシナリオ構成情報１２０の一例を示す図である。前述の図１２に示す第２試験シナリオ８０を追加する場合、図１６に示すフローチャートの処理によって、第１試験シナリオ６０および第２試験シナリオ８０のシナリオ構成情報として、図１７に示す木構造、すなわちツリー構造を有するシナリオ構成情報１２０が作成され、試験シナリオ管理手段１３によって保持される。
【００８９】
図１８は、図１７に示すシナリオ構成情報１２０を用いて作成された第２試験シナリオ１１０を示す図である。図１８に示す第２試験シナリオ１１０は、前述の図１４に示す第２試験シナリオ８０と同様に、２個のシナリオ要素６Ｅ，１１Ｆ、すなわち第１シナリオ要素６Ｅおよび第２シナリオ要素１１Ｆを備えて構成される。
【００９０】
図１２に示す第２試験シナリオ８０の第１シナリオ要素８Ａの節番号は、図１７に示すように、第１試験シナリオ６０の第１シナリオ要素６Ａと同じ「６０＿１００」である。したがって、図１８に示す第２試験シナリオ１１０の第１シナリオ要素６Ｅは、前述の図１０に示す第１試験シナリオ６０の第１シナリオ要素６Ｅと同一となる。また図１２に示す第１試験シナリオ８０の第２シナリオ要素８Ｂの節番号は、図１７に示すように、第１試験シナリオ６０の第２シナリオ要素６Ｂとは異なり、「６０＿１００−８０＿２１０」である。したがって、図１８に示す第２試験シナリオ１１０の第２シナリオ要素１１Ｆには、識別子１１４として「６０＿１００−８０＿２１０」が記述される。
【００９１】
図１９は、第１の試験および第２の試験に必要な正解データの一例を示す図である。図１７に示す木構造のシナリオ構成情報１２０が試験シナリオ管理手段１３に保持されている場合、第１の試験および第２の試験では、図１９に示すように、３個の正解データ１２Ａ〜１２Ｃがあればよい。図１９に示す３個の正解データ１２Ａ〜１２Ｃのうち、正解データ識別子として「６０＿１００」が付された第１正解データ１２Ａは、前述の図１１に示す第１正解データ７Ａと同じであり、第１および第２の試験で利用される。
【００９２】
正解データ識別子として「６０＿１００−６０＿２００」が付された第２正解データ１２Ｂは、前述の図１１に示す第２正解データ７Ｂと同じであり、第１の試験で利用される。正解データ識別子として「６０＿１００−８０＿２１０」が付された第３正解データ１２Ｃは、前述の図１５に示す第２正解データ９Ｂの正解データ識別子を、第２試験シナリオ８０の第２シナリオ要素８Ｂの節番号「６０＿１００−８０＿２１０に書換えたものであり、第２の試験で利用される。このように本実施の形態によれば、図１１および図１５に示す４個の正解データ７Ａ，７Ｂ，９Ａ，９Ｂから、１個の正解データを削減することができる。
【００９３】
以上のように本実施の形態によれば、試験シナリオ管理手段１３は、試験シナリオにおけるシナリオ要素の先頭からの出現順序に基づいて試験シナリオを管理する。具体的には、試験シナリオ管理手段１３は、共通のシナリオ要素を含み、かつ共通のシナリオ要素の出現順序が一致する複数の試験シナリオを管理するときには、複数の試験シナリオ間におけるシナリオ要素の内容の一致を検出し、内容が一致するシナリオ要素を示すシナリオ構成情報で試験シナリオを管理する。
【００９４】
この場合、結果判定手段１６では、共通のシナリオ要素の各シナリオ要素に対応する正解データとして同じ正解データを用いて、対象プログラム１１からの出力データとの比較を行う。これによって、正解データを共用することができ、複数の試験シナリオ間で共通のシナリオ要素に対しては、正解保持手段１７で別個に正解データを保持しておく必要がないので、正解保持手段によって保持しておくべき正解データの数を削減することができる。したがって、正解データの作成数および作成に要する作業時間を低減することができるので、対象プログラムに対する試験の数が増えた場合でも、時間および労力をかけることなく、低コストでソフトウェア試験の構築および維持を実現することができる。
【００９５】
以上のように試験シナリオ管理手段１３は、試験シナリオ管理手段１３に複数の試験シナリオが格納されたとき、複数の試験シナリオ間でシナリオ要素の内容および出現順序に重複がある場合は、重複するシナリオ要素を一つにまとめて管理するシナリオ構成情報を作成する。次に、シナリオ構成情報のより詳細な作成方法について、図２０〜図２５を用いて説明する。
【００９６】
図２０は、試験シナリオ管理手段１３の管理対象となる試験シナリオ１３Ａ〜１３Ｃを示す図である。図２０において、識別子の記号は、シナリオ要素の違いを表しており、識別子の記号が同じ場合は、同じシナリオ要素を表し、識別子の記号が異なる場合は、異なるシナリオ要素を表している。図２１は、試験シナリオ管理手段１３が保持するシナリオ構成情報１４０を示す図である。本実施の形態では、試験シナリオにおけるシナリオ構成情報の構造が、図２１に示すシナリオ構成情報１４０のように、木構造を成すものとして説明する。図２２は、図２１に示すシナリオ構成情報１４０の各節に付加された節番号を示す図である。図２３〜２５は、図２０に示す試験シナリオ１３Ａ〜１３Ｃを一つずつシナリオ構成情報１４０に登録する処理の手順を示すフローチャートである。図２３〜図２５に示すフローチャートの各処理は、試験シナリオ管理手段１３によって実行される。
【００９７】
図２３〜２５に示すフローチャートの各処理が実行される前の状態は、図２１に示すシナリオ構成情報１４０が空の状態であり、不図示のシナリオ要素作成部で作成されたシナリオ要素がシナリオ要素保持手段１４に格納され、不図示の正解データ作成部で作成された正解データが正解保持手段１７に格納されている状態であるとする。
【００９８】
ここで、不図示のシナリオ要素作成部とは、シナリオ要素保持手段１４に保持するシナリオ要素を作成するものである。また、不図示の正解データ作成部とは、正解保持手段１７に保持する正解データを作成するものである。シナリオ要素作成部および正解データ作成部は、たとえば、キーボードまたはマウスによって実現される。シナリオ要素および正解データの作成方法としては、たとえば、キーボードまたはマウスなどによって実現されるシナリオ要素作成部または正解データ作成部を使用し、モニタ画面で確認しながらシナリオ要素または正解データを作成する方法、およびテキストエディタを起動し、キーボードから文字を入力して、シナリオ要素または正解データを作成する方法などが考えられる。
【００９９】
図２３〜図２５に示すフローチャートの処理は、使用者が不図示の試験シナリオ作成部で試験シナリオを作成し、試験シナリオ管理手段１３へ登録するときに実行される。ここで、不図示の試験シナリオ作成部とは、試験シナリオ管理手段１３で管理する試験シナリオを作成するものであり、たとえば、キーボードまたはマウスによって実現される。試験シナリオの作成方法としては、たとえば、キーボードまたはマウスなどによって実現される試験シナリオ作成部を使用し、シナリオ要素保持手段１４によって保持される試験シナリオを構成するシナリオ要素を組み合わせ、モニタ画面で確認しながら試験シナリオを作成する方法、およびテキストエディタを起動し、キーボードから文字を入力して試験シナリオを作成する方法などが考えられる。
【０１００】
図２３〜図２５に示すフローチャートの処理は、使用者が試験シナリオ作成部で試験シナリオを作成し、作成した試験シナリオを試験シナリオ管理手段１３に登録する指示を入力することによって、試験シナリオの登録指令が試験シナリオ管理手段１３に与えられると開始され、ステップｂ１に移行する。
【０１０１】
ステップｂ１では、試験シナリオ管理手段１３は、不図示の試験シナリオ作成部で使用者によって作成されて入力された試験シナリオ１３Ａを、登録すべき試験シナリオとして取得し、ステップｂ２に移行する。本実施の形態では、図２０に示す３つの試験シナリオ１３Ａ〜１３Ｃ、すなわち第１試験シナリオ１３Ａ、第２試験シナリオ１３Ｂおよび第３試験シナリオ１３Ｃが作成されて入力されるものとする。また第１〜第３試験シナリオ１３Ａ〜１３Ｃのうち、ステップｂ１では、第１試験シナリオ１３Ａが取得されるものとする。ステップｂ１は、前述の図１６に示すフローチャートのステップａ１に相当する。
【０１０２】
ステップｂ２では、試験シナリオ管理手段１３は、試験シナリオ管理手段１３が保持するシナリオ構成情報に、既に登録されている試験シナリオがあるか否かを判断し、あると判断すると図２４のステップｃ１に移行し、ないと判断するとステップｂ３に移行する。本実施の形態では、シナリオ構成情報は空である、すなわちシナリオ構成情報には試験シナリオが登録されていないので、ステップｂ３に移行する。ステップｂ２は、前述の図１６に示すフローチャートのステップａ２に相当する。
【０１０３】
ステップｂ３では、試験シナリオ管理手段１３は、ステップｂ１において取得した登録すべき試験シナリオの先頭のシナリオ要素の識別子を取出し、ステップｂ４に移行する。本実施の形態では、ステップｂ１において図２０に示す第１試験シナリオ１３Ａが取得されるので、ステップｂ３では、第１試験シナリオ１３Ａの第１シナリオ要素１３０の識別子「ａ」が取出され、ステップｂ４に移行する。
【０１０４】
ステップｂ４では、試験シナリオ管理手段１３は、ステップｂ３において取出したシナリオ要素の識別子に基づいて、そのシナリオ要素の節に節番号を付加して、シナリオ構成情報に節を登録する。本実施の形態では、ステップｂ３において取出された第１シナリオ要素１３０の識別子「ａ」から、この第１シナリオ要素１３０の節「ａ」の節番号を「１３Ａ＿ａ」とし、シナリオ構成情報に節「ａ」を格納する。このようにして節および節番号を登録した後、ステップｂ５に移行する。
【０１０５】
ステップｂ５では、試験シナリオ管理手段１３は、ステップｂ１において取得した試験シナリオに、取出していないシナリオ要素が存在するか否かを判断し、存在すると判断するとステップｂ３に戻り、存在しないと判断するとステップｂ６に移行する。本実施の形態では、ステップｂ１において取得された第１試験シナリオ１３Ａには、図２０に示すように、取出していないシナリオ要素として、第２シナリオ要素１３１および第３シナリオ要素１３２が残っているので、ステップｂ３に戻る。ステップｂ３〜ステップｂ５は、前述の図１６に示すフローチャートの処理において、ステップａ２から移行した場合のステップａ７に相当する。
【０１０６】
ステップｂ５からステップｂ３に戻ると、試験シナリオ管理手段１３は、ステップｂ１において取得した登録すべき試験シナリオから、前回のステップｂ３における処理で取出したシナリオ要素の次に記述されたシナリオ要素の識別子を取出し、ステップｂ４に移行する。本実施の形態では、図２０に示す第１試験シナリオ１３Ａの第２シナリオ要素１３１の識別子「ｂ」が取出され、ステップｂ４に移行する。ステップｂ４では、ステップｂ３において取出した識別子「ｂ」から、節「ｂ」に節番号が付加され、シナリオ構成情報に登録される。第２シナリオ要素１３１の節「ｂ」は、第１シナリオ要素１３０の節「ａ」に続く節であるので、節「ｂ」には、節番号として、「１３Ａ＿ａ−１３Ａ＿ｂ」が付加され、シナリオ構成情報の節「ａ」に続けて節「ｂ」が格納される。このようにして節および節番号を登録した後、ステップｂ５に移行する。
【０１０７】
ステップｂ５では、前述のようにして、ステップｂ１において取得された試験シナリオに、取出していない試験シナリオが存在するか否かが判断される。本実施の形態では、ステップｂ１において取得された第１試験シナリオ１３Ａには、図２０に示すように、取出していないシナリオ要素として、第３シナリオ要素１３２が残っていることが検出されるので、再びステップｂ３に戻る。
【０１０８】
ステップｂ３に再び戻ると、試験シナリオ管理手段１３は、ステップｂ１において取得した試験シナリオから、前回のステップｂ３における処理で取出したシナリオ要素の次に記述されたシナリオ要素の識別子を取出し、ステップｂ４に移行する。本実施の形態では、ステップｂ３において、図２０に示す第１試験シナリオ１３Ａの第３シナリオ要素１３２の識別子「ｃ」が取出される。ステップｂ４では、ステップｂ３において取出した識別子「ｃ」から、節「ｃ」に節番号が付加され、シナリオ構成情報に登録される。第３シナリオ要素１３２の節「ｃ」は、第２シナリオ要素１３１の節「ｂ」に続く節であるので、節「ｃ」には、節番号として、「１３Ａ＿ａ−１３Ａ＿ｂ−１３Ａ＿ｃ」が付加され、シナリオ構成情報の節「ｂ」に続けて節「ｃ」が格納される。このようにして節を登録した後、ステップｂ５に移行する。
【０１０９】
ステップｂ５では、前述のようにして、ステップｂ１において取得された試験シナリオに、取出していない試験シナリオが存在するか否かが判断される。本実施の形態では、ステップｂ１において取得された第１試験シナリオ１３Ａに含まれる第１〜第３シナリオ要素１３０〜１３２は全て取出されており、取出していないシナリオ要素は無いので、ステップｂ６に移行する。
【０１１０】
ステップｂ６では、試験シナリオ管理手段１３は、入力された試験シナリオを全て登録したか否かを判断する。試験シナリオ管理手段１３は、入力された試験シナリオを全て登録した、すなわち登録すべき試験シナリオは存在しないと判断すると全ての処理手順を終了し、入力された試験シナリオを全ては登録していない、すなわち登録していない試験シナリオが存在すると判断するとステップｂ１に戻る。本実施の形態では、図２０に示す第２試験シナリオ１３Ｂおよび第３試験シナリオ１３Ｃが残っているので、ステップｂ１に戻る。
【０１１１】
ステップｂ１に戻ると、試験シナリオ管理手段１３は、前回のステップｂ１における処理で取得した試験シナリオの次に記述された試験シナリオを取得し、ステップｂ２に移行する。本実施の形態では、図２０に示す第２試験シナリオ１３Ｂが取出され、ステップｂ２に移行する。
【０１１２】
ステップｂ２では、前述のようにして、試験シナリオ管理手段１３が保持するシナリオ構成情報に、既に登録されている試験シナリオがあるか否かが判断される。本実施の形態では、既に第１試験シナリオ１３Ａがシナリオ構成情報に存在するので、図２４のステップｃ１に移行する。
【０１１３】
図２３のステップｂ２から図２４のステップｃ１に移行すると、試験シナリオ管理手段１３は、図２３のステップｂ１で取得した、登録すべき試験シナリオの先頭のシナリオ要素である第１シナリオ要素の識別子を取出し、ステップｃ２に移行する。本実施の形態では、図２３のステップｂ１において第２試験シナリオ１３Ｂが取得されるので、ステップｃ１では、図２０に示す第２試験シナリオ１３Ｂの先頭のシナリオ要素である第１シナリオ要素１３３の識別子「ａ」が取出され、ステップｃ２に移行する。
【０１１４】
ステップｃ２では、試験シナリオ管理手段１３は、シナリオ構成情報に既に存在する試験シナリオである既存の試験シナリオを取出し、ステップｃ３に移行する。本実施の形態では、シナリオ構成情報には、第１試験シナリオ１３Ａが存在するので、ステップｃ２では、既存の試験シナリオとして、第１試験シナリオ１３Ａが取出され、ステップｃ３に移行する。
【０１１５】
ステップｃ３では、試験シナリオ管理手段１３は、ステップｃ２において取出した試験シナリオの最初の節、すなわち先頭のシナリオ要素である第１シナリオ要素の識別子を取出し、ステップｃ４に移行する。本実施の形態では、第１試験シナリオ１３Ａの最初の節である第１の節、すなわち先頭のシナリオ要素である第１シナリオ要素１３０の識別子「ａ」が取出され、ステップｃ４に移行する。ステップｃ１〜ステップｃ３は、前述の図１６に示すフローチャートのステップａ３に相当する。
【０１１６】
ステップｃ４では、試験シナリオ管理手段１３は、ステップｃ１において取出した登録すべき試験シナリオの第１シナリオ要素の識別子と、ステップｃ３において取出した既存の試験シナリオの第１シナリオ要素の識別子とを比較して、２つの識別子が一致するか否かを判断する。試験シナリオ管理手段１３は、２つの識別子が一致すると判断すると図２５のステップｄ１に移行し、一致しないと判断するとステップｃ５に移行する。本実施の形態では、ステップｃ１において取出された第２試験シナリオ１３Ｂの第１シナリオ要素１３３の識別子と、ステップｃ３において取出された第１試験シナリオ１３Ａの第１シナリオ要素１３０の識別子とは、「ａ」で一致するので、図２５のステップｄ１に移行する。複数のシナリオ要素間で識別子が一致することは、そのシナリオ要素同士が一致することを意味する。ステップｃ４は、前述の図１６に示すフローチャートのステップａ４に相当する。
【０１１７】
ステップｄ１では、試験シナリオ管理手段１３は、シナリオ構成情報に対して、図２３のステップｂ１において取得した登録すべき試験シナリオの第１シナリオ要素における節番号の付加および節の登録を行う。前述のように、登録すべき試験シナリオの第１シナリオ要素の識別子と、既存の試験シナリオの第１シナリオ要素の識別子とは、図２４のステップｃ４において一致すると判断されている。したがって、ステップｄ１では、試験シナリオ管理手段１３は、登録すべき試験シナリオの第１シナリオ要素の節および節番号に、既存の試験シナリオの第１シナリオ要素の節および節番号をそれぞれ割当て、シナリオ構成情報に格納する。
【０１１８】
本実施の形態では、ステップｄ１において、シナリオ構成情報に対して、第２試験シナリオ１３Ｂの第１シナリオ要素１３３における節番号の付加および節の登録が行われる。前述の図２４のステップｃ５では、第２試験シナリオ１３Ｂの第１シナリオ要素１３３は、シナリオ構成情報で管理されている第１試験シナリオ１３Ａの第１シナリオ要素１３０と一致すると判断されている。したがって、ステップｄ１では、第２試験シナリオ１３Ｂの第１シナリオ要素１３３の節に、第１試験シナリオ１３Ａの第１シナリオ要素１３０の節「ａ」が割当てられ、節番号に、第１試験シナリオ１３Ａの第１シナリオ要素１３０の節番号「１３Ａ＿ａ」が割当てられ、シナリオ構成情報に格納される。このようにして節および節番号を割当ててシナリオ構成情報に登録すると、ステップｄ２に移行する。
【０１１９】
ステップｄ２では、試験シナリオ管理手段１３は、図２３のステップｂ５と同様にして、図２３のステップｂ１において取得した登録すべき試験シナリオに、取出していないシナリオ要素が存在するか否かを判断し、存在すると判断するとステップｄ３に移行し、存在しないと判断すると図２３のステップｂ６に移行する。本実施の形態では、図２３のステップｂ１において取得された第２試験シナリオ１３Ｂには、図２０に示すように、取出していないシナリオ要素として、第２シナリオ要素１３４および第３シナリオ要素１３５が残っているので、ステップｄ３に移行する。
【０１２０】
ステップｄ３では、試験シナリオ管理手段１３は、図２３のステップｂ１において取得した登録すべき試験シナリオから、図２４のステップｃ１において取出したシナリオ要素に続く試験シナリオ、すなわちステップｃ１において取出したシナリオ要素の次に記述されたシナリオ要素の識別子を取出し、ステップｄ４に移行する。本実施の形態では、図２０に示す第２試験シナリオ１３Ｂの第２シナリオ要素１３４の識別子「ｂ」が取出され、ステップｄ４に移行する。
【０１２１】
ステップｄ４では、試験シナリオ管理手段１３は、図２４のステップｃ２において取出した既存の試験シナリオに、図２４のステップｃ３において取出したシナリオ要素、すなわち第１シナリオ要素に続くシナリオ要素が存在するか否かを判断し、存在すると判断するとステップｄ５に移行し、存在しないと判断するとステップｄ８に移行する。本実施の形態では、ステップｄ４において、第１試験シナリオ１３Ａに、第１シナリオ要素１３０に続くシナリオ要素が存在するか否かが判断される。第１試験シナリオ１３Ａには、図２０に示すように、第１シナリオ要素１３０に続いて、第２シナリオ要素１３１が存在するので、ステップｄ４からステップｄ５に移行する。
【０１２２】
ステップｄ５では、試験シナリオ管理手段１３は、図２４のステップｃ３と同様にして、図２４のステップｃ２において取出した既存の試験シナリオのうち、図２４のステップｃ３において取出した第１シナリオ要素に続くシナリオ要素の識別子を取出し、ステップｄ６に移行する。本実施の形態では、図２０に示す第１試験シナリオ１３Ａの第２シナリオ要素１３１の識別子「ｂ」が取出され、ステップｄ６に移行する。
【０１２３】
ステップｄ６では、試験シナリオ管理手段１３は、図２４のステップｃ４と同様にして、ステップｄ３において取出した登録すべき試験シナリオの第１シナリオ要素に続くシナリオ要素、すなわち第２シナリオ要素の識別子と、ステップｄ５において取出した既存の試験シナリオの第１シナリオ要素に続くシナリオ要素、すなわち第２シナリオ要素の識別子とを比較して、２つの識別子が一致するか否かを判断する。ステップｄ６において、試験シナリオ管理手段１３は、２つの識別子が一致すると判断するとステップｄ７に移行し、一致しないと判断するとステップｄ８に移行する。本実施の形態では、ステップｄ３において取出された第２試験シナリオ１３Ｂの第２シナリオ要素１３４の識別子と、ステップｄ５において取出された第１試験シナリオ１３Ａの第２シナリオ要素１３１の識別子とは、「ｂ」で一致するので、ステップｄ７に移行する。
【０１２４】
ステップｄ７では、試験シナリオ管理手段１３は、ステップｄ１と同様にして、図２３のステップｂ１において取得した登録すべき試験シナリオのうち、ステップｄ３において取出したシナリオ要素に節および節番号を付加して、シナリオ構成情報に格納する。具体的には、試験シナリオ管理手段１３は、ステップｄ３で取出した第２シナリオ要素の節および節番号に、ステップｄ５で取出した既存の試験シナリオの第１シナリオ要素に続く第２シナリオ要素の節および節番号をそれぞれ割当て、シナリオ構成情報に格納する。本実施の形態では、ステップｄ３において取出された第２試験シナリオ１３Ｂの第２シナリオ要素１３４の節および節番号に、ステップｄ５において取出された第１試験シナリオ１３Ａの第２シナリオ要素１３１の節「ｂ」および節番号「１３Ａ＿ａ−１３Ａ＿ｂ」がそれぞれ割当てられ、シナリオ構成情報に格納される。このようにして節および節番号を割当ててシナリオ構成情報に登録すると、ステップｄ２に戻る。
【０１２５】
ステップｄ２に戻ると、試験シナリオ管理手段１３は、図２３のステップｂ１において取得した登録すべき試験シナリオに、取出していないシナリオ要素が存在するか否かを再度判断し、存在すると判断するとステップｄ３に移行し、存在しないと判断すると図２３のステップｂ６に移行する。本実施の形態では、図２３のステップｂ１において取得された第２試験シナリオ１３Ｂには、図２０に示すように、取出していないシナリオ要素として、第３シナリオ要素１３５が残っているので、ステップｄ３に移行し、ステップｄ３において、第３シナリオ要素１３５の識別子「ｄ」が取出され、ステップｄ４に移行する。
【０１２６】
ステップｄ４では、試験シナリオ管理手段１３は、図２４のステップｃ２において取出した既存の試験シナリオに、前回のステップｄ５における処理で取出したシナリオ要素、すなわち第２シナリオ要素に続くシナリオ要素が存在するか否かを判断し、存在すると判断するとステップｄ５に移行し、存在しないと判断するとステップｄ８に移行する。本実施の形態では、ステップｄ４において、図２４のステップｃ２において取出した第１試験シナリオ１３Ａに、前回のステップｄ５における処理で取出した第２シナリオ要素１３１に続くシナリオ要素、すなわち第３シナリオ要素が存在するか否かが判断される。第１試験シナリオ１３Ａには、図２０に示すように、第２シナリオ要素１３１に続いて、第３シナリオ要素１３２が存在するので、ステップｄ４からステップｄ５に移行する。
【０１２７】
ステップｄ５では、試験シナリオ管理手段１３は、図２４のステップｃ３と同様にして、図２４のステップｃ２において取出した既存の試験シナリオのうち、前回のステップｄ５における処理で取出した第２シナリオ要素に続くシナリオ要素、すなわち第３シナリオ要素の識別子を取出し、ステップｄ６に移行する。本実施の形態では、図２０に示す第１試験シナリオ１３Ａの第３シナリオ要素１３２の識別子「ｃ」が取出され、ステップｄ６に移行する。
【０１２８】
ステップｄ６では、図２４のステップｃ４と同様にして、ステップｄ３で取出した登録すべき試験シナリオの第２シナリオ要素に続く第３シナリオ要素の識別子と、ステップｄ５で取出した既存の試験シナリオの第２シナリオ要素に続く第３シナリオ要素の識別子とが一致するか否かを判断する。試験シナリオ管理手段１３は、２つの識別子が一致すると判断するとステップｄ７に移行し、一致しないと判断するとステップｄ８に移行する。本実施の形態では、ステップｄ３で取出された第２試験シナリオ１３Ｂの第３シナリオ要素１３５の識別子「ｄ」と、ステップｄ５で取出された第１試験シナリオ１３Ａの第３シナリオ要素１３２の識別子「ｃ」とが比較される。２つの識別子は一致しないので、ステップｄ８に移行する。
【０１２９】
ステップｄ８では、試験シナリオ管理手段１３は、図２３のステップｂ４と同様にして、ステップｄ３で取出したシナリオ要素の識別子に基づいて、そのシナリオ要素の節に節番号を付加して、シナリオ構成情報に登録する。本実施の形態では、ステップｄ３で取出された第２試験シナリオ１３Ｂの第３シナリオ要素１３５の節には、第３シナリオ要素１３５の識別子「ｄ」が用いられる。第３シナリオ要素１３５の節「ｄ」は、第２シナリオ要素１３４の節「ｂ」に続く節であるので、第３シナリオ要素１３５の節番号は、第２シナリオ要素１３４の節番号「１３Ａ＿ａ−１３Ａ＿ｂ」に続けて「１３Ｂ＿ｄ」を記述した「１３Ａ_ａ−１３Ａ_ｂ−１３Ｂ_ｄ」とし、シナリオ構成情報の節「ｂ」に続けて節「ｄ」を格納する。このようにして節および節番号を登録すると、ステップｄ２に戻る。ステップｄ１〜ステップｄ８は、前述の図１６に示すフローチャートの処理において、ステップａ４から移行した場合のステップａ７の具体的な処理に相当する。
【０１３０】
ステップｄ２に戻ると、試験シナリオ管理手段１３は、図２３のステップｂ５と同様にして、図２３のステップｂ１において取得した登録すべき試験シナリオに、取出していないシナリオ要素が存在するか否かを判断し、存在すると判断するとステップｄ３に移行し、存在しないと判断すると図２３のステップｂ６に移行する。本実施の形態では、図２３のステップｂ１において取得された第２試験シナリオ１３Ｂに含まれる第１〜第３シナリオ要素１３３〜１３５は全て取出されており、取出されずに残っているシナリオ要素は存在しないことが検出されるので、図２３のステップｂ６に移行する。
【０１３１】
ステップｄ２から図２３のステップｂ６に移行すると、試験シナリオ管理手段１３は、入力された試験シナリオを全て登録したか否かを判断し、全て登録したと判断すると全ての処理手順を終了し、全ては登録していないと判断するとステップｂ１に戻る。本実施の形態では、図２０に示す登録すべき試験シナリオ１３Ａ〜１３Ｃのうち、第３試験シナリオ１３Ｃが登録されずに残っていることが検出されるので、ステップｂ１に戻る。
【０１３２】
ステップｂ１に戻ると、試験シナリオ管理手段１３は、前回のステップｂ１における処理で取得した試験シナリオの次に記述された試験シナリオを取得し、ステップｂ２に移行する。本実施の形態では、図２０に示す第３試験シナリオ１３Ｃが取得され、ステップｂ２に移行する。ステップｂ２では、前述のようにして、試験シナリオ管理手段１３が保持するシナリオ構成情報に、既に登録されている試験シナリオがあるか否かが判断される。本実施の形態では、既に第１試験シナリオ１３Ａおよび第２試験シナリオ１３Ｂがシナリオ構成情報に存在するので、図２４のステップｃ１に移行する。
【０１３３】
ステップｂ２から図２４のステップｃ１に移行すると、前述のようにして、図２３のステップｂ１において取得した登録すべき試験シナリオの第１シナリオ要素の識別子が取出され、ステップｃ２に移行する。本実施の形態では、図２３のステップｂ１において第３試験シナリオ１３Ｃが取出されるので、ステップｃ１では、図２０に示す第３試験シナリオ１３Ｃの第１シナリオ要素１３６の識別子「ｅ」が取出され、ステップｃ２に移行する。
【０１３４】
ステップｃ２では、前述のようにして、シナリオ構成情報に存在する既存の試験シナリオが取出され、ステップｃ３に移行する。本実施の形態では、既存の試験シナリオとしてシナリオ構成情報に存在する第１試験シナリオ１３Ａおよび第２試験シナリオのうち、先に登録された第１試験シナリオ１３Ａが取出され、ステップｃ３に移行する。
【０１３５】
ステップｃ３では、前述のようにして、ステップｃ２において取出された試験シナリオの第１シナリオ要素の識別子を取出し、ステップｃ４に移行する。本実施の形態では、ステップｃ２において第１試験シナリオ１３Ａが取出されるので、第１試験シナリオ１３Ａの第１シナリオ要素１３０の識別子「ａ」が取出され、ステップｃ４に移行する。
【０１３６】
ステップｃ４では、前述のようにして、ステップｃ１において取出した登録すべき試験シナリオの第１シナリオ要素の識別子と、ステップｃ３において取出した既存の試験シナリオの第１シナリオ要素の識別子とを比較し、２つの識別子が一致すれば図２５のステップｄ１に移行し、一致しなければステップｃ５に移行する。本実施の形態では、ステップｃ１において取出された第３試験シナリオ１３Ｃの第１シナリオ要素１３６の識別子は「ｅ」であり、ステップｃ３において取出された第１試験シナリオ１３Ａの第１シナリオ要素１３０の識別子「ａ」とは一致しないので、ステップｃ５に移行する。
【０１３７】
ステップｃ５では、試験シナリオ管理手段１３は、シナリオ構成情報で管理される既存の試験シナリオのうち、取出していない試験シナリオが存在するか否かを判断し、存在すると判断するとステップｃ２に戻り、存在しないと判断すると、図２３のステップｂ４に移行する。本実施の形態では、シナリオ構成情報で管理される第１試験シナリオ１３Ａおよび第２試験シナリオ１３Ｂのうち、第２試験シナリオ１３Ｂが取出されていないので、ステップｃ２に戻る。
【０１３８】
ステップｃ２に戻ると、ステップｃ２では、既存の試験シナリオのうち、取出されずに残っている試験シナリオ、具体的には、第２試験シナリオ１３Ｂが取出され、ステップｃ３に移行する。ステップｃ３では、ステップｃ２において取出された試験シナリオの第１シナリオ要素の識別子、具体的には、第２試験シナリオ１３Ｂの第１シナリオ要素１３３の識別子「ａ」が取出され、ステップｃ４に移行する。
【０１３９】
ステップｃ４では、前述のようにして、ステップｃ１において取出した登録すべき試験シナリオの第１シナリオ要素の識別子と、ステップｃ３において取出した既存の試験シナリオの第１シナリオ要素の識別子とが比較される。本実施の形態では、ステップｃ１において取出された第３試験シナリオ１３Ｃの第１シナリオ要素１３６の識別子は「ｅ」であり、ステップｃ３において取出した第２試験シナリオ１３Ｂの第１シナリオ要素１３３の識別子「ａ」と一致しないので、ステップｃ５に移行する。
【０１４０】
ステップｃ５では、再び、シナリオ構成情報で管理される既存の試験シナリオのうち、取出していない試験シナリオが存在するか否かが判断される。本実施の形態では、シナリオ構成情報で管理される全ての試験シナリオ、すなわち第１試験シナリオ１３Ａおよび第２試験シナリオ１３Ｂが取出されているので、図２３のステップｂ４に移行する。
【０１４１】
ステップｃ５から図２３のステップｂ４に移行すると、試験シナリオ管理手段１３は、前述のようにして、ステップｂ１で取得した登録すべき試験シナリオの図２４のステップｃ１において取出した第１シナリオ要素の識別子に基づいて、そのシナリオ要素の節に節番号を付加し、シナリオ構成情報に登録する。本実施の形態では、図２４のステップｃ１において取出された第３試験シナリオ１３Ｃの第１シナリオ要素１３６の識別子「ｅ」から、この第１シナリオ要素１３６の節「ｅ」に付加する節番号を「１３Ｃ＿ｅ」とし、シナリオ構成情報に格納する。このようにして節および節番号をシナリオ構成情報に登録すると、ステップｂ５に移行する。
【０１４２】
ステップｂ５では、前述のようにして、ステップｂ１において取得された登録すべき試験シナリオに、取出されていないシナリオ要素が存在するか否かが判断される。本実施の形態では、ステップｂ１において取得された第３試験シナリオ１３Ｃには、図２０に示すように、取出していないシナリオ要素として、第２シナリオ要素１３７および第３シナリオ要素１３８が残っているので、ステップｂ３に戻る。
【０１４３】
ステップｂ３では、前述のようにして、ステップｂ１において取得された登録すべき試験シナリオのうち、前回のステップｂ３における処理で取出されたシナリオ要素の次に記述されたシナリオ要素の識別子が取出され、ステップｂ４に移行する。本実施の形態では、図２０に示す第３試験シナリオ１３Ｃの第２シナリオ要素１３７の識別子「ｆ」が取出され、ステップｂ４に移行する。ステップｂ４では、ステップｂ３において取出された識別子「ｆ」に基づいて、その識別子の節「ｆ」に節番号が付加され、シナリオ構成情報に登録される。第３試験シナリオ１３Ｃの第２シナリオ要素１３７の節「ｆ」は、第３試験シナリオ１３Ｃの第１シナリオ要素１３６の節「ｅ」に続く節であるので、節番号としては、「１３Ｃ＿ｅ−１３Ｃ＿ｆ」が付加され、シナリオ構成情報の節「ｅ」に続けて節「ｆ」が格納される。このようにして節および節番号を登録した後、ステップｂ５に移行する。
【０１４４】
ステップｂ５では、前述のようにして、ステップｂ１において取得された登録すべき試験シナリオに、取出されていないシナリオ要素が存在するか否かが再び判断される。本実施の形態では、ステップｂ１において取得された第３試験シナリオ１３Ｃに、第３シナリオ要素１３８が取出されずに残っていることが検出されるので、ステップｂ５から再びステップｂ３に戻る。ステップｂ３では、前述のようにして、ステップｂ１において取得した第３試験シナリオ１３Ｃのうち、前回のステップｂ３における処理で取出された第２シナリオ要素１３７の次に記述された第３シナリオ要素１３８の識別子「ｇ」が取出され、ステップｂ４に移行する。ステップｂ４では、ステップｃ１において取出された第３試験シナリオ１３Ｃの第３シナリオ要素１３８の節「ｇ」に、節番号「１３Ｃ＿ｅ−１３Ｃ＿ｆ−１３Ｃ＿ｇ」が付加され、シナリオ構成情報の節「ｆ」に続けて節「ｇ」が格納される。このようにして節および節番号をシナリオ構成情報に登録すると、ステップｂ５に移行する。
【０１４５】
ステップｂ５では、前述のようにして、ステップｂ１において取得された登録すべき試験シナリオに、取出されていないシナリオ要素が存在するか否かが判断される。本実施の形態では、ステップｂ１において取得された第３試験シナリオ１３Ｃに含まれるシナリオ要素のうち、全てのシナリオ要素、すなわち第１〜第３シナリオ要素１３６〜１３８が取出されており、取出されていないシナリオ要素は無いので、ステップｂ６に移行する。ステップｂ６では、前述のようにして、入力された試験シナリオが全て登録されたか否かが判断される。本実施の形態では、図２０に示す登録すべき全ての試験シナリオ１３Ａ〜１３Ｃが既に登録されているので、シナリオ管理手段１３は、入力された試験シナリオが全て登録されたと判断し、図２３〜図２５に示すフローチャートの全ての処理手順を終了する。
【０１４６】
以上のようにして、図２３〜図２５に示すフローチャートに従って、図２０に示す第１〜第３試験シナリオ１３Ａ〜１３Ｃの登録処理が実行されると、図２１に示す木構造のシナリオ構成情報１４０が作成され、試験シナリオ管理手段１３によって保持されることになる。図２１に示すシナリオ構成情報１４０において、図２０に示す各シナリオ要素１３０〜１３８の節ａ〜ｇには、図２２に示す識別子が節番号として割当てられている。
【０１４７】
続いて、図２１に示すシナリオ構成情報１４０のような木構造のシナリオ構成情報で試験シナリオを管理した場合の検証に必要な正解データの数およびその内容について説明する。
【０１４８】
木構造のシナリオ構成情報で試験シナリオを管理しない場合、検証に必要な正解データは、試験シナリオに含まれる検証記述の数だけ必要である。たとえば、図２０に示す例の場合は、第１〜第３試験シナリオ１３Ａ〜１３Ｃに含まれる９個のシナリオ要素１３０〜１３８に対応した９個の正解データが必要である。
【０１４９】
本実施の形態では、前述のように木構造のシナリオ構成情報を用いて、試験シナリオ管理手段１３で試験シナリオを管理するので、検証に必要な正解データの数を削減することができる。具体的には、試験シナリオのシナリオ要素の記述および実行位置、すなわち先頭からの出現順序が一致する場合には、それらのシナリオ要素に同じ節および節番号を割当ててシナリオ構成情報に格納して管理することによって、シナリオ要素保持手段１４に保持するシナリオ要素の数を削減することができる。これによって、検証に必要な正解データの数を削減することができる。
【０１５０】
たとえば、図２０に示す例では、第２試験シナリオ１３Ｂの第１シナリオ要素１３３および第２シナリオ要素１３４は、第１試験シナリオ１３Ａの第１シナリオ要素１３０および第２シナリオ要素１３１とそれぞれ同一になるので、シナリオ要素保持手段１４によって保持されるシナリオ要素は、７個に減少する。したがって、検証に必要な正解データは、９個から７個に減少する。
【０１５１】
以上のように本実施の形態によれば、試験シナリオ管理手段１３は、複数の試験シナリオ間におけるシナリオ要素の内容の一致、具体的には識別子および出現順序の一致を検出し、一致するシナリオ要素に対しては、シナリオ構成情報で同じ節および節番号を割当てて管理する。これによって、複数のシナリオ要素間で、正解データを共用することができるので、シナリオ要素における検証に必要な正解データの数を削減することができる。したがって、対象プログラム１１の試験に必要な正解データの作成数および作成に要する時間を削減することができるので、対象プログラムに対する試験の数が増えた場合でも、時間および労力をかけることなく、低コストでソフトウェア試験の構築および維持を実現することができる。
【０１５２】
また本実施の形態では、試験シナリオ管理手段１３は、前述の図１７および図２１に示す木構造のシナリオ構成情報１２０，１４０を用いて、一致するシナリオ要素に対して、同じ節および節番号を割当てて管理する。このように複数の試験シナリオ間で共通するシナリオ要素を、その複数の試験シナリオに共有させて管理することによって、前述のように対象プログラム１１の試験に必要な正解データの作成数および作成に要する時間を削減することが可能な試験管理装置１を容易に実現することができる。
【０１５３】
また本実施の形態では、試験シナリオ管理手段１３は、シナリオ要素に、そのシナリオ要素の出現順序を特定可能な位置番号として、節番号を付加して試験シナリオを管理する。また試験シナリオ管理手段１３は、共通のシナリオ要素には、同じ位置番号、具体的には同じ節番号を付加する。これによって、節番号によって、シナリオ要素の出現順序が一致するか否かを容易に判断することができるので、前述のように対象プログラム１１の試験に必要な正解データの作成数および作成に要する時間を削減することが可能な試験管理装置１を容易に実現することができる。
【０１５４】
また本実施の形態では、正解情報は正解データ識別子を含み、正解データ識別子は、その正解データ識別子が含まれる正解情報に対応するシナリオ要素の位置番号である節番号で与えられる。これによって、各シナリオ要素に対応する正解情報を容易に探索することができるので、前述のように対象プログラム１１の試験に必要な正解データの作成数および作成に要する時間を削減することが可能な試験管理装置１を容易に実現することができる。
【０１５５】
また本実施の形態では、試験シナリオ管理手段１３は、試験実行手段１２から試験シナリオを要求されると、その試験シナリオに含まれるシナリオ要素識別子を含むシナリオ要素をシナリオ要素保持手段１４から取出す。そして試験シナリオ管理手段１３は、取出したシナリオ要素を試験シナリオに記述される実行順序に従って連結するとともに、取出したシナリオ要素のシナリオ要素識別子を位置番号である節番号に置換して試験シナリオを作成し、作成した試験シナリオを試験実行手段１２に与える。
【０１５６】
これによって、試験シナリオ管理手段１３は、シナリオ要素の出現順序がわかる形で試験シナリオを管理するとともに、試験実行手段１２から要求されたときには、試験実行手段１２で実行される形の試験シナリオを作成して試験実行手段１２に与えることができる。したがって、前述のように対象プログラム１１の試験に必要な正解データの作成数および作成に要する時間を削減することが可能な試験管理装置１を容易に実現することができる。
【０１５７】
前述の実施の形態は、本発明の例示に過ぎず、本発明の範囲内において構成を変更することができる。たとえば前述の実施の形態では、対象プログラムからの出力データは、文字列情報として説明したが、これに限らず、たとえば対象プログラムが表示する表示画面などのバイナリデータであってもよい。対象プログラムの出力データがバイナリデータである場合、出力データが仕様に合致するか否かの検証は、たとえばビット列が一致するか否かを判断することによって実現可能である。
【０１５８】
また本実施の形態では、図２３〜図２５に示すフローチャートの処理が開始されるタイミングは、使用者によって試験シナリオが作成されて試験シナリオ管理手段１３に登録されるタイミングとしたが、これに限定されない。たとえば、一定周期毎に処理を開始するように構成されてもよいし、また、試験シナリオ管理手段１３に複数の新しい試験シナリオが格納されたときに処理を開始するように構成されてもよいし、試験管理装置１０によって、ソフトウェアに対する試験が開始されるときに処理を開始するように構成されてもよい。
【符号の説明】
【０１５９】
１０  試験管理装置、１１  対象プログラム、１２  試験実行手段、１３  試験シナリオ管理手段、１４  シナリオ要素保持手段、１５  出力保持手段、１６  結果判定手段、１７  正解保持手段。
【図１】
2011123780.tif 000003
【図２】
2011123780.tif 000004
【図３】
2011123780.tif 000005
【図４】
2011123780.tif 000006
【図５】
2011123780.tif 000007
【図６】
2011123780.tif 000008
【図７】
2011123780.tif 000009
【図８】
2011123780.tif 000010
【図９】
2011123780.tif 000011
【図１０】
2011123780.tif 000012
【図１１】
2011123780.tif 000013
【図１２】
2011123780.tif 000014
【図１３】
2011123780.tif 000015
【図１４】
2011123780.tif 000016
【図１５】
2011123780.tif 000017
【図１６】
2011123780.tif 000018
【図１７】
2011123780.tif 000019
【図１８】
2011123780.tif 000020
【図１９】
2011123780.tif 000021
【図２０】
2011123780.tif 000022
【図２１】
2011123780.tif 000023
【図２２】
2011123780.tif 000024
【図２３】
2011123780.tif 000025
【図２４】
2011123780.tif 000026
【図２５】
2011123780.tif 000027