(57)【要約】【課題】コンピュータプログラムのテストを設計するためのテスト仕様書とテストデータとをより適切に作成すること。【解決手段】複数の個別仕様と複数の共通仕様とを判別可能に示す設計書１１、１２を作成するステップと、設計書１１、１２に基づいてテスト仕様書とテストデータとを生成する動作をコンピュータに実行させるステップと、設計書１１、１２に基づいて作成されたプログラムをそのテスト仕様書とそのテストデータとに基づいてテストするステップとを備えている。このようなテスト方法は、そのテスト仕様書とテストデータとを生成する工数をより低減することができ、そのテスト仕様書とテストデータとの生成時の人手によるミスを低減することができる。その結果、このようなテスト方法は、設計書１１、１２に基づいて作成されたプログラムをより適切にテストすることができ、そのプログラムの品質劣化をより低減することができる。【選択図】図４
2011204069.tif 000002
【特許請求の範囲】
【請求項１】
設計書を所定のフォーマットで作成するステップと、
前記設計書に基づいてテスト仕様書とテストデータとを生成する動作をコンピュータに実行させるステップと、
前記設計書に基づいて作成されたプログラムを前記テスト仕様書と前記テストデータとに基づいてテストするステップ
とを具備するテスト方法。
【請求項２】
請求項１において、
前記設計書は、
前記プログラムのために個別に作成された複数の個別仕様と、
前記複数の個別仕様と異なる複数の共通仕様とを判別可能に示し、
前記コンピュータは、前記複数の個別仕様に基づいてそれぞれ生成される複数のテスト仕様書部分を統合することにより前記テスト仕様書を生成する
テスト方法。
【請求項３】
請求項２において、
前記テスト仕様書は、前記複数の個別仕様に対応する複数のテスト項目が記述され、
前記コンピュータは、前記複数のテスト項目の各テスト項目が前記テスト仕様書に記述される順番が前記複数の個別仕様のうちの前記各テスト項目に対応する個別仕様が前記設計書に記述される順番と同じになるように、前記テスト仕様書を生成する
テスト方法。
【請求項４】
請求項２または請求項３のいずれかにおいて、
前記複数の共通仕様に関する共通テスト項目を作成するステップをさらに具備し、
前記コンピュータは、前記共通テスト項目にさらに基づいて前記テスト仕様書を生成する
テスト方法。
【請求項５】
請求項２〜請求項４のいずれかにおいて、
テストデータ生成パターンを作成するステップをさらに具備し、
前記コンピュータは、前記テストデータ生成パターンにさらに基づいて前記テストデータを生成する
テスト方法。
【請求項６】
入力装置を介して入力された設計書に記述される複数の仕様のうちから、前記設計書より作成されるプログラムのために個別に記述された複数の個別仕様を抽出する個別処理取得手段と、
前記複数の個別仕様に基づいて生成される複数のテスト仕様書部分を統合することによりテスト仕様書を生成するテスト仕様書生成手段と、
前記複数の個別仕様の一部に基づいてテストデータを生成するテストデータ生成手段とを具備し、
前記テスト仕様書と前記テストデータとは、前記プログラムをテストすることに利用される
テスト仕様書テストデータ自動生成装置。
【請求項７】
請求項６において、
前記テスト仕様書は、前記複数の個別仕様に対応する複数のテスト項目が記述され、
前記テスト仕様書生成手段は、前記複数のテスト項目の各テスト項目が前記テスト仕様書に記述される順番が前記複数の個別仕様の前記各テスト項目に対応する処理が前記設計書に記述される順番と同じになるように、前記テスト仕様書を生成する
テスト仕様書テストデータ自動生成装置。
【請求項８】
請求項６または請求項７のいずれかにおいて、
前記複数の個別処理取得手段は、前記複数の個別仕様のうちから条件分岐を示す条件分岐仕様を抽出する条件分岐取得手段を含み、
前記複数のテスト仕様書部分は、前記条件分岐仕様に基づいて生成される条件分岐テスト仕様書部分を含み、
前記テストデータ生成手段は、前記条件分岐仕様に基づいて前記テストデータを生成する
テスト仕様書テストデータ自動生成装置。
【請求項９】
請求項６〜請求項８のいずれかにおいて、
前記複数のテスト仕様書部分は、入力装置を介して入力された共通テスト項目をさらに含み、
前記共通テスト項目は、前記複数の仕様のうちの前記複数の個別仕様と異なる複数の共通仕様に関する
テスト仕様書テストデータ自動生成装置。
【請求項１０】
請求項６〜請求項９のいずれかにおいて、
前記テストデータ生成手段は、入力装置を介して入力されたテストデータ生成パターンにさらに基づいて前記テストデータを生成する
テスト仕様書テストデータ自動生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テスト方法およびテスト仕様書テストデータ自動生成装置に関し、特に、コンピュータプログラムを適切に作成するときに利用されるテスト方法およびテスト仕様書テストデータ自動生成装置に関する。
【背景技術】
【０００２】
バッチ型プログラムの開発は、比較的シンプルで定型的な処理が多く、少し工夫をすることによって、開発工数を大幅に削減することができる可能性を有している。バッチ型プログラムの開発は、設計工程と製造工程とテスト工程との３つの工程に分けることができる。その設計工程では、顧客の業務要件からシステム化することができる部分を抜き出し、プログラム作成に必要なプログラムの動作を記述した設計書が作成される。その製造工程では、その設計工程で作成された設計書を参照しながら、プログラムのコーディングが行われる。そのテスト工程では、その製造工程で作成されたプログラムが設計書通りに動作するかどうかがテストされる。このテスト工程におけるテスト作業では、まず、その設計書を元にしてテストポイントを記述したテスト仕様書が作成され、次に、そのプログラムの実行テストで必要となるテストデータが作成され、そのあとにテストが実施される。
【０００３】
特開２００１−６０１５０号公報には、データベースの表のデータを参照、更新、削除するデータ処理プログラムを自動的に生成し得るようにするデータ処理プログラム自動生成システムが開示されている。そのデータ処理プログラム自動生成システムは、データベースの表のデータを参照、更新、削除するデータ処理プログラムを自動的に生成するデータ処理プログラム自動生成システムであって、仕様から取得した情報に基づいて、カーソル定義文、作業変数定義文、出力処理文を生成する手段と、前記データ処理プログラムのうち、仕様の如何に関わらず固定の部分のプログラムと仕様によって変化する部分のプログラム断片の挿入位置とを含むプログラムスケルトンの該当箇所に、前記生成されたカーソル定義文、作業変数定義文、出力処理文、および前記仕様中のプログラムカスタマイズ情報を挿入して前記データ処理プログラムを完成させ、出力する手段とを含んでいる。
【０００４】
特開２００４−２６５３２６号公報には、書式の定まっていない設計仕様書に基づいてテスト仕様書の自動生成を行うことが可能なテスト支援プログラムが開示されている。そのテスト支援プログラムは、設計仕様書に基づいて作成されたアプリケーションプログラムを実行する装置の動作テストを支援するテスト支援プログラムにおいて、コンピュータに、当該アプリケーションプログラムに関する設計仕様書情報を入力すると、前記設計仕様書情報に設定されている前記動作テストの処理記述に用いる記述データの指定を取得し、前記記述データに関する書式指定情報を生成するステップと、前記書式指定情報に基づいて前記動作テストの処理手順を記述してテスト仕様書を生成するステップとを実行させることを特徴としている。
【０００５】
特開２００８−２４２５４０号公報には、実際の業務における稼動によって取得したデータに基づいて、業務上重要な処理についてテストするための、業務の実態に即したコンピュータシステムのシステムテスト仕様書を自動生成するテスト仕様書生成プログラムが開示されている。そのテスト仕様書生成プログラムは、コンピュータシステムのシステムテスト仕様書を自動生成するテスト仕様書生成プログラムにおいて、コンピュータを、複数のデータ集合の更新処理を含むデータ更新処理を個々に識別する処理識別情報と、前記データ更新処理によって更新された前記データ集合のデータ集合名と、前記データ集合が更新された更新時刻とをそれぞれ関連付けて記憶する更新情報記憶手段、前記コンピュータシステムで実行される業務フローを構成する業務ステップを実現する各モジュールが、要求を満たしているか否かをチェックする機能テストの手順を示す機能テスト情報を記憶する機能テスト情報記憶手段、前記更新情報記憶手段が記憶する前記更新情報から、前記処理識別情報により同一と識別される前記データ更新処理ごとに、前記データ更新処理によって更新された前記データ集合の前記データ集合名を、前記更新時刻の早い順に並べたフロー情報を生成する業務フロー抽出手段、前記機能テスト情報記憶手段が記憶する前記機能テスト情報から、前記業務フロー抽出手段で生成した前記フロー情報に示された前記業務フローごとに、前記業務フローを構成する前記業務ステップの並び順に対応して並べた前記機能テストの並び順を示すシステムテスト情報を生成するシステムテスト情報生成手段、として機能させることを特徴としている。
【０００６】
特開平７−３６７３７号公報には、業務に適応したテストデータを自動作成し、テスト工程の効率を向上させたテストデータ生成方法が開示されている。そのテストデータ作成方法は、ソフトウェア生産支援システムにおけるテストデータ作成方法において、入力されたテストデータのレコード仕様書から抽出されたデータ項目名を標準データ項目名に変換し、該標準データ項目名をキーにして、使用頻度が高く、データ項目間の関連性が高いデータを格納した標準テストデータファイルからデータを抽出してテストデータを生成し、該生成されたテストデータを表形式に展開した画面上で修正し、該修正したテストデータを出力することを特徴としている。
【０００７】
特開平１１−２８２６６６号公報には、設計工程でエントリした設計情報リポジトリからテスト工程で使用するテスト仕様書を生成することができるテスト仕様書作成装置が開示されている。そのテスト仕様書作成装置は、設計情報を元にテスト仕様書を作成するテスト仕様書作成装置において、テスト仕様書の基本的な構成を記述したテスト構成ファイルを記憶するテスト構成記憶手段と、設計工程で作成された設計情報を読み込む設計情報読み込み手段と、前記テスト構成ファイルに記述された文を行単位で読み込んでその文は固定出力行かプログラム出力行かを解析するデータ解析手段と、入力行がデータ解析手段によりプログラム出力行と判断された場合に前記設計情報読み込み手段にて読み込んだ設計情報を元にテスト事項を生成する第１テスト事項生成手段と、データ解析手段で解析された固定出力行および第１テスト事項生成手段で生成されたテスト事項を出力するテスト仕様書書き出し手段とから構成されていることを特徴としている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００１−６０１５０号公報
【特許文献２】特開２００４−２６５３２６号公報
【特許文献３】特開２００８−２４２５４０号公報
【特許文献４】特開平０７−３６７３７号公報
【特許文献５】特開平１１−２８２６６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
バッチ型プログラムの設計から製造、テストまでの工程を一貫してトータルでの開発生産性向上が望まれ、特に、そのテストをより適切に設計するためのテスト仕様書とテストデータとをより適切に作成することが望まれている。
【００１０】
従来は、特開２００１−６０１５０号公報に示されるデータ処理プログラム自動生成システムのように、プログラムのソースコードを自動生成する技術が多く存在するが、テスト仕様書やテストデータに言及するものが少なかった。
【００１１】
テスト仕様書の作成は、設計書を参照しながら人手で作成する場合に、工数が多くかかるという問題があり、人手によるミスを防止しきれずテストポイントのテスト仕様書への展開が漏れてしまいプログラムの品質劣化を招くという問題がある。また、テストデータの作成についても、そのテスト仕様書を参照しながら人手で作成するケースがほとんどであり、その工数が多くかかるという問題がある。また、設計書を元に生成するテスト仕様書やテストデータについても、一定のルールで生成が可能で自動化により開発生産性の向上を図れる部分だったが、設計書からテスト仕様書とテストデータを同時に自動生成する試みは今まで実現できていなかった。
【００１２】
本発明の目的は、コンピュータプログラムが意図した通りに動作するかを検証するテストをより適切に設計するためのテスト仕様書とテストデータとをより適切に作成するテスト方法およびテスト仕様書テストデータ自動生成装置を提供することにある。
【課題を解決するための手段】
【００１３】
本発明によるテスト方法は、設計書を所定のフォーマットで作成するステップと、その設計書に基づいてテスト仕様書とテストデータとを生成する動作をコンピュータに実行させるステップと、その設計書に基づいて作成されたプログラムをそのテスト仕様書とそのテストデータとに基づいてテストするステップとを備えている。
【００１４】
本発明によるテスト仕様書テストデータ自動生成装置は、入力装置を介して入力された設計書に記述される複数の仕様のうちから、その設計書より作成されるプログラムのために個別に記述された複数の個別仕様を抽出する個別処理取得手段と、その複数の個別仕様に基づいて生成される複数のテスト仕様書部分を統合することによりテスト仕様書を生成するテスト仕様書生成手段と、その複数の個別仕様の一部に基づいてテストデータを生成するテストデータ生成手段とを備えている。そのテスト仕様書とそのテストデータとは、そのプログラムをテストすることに利用される。
【発明の効果】
【００１５】
本発明によるテスト方法およびテスト仕様書テストデータ自動生成装置は、コンピュータプログラムを作成するときに、そのコンピュータプログラムが意図した通りに動作するかを検証するテストをより適切に設計するためのテスト仕様書とテストデータとをより適切に作成することができる。
【図面の簡単な説明】
【００１６】
【図１】図１は、本発明によるテスト仕様書テストデータ自動生成装置の実施の形態を示すブロック図である。
【図２Ａ】図２Ａは、設計書テンプレートの一部を示す図である。
【図２Ｂ】図２Ｂは、設計書テンプレートの他の一部を示す図である。
【図３】図３は、共通テスト項目を示す図である。
【図４】図４は、処理概要設計書と処理詳細設計書とを示す図である。
【図５】図５は、ビジネスロジックテスト仕様書を示す図である。
【図６】図６は、カーソル定義テスト仕様書を示す図である。
【図７】図７は、条件分岐テスト仕様書を示す図である。
【図８】図８は、出力編集テスト仕様書を示す図である。
【図９Ａ】図９Ａは、テスト仕様書の一部を示す図である。
【図９Ｂ】図９Ｂは、テスト仕様書の他の一部を示す図である。
【図１０】図１０は、データ定義を示す図である。
【図１１】図１１は、データ生成パターンを示す図である。
【発明を実施するための形態】
【００１７】
図面を参照して、本発明によるテスト仕様書テストデータ自動生成装置の実施の形態を記載する。そのテスト仕様書テストデータ自動生成装置１００は、図１に示されているように、コンピュータであり、図示されていないＣＰＵと記憶装置とリムーバルメモリドライブと通信装置と入力装置と出力装置とを備えている。そのＣＰＵは、テスト仕様書テストデータ自動生成装置１００にインストールされるコンピュータプログラムを実行して、その記憶装置と入力装置と出力装置とを制御する。その記憶装置は、そのコンピュータプログラムを記録し、そのＣＰＵにより生成される情報を一時的に記録する。そのリムーバルメモリドライブは、記録媒体が挿入されたときに、その記録媒体に記録されているデータを読み出すことに利用される。そのリムーバルメモリドライブは、特に、コンピュータプログラムが記録されている記録媒体が挿入されたときに、そのコンピュータプログラムをテスト仕様書テストデータ自動生成装置１００にインストールするときに利用される。その記録媒体としては、フラッシュメモリ、磁気ディスク（フレキシブルディスク、ハードディスク）、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスクが例示される。その通信装置は、通信回線網を介してそのＣＰＵにより生成された情報を他のコンピュータに送信し、その通信回線網を介して他のコンピュータから出力された情報をそのＣＰＵに出力する。その通信装置は、特に、その通信回線網を介して他のコンピュータからその記憶装置にコンピュータプログラムをダウンロードすることに利用される。その通信回線網としては、ＬＡＮ、インターネット、専用回線が例示される。その入力装置は、ユーザに操作されることにより情報を生成し、その情報をそのＣＰＵに出力する。その出力装置は、そのＣＰＵにより生成される画像をユーザに認識可能に表示する。
【００１８】
テスト仕様書テストデータ自動生成装置１００にインストールされるテストプログラムは、テスト仕様書テストデータ自動生成装置１００に複数の機能を実現させるための複数のコンピュータプログラムから形成されている。その複数の機能は、カーソル定義取得手段１０２とビジネスロジック取得手段１０３と条件分岐取得手段１０４と出力編集取得手段１０５とカーソル定義テスト仕様書生成手段１０６とビジネスロジックテスト仕様書生成手段１０７と条件分岐テスト仕様書生成手段１０８と出力編集テスト仕様書生成手段１０９と条件分岐テストデータ生成手段１１０と出力編集テストデータ生成手段１１１とテスト仕様書統合手段１１４とを含んでいる。
【００１９】
カーソル定義取得手段１０２は、その入力装置を介して入力される設計書１０１からカーソル定義部分の仕様を抽出する。ビジネスロジック取得手段１０３は、設計書１０１からビジネスロジック部分の仕様を抽出する。条件分岐取得手段１０４は、設計書１０１から条件分岐の仕様を抽出する。出力編集取得手段１０５は、設計書１０１から出力編集仕様を抽出する。
【００２０】
カーソル定義テスト仕様書生成手段１０６は、カーソル定義取得手段１０２で抽出したカーソル定義の仕様をパージングし、カーソル定義テスト仕様書を生成する。ビジネスロジックテスト仕様書生成手段１０７は、ビジネスロジック取得手段１０３で抽出したビジネスロジックの仕様をパージングし、ビジネスロジックテスト仕様書を生成する。条件分岐テスト仕様書生成手段１０８は、条件分岐取得手段１０４で抽出した条件分岐仕様をパージングし、条件分岐テスト仕様書を生成する。出力編集テスト仕様書生成手段１０９は、出力編集取得手段１０５で抽出した出力編集仕様をパージングし、出力編集テスト仕様書を生成する。
【００２１】
テスト仕様書統合手段１１４は、そのカーソル定義テスト仕様書とビジネスロジックテスト仕様書と条件分岐テスト仕様書と出力編集テスト仕様書とその入力装置を介して入力される共通テスト項目１１３により定義された共通部分テスト仕様書とを統合することにより、テスト仕様書１１５を生成する。
【００２２】
条件分岐テストデータ生成手段１１０は、条件分岐取得手段１０４で抽出した条件分岐仕様をパージングし、テストデータ１１６を生成する。出力編集テストデータ生成手段１１１は、出力編集取得手段１０５で抽出した出力編集仕様をパージングし、テストパターン入力手段１１２によって、入力された入力項目の属性毎のテストデータ生成パターンと生成するテストデータ件数の値を基にテストデータ１１６を生成する。
【００２３】
図２Ａと図２Ｂとは、設計書１０１を作成するために利用される設計書テンプレートを示している。設計書１０１は、ある一定のルールで作成され、処理概要設計書と処理詳細設計書と出力編集仕様設計書とを備えている。その処理概要設計書は、プログラムの構造と処理名とを定義している。その処理詳細設計書は、その処理概要設計書でユーザにより追加された処理の詳細な仕様を定義している。その出力編集仕様設計書は、データの転記仕様を定義している。その設計書テンプレートは、処理概要設計書テンプレート１と処理詳細設計書テンプレート２と出力編集仕様設計書テンプレート３とを備えている。
【００２４】
処理概要設計書テンプレート１は、その処理概要設計書を作成するために利用される。すなわち、処理概要設計書テンプレート１は、複数の処理名がそれぞれ記述される複数行の記入欄を備えている。その複数の処理名は、共通部分５とカスタマイズ部分６とユーザ追記部分７と処理名称部分８とから形成されている。共通部分５は、二重線で囲まれてその記入欄に記述される。共通部分５には、プログラム仕様に共通に記述される処理がその記入欄に記述される。カスタマイズ部分６は、破線で囲まれてその記入欄に記述される。カスタマイズ部分６には、プログラム毎にカスタマイズされる処理がその記入欄に記述される。その処理としては、カーソル定義が例示される。ユーザ追記部分７は、括弧で括られてその記入欄に記述される。ユーザ追記部分７には、ユーザにより個別に追加される処理がその記入欄に記述される。その処理は、ビジネスロジック、条件分岐等を示し、「処理」「ＩＦ−ＴＨＥＮ」「ＥＬＳＥ」「ＤＢ出力処理」のうちのいずれかを示している。処理名称部分８は、カスタマイズ部分６またはユーザ追記部分７が記述された記入欄と同じ行の記入欄に記述され、太実線で囲まれて記述されている。処理名称部分８には、ユーザにより定義された処理の処理名称が記述され、すなわち、対応するカスタマイズ部分６またはユーザ追記部分７に記述された処理の処理名称がその記入欄に記述される。
【００２５】
処理詳細設計書テンプレート２は、その処理詳細設計書を作成するために利用される。すなわち、処理詳細設計書テンプレート２は、複数の部分から形成されている。その複数の部分は、処理概要設計書テンプレート１のカスタマイズ部分６またはユーザ追記部分７にそれぞれ記述された複数の処理に対応している。例えば、その処理としては、カーソル定義やビジネスロジック、条件分岐等が例示される。その複数の部分のうちのある処理に対応する部分には、その処理の処理名称とその処理に関する詳細な処理内容が記述される。
【００２６】
出力編集仕様設計書テンプレート３は、その出力編集仕様設計書を作成するために利用される。すなわち、出力編集仕様設計書テンプレート３は、設計書１０１に基づいて作成されるプログラムから出力されるデータに関する仕様が記入されることより、その出力編集仕様設計書が作成される。その仕様は、たとえば、出力先、処理種別を示している。その出力先は、そのデータが出力されるファイルを示し、または、そのデータが出力されるデータベースを示している。その処理種別は、そのデータがその出力先でどのように処理されるかを示し、たとえば、そのデータがその出力先に記録されているデータに置換されるか追記されるか等を示している。
【００２７】
図３は、共通テスト項目１１３を示している。共通テスト項目１１３は、複数のテストを示している。その複数のテストは、第１共通テストと第２共通テストとを含んでいる。その第１共通テストは、プログラム仕様に共通に記述される処理に関するテストを示し、すなわち、処理概要設計書テンプレート１の共通部分５に既述される処理に関するテストを示している。その第２共通テストは、設計書１０１上には明記されない仕様に関するテストを示し、例えばＭＡＸ件数のテスト等を示している。
【００２８】
本発明によるテスト方法の実施の形態は、設計書を作成する動作と、テスト仕様書とテストデータとを生成する動作とバッチ型プログラムをテストする動作とを備えている。
【００２９】
その設計書を作成する動作は、ユーザにより実行される。ユーザは、図４に示されているように、処理概要設計書テンプレート１に所定の事項を記入することにより、処理概要設計書１１を作成する。すなわち、ユーザは、プログラム仕様に共通に記述される処理を二重線で囲んで処理概要設計書テンプレート１に記述することにより、共通部分５を作成する。ユーザは、さらに、プログラム毎にカスタマイズされる処理を破線で囲んで処理概要設計書テンプレート１に記述することにより、カスタマイズ部分６を作成する。ユーザは、さらに、ユーザにより個別に追加されるビジネスロジックを括弧で括って処理概要設計書テンプレート１に記述することにより、ユーザ追記部分７を作成する。ユーザは、さらに、ユーザにより定義された処理の処理名称を太実線で囲んで処理概要設計書テンプレート１に記述することにより、処理名称部分８を作成する。
【００３０】
ユーザは、さらに、処理詳細設計書テンプレート２に所定の事項をそれぞれ記入することにより、その処理詳細設計書を作成する。その処理詳細設計書は、複数の部分から形成されている。その複数の部分は、それぞれ、処理名称と処理内容とを示している。その処理名称は、その処理概要設計書に記述された処理名称を示し、すなわち、処理概要設計書テンプレート１の処理名称部分８に記述された処理名称を示している。その処理内容は、処理概要設計書テンプレート１のカスタマイズ部分６またはユーザ追記部分７のうちのその処理名称に対応する部分が示す処理の詳細な内容を示している。その処理内容は、その処理が条件分岐「ＩＦ−ＴＨＥＮ」を示しているときに、条件式を示している。
【００３１】
ユーザは、さらに、出力編集仕様設計書テンプレート３に所定の事項を記入することにより、出力編集仕様設計書を作成する。その出力編集仕様設計書は、作成しようとするバッチ式プログラムにより出力されるデータに関する仕様が記述されている。その仕様は、たとえば、出力先、処理種別を示している。その出力先は、そのデータが出力されるファイルを示し、または、そのデータが出力されるデータベースを示している。その処理種別は、そのデータがその出力先でどのように処理されるかを示している。
【００３２】
ユーザは、さらに、共通テスト項目１１３とデータ定義１１７とデータ生成パターンとを作成する。共通テスト項目１１３は、第１共通テストと第２共通テストとを含んでいる。その第１共通テストは、プログラム仕様に共通に記述される処理に関するテストを示している。その第２共通テストは、設計書１０１上には明記されない仕様に関するテストを示している。データ定義１１７は、生成するテストデータの項目タイプ、サイズ等の情報を示している。データ定義１１７は、また、データベースに格納するテストデータ１１６を生成する際には、そのデータベース上で定義されているデータ項目ＩＤへの変換を示している。そのデータ生成パターンは、複数のデータ型ごとに、テストデータを生成するパターンを示している。
【００３３】
そのテスト仕様書とテストデータとを生成する動作は、テスト仕様書テストデータ自動生成装置１００により実行され、ビジネスロジックテスト仕様書を生成する動作とカーソル定義テスト仕様書を生成する動作と条件分岐テスト仕様書を生成する動作と出力編集テスト仕様書を生成する動作とテスト仕様書を作成する動作とテストデータを作成する動作とを備えている。
【００３４】
そのビジネスロジックテスト仕様書を生成する動作は、ビジネスロジック取得手段１０３とビジネスロジックテスト仕様書生成手段１０７とにより実行される。ビジネスロジック取得手段１０３は、処理概要設計書１１に記述された処理名を上から順番に１行ずつ参照して、その処理名が括弧で括られているかどうかを判断する。ビジネスロジック取得手段１０３は、その処理名が括弧で括られていたときに、その処理がユーザ追記部分７であると判断し、その処理に対応する部分を処理詳細設計書１２から抽出する。ビジネスロジックテスト仕様書生成手段１０７は、ビジネスロジック取得手段１０３により抽出された部分に基づいてビジネスロジックテスト仕様書を作成する。そのビジネスロジックテスト仕様書は、その抽出された部分が示す処理が想定通りに適切に実行されているかどうかを検査するテストの仕様を示し、テスト項目と想定される項目とを示している。そのテスト項目は、その抽出された部分が示す処理名称を示している。その想定される項目は、その抽出された部分が示す処理内容を示している。
【００３５】
たとえば、ビジネスロジック取得手段１０３は、図４の処理概要設計書１１に記述された「処理」が括弧で括られていることを検出したときに、その「処理」に対応する部分４０２を処理詳細設計書１２から抽出する。このとき、ビジネスロジックテスト仕様書生成手段１０７は、図５に示されているように、部分４０２に基づいてビジネスロジックテスト仕様書１４を生成する。ビジネスロジックテスト仕様書１４のテスト項目は、部分４０２が示す処理名称を示している。ビジネスロジックテスト仕様書１４の想定される項目は、部分４０２が示す処理内容を示している。
【００３６】
そのカーソル定義テスト仕様書を生成する動作は、カーソル定義取得手段１０２とカーソル定義テスト仕様書生成手段１０６とにより実行される。カーソル定義取得手段１０２は、処理概要設計書１１に記述された処理名を上から順番に１行ずつ参照して、その処理名が破線で囲まれているかどうかを判断する。カーソル定義取得手段１０２は、その処理名が破線で囲まれていたときに、その処理がカスタマイズ部分６であると判断し、その処理に対応する部分を処理詳細設計書１２から抽出する。カーソル定義テスト仕様書生成手段１０６は、カーソル定義取得手段１０２により抽出された部分に基づいてカーソル定義テスト仕様書を作成する。そのカーソル定義テスト仕様書は、その抽出された部分が示す処理が想定通りに適切に実行されているかどうかを検査するテストの仕様を示し、テスト項目と想定される項目とを示している。そのテスト項目は、その抽出された部分が示す処理名称を示している。その想定される項目は、その抽出された部分が示す処理内容を示している。
【００３７】
たとえば、カーソル定義取得手段１０２は、図４の処理概要設計書１１に記述された「ＤＢカーソル定義」が破線で囲まれていることを検出したときに、その「ＤＢカーソル定義」に対応する部分４０３を処理詳細設計書１２から抽出する。このとき、カーソル定義テスト仕様書生成手段１０６は、図６に示されているように、部分４０３に基づいてカーソル定義テスト仕様書１５を生成する。カーソル定義テスト仕様書１５のテスト項目は、部分４０３が示す処理名称を示している。カーソル定義テスト仕様書１５の想定される項目は、部分４０３が示す処理内容を示している。
【００３８】
その条件分岐テスト仕様書を生成する動作は、条件分岐取得手段１０４と条件分岐テスト仕様書生成手段１０８とにより実行される。条件分岐取得手段１０４は、処理概要設計書１１に記述された処理名を上から順番に１行ずつ参照して、その処理名が括弧で括られているかどうかを判断する。カーソル定義取得手段１０２は、その処理名が括弧で括られていたときに、その処理がユーザ追記部分７であると判断し、その処理が条件分岐であるかどうか判別する。カーソル定義取得手段１０２は、その処理が条件分岐であるときに、その処理に対応する部分を処理詳細設計書１２から抽出する。条件分岐テスト仕様書生成手段１０８は、条件分岐取得手段１０４により抽出された部分に基づいて条件分岐テスト仕様書を作成する。その条件分岐テスト仕様書は、その抽出された部分が示す処理が想定通りに適切に実行されているかどうかを検査するテストの仕様を示している。
【００３９】
たとえば、条件分岐取得手段１０４は、図４の処理概要設計書１１の部分４０５が条件分岐であることを検出したときに、図７に示されているように、部分４０５に対応する部分４０４を処理詳細設計書１２から抽出する。部分４０４は、部分１６と部分１７と部分１８とから形成されている。部分１６は、ユーザ追記部分７のうちの「ＩＦ−ＴＨＥＮ」に対応している。部分１６は、その処理内容が条件式を示している。部分１７は、その条件式を満たす場合に実行される処理に対応している。部分１８は、その条件式を満たさない場合に実行される処理に対応している。
【００４０】
このとき、条件分岐テスト仕様書生成手段１０８は、部分４０４に基づいて条件分岐テスト仕様書１９を生成する。条件分岐テスト仕様書１９は、部分７０１と部分７０２と部分７０３とを備えている。すなわち、条件分岐テスト仕様書生成手段１０８は、部分１６に基づいて部分７０１を生成する。条件分岐テスト仕様書生成手段１０８は、部分１７に基づいて部分７０２を生成する。条件分岐テスト仕様書生成手段１０８は、部分１８に基づいて部分７０３を生成する。
【００４１】
部分７０１のテスト項目は、部分１６が示す条件式に含まれる変数に想定されるパターンのすべてを示している。部分７０１の想定される項目は、そのすべてのパターンで条件式がそれぞれ示す値を示し、部分１７と部分１８とが示す処理のうちのそのすべてのパターンでそれぞれ実行される処理を示している。すなわち、条件分岐テスト仕様書生成手段１０８は、部分１６が示す条件式を解析することにより、その条件式に含まれる変数に想定されるパターンのすべてを算出し、そのすべてのパターンで条件式がそれぞれ示す値を算出し、部分１７と部分１８とが示す処理のうちのそのすべてのパターンでそれぞれ実行される処理を算出する。部分７０２のテスト項目は、部分１７が示す処理名称を示している。部分７０２の想定される項目は、部分１７が示す処理内容を示している。部分７０３のテスト項目は、部分１８が示す処理名称を示している。部分７０３の想定される項目は、部分１８が示す処理内容を示している。
【００４２】
その出力編集テスト仕様書を生成する動作は、出力編集取得手段１０５と出力編集テスト仕様書生成手段１０９とにより実行される。出力編集取得手段１０５は、図８に示されているように、出力編集設計書２０を設計書１０１から抽出する。出力編集設計書２０は、ユーザにより出力編集仕様設計書テンプレート３に所定の事項が記入されることにより、作成される。出力編集テスト仕様書生成手段１０９は、出力編集取得手段１０５により抽出された出力編集設計書２０に基づいて出力編集テスト仕様書２１を作成する。出力編集テスト仕様書２１は、出力編集設計書２０が示す処理が想定通りに適切に実行されているかどうかを検査するテストの仕様を示している。
【００４３】
そのテスト仕様書を作成する動作は、テスト仕様書統合手段１１４により実行される。テスト仕様書統合手段１１４は、その入力装置を介して共通テスト項目１１３が入力されたときに、共通テスト項目１１３に基づいて共通部分テスト仕様書を生成する。その共通部分テスト仕様書は、共通テスト項目１１３に等しい。ここで、カーソル定義取得手段１０２とビジネスロジック取得手段１０３と条件分岐取得手段１０４とカーソル定義テスト仕様書生成手段１０６とビジネスロジックテスト仕様書生成手段１０７と条件分岐テスト仕様書生成手段１０８とは、図４の処理概要設計書１１に記述された処理名が二重線で囲まれていることを検出したときに、その処理名を共通部分５と判断して、処理をスキップする。その処理名としては、「共通初期処理」、「Ｏｒａｃｌｅ接続」、「カーソルＯＰＥＮ」〜「１レコード読込」まで、「チェックポイント書き込み」以降の処理が例示される。
【００４４】
テスト仕様書統合手段１１４は、ビジネスロジックテスト仕様書１４とカーソル定義テスト仕様書１５と条件分岐テスト仕様書１９と出力編集テスト仕様書２１とその共通部分テスト仕様書とに基づいてテスト仕様書１１５を作成する。テスト仕様書１１５は、図９Ａと図９Ｂとに示されているように、共通テスト項目１１３とビジネスロジックテスト仕様書１４とカーソル定義テスト仕様書１５と条件分岐テスト仕様書１９と出力編集テスト仕様書２１とを示している。
【００４５】
ここで、そのビジネスロジックテスト仕様書を生成する動作とカーソル定義テスト仕様書を生成する動作と条件分岐テスト仕様書を生成する動作と出力編集テスト仕様書を生成する動作とは、並行して実行され、その複数の動作のうちのある処理に対応する動作がその処理が処理概要設計書１１に記述される順番で実行される。このような並行動作によれば、テスト仕様書１１５に記述される複数のテスト項目は、その複数のテスト項目のうちの任意のテスト項目がテスト仕様書１１５に記述される順番が処理概要設計書１１に記述された複数の処理名のうちのそのテスト項目に対応する処理名が処理概要設計書１に記述される順番と同じになるように、記述される。このため、テスト仕様書１１５は、可読性がよく、保守性が向上する。
【００４６】
テスト仕様書１１５は、処理概要設計書１１に記述された複数の処理名のうちの共通部分５と異なるすべての処理名に関してテスト仕様書の一部を作成する動作が実行されているために、そのすべての処理名に対するテスト項目が１００％自動生成され、追記等が一切不要である。
【００４７】
テスト仕様書１１５は、共通テスト項目１１３をあらかじめ用意しておけば、さらに、すべてのプログラムのテスト仕様書に共通テスト項目を半強制的に埋め込まれるため、テスト仕様書作成時の作業工数の削減に繋がる。
【００４８】
そのテストデータを作成する動作は、条件分岐テストデータ生成手段１１０と出力編集テストデータ生成手段１１１とにより実行される。条件分岐テストデータ生成手段１１０は、カーソル定義取得手段１０２により抽出されたカーソル定義と条件分岐取得手段１０４により抽出された条件分岐の仕様が示す条件式とを解析して、境界値の前後の条件を満たすデータと満たさないデータをそれぞれ１つずつ生成する。条件分岐テストデータ生成手段１１０は、この際に、データのタイプがデータベースに格納するデータであれば、データ定義１１７からデータ項目ＩＤを取得し、設計書１０１上のデータ項目名を項目ＩＤに変換して、そのデータベースに挿入するためのＳＱＬ文を自動生成する。条件分岐テストデータ生成手段１１０は、そのデータのタイプがファイル形式のデータであれば、さらに、図１０に示されているようなデータ定義１１７からファイルのレイアウトやデータ項目のタイプとサイズとを取得し、それを基にファイル形式のデータを自動生成する。
【００４９】
出力編集テストデータ生成手段１１１は、カーソル定義取得手段１０２により抽出されたカーソル定義と出力編集取得手段１０５により抽出された出力編集仕様設計書２０に基づいて、テストパターン入力手段１１２により入力されたデータ項目毎のデータ生成パターンとデータ生成件数の値を基に上記同様、データ定義１１７の情報を参照しながら、テストデータを自動生成する。
【００５０】
そのデータ生成パターン２５は、図１１に示されているように、複数のデータ型を複数のデータ生成パターンに対応付けている。すなわち、その複数のデータ型のうちの任意のデータ型は、その複数のデータ生成パターンのうちの少なくとも１つのデータ生成パターンに対応している。たとえば、文字列は、上下限データと全幅データと固定データとに対応している。数値は、上下限データとランダムデータと固定データとに対応している。日付は、上下限データと固定データとに対応している。その上下限データは、データの値域の上限と下限とを設定して、その範囲の値を生成することを示している。そのランダムデータは、設定した範囲内のデータをランダムに生成することを示している。その全幅データは、文字列の長さを変化させるデータを生成することを示している。その固定データは、指定したデータのみを生成することを示している。
【００５１】
このとき、出力編集テストデータ生成手段１１１は、あるデータのテストデータを生成するときに、その複数のデータ生成パターンのうちのそのデータのデータ型に対応するデータ生成パターンに基づいてそのテストデータを生成する。
【００５２】
バッチ型プログラムをテストする動作では、設計書１０１により作成されたバッチ型プログラムに対して、テスト仕様書テストデータ自動生成装置１００により生成されたテストデータ１１６を用いて、テスト仕様書１１５に基づくテストが実行される。そのバッチ型プログラムの開発者は、そのテストの結果に基づいてそのバッチ型プログラムをデバッグし、そのバッチ型プログラムをより適切なバッチ型プログラムに改善する。
【００５３】
バッチ型プログラムは、一般的に、テーブルやファイルからデータを読み込んで、データに編集・加工を加え、テーブルやファイルに出力する定型なプログラム構造になるケースが多く、プログラム仕様も似通ったものになる。このため、プログラム仕様を記述する設計書については、図２Ａと図２Ｂとのような設計書テンプレートを用意することにより、共通的な共通仕様とプログラム個別に異なる個別仕様とにプログラム仕様を明確に分けることができる。また、記入方法についても、すべてのプログラムの仕様の粒度が同一のレベルで記述されるように、一定のルールを設けることもできる。
【００５４】
このようなテスト方法によれば、このように設計書のフォーマットを工夫することにより、テスト仕様書テストデータ自動生成装置１００は、設計書をより容易にパージングすることができ、テスト仕様書とテストデータの自動生成を簡易に行うことができる。このようなテスト方法によれば、従来人手で行っていた作業をコンピュータであるテスト仕様書テストデータ自動生成装置１００が自動で行うため、さらに、開発生産性を大幅に向上させることができ、また、同時にユーザミスによるテスト漏れも防止することができるようになる。その結果、このようなテスト方法は、バッチ型プログラム開発時におけるテスト作業を効率化し、テスト工程の開発生産性を向上することができる。
【００５５】
本発明によるテスト仕様書テストデータ自動生成装置の実施の他の形態は、バッチ型プログラムのテスト仕様書１１５に置換して、バッチ型システムにより実行されるジョブのテスト仕様書を生成する。そのバッチ型システムとしては、企業の基幹業務などをバッチ処理により実行する大型汎用コンピュータが例示される。そのバッチ型システムは、ソフトウェアであるジョブ（シェルスクリプト）とコンピュータプログラムとを備えている。そのジョブは、そのコンピュータプログラムの実行を制御する。
【００５６】
本発明によるテスト方法の実施の他の形態は、このようなテスト仕様書テストデータ自動生成装置により実行される。すなわち、ユーザは、そのジョブの設計書を所定のフォーマットで作成し、さらに、共通テスト項目とデータ定義とデータ生成パターンとを所定のフォーマットで作成する。そのテスト仕様書テストデータ自動生成装置は、既述の実施の形態におけるテスト仕様書テストデータ自動生成装置１００と同様にして、その設計書と共通テスト項目とデータ定義とデータ生成パターンとに基づいてテスト仕様書とテストデータとを生成する。ユーザは、そのジョブに対して、そのテストデータを用いて、そのテスト仕様書に基づくテストを実行する。そのバッチ型システムの開発者は、そのテストの結果に基づいてそのジョブをデバッグし、そのジョブをより適切なジョブに改善する。
【００５７】
このようなテスト方法によれば、既述の実施の形態におけるテスト方法と同様にして、テスト仕様書とテストデータの自動生成を簡易に、かつより適切に行うことができ、その結果、バッチ型プログラム開発時におけるテスト作業を効率化し、テスト工程の開発生産性を向上することができる。
【００５８】
（付記１）
設計書を所定のフォーマットで作成するステップと、
前記設計書に基づいてテスト仕様書とテストデータとを生成する動作をコンピュータに実行させるステップと、
前記設計書に基づいて作成されたプログラムを前記テスト仕様書と前記テストデータとに基づいてテストするステップ
とを具備するテスト方法。
設計書を所定のフォーマットで作成することによれば、そのテスト仕様書とテストデータとは、その設計書に基づいてコンピュータにより自動的に生成することができる。このため、このようなテスト方法は、そのテスト仕様書とテストデータとを生成する工数をより低減することができ、さらに、そのテスト仕様書とテストデータとの生成における人手によるミスを防止することができる。その結果、このようなテスト方法は、その設計書に基づいて作成されたプログラムをより適切にテストすることができ、そのプログラムの品質劣化をより低減することができる。
【００５９】
（付記２）
付記１において、
前記設計書は、
前記プログラムのために個別に作成された複数の個別仕様と、
前記複数の個別仕様と異なる複数の共通仕様とを判別可能に示し、
前記コンピュータは、前記複数の個別仕様に基づいてそれぞれ生成される複数のテスト仕様書部分を統合することにより前記テスト仕様書を生成する
テスト方法。
【００６０】
（付記３）
付記２において、
前記テスト仕様書は、前記複数の個別仕様に対応する複数のテスト項目が記述され、
前記コンピュータは、前記複数のテスト項目の各テスト項目が前記テスト仕様書に記述される順番が前記複数の個別仕様のうちの前記各テスト項目に対応する個別仕様が前記設計書に記述される順番と同じになるように、前記テスト仕様書を生成する
テスト方法。
【００６１】
（付記４）
付記２または付記３のいずれかにおいて、
前記複数の共通仕様に関する共通テスト項目を作成するステップをさらに具備し、
前記コンピュータは、前記共通テスト項目にさらに基づいて前記テスト仕様書を生成する
テスト方法。
【００６２】
（付記５）
付記２〜付記４のいずれかにおいて、
テストデータ生成パターンを作成するステップをさらに具備し、
前記コンピュータは、前記テストデータ生成パターンにさらに基づいて前記テストデータを生成する
テスト方法。
【００６３】
（付記６）
付記２〜付記５のいずれかにおいて、
前記プログラムに用いられるデータのデータ定義を作成するステップをさらに具備し、
前記コンピュータは、前記データ定義にさらに基づいて前記テストデータを生成する
テスト方法。
【００６４】
（付記７）
付記１〜付記６のいずれかに記載されるテスト方法と、
前記プログラムをテストしたテスト結果に基づいて前記プログラムをデバッグするステップ
とを具備するコンピュータプログラム作成方法。
【００６５】
（付記８）
入力装置を介して入力された設計書に記述される複数の仕様のうちから、前記設計書より作成されるプログラムのために個別に記述された複数の個別仕様を抽出する個別処理取得手段と、
前記複数の個別仕様に基づいて生成される複数のテスト仕様書部分を統合することによりテスト仕様書を生成するテスト仕様書生成手段と、
前記複数の個別仕様の一部に基づいてテストデータを生成するテストデータ生成手段とを具備し、
前記テスト仕様書と前記テストデータとは、前記プログラムをテストすることに利用される
テスト仕様書テストデータ自動生成装置。
【００６６】
（付記９）
付記８において、
前記テスト仕様書は、前記複数の個別仕様に対応する複数のテスト項目が記述され、
前記テスト仕様書生成手段は、前記複数のテスト項目の各テスト項目が前記テスト仕様書に記述される順番が前記複数の個別仕様の前記各テスト項目に対応する処理が前記設計書に記述される順番と同じになるように、前記テスト仕様書を生成する
テスト仕様書テストデータ自動生成装置。
【００６７】
（付記１０）
付記８または付記９のいずれかにおいて、
前記複数の個別処理取得手段は、前記複数の個別仕様のうちから条件分岐を示す条件分岐仕様を抽出する条件分岐取得手段を含み、
前記複数のテスト仕様書部分は、前記条件分岐仕様に基づいて生成される条件分岐テスト仕様書部分を含み、
前記テストデータ生成手段は、前記条件分岐仕様に基づいて前記テストデータを生成する
テスト仕様書テストデータ自動生成装置。
【００６８】
（付記１１）
付記８〜付記１０のいずれかにおいて、
前記複数のテスト仕様書部分は、入力装置を介して入力された共通テスト項目をさらに含み、
前記共通テスト項目は、前記複数の仕様のうちの前記複数の個別仕様と異なる複数の共通仕様に関する
テスト仕様書テストデータ自動生成装置。
【００６９】
（付記１２）
付記８〜付記１１のいずれかにおいて、
前記テストデータ生成手段は、入力装置を介して入力されたテストデータ生成パターンにさらに基づいて前記テストデータを生成する
テスト仕様書テストデータ自動生成装置。
【００７０】
（付記１３）
付記８〜付記１２のいずれかにおいて、
前記テストデータ生成手段は、前記プログラムに用いられるデータのデータ定義にさらに基づいて前記テストデータを生成する
テスト仕様書テストデータ自動生成装置。
【００７１】
（付記１４）
付記８〜付記１３のいずれかに記載されるテスト仕様書テストデータ自動生成装置をコンピュータに実現させる
コンピュータプログラム。
【００７２】
（付記１５）
付記１４に記載されるコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体。
【符号の説明】
【００７３】
１００：テスト仕様書テストデータ自動生成装置
１０１：設計書
１０２：カーソル定義取得手段
１０３：ビジネスロジック取得手段
１０４：条件分岐取得手段
１０５：出力編集取得手段
１０６：カーソル定義テスト仕様書生成手段
１０７：ビジネスロジックテスト仕様書生成手段
１０８：条件分岐テスト仕様書生成手段
１０９：出力編集テスト仕様書生成手段
１１０：条件分岐テストデータ生成手段
１１１：出力編集テストデータ生成手段
１１２：テストパターン入力手段
１１３：共通テスト項目
１１４：テスト仕様書統合手段
１１５：テスト仕様書
１１６：テストデータ
１１７：データ定義
１  ：処理概要設計書テンプレート
２  ：処理詳細設計書テンプレート
３  ：出力編集仕様設計書テンプレート
５  ：共通部分
６  ：カスタマイズ部分
７  ：ユーザ追記部分
８  ：処理名称部分
１１：処理概要設計書
１２：処理詳細設計書
１４：ビジネスロジックテスト仕様書
１５：カーソル定義テスト仕様書
１６：部分
１７：部分
１８：部分
１９：条件分岐テスト仕様書
２０：出力編集設計書
２１：出力編集テスト仕様書
２５：データ生成パターン
４０２：部分
４０３：部分
４０４：部分
４０５：部分
７０１：部分
７０２：部分
７０３：部分
【図１】
2011204069.tif 000003
【図２Ａ】
2011204069.tif 000004
【図２Ｂ】
2011204069.tif 000005
【図３】
2011204069.tif 000006
【図４】
2011204069.tif 000007
【図５】
2011204069.tif 000008
【図６】
2011204069.tif 000009
【図７】
2011204069.tif 000010
【図８】
2011204069.tif 000011
【図９Ａ】
2011204069.tif 000012
【図９Ｂ】
2011204069.tif 000013
【図１０】
2011204069.tif 000014
【図１１】
2011204069.tif 000015