(57)【特許請求の範囲】
【請求項１】
端末と、雛形を作成するテスト因子分類表生成部と、更新作業部と、テスト仕様生成部とから構成され、
前記テスト因子分類表生成部は、少なくともクラス名を含むヘッダと、少なくとも属性項目番号及び種別を含む属性リストと、少なくともメソッド項目番号及び引数情報とからなるクラス設計情報を前記端末で指定されたクラス及びメソッドに基づいて読み出して第１メモリに格納するクラス設計情報解析部と、
前記端末より指定されたメソッドの引数の並びを前記第１メモリに格納されたクラス設計情報から検索し、検索したメソッドの引数の並びからなるテスト因子をリストアップして引数リストを出力する因子分類部と、
クラス設計情報の第１ヘッダから検出された少なくともクラス名及びメソッド名を含むヘッダ情報が格納された第２ヘッダと、前記因子分類部でリストアップされた引数の並びを用いて、少なくともクラス名及びメソッド名を含むヘッダと、少なくとも条件及び処理を空欄にした引数リストとからなるテスト因子分類表の形式に整形する分類表出力部とから構成され、
前記更新作業部は外部から少なくとも条件及び処理の内容を受け付け、条件リストのカラムに対して書き込むことにより更新済みテスト因子分類表を作成し、
前記テスト仕様生成部は、
前記更新済みテスト因子分類表を読み込んで第２メモリに格納する分類表解析部と、
前記第２メモリから読み出した引数リストの条件リストに記述された条件を順に取り出して条件が重複しない組み合わせを行い、組み合わされた条件を項目リストに格納するテスト因子組み合わせ生成部と、
前記テスト因子組み合わせ生成部で項目リストに格納された条件を読み出して対象メソッド毎に出力するテスト仕様出力部と、
からなることを特徴とするテスト仕様生成支援装置。
【請求項２】
請求項１記載のテスト仕様生成支援装置において、前記テスト因子分類表生成部の因子分類部は、抽出されたテスト因子の型がクラスであった場合、対応するクラス設計情報を参照して属性値を展開し、展開した属性値をテスト因子として抽出する処理を実行することを特徴とするテスト仕様生成支援装置。
【請求項３】
請求項２記載のテスト仕様生成支援装置において、前記テスト因子分類表生成部は、更に、属性値の展開上限数を指定する展開上限数指定部を有し、前記因子分類部は前記展開上限数指定部により指定された上限数を超える属性値を展開しないことを特徴とするテスト仕様生成支援装置。
【請求項４】
請求項２記載のテスト仕様生成支援装置において、前記テスト因子分類表生成部は、更に、属性値の展開が不要であるクラスを指定する展開不要クラス指定部を有し、前記因子分類部は属性値の展開時に前記展開不要クラス指定部により指定されたクラスの属性値を展開しないことを特徴とするテスト仕様生成支援装置。
【請求項５】
コンピュータを用いて、
コンピュータが備えるテスト因子分類表生成手段が、
少なくともクラス名を含むヘッダと、少なくとも属性項目番号及び種別を含む属性リストと、少なくともメソッド項目番号及び引数を含む引数情報とからなるクラス設計情報を端末で指定されたクラス及びメソッドに基づいて読み出して第１メモリに格納するクラス設計情報解析ステップと、
前記端末より指定されたメソッドの引数の並びを前記第１メモリに格納されたクラス設計情報から検索し、検索したメソッドの引数の並びからなるテスト因子をリストアップして引数リストを出力する因子分類ステップと、
クラス設計情報の第１ヘッダから検出された少なくともクラス名及びメソッド名を含むヘッダ情報が格納された第２ヘッダと、前記因子分類ステップでリストアップされた引数の並びを用いて、少なくともクラス名及びメソッド名を含むヘッダと、少なくとも条件及び処理を空欄にした引数リストとからなるテスト因子分類表の形式に整形する分類表出力ステップとを実行し、
コンピュータが備える更新作業手段が、外部から少なくとも条件及び処理の内容を受け付け、条件リストのカラムに対応して書き込むことにより更新済みテスト因子分類表を作成して更新済みテスト因子分類表出力ステップを実行し、
コンピュータが備えるテスト仕様生成部が、
前記更新済みテスト因子分類表を読み込んで第２メモリに格納する分類表解析ステップと、
前記第２メモリから読み出した引数リストの条件リストに記述された条件を順に取り出して条件が重複しない組み合わせを行い、組み合わされた条件を項目リストに格納するテスト因子組み合わせステップと、
前記テスト因子組み合わせ生成部で項目リストに格納された条件を読み出して対象メソッド毎に出力するテスト仕様出力ステップとを実行することを特徴とするテスト仕様生成支援方法。
【請求項６】
コンピュータに、
コンピュータが備えるテスト因子分類表生成手段が、
少なくともクラス名を含むヘッダと、少なくとも属性項目番号及び種別を含む属性リストと、少なくともメソッド項目番号及び引数情報とからなるクラス設計情報を前記端末で指定されたクラス及びメソッドに基づいて読み出して第１メモリに格納するクラス設計情報解析ステップと、
前記端末より指定されたメソッドの引数の並びを前記第１メモリに格納されたクラス設計情報から検索し、検索したメソッドの引数の並びからなるテスト因子をリストアップして引数リストを出力する因子分類ステップと、
クラス設計情報の第１ヘッダから検出された少なくともクラス名及びメソッド名を含むヘッダ情報が格納された第２ヘッダと、前記因子分類部でリストアップされた引数の並びを用いて、少なくともクラス名及びメソッド名を含むヘッダと、少なくとも条件及び処理を空欄にした引数リストとからなるテスト因子分類表の形式に整形する分類表出力ステップとを実行させ、
コンピュータが備える前記更新作業手段が、前記分類表出力ステップの出力するテスト因子分類表のうち、外部から少なくとも条件及び処理の内容を受け付け、条件リストのカラムに対応して書き込むことにより更新済みテスト因子分類表を作成し、
コンピュータが備える前記テスト仕様生成手段が、
前記更新済みテスト因子分類表を読み込んで第２メモリに格納する分類表解析ステップと、
前記第２メモリから読み出した引数リストの条件リストに記述された条件を順に取り出して条件が重複しない組み合わせを行い、組み合わされた条件を項目リストに格納するテスト因子組み合わせ生成ステップと、
前記テスト因子組み合わせ生成部で項目リストに格納された条件を読み出して対象メソッド毎に出力するテスト仕様出力ステップと、
を実行させることを特徴とするテスト仕様生成支援プログラム。
【請求項７】
コンピュータに、
コンピュータが備えるテスト因子分類表生成手段が、
少なくともクラス名を含むヘッダと、少なくとも属性項目番号及び種別を含む属性リストと、少なくともメソッド項目番号及び引数情報とからなるクラス設計情報を前記端末で指定されたクラス及びメソッドに基づいて読み出して第１メモリに格納するクラス設計情報解析ステップと、
前記端末より指定されたメソッドの引数の並びを前記第１メモリに格納されたクラス設計情報から検索し、検索したメソッドの引数の並びからなるテスト因子をリストアップして引数リストを出力する因子分類ステップと、
クラス設計情報の第１ヘッダから検出された少なくともクラス名及びメソッド名を含むヘッダ情報が格納された第２ヘッダと、前記因子分類部でリストアップされた引数の並びを用いて、少なくともクラス名及びメソッド名を含むヘッダと、少なくとも条件及び処理を空欄にした引数リストとからなるテスト因子分類表の形式に整形する分類表出力ステップとを実行させ、
コンピュータが備える前記更新作業手段が、前記分類表出力ステップの出力するテスト因子分類表のうち、外部から少なくとも条件及び処理の内容を受け付け、条件リストのカラムに対応して書き込むことにより更新済みテスト因子分類表を作成し、
コンピュータが備える前記テスト仕様生成手段が、
前記更新済みテスト因子分類表を読み込んで第２メモリに格納する分類表解析ステップと、
前記第２メモリから読み出した引数リストの条件リストに記述された条件を順に取り出して条件が重複しない組み合わせを行い、組み合わされた条件を項目リストに格納するテスト因子を組み合わせるテスト因子組み合わせ生成ステップと、
前記テスト因子組み合わせ生成部で項目リストに格納された条件を読み出して対象メソッド毎に出力するテスト仕様出力ステップと、
を実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、オブジェクト指向により設計されたソフトウェアのテスト仕様をテスト因子分類表を用いて生成するテスト仕様生成支援装置、方法、プログラム及び記録媒体に関し、特にクラス設計情報を利用してテスト因子分類表の雛型を自動生成するテスト仕様生成支援装置、方法、プログラム及び記録媒体に関する。
【０００２】
【従来技術】
従来より、高品質なソフトウェアを作成するためには、必要となるテスト項目を網羅したテスト仕様書を作成し、そのテスト仕様書にしたがってテストを実行して結果を確認することが必要であると言われている。
【０００３】
しかし、テスト項目を網羅したテスト仕様書を作成するのはきわめて困難な作業であり、必要な工数も大きいため充分なテスト項目の洗い出しや実行が行われないというケースもしばしばある。
【０００４】
そこで、テストするプログラムの入力をリストアップし、入力データの組合せに対応するプログラムの動作をテスト因子分類表という形で表現することが行われている。このテスト因子分類表の情報を利用すれば、テストすべき引数の組合せを機械的に生成してテスト仕様書としたり、さらにそのテストを自動実行するような応用が考えられ、そのような方法を実現した装置は既に公知となっている。
【０００５】
【発明が解決しようとする課題】
しかしながら、テスト因子分類表の作成に関しては現在も人間による作業が必要であり、テスト因子分類表への記入洩れによるテスト項目の欠落などの問題は根本的に解決しているとはいえない。
【０００６】
またプログラムのソースコード自身を解析してテスト因子と条件を抽出するという考え方もあるが、プログラムの都合により導入された条件なども抽出されてしまい、人間による確認が必要である。
【０００７】
更に、抽出されたテスト因子の組合せを考える上でも、機械的に組合せを生成すると組合せ数が増大してしまうという問題があり、手作業による組合せの作成が不可欠となっている。このとき、組合せるテスト因子の条件がプログラムの正常動作に関するものか異常動作に関するものなのかは、テスト因子の組合せを考える際に大きな影響がある。
【０００８】
例えばプログラムの異常動作に関する条件は通常単独でテストするものであり、それを多数組合せたテストを行っても意味がない場合が多い。しかし、従来のテスト仕様書生成装置では、正常動作か異常動作かの区分を考慮しておらず、いたずらに組合せ数を増やす原因ともなっていた。
【０００９】
また、オブジェクト指向に基づいたソフトウェア開発では、ある機能を提供するための一群のクラスをまとめたコンポーネントという単位を用いることがある。この場合、テスト仕様書もコンポーネントが外部に提供する機能に対して作成されることが要求される。これはコンポーネント内の特定のクラスが外部に公開しているメソッドに相当するため、現在は人間がメソッドを検索しており、テスト仕様書作成の工数を増大させている。
【００１０】
本発明は、オブジェクト指向のソフトウェアをテストする漏れの無いテスト仕様を効率的に生成するテスト仕様生成支援装置、方法、プログラム及び記録媒体を提供することを目的とする。
【００１１】
【課題を解決するための手段】
図１は本発明の原理説明図である。
【００１２】
本発明のテスト仕様生成支援装置は、図１（Ａ）のように、テスト因子分類表生成部１２とテスト仕様生成部２８で構成される。テスト因子分類表生成部１２は、オブジェクト指向により設計されたソフトウェアのクラス設計情報を解析して、テスト対象のメソッドの動作に影響するテスト因子とその条件を列挙した図１（Ｂ）のようなテスト因子分類表２２の雛型を生成する。テスト仕様生成部２８は、テスト因子分類表の雛型に基づいて完成された図１（Ｃ）のようなテスト因子分類表２６に記述された条件を組合せて図１（Ｄ）のテスト仕様３８を生成する。
【００１３】
ここで、テスト因子分類表生成部１２は、指定されたクラスのクラス設計情報を入力して解析するクラス設計情報解析部１４と、クラス設計情報の解析結果の中からメソッドの引数の並びとその条件を含むテスト因子及びテスト因子分類表に使用するヘッダ情報を抽出する因子分類部１６と、抽出されたテスト因子及びヘッダ情報を所定の表形式（フォーマット形式）に整形してテスト因子分類表の雛型を出力する分類表出力部１８とを備える。
【００１４】
またテスト仕様生成部２８は、テスト因子分類表を入力して解析する分類表解析部３０と、分類表の解析結果の中から各テスト因子毎にその条件を一つ選択して重複しないように組合せを生成すると共に及びテスト仕様に使用するヘッダ情報を抽出するテスト因子組合せ生成部３２と、テスト因子組合せ生成部３２で生成及び抽出された全ての組合せ及びヘッダ情報を所定形式に整形してテスト仕様を出力するテスト仕様出力部３６とを備える。
【００１５】
このように本発明では、オブジェクト指向の考え方に基づいて設計されたソフトウェアのテストに際し、そのクラスの設計情報を利用してテスト因子分類表の雛型を自動生成することで工数を削減する。
【００１６】
こうして生成されたテスト因子分類表は、雛型として利用者に提示されるので、利用者は雛型の空き部分を埋める形でテスト因子分類表を完成させるだけでよく、条件の記述洩れを防ぐことが可能となる。
【００１７】
また雛型の更新により完成したテスト因子分類表の条件を組合せて自動的にテスト仕様書を生成することで、漏れのないテスト仕様の自動生成が効率的に行うことができるようになる。
【００１８】
本発明のテスト因子分類表の自動生成にあっては、利用者により指定されたクラスのメソッドに対して、そのクラス設計情報を参照し、基本的には引数並びとその条件をテスト因子として求め、テスト因子分類表の該当欄にメソッドの引数並びと条件を自動的に記入して雛型としている。
【００１９】
本発明によってテスト因子分類表に自動的に記入される情報は以下のとおりである。
（１）メソッドの引数並び。
（２）メソッドの引数がクラスだった場合、クラス設計情報から再帰的に展開した属性値。
（３）構造を持つクラス設計情報から抽出したメソッド内部の条件。
（４）クラス設計情報から抽出したメソッド内部の条件と、その正常系・異常系の区分。
（５）文書で記述されたクラス設計情報から抽出したメソッド内部の条件。
（６）文書で記述された設計情報から抽出したメソッド内部の条件と、その正常系と異常系の区分。
（７）文書で記述された設計情報から抽出したメソッド内部の条件と、ユーザ指定の記述による区分。
（８）クラス設計情報から抽出したメソッド内部の条件に加えて、ソースコードから抽出したメソッド内部の条件。
【００２０】
これらのテスト因子分類表に自動的に記入される情報を更に詳細に説明すると以下のようになる。
【００２１】
テスト因子分類表生成部の因子分類部は、抽出されたテスト因子の型がクラスであった場合、対応するクラス設計情報を参照して属性値を展開し、展開した属性値をテスト因子として抽出する処理を再帰的に実行する。
【００２２】
テスト因子分類表生成部は、更に、属性値の展開上限数を指定する展開上限数指定部を有し、因子分類部は展開上限数指定部により指定された上限数を超える属性値を展開しないようにする。
【００２３】
テスト因子分類表生成部は、更に、属性値の展開が不要であるクラスを指定する展開不要クラス指定部を有し、因子分類部は属性値の展開時に前記展開不要クラス指定部により指定されたクラスの属性値を展開しないようにする。
【００２４】
テスト因子分類表生成部は、更に、指定されたメソッドの処理内容に関する構造化されたクラス設計情報を入力して解析するメソッド設計情報解析部を有し、因子分類部は、その解析結果からメソッドの処理内容中に記述された分岐条件を抽出し、この分岐条件を構成する引数等の変数とその条件をテスト因子として抽出し、分類表出力部は、抽出されたテスト因子及びヘッダ情報を所定の表形式に整形してテスト因子分類表の雛型を出力する。
【００２５】
テスト因子分類表生成部は、更に、分岐条件が正常処理を表すのか異常処理を表すのかを判定する条件区分判定部を有し、テスト因子分類表に正常処理か異常処理かの判定区分を併記する。
【００２６】
テスト因子分類表生成部は、更に、指定されたメソッドの処理内容に関する文章で記述された設計情報を入力して特定の記法によって書かれた条件の記述を解析するメソッド内容記述解析部と、設計情報の解析結果からメソッドの処理内容中に記述された分岐条件を抽出し、この分岐条件を構成する引数等の変数とその条件をテスト因子として検索する条件検索部とを有し、分類表出力部は、因子分類部及び条件検索部で抽出されたテスト因子を所定の表形式に整形してテスト因子分類表の雛型を出力する。
【００２７】
条件検索部は、更に、文章中に特定の記法によって書かれた分岐条件が正常処理を表すのか異常処理を表すのかを判定し、テスト因子分類表に正常処理か異常処理かの判定区分を併記させる。
【００２８】
テスト因子分類表生成部は、更に、メソッドの処理内容が記述された文章から抽出する条件の記法と正常処理か異常処理かの区分の記法を指定する記法指定部を有する。
【００２９】
テスト因子類表生成部は、更に、指定されたメソッド選択基準により設計情報の中からメソッドを選択して出力対象のテスト因子分類表を生成させる出力対象選択部を有する。
【００３０】
テスト因子分類表生成部は、更に、指定されたクラス選択基準により設計情報の中からクラスとメソッドを選択して出力対象のテスト因子分類表を生成させる出力対象選択部を有する。
【００３１】
テスト因子分類表生成部は、更に、クラス設計情報に対応したプログラムのソースコードを入力して解析するソースコード解析部と、ソースコードの解析結果から対象となるメソッドの条件文を抽出し、この条件で使用されている変数と条件文をテスト因子として抽出してクラス設計情報から生成されたテスト因子分類表に追加させるソース条件検索部とを有する。
【００３２】
テスト因子分類表に条件が正常処理を表すか異常処理を表すか区分を併記している場合、テスト仕様生成部は、更に、テスト因子分類表に記述された条件を組合せる際に、同じテスト因子の中で正常処理に区分される複数の正常条件の中の一つを代表正常条件に指定して異常処理に区分される異常条件と組合せさせる組合せ評価部を有する。
【００３３】
またテスト仕様生成部は、更に、テスト因子分類表に記述された条件を組合せる際に、正常条件のみの組合せについて、組合わせ可能な正常条件を限定する組合せ評価部を有する。
【００３４】
本発明は、テスト仕様生成支援方法を提供する。この方法は、
オブジェクト指向により設計されたソフトウェアのクラス設計情報を解析して、テスト対象のメソッドの動作に影響するテスト因子とその条件を列挙したテスト因子分類表の雛型を生成する分類表生成ステップと、
テスト因子分類表の雛型に基づいて完成されたテスト因子分類表に記述された条件を組合せてテスト仕様書を生成するテスト仕様生成ステップと、
を備えたことを特徴とする。
【００３５】
ここで、分類表生成ステップは、
指定されたクラスのクラス設計情報を入力して解析し、
クラス設計情報の解析結果の中からメソッドの引数の並びとその条件を含むテスト因子及びテスト因子分類表に使用するヘッダ情報を抽出し、
抽出されたテスト因子及びヘッダ情報を所定の表形式に整形してテスト因子分類表の雛型を出力する。
【００３６】
またテスト仕様生成ステップは、
テスト因子分類表を入力して解析し、
分類表の解析結果の中から各テスト因子毎にその条件を一つ選択して重複しないように組合せを生成すると共に及びテスト仕様に使用するヘッダ情報を抽出し、
生成された全ての組合せ及びヘッダ情報を所定形式に整形してテスト仕様を出力する。
【００３７】
これ以外のテスト仕様生成支援方法の詳細は、基本的に装置構成の場合と同じである。
【００３８】
本発明は、テスト仕様生成支援プログラムを提供する。このプログラムは、コンピュータに、
オブジェクト指向により設計されたソフトウェアのクラス設計情報を解析して、テスト対象のメソッドの動作に影響するテスト因子とその条件を列挙したテスト因子分類表の雛型を生成する分類表生成ステップと、
テスト因子分類表の雛型に基づいて完成されたテスト因子分類表に記述された条件を組合せてテスト仕様書を生成するテスト仕様生成ステップと、
を実行させることを特徴とする。
【００３９】
ここでテスト仕様生成支援プログラムの分類表生成ステップは、
指定されたクラスのクラス設計情報を入力して解析し、
クラス設計情報の解析結果の中からメソッドの引数の並びとその条件を含むテスト因子及びテスト因子分類表に使用するヘッダ情報を抽出し、
抽出されたテスト因子及びヘッダ情報を所定の表形式に整形してテスト因子分類表の雛型を出力し、
またテスト仕様生成ステップは、
テスト分類表を入力して解析し、
分類表の解析結果の中から各テスト因子毎にその条件を一つ選択して重複しないように組合せを生成すると共に及びテスト仕様に使用するヘッダ情報を抽出し、
生成された全ての組合せ及びヘッダ情報を所定形式に整形してテスト仕様を出力することをコンピュータに実行させることを特徴とする。
【００４０】
本発明は、テスト仕様生成支援プログラムを格納したコンピュータ読取可能な記録媒体を提供する。この記録媒体に格納されたテスト仕様生成支援プログラムは、オブジェクト指向により設計されたソフトウェアのクラス設計情報を解析して、テスト対象のメソッドの動作に影響するテスト因子とその条件を列挙したテスト因子分類表の雛型を生成する分類表生成ステップと、テスト因子分類表の雛型に基づいて完成されたテスト因子分類表に記述された条件を組合せてテスト仕様書を生成するテスト仕様生成ステップとをコンピュータに実行させる。
【００４１】
更に本発明は、テスト因子分類表生成支援装置、方法、プログラム、及び記録媒体を提供する。テスト因子分類表生成支援装置を例にとると、オブジェクト指向により設計されたソフトウェアの指定されたクラスのクラス設計情報を入力して解析するクラス設計情報解析部と、クラス設計情報の解析結果の中からメソッドの引数の並びとその条件を含むテスト因子及びテスト因子分類表に使用するヘッダ情報を抽出する因子分類部と、抽出されたテスト因子及びヘッダ情報を所定の表形式に整形してテスト因子分類表の雛型を出力する分類表出力部を備えたとを特徴とする。
【００４２】
【発明の実施の形態】
図２は、本発明によるテスト仕様生成支援装置の機能構成を示したブロック図であり、この機能構成は本発明のテスト仕様生成支援プログラムをインストールしたコンピュータによるプログラム実行で実現される。
【００４３】
図２において、本発明のテスト仕様生成支援装置は、テスト因子分類表生成部１２とテスト仕様生成部２８の２つに大別される。テスト因子分類表生成部１２はオブジェクト指向により設計されたソフトウェアのクラス設計情報１０を対象として、テスト対象のメソッドの動作に影響するテスト因子とその条件を列挙したテスト因子分類表２２を生成し、これを利用者に雛型として提供する。
【００４４】
このテスト因子分類表生成部１２は、クラス設計情報解析部１４、因子分類部１６、分類表出力部１８及び内部メモリ２０で構成される。またテスト因子分類表生成部１２の各処理機能は、端末４０による利用者からのキーボードなどの操作による指定を受けて動作する。
【００４５】
テスト因子分類表２２の雛型を生成する場合に、利用者は端末４０より出力したいクラス及びメソッドを指定する。この端末４０からの指定を受けてテスト因子分類表生成部１２のクラス設計情報解析部１４は、指定されたクラス設計情報１０を読み込んでその内容を解析し、解析結果を内部メモリ２０に格納する。
【００４６】
因子分類部１６は、端末４０より指定されたメソッドの引数の並びを内部メモリ２０に格納されたクラス設計情報の解析結果から検索し、検索したメソッドの引数並びをテスト因子としてリストアップする。
【００４７】
分類表出力部１８は、テスト因子分類表２２に必要なヘッダ情報などのデータを内部メモリ２０に格納されたクラス設計情報の解析結果から検索すると共に、因子分類部１６でリストアップしている引数並びでなるテスト因子を、予め定められた特定の形式（フォーマット）に整形し、テスト因子分類表２２として出力する。
【００４８】
テスト因子分類表生成部１２で自動生成されたテスト因子分類表２２は、端末４０のディスプレイなどにより利用者に雛型として提示される。この雛型として提示されたテスト因子分類表２２に対し、利用者は更新作業部２４による作業を経てテスト因子分類表２２の空白を埋める形でテスト因子分類表を完成させ、更新済みのテスト因子分類表２６を生成する。
【００４９】
テスト仕様生成部２８は完成されたテスト因子分類表２６を読み込み、このテスト因子分類表２６に記述された条件を組合せてテスト仕様３８を自動的に生成する。このテスト仕様生成部２８は、分類表解析部３０、テスト因子組合せ生成部３２、テスト仕様出力部３６及び内部メモリ３４で構成されている。
【００５０】
分類表解析部３０は、完成されたテスト因子分類表２６を読み込んでその内容を解析し、内部メモリ３４に内部処理用のデータとして格納する。テスト因子組合せ生成部３２は、内部メモリ３４に格納されたテスト因子分類表２６の解析結果の中から各テスト因子ごとにその条件を１つ選択し、他のテスト因子の条件と重複するものがないようにした組合せを生成する。
【００５１】
テスト仕様出力部３６は、テスト仕様３８に必要なヘッダ情報などのデータを内部メモリ３４から検索すると共に、テスト因子組合せ生成部３２で生成した全ての条件の組合せを予め定めた形式（フォーマット）に整形し、テスト仕様３８として出力する。
【００５２】
図３は、図２のテスト因子分類表生成部１２に入力されるクラス設計情報１０の具体例である。クラス設計情報１０は、ヘッダ６８、属性リスト７０及びメソッドの引数情報７２を含んでいる。ヘッダ６８には日文及び英文のクラス名、プロジェクト名、パッケージ名、作成日及び作成者が記述されている。
【００５３】
属性リスト７０には、属性項目番号、和名、英名、種別、型、説明コードが格納されており、この例では属性項目番号１，２，３の３つの属性情報が記述されている。更にメソッドの引数情報７２は、メソッド項目番号、和名、英名、種別、引数和名、引数、返却値和名、返却値及び説明の項目に分けて、この例ではメソッド項目番号１〜３の３つの引数情報が記述されている。
【００５４】
図２のテスト因子分類表生成部１２にあっては、図３のようなクラス設計情報１０をクラス設計情報解析部１４で読み込んで解析結果を内部メモリ２０に格納し、因子分類部１６で内部メモリ２０の解析結果から指定されたメソッドの引数の並びをテスト因子としてリストアップすることになる。
【００５５】
図４は、図２のテスト因子分類表生成部１２に設けている因子分類部１６による因子分類処理のフローチャートである。
【００５６】
図４において、まずステップＳ１で因子リストを空にし、続いてステップＳ２で指定されたメソッドの引数リストを得る。この引数リストは例えば図３のクラス設計情報１０から解析された引数情報７２の中の指定されたメソッド、例えばメソッド項目番号３を例にとると、引数「ａｃｃｏｕｎｔ：Ｓｔｒｉｎｇ」や「ｏｒｄｅｒ：ＯｒｄｅｒＴｙｐｅ」などである。
【００５７】
続いてステップＳ３で引数リストが空か否かチェックし、空でなければステップＳ４に進み、引数リストの先頭から引数情報を取り出し、ステップＳ５で、取り出した引数を因子リストに追加する。
【００５８】
図５は、図２のテスト因子分類表生成部１２の分類表出力部１８により出力されたテスト因子分類表２２の一例であり、図４の因子分類処理で図３のクラス設計情報１０におけるメソッド項目番号３を指定した場合のテスト因子分類表を例にとっている。
【００５９】
テスト因子分類表２２はヘッダ７４と引数リスト７６から構成されている。ヘッダ７４には図３のクラス設計情報１０のヘッダ６８から検索されたヘッダ情報が格納されている。このヘッダ７４の例にあっては、作成日、版、作成者、プロジェクト名、パッケージ名、クラス名、メソッド名、引数、返り値、起動条件が格納されている。
【００６０】
引数リスト７６には、図４の因子分類処理でリストアップされた引数情報を予め定めたテスト因子分類表２２の形式に整形している。この引数リスト７６にあっては、引数項番、引数名、型、条件、処理、エラーコード及び備考の形式をとっている。因子分類処理でリストアップされた引数情報の例として、例えば図３の引数リスト７２のメソッド項目番号３を例にとると、引数名として「ａｃｃｏｕｎｔ」と「ｏｒｄｅｒ」が引数項番１，２に分けて書き込まれ、それぞれについて型として「Ｓｔｒｉｎｇ」と「ＯｒｄｅｒＴｙｐｅ」が書き込まれている。
【００６１】
この図５のテスト因子分類表２２のように、テスト因子分類表生成部１２で自動生成された雛型は利用者に提供され、利用者は雛型の空白部分を埋める形でテスト因子分類表２２を完成させる。
【００６２】
図６は、図５のテスト因子分類表２２の雛型に対し利用者が必要な内容を入力して完成された更新済みのテスト因子分類表２６である。即ち、図５の自動生成された雛型としてのテスト因子分類表２２にあっては、条件、処理、エラーコードが空きとなっているが、この部分について利用者はクラス設計情報などを調べることで、必要な条件、処理、エラーコードを取得して図示のように書き込んで完成させる。
【００６３】
このとき引数名及び型についてはテスト因子分類表生成部１２により自動生成されていることから、この引数の型を見てクラス設計情報の中からその条件や処理を比較的容易に見つけることができる。また引数名がリストアップされていることから、必要な引数を落としてしまうようなことがなく、条件の記述漏れを確実に防ぐことができる。
【００６４】
図７は、図２のテスト仕様生成部２８によるテスト因子組合せ生成処理のフローチャートであり、図８にその中における条件組合せ処理の詳細を示している。
【００６５】
図７のテスト因子組合せ生成処理にあっては、処理に先立ち分類表解析部３０により図６のように完成されたテスト因子分類表２６を読み込んで解析し、解析結果を内部メモリ３４に内部データとして格納している。
【００６６】
この状態でテスト因子組合せ生成部３２が動作し、図７の処理を実行する。まずステップＳ１で条件組合せリストを空にする。続いてステップＳ２で条件ワークリストを空にする。続いてステップＳ３で解析結果として内部メモリ３４に格納されている引数リストを得る。そしてステップＳ４で引数リストを対象に条件の組合せ処理を実行する。
【００６７】
図８は図７のステップＳ４の条件組合せ処理の詳細である。この条件組合せ処理は、ステップＳ１で因子リストが空か否かチェックし、因子リストが空でなければ、ステップＳ２で因子リストの先頭から因子を取り出す。
【００６８】
続いてステップＳ３で取り出した因子の条件リストを取得する。続いてステップＳ４で条件リストは空か否かチェックする。条件リストが空でなければ、ステップＳ５で条件リストに記述された条件の順に処理を行う。
【００６９】
次にステップＳ６で条件ワークリストに条件リストから取り出した処理しようとする条件を追加する。続いてステップＳ７で他の因子についての因子リスト即ち残りの因子リストを使用して、その因子リストの条件との組合せ処理を実行する。組合せが済んだならば、ステップＳ８で条件ワークリストから組合せの済んだ条件を削除する。そしてステップＳ９で、処理の済んだ因子を因子リストの先頭に戻す。
【００７０】
一方、ステップＳ４で条件リストが空であれば、ステップＳ１０で残りの因子リストをもって条件の組合せ処理を実行する。このステップＳ１〜Ｓ１０の繰り返しにより、ステップＳ１で因子リストが空になると、ステップＳ１１に進み、組合せの済んだ条件ワークリストの組合せを条件組合せリストに追加する。
【００７１】
図９は、図６の完成された更新済みのテスト因子分類表２６を対象に図７及び図８の処理により生成されたテスト仕様３８である。このテスト仕様３８はヘッダ８２と項目リスト８４で構成される。
【００７２】
ヘッダ８２には、図６のテスト因子分類表２６のヘッダ７８から得られた日付、作成者、版、プロジェクト名、クラス名が記述されている。項目リスト８４は、テスト項目番号、対象メソッド、テスト内容、確認内容、エラーコード、注目因子、条件、確認者、確認日、結果及び備考の形式をとっている。
【００７３】
この形式を持つ項目リスト８４には、図７，図８のテスト因子組合せ生成処理によって得られた条件の組合せが条件の項目に格納され、これに対応して対象メソッド、エラーコード、注目因子の欄に対応する記述が行われている。
【００７４】
即ち図６の更新されたテスト因子分類表２６における引数リスト８０にあっては、引数項番１の引数名「ａｃｃｏｕｎｔ」について条件が２つあり、また引数項番２の引数名「ｏｒｄｅｒ」について条件が３つあり、異なる引数における各条件の組合せとして、引数名「ａｃｃｏｕｎｔ」の条件を（ａ，ｂ）、引数名「ｏｒｄｅｒ」の条件を（α，β，γ）とすると、
（ａ，α）（ａ，β）（ａ，γ）（ｂ，α）（ｂ，β）（ｂ，γ）
の６つの組合せが得られ、これが図９のテスト項目番号１〜６の通りとなる。
【００７５】
図１０は、本発明の第２実施形態における因子分類処理のフローチャートである。即ち、本発明の第２実施形態の構成は、図２の第１実施形態と同じブロック構成であるが、テスト因子分類表生成部１２に設けている因子分類部１６の処理機能が図１０のフローチャートの処理内容となる。
【００７６】
即ち本発明の第２実施形態にあっては、解析結果として得られたクラス設計情報の中のテスト因子となるメソッドの引数の型がクラスであった場合に、そのクラス設計情報を参照して属性値の展開を行い、この属性値の展開を最適に繰り返すことを特徴とする。
【００７７】
図１０の第２実施形態としての因子分類部１６による処理を説明すると次のようになる。まずステップＳ１で因子リストを空にする。続いてステップＳ２でメソッドの引数リストをクラス設計情報の解析結果を格納した内部メモリ２０から取得する。続いてステップＳ３に進み、引数リストは空か否かチェックし、空でなければ、ステップＳ４で引数リストの先頭から引数情報を取り出す。この引数リストの先頭から取り出した引数の型がクラスであった場合、ステップＳ５でその引数に基づいて属性展開処理を行う。
【００７８】
図１１は図１０のステップＳ５の属性展開処理の詳細のフローチャートである。
図１１において、ステップＳ１で、処理対象としている属性は基本クラスか否かチェックする。基本クラスでなければステップＳ２に進み、クラスの設計情報があるか否かチェックする。
【００７９】
設計情報があればステップＳ３に進み、そのクラスの属性リスト、例えば図３のクラス設計情報１０の例にあっては属性情報７０を属性リストとして取得する。続いてステップＳ４で、取得した属性リストにおける属性の順に取り出し、ステップＳ５で、取り出した属性の展開処理を実行する。
【００８０】
一方、ステップＳ１で属性が基本クラスであった場合には、属性の展開を行うことなく、ステップＳ６でその属性を因子リストに追加することになる。
【００８１】
図１２は、図１０，図１１の因子分類処理により生成されたテスト因子分類表の具体例であり、ヘッダ８６、引数リスト８８及び属性リスト９０で構成されている。
【００８２】
この例では引数リスト８８における引数項番２の引数「ｏｒｄｅｒ」が、「ＯｒｄｅｒＴｙｐｅ」というクラスの型であることから、このＯｒｄｅｒＴｙｐｅクラスの設計情報を参照することで「ｔｙｐｅ」と「ｉｄ」という属性を持っていることを抽出し、属性リスト９０に属性項番２−１，２−２として属性名、型を書き込んだ展開を行っている。この属性リスト９０にあっても、その形式は属性項番、属性名、型、条件、処理、エラーコード、備考となり、基本的に引数リスト８８の形式と同じである。
【００８３】
このように引数の型がクラスであることにより属性値の展開までを行ったテスト因子分類表についても、第１実施形態と同様、引数リスト８８及び属性リスト９０について利用者が空きの内容を埋めて完成させ、テスト仕様生成部２８により、完成したテスト因子分類表２６について引数リスト８８及び属性リスト９０のそれぞれについて、引数及び属性をそれぞれテスト因子としてその条件を１つ選択し、重複するものがないような組合せを自動生成してテスト仕様を作り出す。
【００８４】
図１３は、本発明による第３実施形態のブロック図であり、第２実施形態に加えテスト因子の展開上限数を指定する機能を設けるようにしたことを特徴とする。
【００８５】
図１３において、テスト因子分類表生成部１２及びテスト仕様生成部２８の構成は図２の第１実施形態と同じであるが、これに加えて第３実施形態にあってはテスト因子分類表生成部１２に更に展開上限数指定部４２を設けている。
【００８６】
展開上限数指定部４２は、端末４０などを使用して利用者に展開上限数を決める数値を指定させる。この数値指定がない場合には、装置が予め定めているディフォルトとしての規定値を用いる。
【００８７】
この展開上限数指定部４２による展開上限数の指定により、因子分類部１６は指定された上限数を超える属性値を展開しないように処理する。このため複雑な構造を持つ属性値などのテスト因子に対しても、生成するテスト因子分類表が過度に大きくなってしまうことを防止できる。
【００８８】
図１４は、図１３の第３実施形態における因子分類部１６による因子分類処理のフローチャートであり、図１５にそのステップＳ６における属性展開処理のフローチャートを示す。
【００８９】
図１４の因子分類処理にあっては、ステップＳ１で因子リストを空にし、ステップＳ２で展開数カウンタを０に初期化する。続いてステップＳ３で内部メモリ２０に格納されているクラス設計情報の分析結果からメソッドの引数リストを取得する。
【００９０】
続いてステップＳ４で引数リストが空か否かチェックし、空でない場合にはステップＳ５に進み、引数リストの先頭から引数情報を取り出し、ステップＳ６でその引数に基づいた属性展開処理を実行する。
【００９１】
このステップＳ６の属性展開処理は、図１５のフローチャートに示すようになる。まずステップＳ１で展開数カウンタが展開上限数指定部４２で指定されている上限値以下か否かチェックする。上限値以下であれば属性展開が可能であることからステップＳ２に進み、属性が基本クラスか否かチェックし、基本クラスでなければステップＳ３でクラス設計情報の有無をチェックし、クラス設計情報があればステップＳ４でクラスの属性リストを取得する。
【００９２】
続いてステップＳ５で属性を順に取り込み、その都度、ステップＳ６で展開数カウンタを１カウントずつ増やす。続いてステップＳ７で属性をテスト因子として属性リストに展開する属性展開処理を行い、図１４のメインルーチンにリターンしてステップＳ４からの処理を繰り返す。図１５のステップＳ１で、展開数カウンタが指定された上限数を超えた場合には、ステップＳ８に進み、それまでに展開した属性値を因子リストに追加する。
【００９３】
図１６は、本発明の第４実施形態のブロック図であり、この第４実施形態にあってはライブラリのクラスなどの展開する必要がないクラスの属性は展開しないようにしたことを特徴とする。
【００９４】
このため図１６の第４実施形態にあっては、テスト因子分類表生成部１２に新たに展開不要クラス指定部４４を設けている。展開不要クラス指定部４４は、端末４０による利用者からの展開不要クラスの指定に基づき、因子分類部１６によるテスト因子の分類処理において、指定された展開不要クラス例えばライブラリのクラスなどの属性値についてのテスト因子分類表への展開を行わないようにしている。
【００９５】
また端末４０からの利用者からの展開不要クラスの指定がない場合には、装置に予め定めているディフォルトとしての展開不要クラスのリスト情報を用いる。
【００９６】
図１７は、図１６の第４実施形態におけるテスト因子分類処理のフローチャートであり、図１７にそのステップＳ５における属性展開処理のフローチャートを示している。
【００９７】
図１７の第４実施形態のテスト因子分類処理にあっては、ステップＳ１で因子リストを空にし、ステップＳ２でメソッドの引数リストを取得し、ステップＳ３で引数リストが空でなければ、ステップＳ４で引数リストの先頭から引数情報を取り出し、ステップＳ５で、取り出した引数をもって属性展開処理を行う。このステップＳ５の属性展開処理の詳細は図１８のフローチャートに示すようになる。
【００９８】
図１８の属性展開処理にあっては、ステップＳ１で展開しようとする属性が図１６の展開不要クラス指定部４４によって指定された展開不要クラスか否かチェックする。展開不要クラスでなければ、ステップＳ２〜Ｓ６の処理により図４の実施形態と同様、属性展開処理を実行する。
【００９９】
ステップＳ１で処理対象とする属性が展開不要クラスであった場合には、ステップＳ２〜Ｓ６の属性展開処理は行わず、その属性をステップＳ７で因子リストに追加して一連の展開処理を終了する。
【０１００】
図１９は、本発明の第５実施形態のブロック図であり、この実施形態にあっては構造化されたクラス設計情報を用いることで、テスト因子分類表にテスト因子の一覧に加えその条件の候補を出力するようにしたことを特徴とする。
【０１０１】
図１９において、テスト因子分類表生成部１２の基本構成は図２の第１実施形態と同じであり、またテスト仕様生成部２８も図２の第１実施形態と同じである。この第５実施形態にあっては、テスト因子分類表生成部１２に新たにメソッド設計情報解析部４６と条件検索部４８を設けている。
【０１０２】
メソッド設計情報解析部４６は、クラス設計情報の中から生成対象とするメソッドの内部処理を表わす構造化されたメソッド設計情報を読み込んで解析し、内部メモリ２０に解析結果を格納する。条件検索部４８は、内部メモリ２０に格納されたメソッド設計情報の解析結果即ち構造化されたメソッド設計情報の中から条件を表わす部分を検索し、テスト因子に関連する条件を抽出する。
【０１０３】
このため分類表出力部１８は、因子分類部１６でリストアップされた引数や属性値及びその条件であるテスト因子に加え、テスト因子の条件を条件検索部４８に対しても問い合わせ、条件検索部４８でリストアップされたテスト因子の一覧に加え、その条件の候補を所定の形式に整形してテスト因子分類表２２として出力する。
【０１０４】
図２０は、図１９のメソッド設計情報解析部４６及び条件検索部４８で処理対象とするメソッド内部処理を表わす構造化された情報の例であり、構造化された情報をフローチャートで表現している。
【０１０５】
図１９の条件検索部４８は、図２０のフローチャートで表現された構造化情報のうち、条件分岐を示す判別ブロックＳ１，Ｓ２，Ｓ３の３つから、その成立条件と不成立条件を抽出する。
【０１０６】
即ちステップＳ１の分岐条件にあっては、引数が「ａｃｃｏｕｎｔ」であり、成立条件は「登録済み」であり、不成立条件は「登録済みでない」が抽出される。またステップＳ２，Ｓ３の引数「ｏｒｄｅｒ」については、引数の型がクラスであることから属性値の展開を行い、ステップＳ２については属性値として例えば「ｔｙｐｅ」とその条件について、成立条件としての「登録済み」と不成立条件としての「登録済みでない」が抽出される。
【０１０７】
またステップＳ３の分岐条件については、属性値として例えば「ｉｄ」が抽出されて、成立条件として「設備」と不成立条件である「設備でない」が抽出される。
【０１０８】
もちろん図１９の第５実施形態で対象とする構造化されたメソッド設計情報は図２０のフローチャートの形式をもつ構造に限定されず、状態遷移図やシーケンス図などを利用することもできる。
【０１０９】
図２１は図２０のフローチャートで表現される構造を持つメソッド設計情報について、図１９の第５実施形態によって生成されたテスト因子分類表２２の具体例である。
【０１１０】
図２１において、テスト因子分類表は、ヘッダ９２、引数リスト９４及び属性リスト９６で構成される。そして引数リスト９４には図２０のステップＳ１の分岐条件による引数名とその成立条件及び不成立条件が展開される。
【０１１１】
また引数リスト９４における引数項番２の引数名「ｏｒｄｅｒ」については、その型がクラスであることから属性リスト９６のような属性展開が行われ、図２０のステップＳ２の分岐条件についてはステップＳ２，Ｓ３の２つの分岐条件について成立条件と不成立条件がそれぞれ抽出されて展開されている。
【０１１２】
図２２は、本発明の第６実施形態のブロック図であり、この第６実施形態にあっては図１９の第５実施形態に加え、構造化されたメソッド設計情報から抽出した条件が正常処理なのか異常処理なのかを確認してテスト因子分類表に併記するようにしたことを特徴とする。
【０１１３】
図２２の第６実施形態において、テスト因子分類表生成部１２は、図１９の第５実施形態で設けたメソッド設計情報解析部４６及び条件検索部４８に加え、更に条件区分判定部５０を設けている。条件区分判定部５０は、分類表出力部１８において構造化されたメソッド設計情報から抽出されたテスト因子とその条件をテスト因子分類表２２に生成して出力する際に、その条件が正常処理なのか異常処理なのかを判定する問合せを受け、この問合せに対し条件が正常区分に属するか異常区分に属するかの区分判定結果を応答する。
【０１１４】
即ち条件区分判定部５０は、例えば図２０のようなフローチャートで表現された構造をもつメソッド設計情報に対し、例えばステップＳ１の分岐条件を例にとると、条件不成立後の処理を検査する。
【０１１５】
ステップＳ１で分岐条件が不成立であった場合には、ステップＳ７で「エラー３００」となることから、この場合には異常処理であり、異常区分に属すると判定される。またステップＳ１で条件成立の場合には、この分岐先に直接エラー処理がないことから正常区分と判定する。
【０１１６】
図２３は、図２２の第６実施形態によって図２０のフローチャートで表現された構造をもつメソッド設計情報について、テスト因子分類表の生成結果の具体例である。
【０１１７】
このテスト因子分類表は、ヘッダ９８、引数リスト１００及び属性リスト１０２で構成されており、図２２の第６実施形態で設けた条件区分判定部５０の処理機能により、構造化されたメソッド設計情報における分岐条件の検査により引数リスト１００及び属性リスト１０２のそれぞれにおける引数及び属性の条件について、区分の項目部分に「正常」「異常」を併記している。この区分併記により引数及び属性値の条件が正常処理であるか異常処理であるかを利用者において直ちに判断することができる。
【０１１８】
図２４は、本発明の第７実施形態のブロック図である。この第７実施形態にあっては、文章により記述されたクラス設計情報を用いることで、テスト因子分類表にテスト因子の一覧に加えその条件の候補を出力するようにしたことを特徴とする。
【０１１９】
図２４において、テスト因子分類表作成部１２は、図１９の第５実施形態におけるメソッド設計情報解析部４６に代えてメソッド内容記述文解析部５２を設けており、他の構成は同じになる。
【０１２０】
メソッド内容記述文解析部５２は、クラス設計情報１０の中から端末４０により利用者が指定したメソッドの中の内部処理を文章で記述した設計情報を読み込んで解析し、解析結果を内部メモリ２０に格納する。
【０１２１】
条件検索部４８は、内部メモリ２０に解析結果として格納されたメソッド内容記述文の文章の中から予め定められた形式に基づいて条件を表わす部分を検索し、分類表出力部１８からテスト因子分類表２２に各テスト因子を出力する際に問合せを受け、この問合せに対し条件検索部４８で抽出しているテスト因子とその条件をテスト因子分類表に書き込んで出力させる。
【０１２２】
図２５は、図２４のメソッド内容記述文解析部５２及び条件検索部４８で処理対象とするメソッドの内部処理を文章で記述した設計情報の一例である。この設計情報にあっては［条件］で始まるように条件を記述する書式が採用されており、このため図２４の条件検索部４８にあっては、図２５の文章中の［条件］に続く文章の部分を検索し、テスト因子としての引数及びその条件を抽出することができる。
【０１２３】
図２６は、本発明の第１実施形態で対象とするメソッドの内部処理を文章で記述した具体例である。本発明の第１実施形態は、その構成は図２４の第７実施形態と同じであるが、条件検索部４８の機能としてメソッドの内部処理を文章で記述した設計情報の解析結果から条件を検索する際に同時に条件が正常処理なのか異常処理なのかの区分を表わす記法に基づいて条件の正常区分または異常区分を抽出するようにしたことを特徴とする。
【０１２４】
図２６のメソッドの内部処理を文章で記述した設計情報の例にあっては、［条件］で始まる行の中に［エラー］という単語がある場合に異常条件とする記法をとっており、この部分を第８実施形態の条件検索部４８により検索することで、その条件が正常区分か異常区分かを判定し、図２３の第６実施形態のテスト因子分類表と同様、引数リスト１００や属性リスト１０２の各条件に対し併記する。
【０１２５】
図２７は、本発明の第９実施形態のブロック図であり、図２６のメソッドの内部処理を文章で記述した設計情報について正常か異常かの区分を抽出して併記する機能に加え、新たに記法指定部５４を設け、文章で記述した設計情報について条件及び区分を抽出するための記法を利用者が端末４０から変更できるようにしたことを特徴とする。
【０１２６】
即ち利用者は、端末４０により記法指定部５４に対し条件と区分を表わす記法を指定させる。このように記法指定部５４で条件と区分を表わす記法が指定されると、条件検索部４８で内部メモリ２０に格納されたメソッド設計情報の内部処理を文章で記述した設計情報から条件と区分を検索する際に、利用者が指定した記法指定部５４による記法が参照され、この利用者が指定した記法に該当する行から条件が抽出される。
【０１２７】
図２８は、図２７の第９実施形態で利用者が行う記法指定部５４に対する記法の指定の具体例である。この利用者が指定した条件の記法は「“条件：”」という単語で始まる行であり、変数名と条件が並んでいる書式のものを指定している。また異常条件を識別する手法は「“エラー：”」という単語で始まる行であるかどうかという指定であり、この単語の後ろにエラーコードが記述されているという書式を指定している。
【０１２８】
図２９に、図２８の利用者が指定した記法に従って記述された文章による条件記述の例を示している。このため条件検索部４８は、記法指定部５４により指定された図２８のような記法に従って図２９のような構造をもつ文章で記述された設計情報を解析し、該当する行から該当する条件を抽出することができる。
【０１２９】
図３０は、本発明の第１０実施形態のブロック図である。この第１０実施形態にあっては、テスト因子分類表の出力対象とするメソッドを自動的に選択できるようにしたことを特徴とする。
【０１３０】
図３０の第１０実施形態にあっては、テスト因子分類表生成部１２に新たに出力対象選択部５６を設けており、それ以外の構成は図２の第１実施形態と同じである。出力対象選択部５６は、端末４０を使用した利用者が指定したメソッド選択基準あるいは装置がディフォルトとして提供する規定値のメソッド選択基準により、分類表出力部１８によって生成するテスト因子分類表２２を対象とするメソッドを自動的に選択する。
【０１３１】
出力対象選択部５６により指定するメソッド選択基準は、メソッドの属性、例えば「ｐｕｂｌｉｃ」や「ｐｒｉｖａｔｅ」となる名前の部分に、特定の文字列について「含む」「で始まる」「終わる」などの条件による部分一致などが指定される。
【０１３２】
また、この実施形態で利用者が端末４０から指定するのは「対象クラス」及び「メソッド選択基準」の２つであり、例えば属性が「ｐｕｂｌｉｃ」で名前が「ｆｉｎｄ」で始まるメソッドを出力対象とするというような指定を行う。
【０１３３】
次に本発明の第１１実施形態を説明する。この第１１実施形態は、第１０実施形態のメソッド選択基準に加え、出力対象とするクラスも自動的に選択できるようにしたことを特徴とする。
【０１３４】
第１１実施形態の構成は図３０の第１０実施形態と同じであるが、出力対象選択部５６の機能として、利用者が指定するかもしくは装置が提供するディフォルトとしての規定値のクラス選択基準とメソッド選択基準により、分類表出力部１８においてテスト因子分類表を生成するクラス及びメソッドを自動的に選択するようにしたことを特徴とする。
【０１３５】
この場合のクラス選択基準は、クラス名の部分一致即ちクラス名の特定文字列を含む部分一致、特定の文字列で始まる部分一致、あるいは特定の文字列で終わる部分一致などが考えられる。またメソッド選択基準は第１０実施形態のものと同じである。
【０１３６】
この第１１実施形態にあっては、利用者は端末４０からクラス選択基準とメソッド選択基準を指示することとなり、例えば「Ｃｏｎｔｒｏｌｌｅｒ」で終わるクラスで、属性が「ｐｕｂｌｉｃ」で、名前が「ｆｉｎｄ」で始まるメソッドを出力対象とするというような指定を行うことで、クラス選択基準とメソッド選択基準に従ったテスト因子分類表の生成ができる。
【０１３７】
図３１は、本発明の第１２実施形態のブロック図であり、この第１２実施形態にあってはクラス設計情報と同時に、そのソースプログラムを構成しているソースコードからもテスト因子とその条件を抽出してテスト因子分類表に出力するようにしたことを特徴とする。
【０１３８】
図３１において、テスト因子分類表生成部１２は、クラス設計情報１０からテスト因子分類表２２を生成するためのクラス設計情報解析部１４、因子分類部１６及び分類表出力部１８に加え、新たにソースコード解析部６０とソース条件検索部６２を設けている。
【０１３９】
ソースコード解析部６０は、クラス設計情報１０に基づいて作成されたソースプログラムを構成しているソースコード５８から対象となるメソッドのソースコードを読み込み、構文解析を行って解析結果を内部メモリ２０に格納する。
【０１４０】
ソース条件検索部６２は、対象となるメソッドのソースコード中に現れる条件文を検索し、条件文に含まれる変数をテスト因子として抽出し、また抽出したテスト因子の条件の条件文を抽出し、クラス設計情報１０から生成しているテスト因子分類表２２に追加する。
【０１４１】
図３２は、図３１のソースコード解析部６０及びソース条件検索部６２で処理対象とするソースコードの具体例である。この図３２のソースコードにつき、図３１の第１２実施形態でソースコード中の条件文を検索し、条件文中に含まれる変数をテスト因子として抽出し、またそのテスト因子の条件として条件文を抽出して、それぞれテスト因子分類表に追加する。
【０１４２】
図３３は、図３２のソースコードから抽出された変数としてのテスト因子及びそのテスト因子の条件となる条件文の具体例である。このテスト因子分類表は、ヘッダ１０４、引数リスト１０６及び属性リスト１０８で構成されている。
【０１４３】
即ち、図３２のソースコードは図２０の第５実施形態における構造をもったメソッドの処理内容を表現しており、引数リスト１０６のように変数である引数「ａｃｃｏｕｎｔ」と「ｏｒｄｅｒ」が抽出されてテスト因子として追加され、例えば引数「ａｃｃｏｕｎｔ」の条件としてソースコードの中に現れる条件文が書き込まれている。
【０１４４】
また引数「ｏｒｄｅｒ」については、属性リスト１０８のように属性展開によって２つの属性「ｔｙｐｅ」「ｉｄ」が得られ、属性名「ｔｙｐｅ」についてはソースコードの中から抽出された条件文が書き込まれている。
【０１４５】
このようにクラス設計情報を利用したテスト因子分類表の自動生成に加え、クラス設計情報から作成されたソースプログラムのソースコードを併せて利用して、抽出したテスト因子とその条件をテスト因子分類表に追加することで、クラス設計情報からは欠落するようなテスト因子とその条件をソースコードから得ることができ、テスト因子分類表２２の雛型としての精度を更に向上することができる。
【０１４６】
図３４は、本発明の第１３実施形態のブロック図である。この第１３実施形態にあっては、テスト仕様生成部２８について、完成されたテスト因子分類表からテスト項目を生成する際にその組合せ中の異常条件の数を制限することで、生成される組合せ数を削減し、不要なテスト項目を生成させないようにしたことを特徴とする。
【０１４７】
図３４において、テスト因子分類表生成部１２の構成は図２の第１実施形態を例にとっているが、これ以外に第２乃至第１２実施形態のいずれの構成をとるようにしてもよいことはもちろんである。
【０１４８】
第１３実施形態にあっては、テスト仕様生成部２８に新たに組合せ評価部６４を設けている。この組合せ評価部６４は第１３実施形態にあっては、テスト仕様出力部３６で生成するテスト仕様３８における条件の組合せを評価し、条件の組合せに含まれる異常条件が利用者が指定した上限値あるいは装置のディフォルトとしての規定値を超えていれば、その組合せを出力しないように判定する。
【０１４９】
具体的には、テスト仕様出力部３６がテスト仕様３８として条件の組合せを出力する際に組合せ評価部６４に問い合わせ、このときテスト仕様として出力する異常条件の組合せが指定した上限値を超えているか否か判断し、超えている場合にはテスト仕様出力部３６によるテスト仕様３８への出力を禁止させる。
【０１５０】
図３５は、図３４の第１３実施形態のテスト仕様生成部２８でテスト仕様生成のために入力する完成されたテスト因子分類表２６の具体例である。この完成されたテスト因子分類表２６は、ヘッダ１１０、引数リスト１１２及び属性リスト１１４で構成されている。
【０１５１】
図３６は図３５のテスト因子分類表を読み込んで組合せ評価部６４による異常条件の数の制限を行わなかったときに生成されたテスト仕様３８の具体例である。この異常条件の組合せ数を制限しない場合には、図３５における引数名及び属性名でなる３つのテスト因子についての各条件の組合せから、図３６のテスト項目番号１〜１２の１２通りの組合せからなるテスト項目が自動生成される。
【０１５２】
このうちテスト項目番号１は３つの異常の組合せであり、またテスト項目番号２，３，５，７は２つの異常の組合せとなっている。
【０１５３】
図３７は、図３４の第１３実施形態において、組合せ評価部６４に端末４０からの利用者による指定もしくは装置のディフォルトの規定値による指定で異常条件の数について上限数＝１に指定したときのテスト仕様３８の出力結果である。
【０１５４】
このように条件の組合せについて異常の組合せ上限数を上限数＝１に指定して制限することで、図３６における異常の組合せ数が２以上となるテスト項目番号１，２，３，５，７の５つの条件の組合せが除外され、異常の上限数＝１に適合した図３６のテスト項目番号４，６，８〜１２の７つのテスト項目が図３７のテスト項目番号１〜７のように生成される。
【０１５５】
図３８は、本発明の第１４実施形態でテスト仕様の生成に使用する完成されたテスト因子分類表の具体例であり、第１４実施形態にあっては、テスト因子分類表を対象にテスト項目を生成する際に、異常条件と組合せる正常条件を１つに限定することで、生成される組合せ数を削減し、不要なテスト項目を生成しないようにしたことを特徴とする。
【０１５６】
このように異常条件と組合せる正常条件を１つに制限する第１４実施形態の構成は、図３４の第１３実施形態と同じであるが、テスト仕様生成部２８に設けている組合せ評価部６４の機能として、テスト項目を生成する条件の組合せについて異常条件を組む組合せにおいて、予め定めた所定の代表正常条件以外の正常条件を含むものは出力せずに除外するように判定する。
【０１５７】
この場合の代表正常条件は、端末４０による利用者の指定もしくは装置のディフォルトとしての規定値、例えば各テスト因子の最初の正常条件を代表正常条件とするなどにより指定する。
【０１５８】
このためテスト仕様出力部３６は、テスト仕様３８として条件の組合せを出力する際に、組合せ評価部６４に対し問合せを行い、組合せ評価部６４の判定結果として代表正常条件以外の正常条件を含む異常条件との組合せは出力対象から除外することになる。
【０１５９】
図３９は、図３８の完成されたテスト因子分類表を読み込んで、代表正常条件以外の正常条件を含む組合せを除外する制限を行わない場合に生成されたテスト仕様の出力結果である。
【０１６０】
この制限なしの場合には、図３８のテスト因子分類表における引数リスト１２６の引数「ａｃｃｏｕｎｔ」について３つの条件が書き込まれ、また属性リスト１２８の属性「ｔｙｐｅ」について同じく３つの条件が書き込まれていることから、これら２つのテスト因子に対するそれぞれ３つの条件の組合せにより、制限なしの場合には図３９のテスト項目番号１〜９のように９つのテスト項目が生成される。
【０１６１】
図４０は、本発明の第１４実施形態において、テスト項目として異常条件を含む組合せについては代表正常条件以外のものを除外する制限による組合せ評価処理を行った場合に生成されるテスト仕様の具体例である。
【０１６２】
ここで代表正常条件としては図３８の引数「ａｃｃｏｕｎｔ」については先頭の正常条件「値が本社所属」を指定し、同じく属性リスト１２８の属性「ｔｙｐｅ」についても先頭の正常条件「予算種別が設備」を指定している。このような代表正常条件の指定により、異常条件と代表正常条件以外の組合せについてはテスト仕様から除外することになる。
【０１６３】
即ち図３９において、テスト項目番号２の異常と正常の組合せにあっては、注目因子「ｏｒｄｅｒ．ｔｙｐｅ」の条件区分は「正常」で条件が代表正常条件「予算種別が設備」であることから、この組合せは有効な組合せとして出力する。
【０１６４】
次のテスト項目番号３の異常と正常の組合せについては、注目因子「ｏｒｄｅｒ．ｔｙｐｅ」の条件「予算種別が一般経費」は代表正常条件でないことから、この組合せは除外する。
【０１６５】
次のテスト項目番号４の正常と異常の組合せにあっては、注目因子「ａｃｃｏｕｎｔ」の正常条件は代表正常条件「値が本社所属」であることから、この組合せは有効として出力する。
【０１６６】
次のテスト項目番号７の正常と異常の組合せについては、注目因子「ａｃｃｏｕｎｔ」の条件が「値が支店所属」で代表正常条件「値が本社所属」でないことから、この組合せは除外する。
【０１６７】
その結果、図３９の制限なしの場合のテスト項目番号２及び７が第１４実施形態の異常条件との組合せを代表正常条件に絞る処理により制限され、図４０のテスト項目が９つから７つに制限されたテスト仕様を出力することができる。
【０１６８】
このテスト仕様はヘッダ１３４とテスト項目リスト１３６で構成されており、テスト項目リスト１３６におけるテスト項目番号２，３の異常条件と正常条件の組合せは全て代表正常条件を含む組合せに制限されている。
【０１６９】
図４１は、本発明の第１５実施形態におけるテスト仕様生成処理のフローチャートであり、この第１５実施形態にあっては正常条件同士の組合せについても制約を設けることで、生成されるデータ項目の組合せ数を削減し、多様なテスト項目を生成しないようにしたことを特徴とする。
【０１７０】
この第１５実施形態を実現するための構成は、図３４の第１３実施形態と同じであり、第１５実施形態にあってはテスト仕様生成部２８に設けている組合せ評価部６４の機能として、正常条件のみの組合せにおいて制約した条件を満たしているかどうかを判定し、満たしていない場合にはテスト仕様３８としての出力を行わないようにしたことを特徴とする。
【０１７１】
図４１のフローチャートは、異なるテスト因子について正常条件のみの組合せを抽出し、その正常条件の順番が同じものの組合せを有効とし、順番が異なる正常条件の組合せは除外するようにしたことを特徴とする。
【０１７２】
例えば第１５実施形態の処理対象として図３８の完成されたテスト因子分類表を取り込んでテスト仕様を生成する場合を例にとると、正常条件のみの組合せについて制限がない場合には、図３９のようなテスト仕様が生成される。
【０１７３】
この図３９のテスト仕様における項目リスト１３２の中で、テスト項目番号５，６，８，９の４つが、その区分に示すように正常条件のみの組合せとなっている。この正常条件のみの組合せについて、図３８のテスト因子分類表の引数リスト１２６及び属性リスト１２８を見ると、正常条件は引数「ａｃｃｏｕｎｔ」について２つあり、同様に属性「ｔｙｐｅ」についても正常条件は２つある。
【０１７４】
そこで図４１の実施形態にあっては、それぞれの正常条件の１番目同士と２番目同士のみの正常条件の組合せを有効とし、正常条件が１番目と２番目、または２番目と１番目の組合せについては除外する。
【０１７５】
これを制限なしで生成された図３９のテスト仕様の正常条件の組合せであるテスト項目番号５，６及び８，９について見ると、テスト項目番号５は１番目の正常条件同士の組合せ、テスト項目番号６は１番目の正常条件と２番目の正常条件の組合せ、テスト項目番号８は２番目の正常条件と１番目の正常条件の組合せ、更にテスト項目番号９は２番目の正常条件同士の組合せとなる。
【０１７６】
図４１の第１５実施形態にあっては、順番が同じ正常条件同士の組合せを有効とし、それ以外を除外しているため、正常条件の順番が違っているテスト項目番号６，８が除外され、テスト項目番号５，９の正常条件のみの組合せが有効な組合せとして出力される。
【０１７７】
このため第１５実施形態による正常条件同士の組合せを制限したテスト項目の生成処理によると、図４２のテスト仕様の出力結果を得ることができる。この正常条件同士の組合せを制限した場合には、図３９の制限なしの場合の９つのテスト項目に対し、図４２の正常条件組合せの制限により７つのテスト項目に削減されており、不要なテスト項目の生成が防止できる。
【０１７８】
図４１のフローチャートにおける同一順位の正常条件同士の組合せを有効として出力するテスト項目の生成処理にあっては、まずステップＳ１で注目している組合せが正常条件のみの組合せか否かチェックする。正常条件のみの組合せであれば、ステップＳ２で先頭の正常条件を取り出し、ステップＳ３で、取り出した先頭の条件が注目因子における何番目の正常条件かをｎに代入する。
【０１７９】
次にステップＳ４で、組み合わされている残りの正常条件を取り込み、ステップＳ５で残りの正常条件に対応する因子の正常条件の数をｍにセットする。そしてステップＳ６でｎとｍの大小関係を比較し、ｍがｎ以上であれば、ステップＳ７で残りの因子の条件がｎ番目の正常条件か否かチェックし、ｎ番目の正常条件であればステップＳ９に進み、その組合せは有効として出力する。ｎ番目の正常条件でなければステップＳ１０でその組合せの出力は不要とする。
【０１８０】
ここでステップＳ６，Ｓ７の処理は、先頭の注目因子の条件数が残りの注目因子の条件数以上の場合である。これに対しステップＳ６，Ｓ８の処理は、先頭の注目因子の条件の数が残りの注目因子の条件の数より小さい場合である。
【０１８１】
いずれの場合にも、先頭の因子の条件の順番と残りの因子の条件の順番が等しい場合はステップＳ９に進んで、その正常条件の組合せは有効として出力し、順番が違っている場合にはステップＳ１０に進み、順番が違っている正常条件の組合せの出力は不要としている。
【０１８２】
なお図４２の例にあっては、図３９のように、入力するテスト因子分類表として注目因子が２つで、それぞれの条件が２つの場合を例にとっているが、注目因子の数がそれ以上でまた条件の数が様々であっても全く同様にして、同じ順番の正常条件の組合せのみを有効としそれ以外を除外する組合せに制限することができる。
【０１８３】
もちろん、正常条件のみの組合せは、上記の第１５実施形態の具体例に限定されず、必要に応じて適宜の条件の正常条件のみの組合せを有効とし、それ以外を除外する制約条件を組合せ評価部６４に対する指定で行うことができる。
【０１８４】
次に本発明によるテスト仕様生成プログラムの実施形態を説明する。図２の第１実施形態を例にとると、本発明のテスト仕様生成支援装置はテスト因子分類表生成部１２とテスト仕様生成部２８で構成されており、それぞれ独立したプログラムとして作ることができる。
【０１８５】
即ち上記の各実施形態におけるテスト因子分類表生成部１２の処理機能がテスト因子分類表生成プログラムとして作られ、また上記の各実施形態におけるテスト仕様生成部２８の機能がテスト仕様生成プログラムとして作られる。
【０１８６】
このようにして生成された２つのテスト因子分類表生成プログラムとテスト仕様生成プログラムは、コンピュータのメモリにインストールされ、予め作成されたクラス設計情報のファイルデータをテスト因子分類表生成プログラムで読み込んで処理することでテスト因子分類表を自動生成する。
【０１８７】
このようにして自動生成されたテスト因子分類表は利用者に提示され、テスト因子分類表の雛型の空白を埋めることにより、完成されたテスト因子分類表を作り、これをテスト仕様生成プログラムで読み込んで自動的にテスト仕様を生成する。
【０１８８】
ここで本発明のテスト仕様生成支援プログラムの構造としては、テスト因子分類表生成プログラムとテスト仕様生成プログラムを一体化したプログラム構造としてもよいことは勿論である。
【０１８９】
次に本発明のテスト仕様生成支援プログラムを格納したコンピュータ読取可能な記録媒体の実施形態を説明する。
【０１９０】
図４３のコンピュータシステム２００は本発明のテスト仕様生成支援プログラムを実行するシステムであり、本体部２０２を有し、本体部２０２には図４４のように、ＣＰＵ２２０、ＲＡＭ２２２、ＲＯＭ２２４、ディスクドライブ装置（ＨＤＤ）２２６、ＣＤ−ＲＯＭドライブ２２８、ＦＤドライブ２３０、キーボード，マウス，ディスプレイを接続するＩ／Ｏインタフェース２３２、ＬＡＮインタフェース２３４、モデム２３６などが内蔵される。
【０１９１】
コンピュータシステム２００は更に、本体部２０２からの指示により表示画面２０４に自動生成されたテスト因子分類表などを情報表示するディスプレイ２０６、コンピュータシステム２００に種々の情報を入力するためのキーボード２０８、ディスプレイ２０６の表示画面２０４上の任意の位置を指定するマウス２１０、回線で接続されたデータベースにアクセスするＬＡＮインタフェース２１２、モデム２１４が備えられている。
【０１９２】
本発明のテスト仕様生成支援プログラムは、ＣＤ−ＲＯＭ、フロッピィディスク、ＤＶＤディスク、光ディスク、ＩＣカードなどの可搬型記憶媒体、モデム２３６及びＬＡＮインタフェース２３４を利用し、回線を介して接続されたデータベースあるいは他のコンピュータシステムＰＣのデータベースに格納され、コンピュータシステム２００にインストールされた後、コンピュータシステム２００で実行される。
【０１９３】
ここで記録媒体とは、ＣＤ−ＲＯＭ２１６、フロッピィディスク（Ｒ）ＦＤ２１８、ＤＶＤディスク、光ディスク、ＩＣカードなどの可搬型記録媒体あるいは、コンピュータシステム２００の内外に備えられたハードディスク（ＨＤＤ）などの記憶装置や回線を介してプログラムを保持するデータベースあるいは他のコンピュータシステム並びにそのデータベース等のような固定型記録媒体を意味するものである。
【０１９４】
なお上記の実施形態にあっては、例えば図２の第１実施形態のようにテスト因子分類表生成部１２とテスト仕様生成部２８を一体に備えた支援装置としての実施形態を例にとるものであったが、本発明の他の実施形態にあってはプログラムや記録媒体の場合と同様、テスト因子分類表生成部１２とテスト仕様生成部２８を独立した装置として別々に構成してもよいことはもちろんである。
【０１９５】
また本発明は上記の実施形態に限定されず、その目的と利点を損なわない適宜の変形を含む。更に本発明は上記の実施形態に示した数値による限定は受けない。
【０１９６】
（付記１）
オブジェクト指向により設計されたソフトウェアのクラス設計情報を解析して、テスト対象のメソッドの動作に影響するテスト因子とその条件を列挙したテスト因子分類表の雛型を生成するテスト因子分類表生成部と、
前記テスト因子分類表の雛型に基づいて完成されたテスト因子分類表に記述された条件を組合せてテスト仕様書を生成するテスト仕様生成部と、
を備えたことを特徴とするテスト仕様生成支援装置。（１）
【０１９７】
（付記２）
付記1記載のテスト仕様生成支援装置において、
前記テスト因子分類表生成部は、
指定されたクラスのクラス設計情報を入力して解析するクラス設計情報解析部と、
前記クラス設計情報の解析結果の中からメソッドの引数の並びとその条件を含むテスト因子及びテスト因子分類表に使用するヘッダ情報を抽出する因子分類部と、
前記抽出されたテスト因子及びヘッダ情報を所定の表形式に整形してテスト因子分類表の雛型を出力する分類表出力部と、
を備え
前記テスト仕様生成部は、
前記テスト因子分類表を入力して解析する分類表解析部と、
前記分類表の解析結果の中から各テスト因子毎にその条件を一つ選択して重複しないように組合せを生成すると共に及びテスト仕様に使用するヘッダ情報を抽出するテスト因子組合せ生成部と、
前記組合せ生成部で生成及び抽出された全ての組合せ及びヘッダ情報を所定形式に整形してテスト仕様を出力するテスト仕様出力部と、
を備えたことを特徴とするテスト仕様生成支援装置。（２）
【０１９８】
（付記３）
付記２記載のテスト仕様生成支援装置において、前記テスト因子分類表生成部の因子分類部は、抽出されたテスト因子の型がクラスであった場合、対応するクラス設計情報を参照して属性値を展開し、展開した属性値をテスト因子として抽出する処理を再帰的に実行することを特徴とするテスト仕様生成支援装置。（３）
【０１９９】
（付記４）
付記３記載のテスト仕様生成支援装置において、前記テスト因子分類表生成部は、更に、属性値の展開上限数を指定する展開上限数指定部を有し、前記因子分類部は前記展開上限数指定部により指定された上限数を超える属性値を展開しないことを特徴とするテスト仕様生成支援装置。（４）
【０２００】
（付記５）
付記３記載のテスト仕様生成支援装置において、前記テスト因子分類表生成部は、更に、属性値の展開が不要であるクラスを指定する展開不要クラス指定部を有し、前記因子分類部は属性値の展開時に前記展開不要クラス指定部により指定されたクラスの属性値を展開しないことを特徴とするテスト仕様生成支援装置。（５）
【０２０１】
（付記６）
付記２記載のテスト仕様生成支援装置において、前記テスト因子分類表生成部は、更に、指定されたメソッドの処理内容に関する構造化されたクラス設計情報を入力して解析するメソッド設計情報解析部を有し、
前記因子分類部は、前記解析結果から前記メソッドの処理内容中に記述された分岐条件を抽出し、該分岐条件を構成する引数等の変数とその条件をテスト因子として抽出し、
前記分類表出力部は、抽出されたテスト因子及びヘッダ情報を所定の表形式に整形してテスト因子分類表の雛型を出力することを特徴とするテスト仕様生成支援装置。
【０２０２】
（付記７）
付記６記載のテスト仕様生成支援装置において、前記テスト因子分類表生成部は、更に、前記分岐条件が正常処理を表すのか異常処理を表すのかを判定する条件区分判定部を有し、前記テスト因子分類表に正常処理か異常処理かの判定区分を併記することを特徴とするテスト仕様生成支援装置。
【０２０３】
（付記８）
付記２記載のテスト仕様生成支援装置において、前記テスト因子分類表生成部は、更に、
指定されたメソッドの処理内容に関する文章で記述された設計情報を入力して特定の記法によって書かれた条件の記述を解析するメソッド内容記述文解析部と、前記設計情報の解析結果から前記メソッドの処理内容中に記述された分岐条件を抽出し、該分岐条件を構成する引数等の変数とその条件をテスト因子として検索する条件検索部と、
を有し、前記分類表出力部は、前記因子分類部及び条件検索部で抽出されたテスト因子を所定の表形式に整形してテスト因子分類表の雛型を出力することを特徴とするテスト仕様生成支援装置。
【０２０４】
（付記９）
付記８記載のテスト仕様生成支援装置において、前記条件検索部は、更に、前記文章中に特定の記法によって書かれた分岐条件が正常処理を表すのか異常処理を表すのかを判定し、前記テスト因子分類表に正常処理か異常処理かの判定区分を併記させることを特徴とするテスト仕様生成支援装置。
【０２０５】
（付記１０）
付記９記載のテスト仕様生成支援装置において、前記テスト因子分類表生成部は、更に、メソッドの処理内容が記述された文章から抽出する条件の記法と正常処理か異常処理かの区分の記法を指定する記法指定部を有することを特徴とするテスト仕様生成装置。
【０２０６】
（付記１１）
付記２記載のテスト仕様生成支援装置において、前記テスト因子分類表生成部は、更に、指定されたメソッド選択基準により設計情報の中からメソッドを選択して出力対象のテスト因子分類表を生成させる出力対象選択部を有することを特徴とするテスト仕様生成支援装置。
【０２０７】
（付記１２）
付記２記載のテスト仕様生成支援装置において、前記テスト因子分類表生成部は、更に、指定されたクラス選択基準により設計情報の中からクラスとメソッドを選択して出力対象のテスト因子分類表を生成させる出力対象選択部を有することを特徴とするテスト仕様生成支援装置。
【０２０８】
（付記１３）
付記２記載のテスト仕様生成支援装置において、前記テスト因子分類表生成部は、更に、
クラス設計情報に対応したプログラムのソースコードを入力して解析するソースコード解析部と、
前記ソースコードの解析結果から対象となるメソッドの条件文を抽出し、該条件で使用されている変数と条件文をテスト因子として抽出して前記クラス設計情報から生成されたテスト因子分類表に追加させるソース条件検索部と、
を有すること特徴とするテスト仕様生成支援装置。
【０２０９】
（付記１４）
付記７又は９記載のテスト仕様生成支援装置において、前記テスト仕様生成部は、更に、前記テスト因子分類表に記述された条件を組合せる際に、異常処理に区分される条件が含まれる数の上限を指定する組合せ評価部を有することを特徴とするテスト仕様生成装置。
【０２１０】
（付記１５）
付記７又は９記載のテスト仕様生成支援装置において、前記テスト仕様生成部は、更に、前記テスト因子分類表に記述された条件を組合せる際に、同じテスト因子の中で正常処理に区分される複数の正常条件の中の一つを代表正常条件に指定して異常処理に区分される異常条件と組合せさせる組合せ評価部を有することを特徴とするテスト仕様生成支援装置。
【０２１１】
（付記１６）
付記７又は９記載のテスト仕様生成支援装置において、前記テスト仕様生成部は、更に、前記テスト因子分類表に記述された条件を組合せる際に、正常条件のみの組合せについて、組合わせ可能な正常条件を限定する組合せ評価部を有することを特徴とするテスト仕様生成支援装置。
【０２１２】
（付記１７）
オブジェクト指向により設計されたソフトウェアのクラス設計情報を解析して、テスト対象のメソッドの動作に影響するテスト因子とその条件を列挙したテスト因子分類表の雛型を生成する分類表生成ステップと、
前記テスト因子分類表の雛型に基づいて完成されたテスト因子分類表に記述された条件を組合せてテスト仕様書を生成するテスト仕様生成ステップと、
を備えたことを特徴とするテスト仕様生成支援方法。（６）
【０２１３】
（付記１８）
付記1７記載のテスト仕様生成支援方法において、
前記分類表生成ステップは、
指定されたクラスのクラス設計情報を入力して解析し、
前記クラス設計情報の解析結果の中からメソッドの引数の並びとその条件を含むテスト因子及びテスト因子分類表に使用するヘッダ情報を抽出し、
前記抽出されたテスト因子及びヘッダ情報を所定の表形式に整形してテスト因子分類表の雛型を出力し、
前記テスト仕様生成ステップは、
前記テスト因子分類表を入力して解析し、
前記分類表の解析結果の中から各テスト因子毎にその条件を一つ選択して重複しないように組合せを生成すると共に及びテスト仕様に使用するヘッダ情報を抽出し、
生成された全ての組合せ及びヘッダ情報を所定形式に整形してテスト仕様を出力することを特徴とするテスト仕様生成支援方法。（７）
【０２１４】
（付記１９）
付記１８記載のテスト仕様生成支援方法において、前記分類表生成ステップは、抽出されたテスト因子の型がクラスであった場合、対応するクラス設計情報を参照して属性値を展開し、展開した属性値をテスト因子として抽出する処理を再帰的に実行することを特徴とするテスト仕様生成支援方法。
【０２１５】
（付記２０）
付記１９記載のテスト仕様生成支援方法において、前記分類表生成ステップは、更に、属性値の展開上限数を指定し、属性値の展開時に、指定された上限数を超える属性値を展開しないことを特徴とするテスト仕様生成支援方法。
【０２１６】
（付記２１）
付記１９記載のテスト仕様生成支援方法において、前記分類表生成ステップは、更に、属性値の展開が不要であるクラスを指定し、属性値の展開時に、指定されたクラスの属性値を展開しないことを特徴とするテスト仕様生成支援方法。
【０２１７】
（付記２２）
付記１８記載のテスト仕様生成支援方法において、前記分類表生成ステップは、更に、
指定されたメソッドの処理内容に関する構造化されたクラス設計情報を入力して解析し、
前記解析結果から前記メソッドの処理内容中に記述された分岐条件を抽出し、該分岐条件を構成する引数等の変数とその条件をテスト因子として抽出し、
抽出されたテスト因子及びヘッダ情報を所定の表形式に整形してテスト因子分類表の雛型を出力することを特徴とするテスト仕様生成支援方法。
【０２１８】
（付記２３）
付記２２記載のテスト仕様生成支援方法において、前記分類表生成ステップは、更に、前記分岐条件が正常処理を表すのか異常処理を表すのかを判定し、前記テスト因子分類表に正常処理か異常処理かの判定区分を併記することを特徴とするテスト仕様生成支援方法。
【０２１９】
（付記２４）
付記１８記載のテスト仕様生成支援方法において、前記分類表生成ステップは、更に、
指定されたメソッドの処理内容に関する文章で記述された設計情報を入力して特定の記法によって書かれた条件の記述を解析し、
前記設計情報の解析結果から前記メソッドの処理内容中に記述された分岐条件を抽出し、該分岐条件を構成する引数等の変数とその条件をテスト因子として検索し、
抽出されたテスト因子を所定の表形式に整形してテスト因子分類表の雛型を出力することを特徴とするテスト仕様生成支援方法。
【０２２０】
（付記２５）
付記２４記載のテスト仕様生成支援方法において、更に、前記文章中に特定の記法によって書かれた分岐条件が正常処理を表すのか異常処理を表すのかを判定し、前記テスト因子分類表に正常処理か異常処理かの判定区分を併記させることを特徴とするテスト仕様生成支援方法。
【０２２１】
（付記２６）
付記２５記載のテスト仕様生成支援方法において、前記分類表生成ステップは、更に、メソッドの処理内容が記述された文章から抽出する条件の記法と正常処理か異常処理かの区分の記法を指定することを特徴とするテスト仕様生成方法。
【０２２２】
（付記２７）
付記１８記載のテスト仕様生成支援方法において、前記分類表生成ステップは、更に、指定されたメソッド選択基準により設計情報の中からメソッドを選択して出力対象のテスト因子分類表を生成させることを特徴とするテスト仕様生成支援方法。
【０２２３】
（付記２８）
付記１８記載のテスト仕様生成支援方法において、前記分類表生成ステップは、更に、指定されたクラス選択基準により設計情報の中からクラスとメソッドを選択して出力対象のテスト因子分類表を生成させることを特徴とするテスト仕様生成支援方法。
【０２２４】
（付記２９）
付記１８記載のテスト仕様生成支援方法において、前記分類表生成ステップは、更に、
クラス設計情報に対応したプログラムのソースコードを入力して解析し、
前記ソースコードの解析結果から対象となるメソッドの条件文を抽出し、該条件で使用されている変数と条件文をテスト因子として抽出して前記クラス設計情報から生成されたテスト因子分類表に追加させること特徴とするテスト仕様生成支援方法。
【０２２５】
（付記３０）
付記２３又は２５記載のテスト仕様生成支援方法において、前記テスト仕様生成ステップは、更に、前記テスト因子分類表に記述された条件を組合せる際に、異常処理に区分される条件が含まれる数の上限を指定することを特徴とするテスト仕様生成方法。
【０２２６】
（付記３１）
付記２３又は２５記載のテスト仕様生成支援方法において、前記テスト仕様生成ステップは、更に、前記テスト因子分類表に記述された条件を組合せる際に、同じテスト因子の中で正常処理に区分される複数の正常条件の中の一つを代表正常条件に指定して異常処理に区分される異常条件と組合せさせることを特徴とするテスト仕様生成支援方法。
【０２２７】
（付記３２）
付記２３又は２５記載のテスト仕様生成支援方法において、前記テスト仕様生成ステップは、更に、前記テスト因子分類表に記述された条件を組合せる際に、正常条件のみの組合せについて、組合わせ可能な正常条件を限定することを特徴とするテスト仕様生成支援方法。
【０２２８】
（付記３３）
コンピュータに、
オブジェクト指向により設計されたソフトウェアのクラスの設計情報を解析して、テスト対象のメソッドの動作に影響するテスト因子とその条件を列挙したテスト因子分類表の雛型を生成する分類表生成ステップと、
前記テスト因子分類表の雛型に基づいて完成されたテスト因子分類表に記述された条件を組合せてテスト仕様書を生成するテスト仕様生成ステップと、
を実行させることを特徴とするテスト仕様生成支援プログラム。（８）
【０２２９】
（付記３４）
付記３３記載のテスト仕様生成支援プログラムにおいて、
指定されたクラスのクラス設計情報を入力して解析し、
前記クラス設計情報の解析結果の中からメソッドの引数の並びとその条件を含むテスト因子及びテスト因子分類表に使用するヘッダ情報を抽出し、
前記抽出されたテスト因子及びヘッダ情報を所定の表形式に整形してテスト因子分類表の雛型を出力し、
前記テスト仕様生成ステップは、
前記テスト分類表を入力して解析し、
前記分類表の解析結果の中から各テスト因子毎にその条件を一つ選択して重複しないように組合せを生成すると共に及びテスト仕様に使用するヘッダ情報を抽出し、
生成された全ての組合せ及びヘッダ情報を所定形式に整形してテスト仕様を出力することをコンピュータに実行させることを特徴とするテスト仕様生成支援プログラム。
【０２３０】
（付記３５）
オブジェクト指向により設計されたソフトウェアのクラス設計情報を解析して、テスト対象のメソッドの動作に影響するテスト因子とその条件を列挙したテスト因子分類表の雛型を生成する分類表生成ステップと、
前記テスト因子分類表の雛型に基づいて完成されたテスト因子分類表に記述された条件を組合せてテスト仕様書を生成するテスト仕様生成ステップと、
を実行させるテスト仕様生成支援プログラムを格納したコンピュータ読取可能な記録媒体。（９）
【０２３１】
（付記３６）
付記３５記載の記録媒体において、
前記分類表生成ステップは、
指定されたクラスのクラス設計情報を入力して解析し、
前記クラス設計情報の解析結果の中からメソッドの引数の並びとその条件を含むテスト因子及びテスト因子分類表に使用するヘッダ情報を抽出し、
前記抽出されたテスト因子及びヘッダ情報を所定の表形式に整形してテスト因子分類表の雛型を出力し、
前記テスト仕様生成ステップは、
前記テスト分類表を入力して解析し、
前記分類表の解析結果の中から各テスト因子毎にその条件を一つ選択して重複しないように組合せを生成すると共に及びテスト仕様に使用するヘッダ情報を抽出し、
生成された全ての組合せ及びヘッダ情報を所定形式に整形してテスト仕様を出力することをコンピュータに実行させることを特徴とする記憶媒体。
【０２３２】
（付記３７）
オブジェクト指向により設計されたソフトウェアの指定されたクラスのクラス設計情報を入力して解析するクラス設計情報解析部と、
前記クラス設計情報の解析結果の中からメソッドの引数の並びとその条件を含むテスト因子及びテスト因子分類表に使用するヘッダ情報を抽出する因子分類部と、
前記抽出されたテスト因子及びヘッダ情報を所定の表形式に整形してテスト因子分類表の雛型を出力する分類表出力部と、
を備えたとを特徴とするテスト因子分類表生成支援装置。（１０）
【０２３３】
（付記３８）
オブジェクト指向により設計されたソフトウェアの指定されたクラスのクラス設計情報を入力して解析し、
前記クラス設計情報の解析結果の中からメソッドの引数の並びとその条件を含むテスト因子及びテスト因子分類表に使用するヘッダ情報を抽出し、
前記抽出されたテスト因子及びヘッダ情報を所定の表形式に整形してテスト因子分類表の雛型を出力すること実行させることをを特徴とするテスト因子分類表生成支援方法。
【０２３４】
（付記３９）
コンピュータに、
オブジェクト指向により設計されたソフトウェアの指定されたクラスのクラス設計情報を入力して解析し、
前記クラス設計情報の解析結果の中からメソッドの引数の並びとその条件を含むテスト因子及びテスト因子分類表に使用するヘッダ情報を抽出し、
前記抽出されたテスト因子及びヘッダ情報を所定の表形式に整形してテスト因子分類表の雛型を出力すること実行させることをを特徴とするテスト因子分類表生成支援プログラム。
【０２３５】
（付記４０）
オブジェクト指向により設計されたソフトウェアの指定されたクラスのクラス設計情報を入力して解析し、
前記クラス設計情報の解析結果の中からメソッドの引数の並びとその条件を含むテスト因子及びテスト因子分類表に使用するヘッダ情報を抽出し、
前記抽出されたテスト因子及びヘッダ情報を所定の表形式に整形してテスト因子分類表の雛型を出力すること実行させるテスト仕様生成支援プログラムを格納したコンピュータ読取可能な記録媒体。
【０２３６】
【発明の効果】
以上説明してきたように本発明によれば、オブジェクト指向の考え方に基づいて設計されたソフトウェアのテストに際し、そのクラス設計情報を利用してテスト因子分類表の雛型を自動生成することで、従来、人手に頼っていたテスト因子分類表の作成に関する工数を大幅に削減することができる。
【０２３７】
また本発明により自動生成されたテスト因子分類表は雛型として利用者に提示され、利用者は雛型の空き部分を埋める形でテスト因子分類表を完成させるだけでよく、分類表における基本的な引数並びや属性値などのテスト因子については自動的に書き込まれていることから、テスト因子に基づいた条件の記述漏れを防いで精度の高いテスト因子分類表を本発明の支援のもとに生成することができる。
【０２３８】
また雛型の更新により完成したテスト因子分類表の条件を組合せて自動的にテスト仕様を生成することで、漏れのないテスト仕様の自動生成が効率的にできる。更にテスト仕様生成の際にテスト項目として組合せる条件を必要に応じて制限することで、生成される組合せの数を削減し、不要なテスト項目を生成しないようにすることが適切にできる。
【図面の簡単な説明】
【図１】本発明の原理説明図
【図２】本発明の第１実施形態のブロック図
【図３】図２の第１実施形態への入力となるクラス設計情報の説明図
【図４】図２の第１実施形態における因子分類処理のフローチャート
【図５】図２の第１実施形態で生成されたテスト因子分類表の説明図
【図６】図５に対し内容が入力され完成したテスト因子分類表の説明図
【図７】図２の第１実施形態におけるテスト因子組合せ処理のフローチャート
【図８】図７のテスト因子組合せ生成処理における条件組合せ処理のフローチャート
【図９】図２の第１実施形態により生成されたテスト仕様の説明図
【図１０】本発明の第２実施形態での因子分類処理のフローチャート
【図１１】図１０の因子分類処理における属性展開処理のフローチャート
【図１２】本発明の第２実施形態で生成されたテスト因子分類表の説明図
【図１３】本発明の第３実施形態のブロック図
【図１４】図１３の第３実施形態での因子分類処理のフローチャート
【図１５】図１４の因子分類処理における属性展開処理のフローチャート
【図１６】本発明の第４実施形態のブロック図
【図１７】図１６の第４実施形態での因子分類処理のフローチャート
【図１８】図１７の因子分類処理における属性展開処理のフローチャート
【図１９】本発明の第５実施形態のブロック図
【図２０】図１９の第５実施形態で入力とする構造化されたクラス設計情報の説明図
【図２１】図１９の第５実施形態で生成されたテスト因子分類表の説明図
【図２２】本発明の第６実施形態のブロック図
【図２３】図２２の第６実施形態で生成されたテスト因子分類表の説明図
【図２４】本発明の第７実施形態のブロック図
【図２５】図２４の第７実施形態で入力とする文章で記述されたクラス設計情報の説明図
【図２６】本発明の第８実施形態で入力とする文章で記述されたクラス設計情報の説明図
【図２７】本発明の第９実施形態のブロック図
【図２８】図２７の第９実施形態で入力とする記法指定の説明図
【図２９】図２７の第９実施形態で入力とする文章で記述された設計情報の説明図
【図３０】本発明の第１０実施形態のブロック図
【図３１】本発明の第１２実施形態のブロック図
【図３２】図３１の第１２実施形態で入力とするソースコードの説明図
【図３３】図３１の第１２実施形態で生成されたテスト因子分類表の説明図
【図３４】本発明の第１３実施形態のブロック図
【図３５】図３４の第１３実施形態で入力とするテスト因子分類表の説明図
【図３６】組合せを制限せずに生成されたテスト仕様の説明図
【図３７】図３４の第１３実施形態で異常条件の数を制限して生成されたテスト仕様の説明図
【図３８】本発明の第１４実施形態で入力とするテスト因子分類表の説明図
【図３９】組合せを制限せずに生成されたテスト仕様の説明図
【図４０】本発明の第１４実施形態で異常条件に組合せる正常条件の数を制限して生成されたテスト仕様の説明図
【図４１】本発明の第１５実施形態による組合せ評価処理部のフローチャート
【図４２】本発明の第１５実施形態で生成されたテスト仕様の説明図
【図４３】本発明の３次元解析モデル生成プログラムを格納した記録媒体が使用されるコンピュータシステムの説明図
【図４４】図４３における本体部の内部構成のブロック図
【符号の説明】
１０：クラス設計情報
１２：テスト因子分類表生成部
１４：クラス設計情報解析部
１６：因子分類部
１８：分類表出力部
２０：内部メモリ
２２：テスト因子分類表
２４：更新作業部
２６：テスト因子分類表（更新済み）
２８：テスト仕様生成部
３０：分類表解析部
３２：テスト因子組合せ生成部
３４：内部メモリ
３６：テスト仕様出力部
３８：テスト仕様
４０：端末
４２：展開上限数指定部
４４：展開不要クラス指定部
４６：メソッド設計情報解析部
４８：条件検索部
５０：条件区分判定部
５２：メソッド内容記述文解析部
５４：記法指定部
５６：出力対象選択部
５８：ソースコード
６０：ソースコード解析部
６２：ソース条件検索部
６４：組合せ評価部
６８，７４，７８，８２，８６，９２，９８，１０４，１１０，１１６，１２０，１２４，１３０，１３４，１３８：ヘッダ
７０，９０，９６，１０２，１０８，１１４，１２８属性リスト
７２：メソッドの引数リスト
７６，８０，８８，９４，１００，１０６，１１２，１２６：引数リスト
８４，１１８，１２２，１３２，１３６，１４０：項目リスト
【図１】
0003828379.tif 000002
【図２】
0003828379.tif 000003
【図３】
0003828379.tif 000004
【図４】
0003828379.tif 000005
【図５】
0003828379.tif 000006
【図６】
0003828379.tif 000007
【図７】
0003828379.tif 000008
【図８】
0003828379.tif 000009
【図９】
0003828379.tif 000010
【図１０】
0003828379.tif 000011
【図１１】
0003828379.tif 000012
【図１２】
0003828379.tif 000013
【図１３】
0003828379.tif 000014
【図１４】
0003828379.tif 000015
【図１５】
0003828379.tif 000016
【図１６】
0003828379.tif 000017
【図１７】
0003828379.tif 000018
【図１８】
0003828379.tif 000019
【図１９】
0003828379.tif 000020
【図２０】
0003828379.tif 000021
【図２１】
0003828379.tif 000022
【図２２】
0003828379.tif 000023
【図２３】
0003828379.tif 000024
【図２４】
0003828379.tif 000025
【図２５】
0003828379.tif 000026
【図２６】
0003828379.tif 000027
【図２７】
0003828379.tif 000028
【図２８】
0003828379.tif 000029
【図２９】
0003828379.tif 000030
【図３０】
0003828379.tif 000031
【図３１】
0003828379.tif 000032
【図３２】
0003828379.tif 000033
【図３３】
0003828379.tif 000034
【図３４】
0003828379.tif 000035
【図３５】
0003828379.tif 000036
【図３６】
0003828379.tif 000037
【図３７】
0003828379.tif 000038
【図３８】
0003828379.tif 000039
【図３９】
0003828379.tif 000040
【図４０】
0003828379.tif 000041
【図４１】
0003828379.tif 000042
【図４２】
0003828379.tif 000043
【図４３】
0003828379.tif 000044
【図４４】
0003828379.tif 000045