(57)【特許請求の範囲】
【請求項１】
コマンド及び因子の水準値を設定する要素を夫々含む複数の入力画面を画面インタフェースとして有するソフトウェアシステムの検証用データをコンピュータが生成する生成方法であって、
前記コンピュータが、
各入力画面毎に、コマンドの定義と各因子がとりうる水準値の定義とを含む第１の定義データ、及び、他の画面に遷移させる遷移コマンドと遷移先入力画面との対応を定義する第２の定義データが入力されると、前記第１の定義データに基づいて、入力画面毎に、各コマンドと幾つかの因子の水準値とからなる複数のテストデータを含む組合せテストデータを生成し、
何れかの入力画面の組合せテストデータから順次テストデータを選択し、選択したテストデータが遷移コマンドを含んでいる場合には、前記第２の定義データに基づき遷移先入力画面を特定し、前記遷移先入力画面の組合せテストデータから順次テストデータを選択し、選択した各テストデータを選択順に結合する
ことを特徴とするソフトウェアシステムの検証用データ生成方法。
【請求項２】
コマンド及び因子の水準値を設定する要素を夫々含む複数の入力画面を画面インタフェースとして有するソフトウェアシステムの検証用データの生成プログラムであって、
コンピュータに、
各入力画面毎に、コマンドの定義と各因子がとりうる水準値の定義とを含む第１の定義データ、及び、他の画面に遷移させる遷移コマンドと遷移先入力画面との対応を定義する第２の定義データが入力された際に、前記第１の定義データに基づいて、入力画面毎に、各コマンドと幾つかの因子の水準値とからなる複数のテストデータを含む組合せテストデータを生成させ、
何れかの入力画面の組合せテストデータから順次テストデータを選択し、選択したテストデータが遷移コマンドを含んでいる場合には、前記第２の定義データに基づき遷移先入力画面を特定し、前記遷移先入力画面の組合せテストデータから順次テストデータを選択し、選択した各テストデータを選択順に結合させる
ことを特徴とするソフトウェアシステムの検証用データ生成プログラム。
【請求項３】
前記第１の定義データに、ソフトウェアシステムに共通する標準的なコマンドの定義が含まれている
ことを特徴とする請求項２記載のソフトウェアシステムの検証用データ生成プログラム。
【請求項４】
コマンド及び因子の水準値を設定する要素を夫々含む複数の入力画面を画面インタフェースとして有するソフトウェアシステムの検証用データをコンピュータが生成する検証用データ生成方法であって、
前記コンピュータが、
他の画面に遷移させる遷移コマンドを有する遷移元画面と遷移先画面との遷移関係によって相互に繋がった開始画面から到達画面に至る一連の入力画面の集合について、前記遷移関係を定義する第１の定義データ、及び、前記第１の定義データによって定義された集合毎に、集合に属する各入力画面に含まれる要素に対応した因子がとりうる水準値の定義及び到達画面のコマンドの定義を含む第２の定義データの入力に応じて、前記第１の定義データによって定義された集合毎に、前記第２の定義データに基づいて、各コマンドと幾つかの因子の水準値とからなる複数のテストデータを含む組合せテストデータを生成することを特徴とする検証用データ生成方法。
【請求項５】
コマンド及び因子の水準値を設定する要素を夫々含む複数の入力画面を画面インタフェースとして有するソフトウェアシステムの検証用データの生成プログラムであって、
コンピュータに、
他の画面に遷移させる遷移コマンドを有する遷移元画面と遷移先画面との遷移関係によって相互に繋がった開始画面から到達画面に至る一連の入力画面の集合について、前記遷移関係を定義する第１の定義データ、及び、前記第１の定義データによって定義された集合毎に、集合に属する各入力画面に含まれる要素に対応した因子がとりうる水準値の定義及び到達画面のコマンドの定義を含む第２の定義データの入力に応じて、前記第１の定義データによって定義された集合毎に、前記第２の定義データに基づいて、各コマンドと幾つかの因子の水準値とからなる複数のテストデータを含む組合せテストデータを生成させる
ことを特徴とする検証用データ生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画面インタフェースを有するソフトウェアシステムの検証に用いられる検証用データの作成方法，及び、検証用データ作成プログラムに関するものである。
【背景技術】
【０００２】
ソフトウェアシステムの検証方法の一つとして、入力画面に対するコマンド等の入力とそれに対するコマンド実行結果との関係（外部入出力仕様）のみを用いて、当該ソフトウェアシステムが正常に動作しているか否かを検証する、所謂ブラックボックス検証がある。かかるブラックボックス検証においては、コマンド入力時に設定可能な因子（画面インタフェースの各要素に設定可能な因子）の全組合せの数が膨大となる場合がある。その場合でも、テストの品質を維持しつつテスト回数を削減可能とすべく、直交表法やオールペア法といった組合せテストが提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−１４８４５号公報
【特許文献２】特開２００５−７０８３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
かかる組合せテスト用の組合せテストデータは、入力画面が１画面のみである場合や，入力画面が複数画面あるが相互に全く入力の関連性がない場合には、公知の組合せテストの作成ツールをそのまま採用して作成可能である。
【０００５】
しかしながら、入力画面が複数画面あり、ある入力画面中で入力されたコマンドが、当該画面の遷移元である他の入力画面上のアイテムに設定済みの因子の水準値を参照する場合のように、各入力画面間が連携している画面インタフェースの場合には、問題がある。
【０００６】
即ち、かかる画面インタフェースについて公知の組合せテストの作成ツールをそのまま採用した場合、全入力画面上の全アイテムを因子とし、各アイテムに設定可能な全因子を水準値として定義した上で、組合せテストデータを生成することになる。
【０００７】
しかし、ある入力画面Ａ上のボタンに設定されたコマンドによって起動又は遷移された入力画面Ｂ上のボタンに設定されたコマンドは、入力画面Ａ上のアイテムに設定された因子の水準値を参照するが、起動又は遷移とは無関係な入力画面Ｃ上のアイテムに設定された因子を必ずしも参照しない。かかる場合においても、上述した公知の組合せテスト作成ツールをそのまま採用するならば、テスト対象のコマンドが実際には参照しない因子が、当該コマンドについてのテストデータの因子として含まれることになる。その結果、生成されるテストデータ数，因子数等の観点から、テスト効率が非常に悪いものとなってしまう。
【０００８】
例えば、図４において、画面２及び画面３は、画面１上のボタンに設定されたコマンド１及びコマンド２により夫々起動されるが、両画面２，３が同時に起動されることはない。それ故、画面２上のボタンに設定されたコマンド３は、画面３のチェックボックス３及びテキストボックス３に設定された因子の他、画面１上のチェックボックス１，２，オプションボタン１，テキストボックス１，２に夫々設定された因子の水準値を参照する可能性がある。しかし、画面２上のボタンに設定されたコマンド３は、画面３上のチェックボ
ックス４及びテキストボックス４に設定された因子の水準値を参照しない。同様に、画面３上のボタンに設定されたコマンド４は、画面３のチェックボックス４及びテキストボックス４に設定された因子の他、画面１上のチェックボックス１，２，オプションボタン１，テキストボックス１，２に夫々設定された因子の水準値を参照する可能性がある。しかし、画面３上のボタンに設定されたコマンド４は、画面２上のチェックボックス３及びテキストボックス３に設定された因子の水準値を参照しない。それにも係わらず、公知の組合せテスト作成ツールをそのまま採用すると、同時に起動される必然性がない画面２及び画面３上で夫々設定された因子を同時に列挙して組合せテストデータの生成をしてしまう。その結果、無駄なテストデータの増加，テストデータにおいて設定不要な因子がテストデータ上に現れてしまうといった問題が、生じてしまう。
【０００９】
本案の課題は、各画面上の各コマンドが参照しない他の画面上に設定されるべき因子が混入することなく、起動・遷移元の画面上に設定されるべき因子を反映した高品質かつ高効率なシステム検証をすることができるソフトウェアシステムの検証用データの作成である。
【課題を解決するための手段】
【００１０】
コマンド及び因子の水準値を設定する要素を夫々含む複数の入力画面を画面インタフェースとして有するソフトウェアシステムの検証用データをコンピュータが生成する生成方法であって、前記コンピュータが、各入力画面毎に、コマンドの定義と各因子がとりうる水準値の定義とを含む第１の定義データ、及び、他の画面に遷移させる遷移コマンドと遷移先入力画面との対応を定義する第２の定義データが入力されると、前記第１の定義データに基づいて、入力画面毎に、各コマンドと幾つかの因子の水準値とからなる複数のテストデータを含む組合せテストデータを生成し、何れかの入力画面の組合せテストデータから順次テストデータを選択し、選択したテストデータが遷移コマンドを含んでいる場合には、前記第２の定義データに基づき遷移先入力画面を特定し、前記遷移先入力画面の組合せテストデータから順次テストデータを選択し、選択した各テストデータを選択順に結合することを特徴とする。
【発明の効果】
【００１１】
上記方法によると、各画面上の各コマンドが参照しない他の画面上に設定されるべき因子が混入することなく、起動・遷移元の画面上に設定されるべき因子を反映した高品質かつ高効率なシステム検証をすることができる検証用データが、作成される。
【図面の簡単な説明】
【００１２】
【図１】検証用データ作成方法の実施形態であるコンピュータのブロック図
【図２】第１実施例によるシステム検証データ作成プログラムによる処理を示すフローチャート
【図３】図２のＳ０１２にて実行されるソフトウェアシステム全体のテストデータ生成サブルーチンを示すフローチャート
【図４】入力画面相互間の起動・遷移の例を示す図
【図５】因子・水準定義入力画面例を示す図
【図６】標準コマンド定義の自動生成後における因子・水準定義入力画面例を示す図
【図７】起動・遷移先定義入力時における因子・水準定義入力画面を示す図
【図８】各画面毎のテストデータのデータ構造及びその相関を示す表
【図９】画面選択画面を示す図
【図１０】画面起動・遷移情報が設定された因子及び水準値の定義データのデータ構造を示す表
【図１１】起動・遷移先定義入力時における因子・水準定義入力画面を示す図
【図１２】統合されたテストデータのデータ構造を示す表
【図１３】遷移画面集合の範囲を示す図
【図１４】第２実施例による検証用データ作成プログラムによる処理を示すフローチャート
【図１５】因子及び水準値の定義データのデータ構造を示す表
【発明を実施するための形態】
【００１３】
以下、図面に基づいて、本案の実施の形態を説明する。
［実施例１］
図１は、検証用データ作成方法の実施の形態であるコンピュータ１の概略ハードウェア構成を示すブロック図である。このコンピュータ１は、相互にバスＢによって接続されたＣＰＵ１０，ディスプレイ１２，入力装置１２，ディスクドライブ装置１３，ＲＡＭ１４，プリンタ１７，リムーバブルディスク１８等の通常のハードウェア構成を有する汎用のコンピュータ１である。
【００１４】
ディスクドライブ装置１３（コンピュータによる読取りが自在な記憶媒体）には、システム検証データ作成プログラムの実施の形態であるシステム検証データ作成プログラム１５，及び公知の組合せテスト作成ツールプログラム１６が、インストールされている。
【００１５】
ＣＰＵ１０は、これらプログラム１５，１６をディスクドライブ装置１３からＲＡＭ（Random Access Memory）１４に読み出し、これらプログラム１５，１６に従って、システム検証データの作成処理を実行する。即ち、ＣＰＵ１０は、これらプログラム１５，１６に従って、システム検証データを、生成する。ここで、システム検証データとは、画面インタフェースを有する検証対象ソフトウェアシステムに対する検証の手順を図示せぬテスターに指示する時系列順に連続した一連のテストデータをいう。そして、ＣＰＵ１０は、生成したシステム検証データを、ディスプレイ１１及びディスクドライブ装置１３に出力する。テスターは、検証対象ソフトウェアシステムを実行しているコンピュータシステムに対してシステム検証データを構成する各テストデータの順番通りに、各テストデータの内容に従って、各因子の水準値を設定してからコマンドを実行する。テスターとは、かかる一連の操作を行う人，ロボット，マクロないしプログラム等である。
【００１６】
なお、上述した公知の組合せテスト作成ツールプログラム１６は、ＣＰＵ１０に対して、コマンド名，１又は複数の因子（パラメータ）名及び各因子について設定可能な具体値（水準値）が入力されると、上述した直交表法又はオールペア法を実施させるプログラムである。即ち、ＣＰＵ１０は、組合せテスト作成ツールプログラム１６に従った適正個数の当該因子及び水準値の組合せを作成させて、作成した組合せを出力させる。
【００１７】
以下、ＣＰＵ１０が当該システム検証データ作成プログラム１５に従って実行する処理の内容を、図２及び図３のフローチャートを参照して説明する。
【００１８】
当該処理は、オペレータが入力装置１２を用いて所定の起動コマンドをＣＰＵ１０に入力したことをトリガに、当該システム検証データ作成プログラム１５がＣＰＵ１０によってディスクドライブ装置１３から読み込まれることによって、スタートする。
【００１９】
スタート後、最初のＳ００１では、ＣＰＵ１０は、画面番号を示す変数ｎを初期値“１”に設定する。
【００２０】
続いて、ＣＰＵ１０は、各画面毎に因子及び水準値の定義を入力するために、Ｓ００２乃至Ｓ００７のループ処理を実行する。
【００２１】
当該ループ処理の先頭におけるＳ００２では、ＣＰＵ１０は、画面ｎの因子・水準値定
義入力画面を、ディスプレイ１１に表示する。
【００２２】
図５は、検証対象であるソフトウェアシステムが、図４に示したように連携する３つの画面１〜３を含む画面インタフェースを備えている場合における画面１（スタート画面）用の、因子・水準値定義入力画面の例である。上述したように、図４に示す画面インタフェースでは、画面２及び画面３は、画面１上のボタンに設定されたコマンド１及びコマンド２により夫々起動されるが、両画面２，３が同時に起動されることはない。
【００２３】
また、画面２上のボタンに設定されたコマンド３は、画面２のチェックボックス３及びテキストボックス３に設定された因子の水準，及び、画面１上のチェックボックス１，２，オプションボタン１，テキストボックス１，２に夫々設定された因子の水準値を参照する可能性がある。しかし、画面２上のボタンに設定されたコマンド３は、画面３上のチェックボックス４及びテキストボックス４に設定された因子の水準値を参照しない。
【００２４】
同様に、画面３上のボタンに設定されたコマンド４は、画面３のチェックボックス４及びテキストボックス４に設定された因子の水準値，及び、画面１上のチェックボックス１，２，オプションボタン１，テキストボックス１，２に夫々設定された因子の水準値を参照する可能性がある。しかし、画面３上のボタンに設定されたコマンド４は、画面２上のチェックボックス３及びテキストボックス３に設定された因子の水準値を参照しない。
【００２５】
図５に示す因子・水準値定義入力画面の例では、同画面上のボタンに設定されたコマンド１，２は、「コマンド」なる因子の各水準値（水準１，水準２）として定義される。また、チェックボックス１，２は、チェックの有無という二値を取りうるので、因子・水準値定義入力画面では、二つの水準値（ｏｎ，ｏｆｆ）が定義される。また、オプションボタン１は、四つの値を取りうるので、因子・水準値定義入力画面では、四つの水準値（Op11，Op12，Op13，Op14）が定義される。また、各テキストボックス１，２については、因子・水準値定義入力画面では、夫々に設定され得る値が水準値として定義される。なお、因子・水準値定義入力画面における因子の種類（因子名）の定義は、オペレータが、画面の行を適宜追加させつつ手入力によって行っても良いし、ＣＰＵ１０が、図示せぬ検証対象プログラム中の画面データから、自動的に抽出しても良い。
【００２６】
次のＳ００３では、ＣＰＵ１０は、オペレータによる上記因子・水準値定義入力画面に対する入力を受け付ける。即ち、ＣＰＵ１０は、オペレータが入力装置１２を操作することによって、ディスプレイ１３上に表示されている画面ｎの因子・水準値定義入力画面に画面ｎの因子及び水準値の定義を設定した状態で、入力装置１２中の所定のキーが押下されるのを待つ。そして、当該所定のキーが入力されると、その時点で画面ｎの因子・水準値定義入力画面に設定された因子及び水準値の定義データ２０を、ＲＡＭ１４上の一時記憶領域に保存する。当該因子及び水準値の定義データ２０は、図５に示す表形式データ構造を有し、各入力画面毎にコマンドの定義と各因子がとりうる水準値の定義を含む第１の定義データに、相当する。
【００２７】
次のＳ００４では、ＣＰＵ１０は、“戻る”，“進む”，“更新”，“閉じる”，“中止”等の標準的なコマンド名を生成して、ディスプレイ１３上に表示されている画面ｎの因子・水準値定義入力画面に、因子「コマンド」の各水準値として追加表示する。また、ＣＰＵ１０は、自動生成した因子「コマンド」の各水準値（標準的なコマンド）を、ＲＡＭ１４上の一時記憶領域に保存されている画面ｎの因子及び水準値の定義データ２０に、追加する。図６は、図５に示す因子・水準値定義入力画面及び因子及び水準値の定義データ２０に、標準的なコマンド“戻る”，“更新”，“コマンド１中止”，“コマンド２中止”，“閉じる”が追加した状態を示す。以上に説明したＳ００２〜Ｓ００４が、第１の入力手段に相当する。
【００２８】
次のＳ００５では、ＣＰＵ１０は、上記組合せテスト作成ツールプログラム１６を起動し、ＲＡＭ１４上の一時記憶領域に保存されている画面ｎの因子及び水準値の定義データ２０に対して直交表法又はオールペア法による組合せテストデータ作成処理を実行する。その結果、画面ｎの組合せテストデータ２１が、ＲＡＭ１４上の一時記憶領域に生成される。図６に示す画面１の因子及び水準値の定義データ２０に基づいて作成された画面１の組合せテストデータ２１−１を、図８上半に示す。また、画面２の因子及び水準値の定義データに基づいて作成された画面２の組合せテストデータ２１−２を、図８左下に示す。また、画面３の因子及び水準値の定義データに基づいて作成された画面３の組合せテストデータ２１−３を、図８右下に示す。Ｓ００５が、第１の定義データに基づいて、入力画面毎に、各コマンドと幾つかの因子の水準値とからなる複数のテストデータを含む組合せテストデータを生成する組合せテストデータ生成手段に、相当する。
【００２９】
次のＳ００６では、ＣＰＵ１０は、変数ｎが画面数の最大値（ｍａｘ）に達したか否かをチェックする。そして、未だ変数ｎが最大値に達していない場合には、ＣＰＵ１０は、Ｓ００７において変数ｎを一つインクリメントしてから、処理をＳ００２へ戻し、次の画面に対する因子及び水準値の設定を行う。これに対して、変数ｎが最大値に達したとＳ００６にて判断した場合には、ＣＰＵ１０は、処理をＳ００８へ進める。
【００３０】
Ｓ００８では、ＣＰＵ１０は、変数ｎを初期値“１”にリセットする。
【００３１】
続いて、ＣＰＵ１０は、各画面毎に、当該画面上にボタンが置かれた何れかのコマンドが他画面の起動又は他画面への遷移を命じるものであった場合において、起動又は遷移先の画面を定義するために、Ｓ００９乃至Ｓ０１４のループ処理を実行する。
【００３２】
当該ループ処理の先頭におけるＳ００９では、ＣＰＵ１０は、ディスプレイ１１上に表示されている画面ｎの因子・水準値定義入力画面をアクティブとする。
【００３３】
次のＳ０１０では、ＣＰＵ１０は、変数ｍを初期値“１”に初期化する。
【００３４】
続いて、ＣＰＵ１０は、Ｓ０１１〜Ｓ０１３のサブループ処理を実行する。
【００３５】
当該サブループ処理の戦闘におけるＳ０１１では、ＣＰＵ１０は、ディスプレイ１１上に表示されている画面ｎの因子・水準値定義入力画面における“コマンドｍ”の画面起動・遷移情報の入力を、受け付ける。即ち、ＣＰＵ１０は、図７に示すように、画面ｎの因子・水準値定義入力画面における“コマンドｍ”のマスを網掛け表示するとともに、下位画面候補リストをディスプレイ１１上に表示する。図９に示すように、下位画面候補リストには、画面１〜画面ｍａｘの名称が、一覧されている。そして、ＣＰＵ１０は、下位画面候補リストに表示されている画面１〜画面ｍａｘのうち、当該コマンドｍによって遷移又は起動される画面（遷移先画面）の名称が操作者によって操作（入力装置１２であるマウスを用いたクリック）されるのを待つ。ここで、遷移とは、他の画面がアクティブにされることであり、起動とは、他の画面を生成してアクティブにすることである。従って、起動という機能には、遷移の機能が含まれている。従って、以下、単に「遷移」及び「起動」を包括して「起動」と称する場合もある。そして、ＣＰＵ１０は、下位画面候補リストに表示されている画面１〜画面ｍａｘの名称が操作されると、ＲＡＭ１４上の一時記憶領域に保存されている画面ｎの因子及び水準値の定義データ２０における“コマンドｍ”を、操作された画面１〜ｍａｘにリンクさせる。図１０は、かかるリンクの定義情報（以下、「画面起動・遷移情報」という）が設定された各画面１〜３の因子及び水準値の定義データ２０−１〜３のダイジェストを概念的に示している。上記画面起動・遷移情報が、他の画面に遷移させるコマンドと遷移先入力画面との対応を定義する第２の定義データに
相当する。なお、ＣＰＵ１０は、コマンドｍの内容が他の画面に対する移動・遷移でない場合（即ち、非遷移コマンドである場合）には、操作者は、下位画面候補リストを閉じれば良い。その場合には、上記画面起動・遷移情報は設定されない。Ｓ０１１が、第２の入力手段に相当する。
【００３６】
次のＳ０１２では、ＣＰＵ１０は、画面ｎの因子・水準値定義入力画面における全てのコマンドに対してＳ０１１の処理を完了したか否かをチェックする。そして、全てのコマンドに対して完了していない場合には、ＣＰＵ１０は、Ｓ０１３において変数ｍを一つインクリメントした後に、処理をＳ０１１へ戻し、図１１に示すように、画面ｎの因子・水準値定義入力画面における網掛け表示を、次のマスに移動させる。
【００３７】
これに対して、画面ｎの因子・水準値定義入力画面における全てのコマンドに対してＳ０１１の処理を完了したとＳ０１２にて判断した場合には、ＣＰＵ１０は、処理をＳ０１４へ進める。
【００３８】
Ｓ０１４では、ＣＰＵ１０は、変数ｎが最大値（ｍａｘ）に達したか否かをチェックする。そして、未だ変数ｎが最大値に達していない場合には、ＣＰＵ１０は、Ｓ０１５において変数ｎを一つインクリメントしてから、処理をＳ００９へ戻し、次の画面に対する因子及び水準値の設定を行う。これに対して、変数ｎが最大値に達したとＳ０１４にて判断した場合には、ＣＰＵ１０は、処理をＳ０１６へ進める。
【００３９】
Ｓ０１６では、ＣＰＵ１０は、ソフトウェアシステム全体に対するテストデータを生成する。即ち、ＣＰＵ１０は、Ｓ０１１にて画面起動・遷移情報が設定された各画面の因子及び水準値の定義データ２０を用いて、各画面の組合せテストデータ２１を構成するテストデータを所定手順で選択して挿入していく。これにより、ソフトウェアシステム全体に対するテストデータが生成される。Ｓ０１６が、結合手段に相当する。
【００４０】
図３は、Ｓ０１６にて実行されるソフトウェアシステム全体に対するテストデータ生成処理サブルーチンを示すフローチャートである。
【００４１】
このサブルーチンに入って最初のＳ１０１では、ＣＰＵ１０は、ＲＡＭ１４の一時記憶領域に保存されているスタート画面の組合せテストデータ２１から、所定のルールに従い、一つのテストデータを「現選択テストデータ」として選択する。この所定のルールには、ランダムも含まれている。そして、ＣＰＵ１０は、ＲＡＭ１４の一時記憶領域に「ソフトウェアシステム全体に対するテストデータ」を生成し、現選択テストデータを、その第１番目のテストデータとする。
【００４２】
続いて、ＣＰＵ１０は、Ｓ１０２〜Ｓ１１２のループ処理を実行する。このループ処理に入って最初のＳ１０２では、ＣＰＵ１０は、全画面１〜ｍａｘの組合せテストデータ２１の全テストデータを選択済みか否かを、チェックする。そして、未だ全テストデータを選択済みでなければ、ＣＰＵ１０は、処理をＳ１０３へ進める。
【００４３】
Ｓ１０３では、現選択テストデータのコマンドが、遷移コマンド（起動コマンドを含む）であるか、「戻る」遷移コマンドであるか、非遷移コマンドであるかを、チェックする。そして、ＣＰＵ１０は、遷移コマンド（起動コマンドを含む）であれば処理をＳ１０４へ進め、非遷移コマンドであれば処理をＳ１０７へ進め、「戻る」遷移コマンドであれば処理をＳ１０８へ進める。
【００４４】
Ｓ１０４では、ＣＰＵ１０は、「現選択テストデータ」のコマンドについて画面起動・遷移情報によって定義されている遷移先画面の組合せテストデータ２１を構成する全テス
トデータが選択済みであるか否かをチェックする。そして、未だ全テストデータを選択していなければ、ＣＰＵ１０は、Ｓ１０５において、上記遷移先画面の組合せテストデータ２１から、所定のルールに従い、未選択のテストデータのうちの一つを、新たな「現選択テストデータ」として選択する。そして、ＣＰＵ１０は、新たな「現選択テストデータ」を、ＲＡＭ１４の一時記憶領域上の「ソフトウェアシステム全体に対するテストデータ」の末尾に追加する。その上で、ＣＰＵ１０は、当該遷移先画面を「現画面」とする。Ｓ１０５を完了すると、ＣＰＵ１０は、処理をＳ１０２へ戻す。
【００４５】
これに対して、遷移先画面の組合せテストデータ２１を構成する全テストデータが選択済みであるとＳ１０４にて判断した場合には、ＣＰＵ１０は、処理をＳ１０６へ進める。Ｓ１０６では、ＣＰＵ１０は、現選択テストデータをスキップし、「現選択テストデータ」の次のテストデータを、新たな「現選択テストデータ」として選択し、ＲＡＭ１４の一時記憶領域上の「ソフトウェアシステム全体に対するテストデータ」の末尾に追加する。Ｓ１０６を完了すると、ＣＰＵ１０は、処理をＳ１０２に戻す。
【００４６】
一方、Ｓ１０７では、ＣＰＵ１０は、「現画面」の組合せテストデータ２１を構成する全テストデータが選択済みであるか否かをチェックする。そして、未だ全テストデータを選択していなければ、ＣＰＵ１０は、Ｓ１０８において、上記遷移先画面の組合せテストデータ２１から、「現選択テストデータ」の次のテストデータを、新たな「現選択テストデータ」として選択する。そして、ＣＰＵ１０は、新たな「現選択テストデータ」を、ＲＡＭ１４の一時記憶領域上の「ソフトウェアシステム全体に対するテストデータ」の末尾に追加する。Ｓ１０８を完了すると、ＣＰＵ１０は、処理をＳ１０２へ戻す。
【００４７】
これに対して、「現画面」の組合せテストデータ２１を構成する全テストデータが選択済みであるとＳ１０７にて判断した場合には、ＣＰＵ１０は、処理をＳ１０９へ進める。Ｓ１０９では、ＣＰＵ１０は、「現画面」の因子及び水準値の定義データ２０に設定された全画面起動・遷移情報に定義された全下位画面の組合せテストデータ２１を構成する全テストデータを選択済みであるか否かを、チェックする。そして、未だ全下位画面の全テストデータを選択していなければ、ＣＰＵ１０は、Ｓ１１０において、「現画面」の組合せテストデータ２１における次の遷移コマンドを含むテストデータまでスキップする。そして、ＣＰＵ１０は、当該テストデータを、新たな「現選択テストデータ」として選択して、ＲＡＭ１４の一時記憶領域上の「ソフトウェアシステム全体に対するテストデータ」の末尾に追加する。Ｓ１１０を完了すると、ＣＰＵ１０は、処理をＳ１０２へ戻す。
【００４８】
これに対して、全下位画面の全テストデータを選択済みであるとＳ１０９にて判断した場合には、ＣＰＵ１０は、Ｓ１１１において、「現画面」の組合せテストデータ２１における「戻る」遷移コマンドを含むテストデータを、新たな「現選択テストデータ」として選択して、ＲＡＭ１４の一時記憶領域上の「ソフトウェアシステム全体に対するテストデータ」の末尾に追加する。その上で、ＣＰＵ１０は、現画面の因子及び水準値の定義データ２０に設定された画面起動・遷移情報により定義された現画面の上位画面（遷移元）を、新たな「現画面」とする。Ｓ１１１を完了すると、ＣＰＵ１０は、処理をＳ１０２へ戻す。
【００４９】
一方、Ｓ１１２では、ＣＰＵ１０は、Ｓ１０３において最新に検知された遷移コマンドを含むテストデータの次のテストデータを、新たな「現選択テストデータ」として選択する。そして、ＣＰＵ１０は、現選択テストデータを、ＲＡＭ１４の一時記憶領域上の「ソフトウェアシステム全体に対するテストデータ」の末尾に追加する。その上で、ＣＰＵ１０は、現画面の因子及び水準値の定義データ２０に設定された画面起動・遷移情報により定義された現画面の上位画面（遷移元）を、新たな「現画面」とする。Ｓ１１２を完了すると、ＣＰＵ１０は、処理をＳ１０２へ戻す。
【００５０】
上述したループ処理を繰り返した結果として、全画面１〜ｍａｘの組合せテストデータ２１の全テストデータを選択済みであるとＳ１０２にて判断した場合には、ＣＰＵ１０は、当該サブルーチンを終了して、処理を図２のメインルーチンに戻す。処理が戻されたメインルーチンにおけるＳ０１６の次のＳ０１７では、Ｓ０１６にて生成したソフトウェアシステム全体のテストデータを、ディスプレイ１１又はプリンタ１７から出力し、若しくは、リムーバブルディスク１８に出力する。Ｓ０１７を完了すると、ＣＰＵ１０は、システム検証データ作成プログラムによる処理を終了する。
【００５１】
いま、図８に示すように画面１〜３の組合せテストデータ２１−１〜３が作成されており、図１０に示すように図面１〜３の因子及び水準値の定義データ２０に画面起動・遷移情報が設定されているとする。この場合、ＣＰＵ１０が、ソフトウェアシステム全体のテスト生成処理サブルーチンのＳ１０１において、所定のルールに従い、画面１のテスト項目６のテストデータを「現選択データ」として選択したとする。すると、ＣＰＵ１０は、ＲＡＭ１４の一時記憶領域に、当該テストデータを先頭とするソフトウェアシステム全体のテストデータを生成する。
【００５２】
画面１のテスト項目４のテストデータのコマンド１は、画面起動・遷移情報により画面２への遷移コマンドとして定義されている（Ｓ１０３：遷移コマンド）。そして、その処理時点では、画面２の全テストデータが未選択であるので（Ｓ１０４：ＮＯ）、ＣＰＵ１０は、所定のルールに従い、画面２のテスト項目２のテストデータを「現選択データ」として選択し、ソフトウェアシステム全体のテストデータに追加する。また、ＣＰＵ１０は、画面２を「現画面」とする（Ｓ１０５）。
【００５３】
画面２のテスト項目２のテストデータのコマンド３は、非遷移コマンドであり（Ｓ１０３：非遷移コマンド）、画面２の全テストデータを選択済みではない（Ｓ１０７：ＮＯ）。そこで、ＣＰＵ１０は、画面２のテスト項目３のテストデータを、「現選択データ」として選択し、ソフトウェアシステム全体のテストデータに追加する。
【００５４】
以後、Ｓ１０２，Ｓ１０３，Ｓ１０７，Ｓ１０８が繰り返されることにより、ソフトウェアシステム全体のテストデータに、順次、画面２のテスト項目３，４，５のテストデータが追加される。
【００５５】
画面２のテスト項目５のテストデータのコマンドは、戻るコマンドであるので（Ｓ１０３：戻るコマンド）、画面２の遷移元画面である画面１におけるテスト項目４の次のテスト項目５のテストデータを、「現選択データ」として選択する（Ｓ１１２）。ＣＰＵ１０は、当該画面２のテスト項目７のテストデータを、ソフトウェアシステム全体のテストデータに追加する。
【００５６】
画面１のテスト項目５のテストデータのコマンド２は、画面起動・遷移情報により画面３への遷移コマンドとして定義されている（Ｓ１０３：遷移コマンド）。そして、その処理時点では、画面３の全テストデータが未選択であるので（Ｓ１０４：ＮＯ）、ＣＰＵ１０は、所定のルールに従い、画面３のテスト項目１のテストデータを「現選択データ」として選択し、ソフトウェアシステム全体のテストデータに追加する。また、ＣＰＵ１０は、画面３を「現画面」とする（Ｓ１０５）。
【００５７】
画面３のテスト項目１のテストデータのコマンド４は、非遷移コマンドであり（Ｓ１０３：非遷移コマンド）、画面３の全テストデータを選択済みではない（Ｓ１０７：ＮＯ）。そこで、ＣＰＵ１０は、画面３のテスト項目１のテストデータを、「現選択データ」として選択し、ソフトウェアシステム全体のテストデータに追加する。
【００５８】
以後、Ｓ１０２，Ｓ１０３，Ｓ１０７，Ｓ１０８が繰り返されることにより、ソフトウェアシステム全体のテストデータに、順次、画面３のテスト項目２，３，４のテストデータが追加される。
【００５９】
画面３のテスト項目４のテストデータのコマンドは、戻るコマンドであるので（Ｓ１０３：戻るコマンド）、画面３の遷移元画面である画面１におけるテスト項目５の次のテスト項目６のテストデータを、「現選択データ」として選択する（Ｓ１１２）。ＣＰＵ１０は、当該画面１のテスト項目６のテストデータを、ソフトウェアシステム全体のテストデータに追加する。
【００６０】
以後、各画面１〜３の組合せテストデータ２１から順次選択されたテストデータが、ソフトウェアシステム全体のテストデータに追加される。以上のようにして生成されたソフトウェアシステム全体のテストデータのダイジェストを、図１２に示す。
＜作用＞
本実施例によって作成されたソフトウェアシステム全体のテストデータを構成する各テストデータは、夫々、画面毎に作成された組合せテストデータ２１に由来しているので、各テストデータ中のコマンドの因子は、該当する画面中の因子に限られる。従って、各テストデータ中には、コマンドが実際に参照しない画面上の因子，即ち、該当する画面とは同時に起動されることの無い他の画面上の因子は含まれない。従って、テストデータ数が膨大になることが防止されるので、高効率な検証テストが可能となる。
【００６１】
それにも関わらず、各下位画面上のボタンに設定されたコマンドについてのテストの実行順は、ソフトウェアシステム全体のテストデータにより、上位画面のコマンドについてのテストを実行した後に限られる。従って、各下位画面上のボタンに設定されたコマンドについてのテストを実行する時点では、上位画面のコマンドについてのテストが実行済みであるので、上位画面の各因子には水準値が設定されている。よって、テストされる各下位画面上のボタンに設定されたコマンドは、上位画面上の各因子の水準値を参照することができるので、高品質な検証テストが可能となる。
［実施例２］
上述した実施例１は、下位画面上のボタンに設定されたコマンドについての各テストデータ実行時における上位画面上の各因子の水準値の組合せは、一通りである。従って、下位画面上のボタンに設定されたコマンドの実行が上位画面上の因子の水準値如何に大きく依存する場合には、上位画面上の因子を、下位画面上のボタンに設定されたコマンドについての組合せテストデータの作成の要素とすれば良い。この場合でも、下位画面上のボタンに設定されたコマンドが参照しない他の下位画面上の因子の水準値は、組合せテストデータの作成の要素とすべきでない。
【００６２】
例えば、図１３の例では、画面１（スタート画面）上のボタンに設定されたコマンド１により画面２が起動され、画面２上のボタンに設定されたコマンド２により画面３が起動され、画面２のコマンド４により画面４が起動される。この場合、画面３及び画面４は同時に起動されることがない。従って、画面３上のボタンに設定されたコマンド５は、画面１上のテキストボックス１，２の水準値，チェックボックス１，２の水準値，及びオプションボタン１の水準値，画面２上のテキストボックス３の水準値，チェックボックス３の水準値を、参照する可能性がある。しかし、画面３上のボタンに設定されたコマンド５は、画面４上のオプションボタン２を参照することはない。同様に、画面４上のボタンに設定されたコマンド６は、画面１上のテキストボックス１，２の水準値，チェックボックス１，２の水準値，及びオプションボタン１の水準値，画面２上のテキストボックス３の水準値，チェックボックス３の水準値を、参照する可能性がある。しかし、画面４上のボタンに設定されたコマンド６は、画面３上のテキストボックス４の水準値及びチェックボッ
クス４の水準値を参照することはない。
【００６３】
そこで、画面１，画面２，画面３が、密連携する画面の集合，即ち、「遷移画面集合１」として扱われる。そして、各画面１，２，３上の構成要素（コマンド，チェックボックス等）に対応する因子の各水準が連結されて、画面３上のボタンに設定されたコマンドについての組合せテストデータの作成が行われる。また、画面１，画面２及び画面４が密連携する画面の集合，即ち、「遷移画面集合２」として扱われる。そして、各画面１，２，４上の構成要素（コマンド，チェックボックス等）に対応する因子の各水準が連結されて、画面４上のボタンに設定されたコマンドについての組合せテストデータの作成が行われる。
【００６４】
以下、実施例２においてＣＰＵ１０が当該システム検証データ作成プログラム１５に従って実行する処理の内容を、図１４のフローチャートを参照して説明する。
【００６５】
当該処理は、オペレータが入力装置１２を用いて所定の起動コマンドをＣＰＵ１０に入力したことをトリガに、当該システム検証データ作成プログラム１５がＣＰＵ１０によってディスクドライブ装置１３から読み込まれることによって、スタートする。
【００６６】
スタート後最初のＳ２００では、各「遷移画面集合」毎に、スタート画面から到達画面に至るまでの各入力画面間の遷移関係，即ち、他の入力画面に遷移するコマンドを含む遷移元入力画面と遷移先入力画面との関係（第１の定義データ）の入力を、受け付ける。Ｓ２００が、第１の入力手段に相当する。
【００６７】
次のＳ２０１では、ＣＰＵ１０は、「遷移画面集合１」を「現遷移画面集合」とする。
【００６８】
次のＳ２０２では、ＣＰＵ１０は、スタート画面を「現選択画面」として選択するとともに、ＲＡＭ１４上の「現遷移画面集合」の因子及び水準値の定義データ２０及びファイルシステム全体の組合せテストデータ２１を初期化する。Ｓ２０２の完了後、ＣＰＵ１０は、処理をＳ２０３へ進める。
【００６９】
Ｓ２０３では、ＣＰＵ１０は、「現選択画面」の因子・水準値定義入力画面を、ディスプレイ１１に表示する。そして、ＣＰＵ１０は、図１５に示すように、オペレータによって上記因子・水準値定義入力画面に入力された因子及び水準値を、ＲＡＭ１４上の「現遷移画面集合」の因子及び水準値の定義データ２０に追加する。その結果、ＲＡＭ１４上の「現遷移画面集合」の因子及び水準値の定義データ２０が、現遷移画面集合に属する各入力画面に含まれる因子がとりうる水準値の定義及び到達画面のコマンドの定義を含む第２の定義データに、相当する。
【００７０】
次のＳ２０４では、ＣＰＵ１０は、「現選択画面」が最下位画面であるか否かをチェックする。そして、「現選択画面」が最下位画面でなければ、ＣＰＵ１０は、処理をＳ２０５へ進める。
【００７１】
Ｓ２０５では、ＣＰＵ１０は、「現遷移画面集合」における「現選択画面」の未選択下位画面を、新たな「現選択画面」として選択する。Ｓ２０５を完了すると、ＣＰＵ１０は、処理をＳ２０３に戻す。上述したＳ２０３〜２０５が、第２の入力手段に相当する。
【００７２】
以上のＳ２０３〜Ｓ２０５のループ処理を繰り返した結果、「現選択画面」が最下位画面であるとＳ２０４にて判断した場合には、ＣＰＵ１０は、処理をＳ２０６へ進める。
【００７３】
Ｓ２０６では、ＣＰＵ１０は、組合せテスト作成ツール１６を起動し、ＲＡＭ１４上の
一時記憶領域に保存されている「現遷移画面集合」の因子及び水準値の定義データ２０に対して、当該組合せテスト作成ツール１６による処理を実行する。即ち、ＣＰＵ１０は、「現遷移画面集合」に属する複数画面についての因子及び水準値の定義データ２０の集合（図１５参照）に対して、当該組合せテスト作成ツール１６による処理を実行する。ＣＰＵ１０は、上記処理の結果生成された組合せテストデータを、ＲＡＭ１４上の一時記憶領域に保存されている画面全体の組合せテストデータ２１に追加する。よって、Ｓ２０６が、第１の定義データによって定義された集合毎に、前記第２の定義データに基ついて、各コマンドと幾つかの因子の水準値とからなる複数のテストデータを含む組合せテストデータを生成する組合せテストデータ生成手段に、相当する。Ｓ２０６の完了後、ＣＰＵ１０は、処理をＳ２０７へ進める。
【００７４】
Ｓ２０７では、ＣＰＵ１０は、「現選択画面」の上位画面を、新たな「現選択画面」として選択する。
【００７５】
次のＳ２０８では、ＣＰＵ１０は、「現選択画面」に未選択の下位画面が存在するか否かをチェックする。そして、「現選択画面」に未選択の下位画面が存在している場合には、ＣＰＵ１０は、Ｓ２０９において、「現遷移画面集合」の次の遷移画面集合を新たな「現遷移画面集合」とし、ＲＡＭ１４上の「現遷移画面集合」の因子及び水準値の定義データ２０を初期化する。Ｓ２０９を完了すると、ＣＰＵ１０は、処理をＳ２０５へ進める。その結果、新たな「現遷移画面集合」に対してＳ２０５，Ｓ２０３〜Ｓ２０４，Ｓ２０６が実行されることにより、新たな「現遷移画面集合」に基づく組合せテストデータが生成され、ＲＡＭ１４上に保存されている画面全体の組合せテストデータ２１に追加される。
【００７６】
一方、「現選択画面」に未選択下位画面がないとＳ２０８にて判断した場合、ＣＰＵ１０は、「現選択画面」がスタート画面であるか否かをチェックする。そして、「現選択画面」がスタート画面でない場合、ＣＰＵ１０は、処理をＳ２０７へ戻す。
【００７７】
これに対して、「現選択画面」がスタート画面である場合には、ＣＰＵ１０は、Ｓ２１１において、ＲＡＭ１４上に保存されている画面全体の組合せテストデータ２１を、ディスプレイ１１又はプリンタ１７から出力し、リムーバブルディスク１８に出力する。
【００７８】
本実施例によって作成されたソフトウェアシステム全体のテストデータを構成する各テストデータは、夫々、各コマンドが含まれる画面と同じ遷移画面集合に属する全画面上の全因子の水準値の定義データ２０に基づいて、生成される。特に、各下位画面上のボタンに設定されたコマンドについては、当該下位画面と同じ遷移画面集合に属する全画面上の全因子の水準値の定義データ２０に基づいて、テストデータが生成される。従って、各コマンドが参照し得る因子（同じ遷移画面集合に属する各画面上の各因子）は、組合せテストデータの生成に反映されるが、各コマンドが参照しない因子（同じ遷移画面集合に属しない画面上の各因子）は、組合せテストデータの生成に反映されない。よって、高効率であることを維持しつつ、より高品質な検証テストが可能となる。
【００７９】
＜コンピュータが読み取り可能な記録媒体＞ 
コンピュータその他の機械、装置（以下、コンピュータ等）に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
【００８０】
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等か
ら取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／Ｗ、ＤＶＤ、ブルーレイディスク、ＤＡＴ、８ｍｍテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスクやＲＯＭ（リードオンリーメモリ）等がある。
【符号の説明】
【００８１】
１    コンピュータ
１０    ＣＰＵ
１２    入力装置
１３    ディスクドライブ
１５    システム検証データ作成プログラム
１６    組合せテスト作成ツール
１７    プリンタ
１８    リムーバブルディスク
２０    因子及び水準値の定義データ
２１    組合せテストデータ
【図１】
0005407718.tif 000002
【図２】
0005407718.tif 000003
【図３】
0005407718.tif 000004
【図４】
0005407718.tif 000005
【図５】
0005407718.tif 000006
【図６】
0005407718.tif 000007
【図７】
0005407718.tif 000008
【図８】
0005407718.tif 000009
【図９】
0005407718.tif 000010
【図１０】
0005407718.tif 000011
【図１１】
0005407718.tif 000012
【図１２】
0005407718.tif 000013
【図１３】
0005407718.tif 000014
【図１４】
0005407718.tif 000015
【図１５】
0005407718.tif 000016