(57)【特許請求の範囲】
【請求項１】
プログラム言語により記述され、入力される値に応じて定められた情報処理を行った処理結果を出力するソフトウェアプログラムの単体テストを支援するプログラムテスト支援装置であって、
単体テストの対象であるソフトウェアプログラムが記憶されている試験対象記憶部と、
前記ソフトウェアプログラムに対して行う単体テストの観点を示すテスト項目が記憶されるテスト項目記憶部と、
前記ソフトウェアプログラムに対して入力する値の組み合わせであるテストケースが記憶されるテストケース記憶部と、
前記値の、前記プログラム言語における型に応じた限界値を示す言語仕様が記憶されている言語仕様記憶部と、
前記ソフトウェアプログラムが利用されるシステムにおける業務仕様に応じた前記値の境界値が含まれる業務仕様が記憶されている業務仕様記憶部と、
前記テスト項目の入力を受け付けて前記テスト項目記憶部に記憶させるテスト項目登録部と、
前記ソフトウェアプログラムと、前記言語仕様と、前記業務仕様とに基づいて、定められたテストケース生成技法に基づいて前記テストケースを生成して前記テストケース記憶部に記憶させるテストケース生成部と、
前記テストケース生成部が生成した前記テストケース毎に、当該テストケースに対応する前記テスト項目を対応付ける対応関係の入力を受け付ける対応関係入力部と、
前記対応関係入力部に入力された前記対応関係に基づいて、前記テストケースが対応付けられていない前記テスト項目が存在するか否かを判定する判定部と、
前記判定部が、前記テストケースが対応付けられていない前記テスト項目が存在すると判定すると、警告を出力する警告部と、
を備えることを特徴とするプログラムテスト支援装置。
【請求項２】
テストケース生成部は、前記テストケース生成技法であるＡｌｌ−Ｐａｉｒ法に基づいて前記テストケースを生成する
ことを特徴とする請求項１に記載のプログラムテスト支援装置。
【請求項３】
前記テスト項目を条件として、前記テストケースを動作とするデシジョンテーブル形式のテストケース表を生成して出力するテストケース表生成部と、
を備えることを特徴とする請求項１または請求項２に記載のプログラムテスト支援装置。
【請求項４】
プログラム言語により記述され、入力される値に応じて定められた情報処理を行った処理結果を出力するソフトウェアプログラムの単体テストを支援し、単体テストの対象であるソフトウェアプログラムが記憶されている試験対象記憶部と、前記ソフトウェアプログラムに対して行う単体テストの観点を示すテスト項目が記憶されるテスト項目記憶部と、前記ソフトウェアプログラムに対して入力する値の組み合わせであるテストケースが記憶されるテストケース記憶部と、前記値の、前記プログラム言語における型に応じた限界値を示す言語仕様が記憶されている言語仕様記憶部と、前記ソフトウェアプログラムが利用されるシステムにおける業務仕様に応じた前記値の境界値が含まれる業務仕様が記憶されている業務仕様記憶部と、を備えたプログラムテスト支援装置のプログラムテスト支援方法であって、
前記テスト項目の入力を受け付けて前記テスト項目記憶部に記憶させるステップと、
前記ソフトウェアプログラムと、前記言語仕様と、前記業務仕様とに基づいて、定められたテストケース生成技法に基づいて前記テストケースを生成して前記テストケース記憶部に記憶させるステップと、
生成した前記テストケース毎に、当該テストケースに対応する前記テスト項目を対応付ける対応関係の入力を受け付けるステップと、
入力された前記対応関係に基づいて、前記テストケースが対応付けられていない前記テスト項目が存在するか否かを判定するステップと、
前記テストケースが対応付けられていない前記テスト項目が存在すると判定すると、警告を出力するステップと、
を備えることを特徴とするプログラムテスト支援方法。
【請求項５】
プログラム言語により記述され、入力される値に応じて定められた情報処理を行った処理結果を出力するソフトウェアプログラムの単体テストを支援し、単体テストの対象であるソフトウェアプログラムが記憶されている試験対象記憶部と、前記ソフトウェアプログラムに対して行う単体テストの観点を示すテスト項目が記憶されるテスト項目記憶部と、前記ソフトウェアプログラムに対して入力する値の組み合わせであるテストケースが記憶されるテストケース記憶部と、前記値の、前記プログラム言語における型に応じた限界値を示す言語仕様が記憶されている言語仕様記憶部と、前記ソフトウェアプログラムが利用されるシステムにおける業務仕様に応じた前記値の境界値が含まれる業務仕様が記憶されている業務仕様記憶部と、を備えたプログラムテスト支援装置のコンピュータに、
前記テスト項目の入力を受け付けて前記テスト項目記憶部に記憶させるステップと、
前記ソフトウェアプログラムと、前記言語仕様と、前記業務仕様とに基づいて、定められたテストケース生成技法に基づいて前記テストケースを生成して前記テストケース記憶部に記憶させるステップと、
生成した前記テストケース毎に、当該テストケースに対応する前記テスト項目を対応付ける対応関係の入力を受け付けるステップと、
入力された前記対応関係に基づいて、前記テストケースが対応付けられていない前記テスト項目が存在するか否かを判定するステップと、
前記テストケースが対応付けられていない前記テスト項目が存在すると判定すると、警告を出力するステップと、
を実行させるためのプログラムテスト支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアプログラムの単体テストを支援する技術に関する。
【背景技術】
【０００２】
情報処理システムの開発は、設計、製造、テスト等の工程を経て行われるのが一般的である。テスト工程においては、そのコンピュータシステムを構成するモジュールであるソフトウェアプログラムにおける条件分岐や入出力の妥当性を検査する単体テストや、複数のモジュールを結合して複数モジュール間の連携を検査する結合テスト等などが行われる。特許文献１、２には、このようなテストを自動化する技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平５−３４２０５４号公報
【特許文献２】特開平１０−２０７７２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、製造されたソフトウェアプログラムに基づいて単体テストのテストプログラムを自動生成する場合、例えばそのプログラム言語の言語仕様に基づいた限界値等を考慮したテストケースは網羅できるとしても、業務仕様に基づくテストケースを考慮したテストプログラムを生成することは困難である。また、ソフトウェアプログラムに入力する引数等の値の組み合わせを総当りで検査するテストケースを自動生成すると、膨大なテストケースが生成されることになり、テスト工程に過剰な工数が必要となってしまう。そこで、業務仕様を考慮し、かつ、ソフトウェアプログラムの品質を検査できる妥当な量のテストケースを生成することが望ましい。
【０００５】
本発明は、このような状況に鑑みてなされたもので、業務仕様を考慮し、かつ、ソフトウェアプログラムの品質を検査できる妥当な量のテストケースを生成するプログラムテスト支援装置、プログラムテスト支援方法、プログラムテスト支援プログラムを提供する。
【課題を解決するための手段】
【０００６】
上述した課題を解決するために、本発明は、プログラム言語により記述され、入力される値に応じて定められた情報処理を行った処理結果を出力するソフトウェアプログラムの単体テストを支援するプログラムテスト支援装置であって、単体テストの対象であるソフトウェアプログラムが記憶されている試験対象記憶部と、ソフトウェアプログラムに対して行う単体テストの観点を示すテスト項目が記憶されるテスト項目記憶部と、ソフトウェアプログラムに対して入力する値の組み合わせであるテストケースが記憶されるテストケース記憶部と、値の、プログラム言語における型に応じた限界値を示す言語仕様が記憶されている言語仕様記憶部と、ソフトウェアプログラムが利用されるシステムにおける業務仕様に応じた値の境界値が含まれる業務仕様が記憶されている業務仕様記憶部と、テスト項目の入力を受け付けてテスト項目記憶部に記憶させるテスト項目登録部と、ソフトウェアプログラムと、言語仕様と、業務仕様とに基づいて、定められたテストケース生成技法に基づいてテストケースを生成してテストケース記憶部に記憶させるテストケース生成部と、テストケース生成部が生成したテストケース毎に、テストケースに対応するテスト項目を対応付ける対応関係の入力を受け付ける対応関係入力部と、対応関係入力部に入力された対応関係に基づいて、テストケースが対応付けられていないテスト項目が存在するか否かを判定する判定部と、判定部が、テストケースが対応付けられていないテスト項目が存在すると判定すると、警告を出力する警告部と、を備えることを特徴とする。
【０００７】
また、本発明は、テストケース生成部は、テストケース生成技法であるＡｌｌ−Ｐａｉｒ法に基づいてテストケースを生成することを特徴とする。
【０００８】
また、本発明は、テスト項目を条件として、テストケースを動作とするデシジョンテーブル形式のテストケース表を生成して出力するテストケース表生成部と、を備えることを特徴とする。
【０００９】
また、本発明は、プログラム言語により記述され、入力される値に応じて定められた情報処理を行った処理結果を出力するソフトウェアプログラムの単体テストを支援し、単体テストの対象であるソフトウェアプログラムが記憶されている試験対象記憶部と、ソフトウェアプログラムに対して行う単体テストの観点を示すテスト項目が記憶されるテスト項目記憶部と、ソフトウェアプログラムに対して入力する値の組み合わせであるテストケースが記憶されるテストケース記憶部と、値の、プログラム言語における型に応じた限界値を示す言語仕様が記憶されている言語仕様記憶部と、ソフトウェアプログラムが利用されるシステムにおける業務仕様に応じた値の境界値が含まれる業務仕様が記憶されている業務仕様記憶部と、を備えたプログラムテスト支援装置のプログラムテスト支援方法であって、テスト項目の入力を受け付けてテスト項目記憶部に記憶させるステップと、ソフトウェアプログラムと、言語仕様と、業務仕様とに基づいて、定められたテストケース生成技法に基づいてテストケースを生成してテストケース記憶部に記憶させるステップと、生成したテストケース毎に、テストケースに対応するテスト項目を対応付ける対応関係の入力を受け付けるステップと、入力された対応関係に基づいて、テストケースが対応付けられていないテスト項目が存在するか否かを判定するステップと、テストケースが対応付けられていないテスト項目が存在すると判定すると、警告を出力するステップと、を備えることを特徴とする。
【００１０】
また、本発明は、プログラム言語により記述され、入力される値に応じて定められた情報処理を行った処理結果を出力するソフトウェアプログラムの単体テストを支援し、単体テストの対象であるソフトウェアプログラムが記憶されている試験対象記憶部と、ソフトウェアプログラムに対して行う単体テストの観点を示すテスト項目が記憶されるテスト項目記憶部と、ソフトウェアプログラムに対して入力する値の組み合わせであるテストケースが記憶されるテストケース記憶部と、値の、プログラム言語における型に応じた限界値を示す言語仕様が記憶されている言語仕様記憶部と、ソフトウェアプログラムが利用されるシステムにおける業務仕様に応じた値の境界値が含まれる業務仕様が記憶されている業務仕様記憶部と、を備えたプログラムテスト支援装置のコンピュータに、テスト項目の入力を受け付けてテスト項目記憶部に記憶させるステップと、ソフトウェアプログラムと、言語仕様と、業務仕様とに基づいて、定められたテストケース生成技法に基づいてテストケースを生成してテストケース記憶部に記憶させるステップと、生成したテストケース毎に、テストケースに対応するテスト項目を対応付ける対応関係の入力を受け付けるステップと、入力された対応関係に基づいて、テストケースが対応付けられていないテスト項目が存在するか否かを判定するステップと、テストケースが対応付けられていないテスト項目が存在すると判定すると、警告を出力するステップと、を実行させるためのプログラムテスト支援プログラムである。
【発明の効果】
【００１１】
以上説明したように、本発明によれば、ソフトウェアプログラムに対して行う単体テストの観点を示すテスト項目の入力を受け付けて記憶し、予め記憶されたソフトウェアプログラムと、言語仕様と、業務仕様とに基づいて、定められたテストケース生成技法に基づいて、ソフトウェアプログラムに対して入力する値の組み合わせであるテストケースを生成し、生成したテストケース毎に、テストケースに対応するテスト項目を対応付ける対応関係の入力を受け付け、入力された対応関係に基づいて、テストケースが対応付けられていないテスト項目が存在するか否かを判定し、テストケースが対応付けられていないテスト項目が存在すると判定すると、警告を出力するようにしたので、業務仕様を考慮し、かつ、ソフトウェアプログラムの品質を検査できる妥当な量のテストケースを生成することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態によるプログラムテスト支援装置の構成例を示すブロック図である。
【図２】本発明の一実施形態によるテスト対象のソフトウェアプログラムの例を示すフローチャートである。
【図３】本発明の一実施形態によるテストケース表雛形の例を示す図である。
【図４】本発明の一実施形態によるテストケース表の入力例を示す図である。
【図５】本発明の一実施形態によるテストケース表の入力例を示す図である。
【図６】本発明の一実施形態によるテストケース表の入力例を示す図である。
【図７】本発明の一実施形態による業務仕様のデータ例を示す図である。
【図８】本発明の一実施形態による言語仕様と業務仕様とのデータ例を示す図である。
【図９】本発明の一実施形態により生成されるテストケース候補値の例を示す図である。
【図１０】本発明の一実施形態によるテストケース表の入力例を示す図である。
【図１１】本発明の一実施形態によるテストケース表の入力例を示す図である。
【図１２】本発明の一実施形態によるテストプログラムの例を示す図である。
【図１３】本発明の一実施形態によるプログラムテスト支援装置の動作例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明の一実施形態について、図面を参照して説明する。
図１は、本実施形態によるプログラムテスト支援装置１００の構成を示すブロック図である。プログラムテスト支援装置１００は、プログラム言語により記述され、入力される値に応じて定められた情報処理を行った処理結果を出力するソフトウェアプログラムの単体テストを支援するコンピュータ装置である。プログラムテスト支援装置１００は、ユーザからの入力を受け付けるマウスやキーボード等の入力デバイスや、情報を表示するディスプレイ等を有する。試験対象記憶部１０１と、テストケース雛形記憶部１０２と、テストケース表生成部１０３と、テスト項目登録部１０４と、テスト項目記憶部１０５と、業務仕様記憶部１０７と、テストケース生成部１０８と、テストケース記憶部１０９と、対応関係入力部１１０と、判定部１１１と、警告部１１２と、テストプログラム生成部１１３とを備えている。
【００１４】
試験対象記憶部１０１には、単体テストの対象であるソフトウェアプログラムが記憶される。図２は、試験対象記憶部１０１に記憶されているソフトウェアプログラムのソースコードの例を示す図である。ここでは、ＪＡＶＡ（登録商標）によって記述されたソフトウェアプログラムの例を示しているが、他のプログラム言語によって記述されたソフトウェアプログラムを試験対象としても良い。ここでは、ＳｍｐｌＢＬｏｇｉｃＩｍｐｌクラスのｃａｌｃＳｕｍメソッドを試験対象とする例を説明する。ｃａｌｃＳｕｍメソッドは、引数として渡されたＩＤの商品の単価と個数をもとに、配送料を加算した合計金額を計算する処理を行う。ｃａｌｃＳｕｍメソッドは、文字列型であるＳｔｒｉｎｇの変数であるｉｔｅｍＩＤと、整数型であるｉｎｔの変数であるｃｎｔとを引数とする。図においては、符号ａに示す箇所にクラス名が記載されており、符号ｂに示す箇所に戻り値の型が記載されており、符号ｃとｄに示す箇所に引数が記載されている。
【００１５】
テストケース表雛形記憶部１０２には、プログラムテスト支援装置１００が生成するテストケース表の雛形が予め記憶される。図３は、テストケース雛形記憶部１０２に記憶されているテストケース表雛形の例を示す図である。このようなテストケース表雛形は、例えば表計算ソフトによるシートとして記憶されている。符号ａに示す箇所には、試験対象の情報が入力される。符号ｂに示す箇所は、テスト項目を条件として、テストケースを動作とするデシジョンテーブル形式のテストケース表であり、テスト項目やテストケースが入力される。ここで、テスト項目とは、ソフトウェアプログラムに対して行う単体テストの観点を示す情報であり、例えば、「配送料が加算される条件の場合に正しい合計金額になること」のような情報である。テストケースは、ソフトウェアプログラムに対して入力する値の組み合わせであり、例えば、変数ｉｔｅｍＩＤと変数ｃｎｔとに入力する値の組み合わせである。
【００１６】
テストケース表生成部１０３は、テストケース表雛形記憶部１０２から読み出したテストケース表雛形に各種情報を入力し、デシジョンテーブル形式のテストケース表を生成して出力する。図４は、図３において符号ａに示した箇所に情報が入力された例を示す図である。ここには、試験対象のクラス名と、メソッド名と、引数と、戻り値と、テスト対象概要との情報が入力される。これらの情報は、ユーザから入力された情報が入力されるようにしても良いし、テストケース表生成部１０３が試験対象のソフトウェアプログラムから読み出して入力するようにしても良い。
【００１７】
図５は、図３において符号ｂに示した箇所を示す図である。この箇所の上部には、テスト観点が入力され、テスト観点毎に具体的なテスト項目が対応付けられて入力される。これらの情報は、テスト対象のモジュール等やテスト方針等に応じて、予め記憶されたテスト観点を読み出して入力するようにしても良いし、ユーザから入力された情報を入力するようにしても良い。事前条件、入力値、期待結果の欄には、テストケース表生成部１０３が、テスト対象のモジュールに含まれる情報を読み出して入力する。組み合わせ条件の欄には、テストケースを生成する際の組み合わせに関する条件を指定することができる。例えば、テストケースの生成対象とする値を選択したり、テストケースから除外する値の組み合わせ等を指定したりすることができる。
【００１８】
テスト項目登録部１０４は、ユーザからのテスト項目の入力を受け付けて、テスト項目記憶部１０５に記憶させる。テスト項目登録部１０４に記憶されたテスト項目は、テストケース表生成部１０３によって読み出されてテストケース表に入力される。図６は、テスト項目が入力されたテストケース表の例を示す図である。テスト項目の欄には、「配送料が加算される条件の場合に正しい合計金額になること」や、「配送料が加算されない条件の場合に正しい合計金額になること」等の情報が入力される。
テスト項目記憶部１０５には、テスト項目登録部１０４に入力されたテスト項目が記憶される。
【００１９】
業務仕様記憶部１０６には、ソフトウェアプログラムが利用されるシステムにおける業務仕様に応じた引数や事前条件の境界値が含まれる業務仕様が記憶されている。図７は、業務仕様記憶部１０６に記憶されている業務仕様のデータ例を示す図である。例えば、月齢データの最小値「１」と最大値「１２」と、日付データの最小値「１」と最大値「３１」、うるう年の場合の２月の日付の特殊値としての「２９」などが記憶される。
【００２０】
言語仕様記憶部１０７には、引数や事前条件の値の、プログラム言語における型に応じた限界値を示す言語仕様が記憶される。例えば、図８の言語仕様の欄に示す様に、型がｉｎｔであれば、言語仕様としての上限値と下限値とが対応付けられる。
【００２１】
テストケース生成部１０８は、試験対象記憶部１０１に記憶されている試験対象のソフトウェアプログラムと、言語仕様記憶部１０７に記憶されている言語仕様と、業務仕様記憶部１０６に記憶されている業務仕様とを読み出し、読み出したソフトウェアプログラムと、言語仕様と、業務仕様とに基づいて、定められたテスト技法に基づいてテストケース候補値を生成してテストケース記憶部１０９に記憶させる。例えば、図７に示したような業務仕様から、図８の業務仕様の欄に示すように、最大値と最小値の間の値である正常値と、最大と最小との境界値と、特殊値とを判定する。また、テストケース生成部１０８は、図８に示したようなデータから、図９に示すような、テストケース候補値を生成する。ここでは、テストケース生成部１０８は、例えば同値分割や境界値分析等のテスト技法に基づいて、テストケース候補値を生成する。テストケース生成部１０８は、このように生成したテストケース候補値をテストケース記憶部１０９に記憶させる。テストケース記憶部１０９に記憶させたテストケース候補値は、テストケース表生成部１０３によって読み出され、図６に示すように、事前条件と入力値との値が入力される。
【００２２】
また、テストケース生成部１０８は、定められたテストケース生成技法に基づいてテストケースを生成してテストケース記憶部１０９に記憶させる。テストケース生成技法とは、例えば、Ａｌｌ−Ｐａｉｒ法や直交表を用いた手法や、代表値のみの組み合わせから１変数のみ値を変更する等の手法が適用できる。このような値を組み合わせてテストケースを生成する際には、ＰＩＣＴ（Pairwise Independent Combinatorial Testing tool）などのテストケース生成ツール等を使用することができる。テストケース生成部１０８は、このように生成したテストケースをテストケース記憶部１０９に記憶させる。テストケース記憶部１０９に記憶させたテストケースは、テストケース表生成部１０３によって読み出され、図１０の符号ａに示すように、テストケース表にプロットされて入力される。ここでは、「Ｙ」の文字が入力された箇所の値を組み合わせることを示している。本実施形態では、テストケース生成ツール等を使用してテストケースを生成する例を示すが、テストケース表生成部１０３が、ユーザからの手動によるテストケースの入力を受け付けて、入力されたテストケースをテストケース記憶部１０９に記憶させるようにしても良い。ここで、図に示すように、テストケース表には、「Ｙ」が入力された数を、行ごと、列ごとに示す「ｃｎｔ」の項目を設けることができる。
テストケース記憶部１０９には、テストケース生成部１０８によって生成されたテストケース候補値やテストケースが記憶される。
【００２３】
対応関係入力部１１０は、テストケース生成部１０８が生成したテストケース毎に、そのテストケースに対応するテスト項目を対応付ける対応関係の入力を受け付ける。例えば、図１１は、テストケース表に入力された対応関係の例を示す図である。符号ａに示すように、テストケースに対応するテスト項目の欄に、「Ｙ」の文字を入力することにより対応関係を示している。また、このようなテストケースに応じた戻り値の入力を受け付け、戻り値の欄に入力する。
【００２４】
判定部１１１は、対応関係入力部１１０に入力された対応関係に基づいて、テストケースが対応付けられていないテスト項目が存在するか否かを判定する。ここで、判定部１１１は、図１１の符号ａに示す箇所において、「Ｙ」が入力された数を行毎に算出し、符号ａの左のｃｎｔ列に入力する。ここで、ｃｎｔ列に０が入力された行があれば、テスト項置くに対応するテストケースが生成されていないと考えられる。
【００２５】
警告部１１２は、判定部１１１が、テストケースが対応付けられていないテスト項目が存在すると判定すると、警告を出力する。警告とは、例えば、警告文が表示されたポップアップ画面を表示するようにしても良いし、例えばｃｎｔ列が０である行を赤文字や網掛け等により強調するようにしても良い。警告部１１２が警告を出力すると、テストケース表生成部１０３が、警告に応じてユーザから追加入力される必要なテストケースを受け付けて、テストケース記憶部１０９に記憶させる。これにより、テスト項目の全てについてテストケースが対応付けられた後に、テストプログラムを生成するようにすることができる。
【００２６】
テストプログラム生成部１１３は、生成されたテストケース表に基づいてテストプログラムを生成する。テストプログラム生成部１１３は、判定部１１１によってテストケースが対応付けられていないテスト項目が存在しないと判定された場合に、テストプログラムを生成するようにしても良い。図１２は、テストプログラム生成部１１３が生成するテストプログラムのソースコードの例を示す図である。符号ａの箇所には、対応するテスト項目が記載され、符号ｂ、ｃの箇所にはテストケースに指定された引数が記載され、符号ｄの箇所には戻り値が記載される。ここでは、テスト対象のソフトウェアプログラムに対するドライバやスタブ等も生成される。
【００２７】
次に、本実施形態によるプログラムテスト支援装置１００の動作例を説明する。テストケース表生成部１０３は、テストケース表雛形記憶部１０２に記憶されているテストケース表雛形を読み出す（ステップＳ１）。そして、試験対象記憶部１０１に記憶されているテスト対象のソフトウェアプログラムを読み出し、ソフトウェアプログラムに含まれるコメントやクラス名等を読み出して、テストケース表に入力する（ステップＳ２）。テスト項目登録部１０４は、テスト項目の入力を受け付け、テスト項目記憶部１０５に記憶させる（ステップＳ３）。
【００２８】
テストケース表生成部１０３は、言語仕様記憶部１０７に記憶された言語仕様と、業務仕様記憶部１０６に記憶された業務使用とを読み出し、同値分割や境界値分析等のテスト技法に基づいてテストケース候補値を算出し、テストケース表に入力する（ステップＳ４）。そして、テストケース表生成部１０３は、テストケース生成技法に基づいてテストケースを生成し、テストケース表に入力する（ステップＳ５）。対応関係入力部１１０は、テスト項目とテストケースとの対応関係の入力を受け付ける（ステップＳ６）。そして、判定部１１１が、テストケースが対応付けられていないテスト項目が存在するか否かを判定する（ステップＳ７）。
【００２９】
ここで、判定部１１１が、テストケースが対応付けられていないテスト項目が存在すると判定すると、警告部１１２が警告を出力する（ステップＳ８）。テストケース表生成部１０３は新たなテストケースの入力を受け付け（ステップＳ９）、ステップＳ７に戻る。ステップＳ７において、判定部１１１が、テストケースが対応付けられていないテスト項目が存在しないと判定すると、テストプログラム生成部１１３が、テストケース表に基づいてテストプログラムを生成し（ステップＳ１０）、処理を終了する。
【００３０】
以上説明したように、本実施形態によれば、業務仕様を考慮し、かつ、ソフトウェアプログラムの品質を検査できる妥当な量のテストケースを生成し、このようなテストケースに基づくテストプログラムを生成することができる。これにより、過剰な量のテストを行わずに、テスト対象のプログラムの品質を検査することができる。また、テスト項目とテストケースとを視覚的に対応付けるテストケース表を生成するので、ユーザは、テストケース表をみながら、テストケースの過不足や妥当性を効率良く確認することができる。
【００３１】
なお、本発明における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによりプログラムテストの支援を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境（あるいは表示環境）を備えたＷＷＷシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００３２】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００３３】
１００  プログラムテスト支援装置
１０１  試験対象記憶部
１０２  テストケース表雛形記憶部
１０３  テストケース表生成部
１０４  テスト項目登録部
１０５  テスト項目記憶部
１０６  業務仕様記憶部
１０７  言語仕様記憶部
１０８  テストケース生成部
１０９  テストケース記憶部
１１０  対応関係入力部
１１１  判定部
１１２  警告部
１１３  テストプログラム生成部
【図１】
0005690657.tif 000002
【図２】
0005690657.tif 000003
【図３】
0005690657.tif 000004
【図４】
0005690657.tif 000005
【図５】
0005690657.tif 000006
【図６】
0005690657.tif 000007
【図７】
0005690657.tif 000008
【図８】
0005690657.tif 000009
【図９】
0005690657.tif 000010
【図１０】
0005690657.tif 000011
【図１１】
0005690657.tif 000012
【図１２】
0005690657.tif 000013
【図１３】
0005690657.tif 000014