(57)【要約】      （修正有）【課題】ソフトウェアのテストを自動で行う機能を提供し、作業工数の削減する。この際に、データベース、及び出力ファイルに対しても検証を自動的に行う。また、チェックを自動的に行うことにより、仕様変更等に対しても柔軟に再テストを実行できるようにする。【解決手段】ソフトウェアを構成するモジュールの動作確認内容を記録したチェックリストテーブルに基づいて自動テストツール２０８が、前記モジュール（テスト対象プログラム２０７）のテストを自動的に行う。この際、前記モジュールがアクセスするデータベース及びファイルについて、テスト実行に基づく変更についても確認を行うようにする。【選択図】図２
2007316875.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウエアを構成するモジュールに対して、動作確認を行うリグレクションテスト装置において、
前記モジュール毎に、動作確認内容を記録したチェックリストテーブルを格納する記憶手段と、
前記チェックリストテーブルに格納された内容に基づいて、動作確認対象のモジュールの動作を実行させる手段と、
前記実行の際に、前記モジュールがアクセスするデータベース及びファイルについて、当該実行に基づく内容の変更を確認する手段とを有することを特徴とするリグレクションテスト装置。
【請求項２】
請求項１に記載のリグレクションテスト装置において、
前記動作確認のためのテストプログラムを、自動で行う部分と人手により行う部分に分けて保持する手段をさらに有することを特徴とするリグレクションテスト装置。
【請求項３】
ソフトウエアを構成するモジュールに対して、動作確認を行うリグレクションテスト方法において、
前記モジュール毎に、動作確認内容を記録したチェックリストテーブルを記憶装置に格納しておき、
前記チェックリストテーブルに格納された内容に基づいて、動作確認対象のモジュールの動作を実行するよう制御し、
前記実行の際に、前記モジュールがアクセスするデータベース及びファイルについて、当該実行に基づく内容の変更を確認することを特徴とするリグレクションテスト方法。
【請求項４】
請求項３に記載のリグレクションテスト方法において、
前記動作確認のためのテストプログラムを、自動で行う部分と人手により行う部分に分けて保持することを特徴とするリグレクションテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアのテストを自動化し、繰り返しテストを可能とすることで、ソフトウェアの保守工数を削減する技術に関する。
【背景技術】
【０００２】
近年のソフトウェアの開発は短納期化が進み、開発過程の中で仕様変更が頻繁に発生するようになってきている。そのため、仕様変更に伴う再テストを効率的に行うことがとても重要になってくる。また、近年プラットフォームに依存しないオブジェクト指向言語による開発が増加しているが、このようなオブジェクト指向言語による3層構造による開発が一般的である。
【０００３】
特許文献１においては、テストを自動的に行うことにより、テストに要する工数を削減してきた。しかしながら、このテスト方式では、DBや入出力ファイルに対するチェックは人手による確認であり作業の削減には限界があった。また、オブジェクト指向言語による開発では、単体テストレベルでビジネスロジック層とデータベースアクセス層の連動テストを行うのが一般的であり、特許文献１では、単体テストレベルでも人手が必要となる。なお、上記のオブジェクト指向言語に関しては、特許文献２に記載されている。
【０００４】
【特許文献１】特開平5-53873
【特許文献２】特開平10-312286
【発明の開示】
【発明が解決しようとする課題】
【０００５】
現状の自動テスト方式はビジネスロジック層とデータベースアクセス層のテストを単体テストで行うのが一般的となった今では、単体テストレベルでも完全な自動テストを行うことができず人手による作業を必要としている。
【課題を解決するための手段】
【０００６】
そこで、本発明では、テストを実施する際に、データベース、及び出力ファイルに対しても検証を自動的に行うことにより、人手を削減する。また、チェックを自動的に行うことにより、仕様変更等に対しても柔軟に再テストを実行できるようにする。
【０００７】
また、テストケースを作成後、テストを実施する前にテストツールが読むためのテストデータを作成するのが一般的だが、テストケースから直接テストを実行することを可能とすることで作業工数の削減を実現する。
【発明の効果】
【０００８】
本発明によれば、開発を行う上での工数の削減を削減することが可能になる。
【発明を実施するための最良の形態】
【０００９】
本発明の実施の形態について、図面を用いて説明する。
【００１０】
まず、本実施の形態におけるシステム構成図を図1に示す。コンピュータは、メモリ（101）、ハードディスクを含む外部記憶装置（105）、処理装置すなわちＣＰＵ（102）などの処理装置を有し、記憶装置に格納されたプログラムに従って、CPU(102)が情報処理を実行するものである。すなわち、以下で説明する機能を、プログラムに従ってCPU(102)が演算処理を実行することにより実現する。外部記憶装置（105）には、図２で示す機能マトリックス（214）含むドキュメント群および、辞書類、ツール群が保存されている。
【００１１】
本機能の概要図を図２に示し、以下に概要を説明する。
【００１２】
本機能は、開発したアプリケーションに対し、テストを自動で行う機能を提供する。自動テストツール（208）は、操作者が作成したテストケース（201）、データベースアクセス情報（202）、データベース・ファイルデータ（203）を入力情報として利用し、テスト対象プログラム（207）を実行し、実行結果を取得する。自動テストツールはテスト対象プログラムを実行する前に、テスト対象プログラムがアクセスするデータベース（204）、及びファイル（206）にテストケースに規定されている条件を満たすテストデータを投入する。また、自動テストツールはテスト対象プログラム実行後に、テスト対象プログラム（206）の戻り値、データベース（204）、ファイル（206）に対し、テストケースに規定されている結果と一致するか比較を行う。
【００１３】
以下にテストケース、データベースアクセス情報、データベース・ファイルデータの内容、及び自動テストツールの処理内容の詳細を示す。なお、テストケース（201）、データベースアクセス情報（202）、データベース・ファイルデータ（203）の内容については、操作者が自動テストツールを実行する前に内容を作成しておく必要がある。
（１）テストケース（201）
図３にテストケースのフォーマットを示す。
【００１４】
テストケースは、マトリックス形式のチェックリストになる。テストケースの縦軸は、大きくヘッダ部（301）、前提(302)、入力条件（303）、実行（304）、結果（305）、判定（306）、備考（307）の7つで構成されている。テストケースの横軸は、チェックリストIDが記載される。チェックリストIDは、テストケース毎に採番される。これにより、テストケース毎にどのような前提で、どのような値をテスト対象のモジュールに渡して実行することにより、どのような結果が得られるか分かるようにできている。以下ではテストケースの縦軸の項目についてそれぞれ説明する。
（イ）ヘッダ部
ヘッダ部の例を図４に示す。ヘッダ部は見出し部分（401）とチェックリストのIDを記載する部分（402）の二つで構成される。見出し部分は項目名が記載されており操作者は何も指定しない。チェックリストのIDを記載する部分は、操作者がIDを指定する。IDのフォーマットは任意である。自動テストツールはIDが記載されている場合、テストケースが存在すると判定し、何も記載されていない場合はテストケースが存在しないと判断する。図４の場合、自動テストツールはテストケースが全部で7件あると判断する。
（ロ）前提部
操作者は前提部に、テスト対象のプログラムを実行する際のデータベース（204）、及びファイル（206）の内容を指定する。操作者はテスト対象プログラムを実行する前にデータベース（204）、及びファイル（206）がどのようなデータを保持しているかを指定する。自動テストツールは、操作者が指定した内容に従って、データベース（204）、及びファイル（206）の初期化処理（データの削除、及びデータの投入）を行う。
【００１５】
図５に前提部の記載例を示す。前提部の項目名については複数の階層で構成される。データベース（501）の定義は4階層で構成される。また、ファイル（502）の定義は3階層で構成される。操作者がデータベース（501）、ファイル（502）を指定する際の指定方法について以下に示す。
【００１６】
データベースを指定する場合は第１階層にDBを指定する。第2階層には、テーブルの名称（503）を指定する。第３階層には、チェックリストにデータを直接指定するか、チェックリストとは別のファイルに指定するかを指定する。チェックリストに直接データを指定する場合（504）はDataを指定し、Dataの後ろに数値を1から連番で付与する。データを別のファイルに指定する場合はFile（506）を指定する。マトリックスに直接データ指定する場合は、第4階層にデータを投入する対象のテーブルのカラム（505）を指定し、値、参照先（514）の欄にテーブルに投入する値を指定する。一方、テーブルに投入する値を別ファイルに指定する場合は第4階層にファイル名（507）と格納先フォルダ（508）を指定する。自動テストツールはファイルを読み込み、データベースにデータを投入する。ファイル（502）を定義する場合は第2階層には、ファイルの名称（509）を指定する。第３階層にはフォルダ名（510）、ファイル名（511）、格納先フォルダ（512）、格納先ファイル名（513）を指定する。フォルダ名、ファイル名はテスト対象プログラム（207）を実行する際にファイルを配置する先を示す。格納先フォルダ、格納先ファイル名は前提となるファイルデータが格納されている箇所を示す。
【００１７】
自動テストツールは、データベース（204）を初期化する際には、データベースアクセス情報（202）、及びデータを別ファイルに記載している場合はデータベース・ファイルデータ（203）を読み込む。それぞれの内容については、（２）データベースアクセス情報、及び（３）データベース・ファイルデータに詳細を記載する。またファイルを初期化する際には、格納先フォルダ（512）に格納されている格納先ファイル名（512）で指定されているファイルを、フォルダ名（510）に記載されているフォルダ内にファイル名（511）で指定されているファイル名で格納する。
【００１８】
自動テストツールはテスト対象のプログラムを実行する際に、前提に記載されている内容を上から記載されている順番に投入する。テーブルの関連によっては、テーブルにデータを投入する順番に制約が発生する場合がある。そのような場合は、操作者は先に投入しなければならないテーブルを後に投入しなければならないテーブルよりも上になるように前提部（501）に指定する。図5の場合、自動テストツールは“会員コードテーブル”、“会員テーブル”、“商品テーブル”の順にデータを投入する。
【００１９】
自動テストツールがデータを投入するかどうかの判断は実行するチェックリストの前提条件でチェック（515）されているかどうかによって決定される。チェックされているかどうかの判定は何も文字列が記載されていない場合をチェックされていないものとし、何かしらの文字列が記載されている場合はチェックされているものとして扱う。自動テストツールはチェックがされていないデータについてはデータベースへのデータ投入、及びファイルの格納は行わない。チェックを入れるか入れないかの判断は操作者が行い、チェック（515）に指定する。チェックを入れる際には、テーブルに投入するデータについては、第3階層の欄にチェックを入れる。ファイルについては、第2階層にチェックを入れる。
（ハ）入力部
操作者は入力部にテスト対象のプログラムを実行する際に必要なパラメータの内容を指定する。図６にパラメータの指定例を示す。入力は複数の階層から構成される。操作者はパラメータにテスト対象のプログラムを呼び出す際に必要な引数を順番に第１階層に指定する。例えば、実行するプログラムが４つの引数を使用する場合は、第１階層は４つ記載されることになる。第２階層以下は上位階層のデータが（基本データ型以外の）クラス、又は構造体等のデータの塊である場合に指定する。例えば図６の第１引数であるjp.co.sample.KaiinData（601）はクラスであるため、第２階層にString,[]（602）、及びjp.co.sample.SampleData（603）の２つがjp.co.sample.KaiinDataの保持しているデータ構造として指定されている。jp.co.sample.SampleDataについては、これ自身がクラスであるために第３階層にさらにそのデータ構造が記載される。記載されている項目が文字列や数値などの変数レベルのものについては、値、参照先の欄（604）に実際に使用される値を指定する。なお配列の場合は、データをカンマで区切って指定する。
【００２０】
チェックリストの欄（605）にはどのテストケースでどの値を使用するかを操作者が判断し指定する。チェックリストの欄（605）にチェックがされている場合、自動テストツールは値、参照先の欄に指定された値をパラメータに設定してテスト対象のプログラムを実行する。
（ニ）実行部
操作者は実行部にテスト対象となるプログラムを指定し、テストを自動で実施するかどうかを指定する。実行部の記載例を図７に示す。実行部は２階層の構造になっており、第１階層には実行モジュール（701）と実行方法（703）の二つが存在する。操作者は実行モジュールにテスト対象のプログラム名を指定する。オブジェクト指向言語のプログラムの場合、クラス名、メソッド名、インスタンス化の項目を第２階層で指定し、値、参照先（704）に値を指定する。実行方法には、該当するテストケースを自動テストツールにより実行するか、手動で実施するかを指定する。
（ホ）結果部
操作者は結果部にテスト対象となるプログラムが返却する戻り値、例外、データベース、ファイルのテスト対象プログラムの実行後の結果、及びDebug情報を指定する。結果部の記載例を図8に示す。戻り値（801）にはテスト対象プログラムが返却する値を指定する。第2階層に戻り値の型を指定し、値、参照先（806）に値を記載する。例外（802）にはテスト対象のプログラムが例外を返すテストケースが存在する場合に、指定する。戻り値（801）、及び例外（802）については、第2階層に返すデータの型を指定するが、返すデータの型がクラス、構造体のデータの塊である場合は、第3階層に当該クラス・構造体の内容を記載する。DB（803）には、自動テストツール実行後のデータベースの内容を指定する。指定方法は直接記載しても、別ファイルへの参照でも良い。指定方法については、前提部（図５）のDB（501）と同じ指定方法である。ファイル（804）には自動テストツール実行後のファイルの内容を指定する。指定方法は前提部（図5）のファイル（502）と同じ指定方法である。DB（803）、ファイル（804）についてはチェックを必要とする場合のみ指定する。例えば、データベースからデータを照会するだけの処理の場合はDB（803）、ファイル（804）のチェックは不要であるため、指定しなくても良い。Debug（805）には、操作者が手動でテストを実施する場合の確認項目を指定する。自動テストツールはDebut（806）に記載された内容については無視し、チェックを行わない。
（へ）判定部
判定部は、テストケースのテスト区分（901）、結果（902）、実行日（903）で構成されている。テスト区分（901）は操作者が指定し、結果（902）、及び実行日（903）は、自動テストツールが実行結果を出力する。判定部の記載例を図9に示す。テスト区分（901）はテストの区分（通常テスト、境界テスト、インターフェイスのテスト、以上テスト等）テストの区分を指定するものであり、この項目は操作者が指定する。自動テストツールは結果（902）にテストの実行結果を出力する。自動テストツールがテストを実行し、実行結果がテストケースの内容と一致していれば、結果の欄にOKを出力する。逆に、実行結果がテストケースの内容と一致していなければ、結果の欄にNGを出力する。実行日（903）の欄にはテストを実行した日をmm/dd形式（例：2月3日は02/03）で出力する。結果（902）、及び実行日（903）の欄については、自動テストツールが結果を出力するので操作者は何も指定しない。操作者は、判定部に自動テストツールが出力した内容を確認することで、結果が正しいかどうか判断することができる。但し、操作者がテストの実行方法（708）にて手動で実施する方を指定したテストケースについては、自動テストツールはテストを実施しないため、操作者が自分でテストし、テスト結果を結果（902）、及び実行日（903）の欄に指定する。
（ト）備考部
備考部（901）は操作者が自由にコメント記載するための入力欄である。備考部の記載例を図10に示す。備考部の項目名（1002）は何も規定していない。備考部（901）は操作者が自由に使ってよい。図10にはサンプルとして、目視による確認を行った日付を指定している。
（２）データベースアクセス情報（202）
データベースアクセス情報は、自動テストツールがデータベース内の各テーブルにアクセスするために必要な情報を定義する。データベースアクセス情報は操作者が作成する。図１１にデータベースアクセス情報のサンプルを示す。データベースアクセス情報はテーブル単位に作成される。データベースアクセス情報はヘッダ部（1101）とデータ部（1102）で構成されている。操作者はヘッダ部にテーブルの物理名（テーブルID）と論理名（テーブル名）を指定する。データ部にはテーブル内のカラムの物理名、日本語名、Primary Key、及び属性を指定する。図１１のヘッダ部のテーブル名とデータ部の日本語名はテストケース（201）に記載する際に利用される。テストケースの前提部（図５）、結果部（図８）にDBの内容を指定する際には、テーブル名にはデータベースアクセス情報に記載されている論理名を、テーブルのカラム名についはデータ部の日本語名を指定する。
（３）データベース・ファイルデータ（203）
データベース・ファイルデータは、テストケースの前提部（図５）、結果部（図８）にてファイルを指定している場合に自動テストツールにより参照される。データベース・ファイルデータは操作者が自動テストツールを実行する前に作成する。
データベースデータの例を図１２に示す。データベースデータはヘッダ部（1201）とデータ部（1202）で構成されている。ヘッダ部はテーブルの物理名（テーブルID）とテーブルの論理名（テーブル名）で構成される。データ部はテーブルのカラム名を1行目に記載しており、2行目以降は実際に投入されるデータが記載されている。図12の場合は3件のデータが存在することになる。
（４）自動テストツール（208）
図13に自動テストツールの処理概要を示す。
ステップ1301ではテストケースより、1件テストケースを読み込む。読み込む対象のテストケースが存在しない場合は、自動テストツールを終了させる。
【００２１】
ステップ1302では、読み込んだテストケースの内容を精査し、テストケースの実行、及び確認の箇所にDebug情報がないかチェックする。Debug項目の内容が存在する場合は、実行対象のテストケースではないと判断し、ステップ1301に戻り次のテストケースを読み込む。Debug項目の内容が存在しない場合は、実行対象のテストケースと判断し、ステップ603に遷移する。
【００２２】
ステップ1303では、テストケースの前提に記載された内容を元にして、テスト用データベース（204）、及びテスト用ファイル（206）の設定を行う。テスト用データベースについては、最初に対象のデータベースのテーブルの内容をクリアする。すなわち、各項目をnullにする。その後、テストケースに記載された内容（参照先を指定している場合は、データベース・ファイルデータの内容）を元にしてテスト用データベースに対してデータを投入する。テスト用ファイルについては、データベース・ファイルデータに格納されているファイルをテスト用ファイルにコピーする。
【００２３】
ステップ1304では、テストケースの入力、実行に記載されている内容を元にして、テスト対象プログラムを実行し、結果を取得する。
【００２４】
ステップ1305では、ステップ1304で取得した実行結果とテストケースの結果に記載されている内容を比較し一致するかどうか確認する。比較結果が一致しない場合は、テストケース（201）に一致しなかった旨を出力する。なお、この一致・不一致の判断は、実質的に内容が対応すればよく、形式的な一致・不一致以外の判断も含まれる。以下、一致・不一致の判断では同様である。
【００２５】
ステップ1306では、テスト対象プログラム実行後のテスト用データベース、及びテスト用ファイルの内容を取得し、テストケースの確認項目のDB、ファイルに記載されている内容と比較する。記載されている内容と取得したテスト用データベース、及びテスト用ファイルの内容が一致する場合はテスト結果に一致する旨を記載する。一致しない場合は一致しなかった旨を出力する。ステップ606終了後はステップ601に遷移する。
【００２６】
次に、本実施の形態の処理内容について、サンプルを用いて説明する。テストケースのサンプルを図14に示す。図１４のテストケースには、IDがMCL-001（1401）とMCL-0021（1402）の2件のテストケースが用意されている。以降では図１３の処理ステップ毎に図１４のテストケースを元に自動テストツールがどのように動作するかを記載する。
【００２７】
ステップ1301では、自動テストツールはMCL-001（1401）のチェックIDが存在するため、テストケースが存在すると判断し、ステップ1302に遷移する。
【００２８】
ステップ1302では、テストケースの実行部の実行方法（1410）の内容をチェックする。MCL-001のテストケースは手動で実施する方にチェックがされているため、テスト対象のテストケースではないと判断し、ステップ1301へ遷移する。
【００２９】
ステップ1301では、次のテストケースであるMCL-002（1402）が存在するため、テストケースが存在すると判断し、ステップ1302に遷移する。
【００３０】
ステップ1302では、テストケースの実行部の実行方法（1410）の内容をチェックする。MCL-002のテストケースは自動で実行する方にチェックがされているため、テスト対象のテストケースであると判断し、ステップ1303へ遷移する。
【００３１】
ステップ1303では、前提部に記載された内容を元にしてデータベース、ファイルの初期化を実施する。前提部にはDBの初期化として会員テーブル（1403）、商品テーブル（1404）が規定されている。また、ファイルの初期化として購入履歴ファイル（1405）の初期化が規定されている。データベース、ファイルの初期化は初めに関係するテーブルデータのクリア、ファイルの削除を行い、その後にテストデータを投入する。テーブルデータのクリア・ファイルの削除を行う際の処理の流れを図15に示す。図15では、テストケースの前提部（1501）と会員テーブルのデータベース情報（1502）、及び商品テーブルのデータベース情報（1503）を元にテーブルデータのクリア・ファイルの削除を行う。自動テストツールは前提部（1501）に記載されているDB、ファイルの順番に初期化を行うため、会員テーブル、商品テーブル、購入履歴ファイルの順番に初期化を行う。最初にステップ1504にてデータベースアクセス情報（1502）より会員テーブルの情報を探す。データベースアクセス情報のファイルの中で、テーブル名に“会員テーブル”が記載されているファイルが検索条件となる。会員テーブルの情報を見つけた後、ステップ1506にてデータベースアクセス情報に記載されているテーブルIDを元にしてテーブルデータをクリアするSQLを発行し、データベース（204）内の会員テーブルに登録されているデータをクリアする。次に、ステップ1505にて、データベースアクセス情報（1503）より商品テーブルの情報を探す。データベースアクセス情報のファイルの中で、テーブル名に“商品テーブル”が記載されているファイルが検索条件となる。商品テーブルの情報を見つけた後、ステップ1507にて、データベースアクセス情報に記載されているテーブルテーブルIDを基にしてSQLを発効し、データベース（204）内の商品テーブルに登録されているデータをクリアする。最後にステップ1508にて、購入履歴のファイルを削除する。削除するファイルは前提部（1501）に記載されている格納先フォルダ、格納先ファイル名を元に特定する。
【００３２】
図15の場合は、格納先フォルダに“C:\abc”、格納先ファイル名に“tran.txt”と記載されているので、削除するファイル名は、“C:\abc\tran.txt”になる。次にデータベース、ファイルにテストデータを投入する際の処理の流れを図16に示す。図16では、テストケースの前提部（1601）と会員テーブルのデータベース情報（1602）、会員テーブルのデータベース情報（1602）、及び商品テーブルのテーブルデータ（1604）を元にデータベース・ファイルへのデータ投入を行う。初めにステップ1605にて会員テーブルのデータベースアクセス情報（1602）より会員テーブルの情報を探す。データベースアクセス情報のファイルの中で、テーブル名に“会員テーブル”が記載されているファイルが検索条件となる。会員テーブル情報を見つけた後、ステップ1606にて、データベースアクセス情報に記載されているテーブルID、及びテーブルのカラム名とテストケース(1601)に記載されているテーブルの情報を元にSQLを発行し、データベース（204）内の会員テーブルにデータを投入する。図16のテストケース（1601）には1件データが記載されているため、会員テーブルには1件のデータ（加盟店IDが“20342323”、名前が“山田”、会員コードが“001”、住所が“東京都千代田区”、電話番号が“03-9876-5432”）が登録される。次にステップ1607にて商品テーブルのデータベースアクセス情報（1603）より商品テーブルのテーブル情報を取得する。データベースアクセス情報のファイルの中で、テーブル名に“商品テーブル”が記載されているファイルが検索条件となる。図16のテストケース（1601）には、商品テーブルはFileが規定されているため、ステップ1607にてテーブルデータ（1604）の取得を行う。投入するデータはファイル名と格納先フォルダを元に特定する。図16ではファイル名に“XXXABC.txt”、格納先フォルダに“C:\tabledata”が指定されているため、入力データが記載されているテーブルデータ（1604）のファイル名は“C:\tabledata\ XXXABC.txt”となる。
【００３３】
テーブルデータ（1604）の情報取得後、ステップ1609にて、データベース（204）へデータを投入する。データベース定義情報（1603）に記載されているテーブルID、及びテーブルのカラム名とテーブルデータ（1604）に記載されているデータを元にSQLを発行し、データベースの商品テーブルにデータを投入する。テーブルデータ（1604）には2件データが定義されているため、商品テーブルには2件のデータ（IDが“1”、商品名が“佐藤”、価格が“30000”のデータと、IDが“2”、商品名が“山田”、価格が“40000”のデータ）が登録されることになる。最後にステップ1610にて格納先フォルダ、格納先ファイルにて指定しているファイルをフォルダ名で指定されているフォルダにコピーし、ファイル名で指定した名前に変更する。図16の場合、フォルダ名が“C:\log”、ファイル名が“outfile1.txt”、格納先フォルダが“C:\abc”、格納先ファイル名が“tran.txt”であるため、“C:\abc\tran.txt”のファイルを“C:\log”フォルダにコピーし、ファイル名を“outfile1.txt”に変更する。
【００３４】
ステップ1304では、入力部（1406）で指定したパラメータを元に変数、クラスを生成する。その後、実行部の実行モジュール（1407）に指定されているプログラムを実行する。図14の例の場合、まず“jp.co.sample.KaiinData”のインスタンスを生成し、“jp.co.sample.KaiinData”クラスのデータであるshouhinName、及びnumsにそれぞれ“乾燥機”、及び1という値を設定する。入力データ作成後、実行部のインスタンス化が“TRUE”になっているため、Productsクラスをインスタンス化し、その後buyメソッドの第一引数にjp.co.sample.KaiinDataクラスを指定してbuyメソッドを実行し、プログラムの実行結果を取得する。
【００３５】
ステップ1305ではステップ1304で取得したプログラムの実行結果をテストケースの結果部の戻り値（1410）と比較する。テストケースに指定されている戻り値と値が異なる場合は、テストケース（1414）にNGを出力し、実行日（1415）にプログラムを実行した日付を出力し、ステップ1301へ遷移する。図14の例の場合、戻り値が“TRUE”と定義されているので、実行した結果の戻り値が“TRUE”でなかった場合、テストケース（1414）にNGを出力し、実行日（1415）にプログラムを実行した日付(例：03/04)を取得し、ステップ1301へ遷移する。一方、実行した結果の戻り値が“TRUE”だった場合は、ステップ1306へ遷移する。
【００３６】
ステップ1306では、データベース・ファイルの内容をテストケースに記載した内容と一致するか確認する。図17にステップ1306の概要を示す。図17では、テストケースの結果部（1701）と会員テーブルのデータベース情報（1702）を元に実行結果が正しいかどうか比較を行う。最初に、ステップ1703にて会員テーブルのデータベースアクセス情報（1703）を取得する。データベースアクセス情報のファイルの中で、テーブル名に“会員テーブル”が記載されているファイルが検索条件となる。次にステップ1704にて、ステップ1703で取得したデータベースアクセス情報のテーブルIDとテーブルのカラムの内容を元にSQLを発行し、データベース（204）より会員テーブルのデータを取得する。その後、ステップ1705により、テストケースの結果部（1701）に指定されている会員テーブルの結果の内容と一致するかチェックを行う。一致しない場合は、テストケース（1414）にNGを出力し、実行日（1415）にプログラムを実行した日付を出力し、ステップ1301へ遷移する。図17の例ではテストケースの結果部（1701）の会員テーブルにはデータが1件指定されている。自動テストツールはデータベース（204）の会員テーブルから取得したデータが1件であり、かつテストケースの結果部に指定した条件（加盟店IDが”20342323”、名前が”山田”、会員コードが”001”、住所が”東京都千代田区”、電話番号が”03-9876-5432”）を満たす場合、一致すると判断し、そうでない場合は一致しないと判断する。ステップ1706では、格納先フォルダ、格納先ファイル名を元にファイル（206）からチェック対象のファイルを取得する。その後、取得したファイルとフォルダ名、ファイル名に指定してあるファイルの内容が一致するかチェックを行う。一致する場合は、テストケース（1414）にOKを出力し、実行日（1415）にプログラムを実行した日付を出力し、ステップ1301へ遷移する。一致しない場合は、テストケース（1414）にNGを出力し、実行日（1415）にプログラムを実行した日付を出力し、ステップ1301へ遷移する。図17の例ではテストケースの結果部（1701）のファイルには“購入期限”ファイルが指定されている。自動テストツールはフォルダ名（C:\log）、ファイル名（outfile1.txt）、格納先フォルダ（C:\abc）、格納先ファイル名（tran.txt）を取得し、二つのファイル（C:\log\outfile1.txt、及びC:\abc\tran.txt）の内容を比較する。二つファイルの内容が完全に一致する場合、一致すると判断し、そうでない場合は一致しないと判断する。
【００３７】
ステップ1301では次のテストケースが存在しないため、自動テストツールを終了させる。
【図面の簡単な説明】
【００３８】
【図１】システム構成図
【図２】機能構成図
【図３】テストケースフォーマット
【図４】テストケースヘッダ部の指定例
【図５】テストケース前提部の指定例
【図６】テストケース入力部の指定例
【図７】テストケース実効部の指定例
【図８】テストケース結果部の指定例
【図９】テストケース判定部の指定例
【図１０】テストケース備考部の指定例
【図１１】データベースアクセス情報指定例
【図１２】データベースデータ指定例
【図１３】自動テストツールの処理概要
【図１４】テーストケースサンプル
【図１５】データベース・ファイルの初期化時の処理概要
【図１６】データベース・ファイルへのデータ投入の処理概要
【図１７】データベース・ファイルの検証の処理概要
【符号の説明】
【００３９】
201…テストケース、202…データベースアクセス情報、203…データベース・ファイルデータ、204…データベース、205…業務データ、206…ファイル207…テスト対象プログラム、208…自動テストツール、301…テストケースヘッダ部、302…テストケース前提部、303…テストケース入力部、304…テストケース実行部、305…テストケース結果部、306…テストケース判定部、307…テストケース備考部、
【図１】
2007316875.tif 000003
【図２】
2007316875.tif 000004
【図３】
2007316875.tif 000005
【図４】
2007316875.tif 000006
【図５】
2007316875.tif 000007
【図６】
2007316875.tif 000008
【図７】
2007316875.tif 000009
【図８】
2007316875.tif 000010
【図９】
2007316875.tif 000011
【図１０】
2007316875.tif 000012
【図１１】
2007316875.tif 000013
【図１２】
2007316875.tif 000014
【図１３】
2007316875.tif 000015
【図１４】
2007316875.tif 000016
【図１５】
2007316875.tif 000017
【図１６】
2007316875.tif 000018
【図１７】
2007316875.tif 000019