(57)【要約】【課題】単体テストにおいてデータベース更新系処理の正当性をチェックすることを可能にする。【解決手段】制御部１００から制御を渡されたＩＮＳＥＲＴ文解析部１０１は、実行されるＩＮＳＥＲＴ文の内容を解析し、解析結果を出力する。ＩＮＳＥＲＴ文実行結果評価プログラム生成部１０４は、当該解析結果を基にＩＮＳＥＲＴ処理のデータベースへの反映を確認するためのＳＥＬＥＣＴ文を生成し、そのＳＥＬＥＣＴ文を有するＩＮＳＥＲＴ文実行結果評価プログラムを生成してＩＮＳＥＲＴ文実行結果評価プログラムファイル１１１に出力する。制御部１００から制御を渡されたＵＰＤＡＴＥ文解析部１０２またはＤＥＬＥＴＥ文解析部１０３およびＵＰＤＡＴＥ文実行結果評価プログラム生成部１０５またはＤＥＬＥＴＥ文実行結果評価プログラム生成部１０６も、上記に準ずる処理を行う。【選択図】　　　　図１
2004086446.tif 000002
【特許請求の範囲】
【請求項１】
単体テストの対象となるソースファイル群を読み込んで単体テストプログラムを構成する各データベース更新系処理の実行結果評価プログラムを生成出力するコンピュータシステムにおいて、
ソースファイル群を読み込み、その内容を解析して、当該ソースファイル群の中にデータベース更新系処理があるかないかをチェックし、データベース更新系処理が存在する場合には当該データベース更新系処理を包含するソースファイルとともに当該データベース更新系処理に対応する評価用処理生成部に制御を渡す制御部と、
前記制御部から制御を渡された場合に、受け取ったソースファイルの中のデータベース更新系処理のコードの内容を解析し、その解析結果を基に当該データベース更新系処理の内容がデータベースに反映されているか否かを確認するためのＳＥＬＥＣＴ文を生成し、当該ＳＥＬＥＣＴ文を含む当該データベース更新系処理の実行結果評価プログラムを生成出力する各データベース更新系処理に対応する評価用処理生成部と
を有することを特徴とする単体テストプログラム自動生成方式。
【請求項２】
単体テストの対象となるソースファイル群を読み込んで単体テストプログラムを構成するＩＮＳＥＲＴ文実行結果評価プログラム，ＵＰＤＡＴＥ文実行結果評価プログラム，およびＤＥＬＥＴＥ文実行結果評価プログラムを生成出力するコンピュータシステムにおいて、
ソースファイル群を読み込み、その内容を解析して、当該ソースファイル群の中にデータベース更新系処理があるかないかをチェックし、データベース更新系処理であるＩＮＳＥＲＴ処理，ＵＰＤＡＴＥ処理，およびＤＥＬＥＴＥ処理のいずれかが存在する場合には当該データベース更新系処理を包含するソースファイルとともに当該データベース更新系処理に対応する専用の処理部に制御を渡す制御部と、
前記制御部からＩＮＳＥＲＴ処理包含ソースファイルとともに制御を渡された場合に、そのＩＮＳＥＲＴ処理包含ソースファイルを読み込んで、実行されるＩＮＳＥＲＴ文の内容を解析し、解析した内容を示す解析結果情報を出力するＩＮＳＥＲＴ文解析部と、
前記ＩＮＳＥＲＴ文解析部により出力された解析結果情報を読み込み、当該解析結果情報を基にＩＮＳＥＲＴ文が実行された場合にデータベースに追加されるデータを参照するためのＳＥＬＥＣＴ文を生成し、そのＳＥＬＥＣＴ文を有するＩＮＳＥＲＴ文実行結果評価プログラムを生成出力するＩＮＳＥＲＴ文実行結果評価プログラム生成部と、
前記制御部からＵＰＤＡＴＥ処理包含ソースファイルとともに制御を渡された場合に、そのＵＰＤＡＴＥ処理包含ソースファイルを読み込んで、実行されるＵＰＤＡＴＥ文の内容を解析し、解析した内容を示す解析結果情報を出力するＵＰＤＡＴＥ文解析部と、
前記ＵＰＤＡＴＥ文解析部により出力された解析結果情報を読み込み、当該解析結果情報を基にＵＰＤＡＴＥ文が実行された場合に実際に更新されたデータを参照するためのＳＥＬＥＣＴ文を生成し、そのＳＥＬＥＣＴ文を有するＵＰＤＡＴＥ文実行結果評価プログラムを生成出力するＵＰＤＡＴＥ文実行結果評価プログラム生成部と、
前記制御部からＤＥＬＥＴＥ処理包含ソースファイルとともに制御を渡された場合に、そのＤＥＬＥＴＥ処理包含ソースファイルを読み込んで、実行されるＤＥＬＥＴＥ文の内容を解析し、解析した内容を示す解析結果情報を出力するＤＥＬＥＴＥ文解析部と、
前記ＤＥＬＥＴＥ文解析部により出力された解析結果情報を読み込み、当該解析結果情報を基にＤＥＬＥＴＥ文が実行された場合にデータベースから削除されるデータを参照するためのＳＥＬＥＣＴ文を生成し、そのＳＥＬＥＣＴ文を有するＤＥＬＥＴＥ文実行結果評価プログラムを生成出力するＤＥＬＥＴＥ文実行結果評価プログラム生成部と
を有することを特徴とする単体テストプログラム自動生成方式。
【請求項３】
ＩＮＳＥＲＴ文の実行情報および実行結果情報を外部出力するためのコードを生成し、そのコードをＩＮＳＥＲＴ文実行結果評価プログラム生成部によって生成されたＩＮＳＥＲＴ文実行結果評価プログラムに埋め込んで、その埋め込み後のＩＮＳＥＲＴ文実行結果評価プログラムを出力するＩＮＳＥＲＴ文情報出力用コード生成部と、
ＵＰＤＡＴＥ文の実行情報および実行結果情報を外部出力するためのコードを生成し、そのコードをＵＰＤＡＴＥ文実行結果評価プログラム生成部によって生成されたＵＰＤＡＴＥ文実行結果評価プログラムに埋め込んで、その埋め込み後のＵＰＤＡＴＥ文実行結果評価プログラムを出力するＵＰＤＡＴＥ文情報出力用コード生成部と、
ＤＥＬＥＴＥ文の実行情報および実行結果情報を外部出力するためのコードを生成し、そのコードをＤＥＬＥＴＥ文実行結果評価プログラム生成部によって生成されたＤＥＬＥＴＥ文実行結果評価プログラムに埋め込んで、その埋め込み後のＤＥＬＥＴＥ文実行結果評価プログラムを出力するＤＥＬＥＴＥ文情報出力用コード生成部と
を有することを特徴とする請求項２記載の単体テストプログラム自動生成方式。
【請求項４】
ＩＮＳＥＲＴ文実行結果評価プログラム生成部が、ＳＥＬＥＣＴ文を生成する際に、ＳＥＬＥＣＴ結果のデータと正しい追加データとが同一であるか否かを判定しその判定結果を出力するためのコードを生成し、ＳＥＬＥＣＴ文とともにそのコードを有するＩＮＳＥＲＴ文実行結果評価プログラムを生成出力することと、
ＵＰＤＡＴＥ文実行結果評価プログラム生成部が、ＳＥＬＥＣＴ文を生成する際に、ＳＥＬＥＣＴ結果のデータと正しい更新データとが同一であるか否かを判定しその判定結果を出力するためのコードを生成し、ＳＥＬＥＣＴ文とともにそのコードを有するＵＰＤＡＴＥ文実行結果評価プログラムを生成出力することと、ＤＥＬＥＴＥ文実行結果評価プログラム生成部が、ＳＥＬＥＣＴ文を生成する際に、ＳＥＬＥＣＴ結果においてデータがヒットしない状態を確認しその確認結果を出力するためのコードを生成し、ＳＥＬＥＣＴ文とともにそのコードを有するＤＥＬＥＴＥ文実行結果評価プログラムを生成出力することと
を特徴とする請求項２または請求項３記載の単体テストプログラム自動生成方式。
【請求項５】
コンピュータシステムを、単体テストの対象となるソースファイル群を読み込み、その内容を解析して、当該ソースファイル群の中にデータベース更新系処理があるかないかをチェックし、データベース更新系処理が存在する場合には当該データベース更新系処理を包含するソースファイルとともに当該データベース更新系処理に対応する評価用処理生成部に制御を渡す制御部，および前記制御部から制御を渡された場合に、受け取ったソースファイルの中のデータベース更新系処理のコードの内容を解析し、その解析結果を基に当該データベース更新系処理の内容がデータベースに反映されているか否かを確認するためのＳＥＬＥＣＴ文を生成し、当該ＳＥＬＥＣＴ文を含む当該データベース更新系処理の実行結果評価プログラムを生成出力する各データベース更新系処理に対応する評価用処理生成部として機能させるためのプログラム。
【請求項６】
コンピュータシステムを、単体テストの対象となるソースファイル群を読み込み、その内容を解析して、当該ソースファイル群の中にデータベース更新系処理があるかないかをチェックし、データベース更新系処理であるＩＮＳＥＲＴ処理，ＵＰＤＡＴＥ処理，およびＤＥＬＥＴＥ処理のいずれかが存在する場合には当該データベース更新系処理を包含するソースファイルとともに当該データベース更新系処理に対応する専用の処理部に制御を渡す制御部，前記制御部からＩＮＳＥＲＴ処理包含ソースファイルとともに制御を渡された場合に、そのＩＮＳＥＲＴ処理包含ソースファイルを読み込んで、実行されるＩＮＳＥＲＴ文の内容を解析し、解析した内容を示す解析結果情報を出力するＩＮＳＥＲＴ文解析部，前記ＩＮＳＥＲＴ文解析部により出力された解析結果情報を読み込み、当該解析結果情報を基にＩＮＳＥＲＴ文が実行された場合にデータベースに追加されるデータを参照するためのＳＥＬＥＣＴ文を生成し、そのＳＥＬＥＣＴ文を有するＩＮＳＥＲＴ文実行結果評価プログラムを生成出力するＩＮＳＥＲＴ文実行結果評価プログラム生成部，前記制御部からＵＰＤＡＴＥ処理包含ソースファイルとともに制御を渡された場合に、そのＵＰＤＡＴＥ処理包含ソースファイルを読み込んで、実行されるＵＰＤＡＴＥ文の内容を解析し、解析した内容を示す解析結果情報を出力するＵＰＤＡＴＥ文解析部，前記ＵＰＤＡＴＥ文解析部により出力された解析結果情報を読み込み、当該解析結果情報を基にＵＰＤＡＴＥ文が実行された場合に実際に更新されたデータを参照するためのＳＥＬＥＣＴ文を生成し、そのＳＥＬＥＣＴ文を有するＵＰＤＡＴＥ文実行結果評価プログラムを生成出力するＵＰＤＡＴＥ文実行結果評価プログラム生成部，前記制御部からＤＥＬＥＴＥ処理包含ソースファイルとともに制御を渡された場合に、そのＤＥＬＥＴＥ処理包含ソースファイルを読み込んで、実行されるＤＥＬＥＴＥ文の内容を解析し、解析した内容を示す解析結果情報を出力するＤＥＬＥＴＥ文解析部，ならびに前記ＤＥＬＥＴＥ文解析部により出力された解析結果情報を読み込み、当該解析結果情報を基にＤＥＬＥＴＥ文が実行された場合にデータベースから削除されるデータを参照するためのＳＥＬＥＣＴ文を生成し、そのＳＥＬＥＣＴ文を有するＤＥＬＥＴＥ文実行結果評価プログラムを生成出力するＤＥＬＥＴＥ文実行結果評価プログラム生成部として機能させるためのプログラム。
【請求項７】
コンピュータシステムを、請求項６記載の制御部，ＩＮＳＥＲＴ文解析部，ＩＮＳＥＲＴ文実行結果評価プログラム生成部，ＵＰＤＡＴＥ文解析部，ＵＰＤＡＴＥ文実行結果評価プログラム生成部，ＤＥＬＥＴＥ文解析部，およびＤＥＬＥＴＥ文実行結果評価プログラム生成部として機能させるとともに、ＩＮＳＥＲＴ文の実行情報および実行結果情報を外部出力するためのコードを生成し、そのコードを前記ＩＮＳＥＲＴ文実行結果評価プログラム生成部によって生成されたＩＮＳＥＲＴ文実行結果評価プログラムに埋め込んで、その埋め込み後のＩＮＳＥＲＴ文実行結果評価プログラムを出力するＩＮＳＥＲＴ文情報出力用コード生成部，ＵＰＤＡＴＥ文の実行情報および実行結果情報を外部出力するためのコードを生成し、そのコードを前記ＵＰＤＡＴＥ文実行結果評価プログラム生成部によって生成されたＵＰＤＡＴＥ文実行結果評価プログラムに埋め込んで、その埋め込み後のＵＰＤＡＴＥ文実行結果評価プログラムを出力するＵＰＤＡＴＥ文情報出力用コード生成部，ならびにＤＥＬＥＴＥ文の実行情報および実行結果情報を外部出力するためのコードを生成し、そのコードを前記ＤＥＬＥＴＥ文実行結果評価プログラム生成部によって生成されたＤＥＬＥＴＥ文実行結果評価プログラムに埋め込んで、その埋め込み後のＤＥＬＥＴＥ文実行結果評価プログラムを出力するＤＥＬＥＴＥ文情報出力用コード生成部として機能させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データベース更新系処理を含むデータベースアクセス処理を有するプログラムの単体テストを行うための単体テストプログラムを自動生成する単体テストプログラム自動生成方式に関する。
【０００２】
【従来の技術】
従来、Ｃ＋＋やＪａｖａ（登録商標）等のオブジェクト指向のプログラム言語と統合化されて使用されるＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ　Ｑｕｅｒｙ　Ｌａｎｇｕａｇｅ）等のデータベース言語で記述されたデータベースアクセス処理を含むソースプログラム（オブジェクト指向のプログラム）の単体テストを行う場合には、テストフレームワーク等を用いてその単体テストが実施されていた。
【０００３】
このような従来の技術においても、すでに、評価プログラム（単体テストプログラム）を自動生成するための技術は存在していた。また、データベース更新系処理について、そのエラーが発生したかどうかを確認することは、従来の技術においても容易にできた。
【０００４】
しかしながら、上記のような従来の技術では、データベース更新系処理が正しく実行されているかどうかは保証されていなかった。
【０００５】
【発明が解決しようとする課題】
データベースアクセス処理を含むプログラムの単体テストの実施に関する従来の技術では、上述のように、データベース更新系処理が正しく実行されているかどうかが保証されていなかったので、次のような問題点があった。
【０００６】
すなわち、従来の技術では、データベース上のデータの更新系処理において、エラーが発生しない場合でも、データベースの状態（文字コード等も含めた状態）が正しく更新等されているかどうかは保証されないため、データベースの状態まで確認するには、別途、特別のテストプログラムを用意するか、データベース内のデータを目で確認する等の作業（工程）等が必要となっていた。
【０００７】
本発明の目的は、上述の点に鑑み、現在のシステム開発の単体テストフェーズで用いられているテストフレームワーク等ではカバーしきれていなかった、単体テストにおいてデータベース更新系処理の正当性をチェックすることを可能にするための単体テストプログラム自動生成方式を提供することにある。
【０００８】
なお、本発明の単体テストプログラム自動生成方式に対する従来技術に関する特許公報としては、プログラムのテストに関する技術を考察している点で本発明と類似している「特開２００１−２５６０７６号公報」および「特開昭６３−２３８６３９号公報」が存在し、データベースの更新に関する技術を考察している点で本発明と類似している「特開２００２−０５５８５２号公報」が存在する。
【０００９】
しかしながら、上記の各公報に記載された技術と本発明とは、以下のａ〜ｃに示すような点で、本質的に相違している。
【００１０】
ａ．特開２００１−２５６０７６号公報に記載された技術（テストデータ生成装置、テストデータ生成方法及び記録媒体）は、テストデータを生成する点に重点をおいている。これに対して、本発明は、データベースを更新した際のデータの妥当性をチェックすることに重点をおいている。すなわち、本発明は、どのようなテストデータを作成するのか、どのように効率よくテストデータを作成するのか、といったことではなく、更新したデータの内容が本当に正しくデータベースに反映されているのかといった内容を単体テストプログラムに組み込むことで、効率よく単体テストを実施することを意図するものである。このように、両者は、その目的および効果の相違に起因して、その構成を異にしている。
【００１１】
ｂ．特開昭６３−２３８６３９号公報に記載された技術（プログラムテスト方式）は、データベースの状態をチェックするような事柄には言及しておらず、本発明とはその目的，構成，および効果を本質的に異にしている。
【００１２】
ｃ．特開２００２−０５５８５２号公報に記載された技術（オブジェクトの生成・消滅情報管理方式）は、プログラム実行時のオブジェクトの生成および消滅をチェックするものである。これに対して、本発明は、データベースを更新した際のデータの妥当性をチェックすることに関して重点をおいている。このように、両者は、その目的，構成，および効果を異にしている。
【００１３】
【課題を解決するための手段】
本発明の単体テストプログラム自動生成方式は、単体テストの対象となるソースファイル群を読み込んで単体テストプログラムを構成するＩＮＳＥＲＴ文実行結果評価プログラム，ＵＰＤＡＴＥ文実行結果評価プログラム，およびＤＥＬＥＴＥ文実行結果評価プログラムを生成出力するコンピュータシステムにおいて、ソースファイル群を読み込み、その内容を解析して、当該ソースファイル群の中にデータベース更新系処理があるかないかをチェックし、データベース更新系処理であるＩＮＳＥＲＴ処理，ＵＰＤＡＴＥ処理，およびＤＥＬＥＴＥ処理のいずれかが存在する場合には当該データベース更新系処理を包含するソースファイル（ＩＮＳＥＲＴ処理包含ソースファイル，ＵＰＤＡＴＥ処理包含ソースファイル，またはＤＥＬＥＴＥ処理包含ソースファイル）とともに当該データベース更新系処理に対応する専用の処理部（ＩＮＳＥＲＴ文解析部，ＵＰＤＡＴＥ文解析部，またはＤＥＬＥＴＥ文解析部）に制御を渡す制御部と、前記制御部からＩＮＳＥＲＴ処理包含ソースファイル（ＩＮＳＥＲＴ文が実行されるソースファイル。このようなソースファイルが複数存在することもありうる）とともに制御を渡された場合に、そのＩＮＳＥＲＴ処理包含ソースファイルを読み込んで、実行されるＩＮＳＥＲＴ文の内容を解析し、解析した内容を示す解析結果情報を出力するＩＮＳＥＲＴ文解析部と、前記ＩＮＳＥＲＴ文解析部により出力された解析結果情報を読み込み、当該解析結果情報を基にＩＮＳＥＲＴ文が実行された場合にデータベースに追加（入力）されるデータを参照するためのＳＥＬＥＣＴ文（ＩＮＳＥＲＴされたデータがデータベースに反映されているか否かを確認するためのＳＥＬＥＣＴ文）を生成し、そのＳＥＬＥＣＴ文を有するＩＮＳＥＲＴ文実行結果評価プログラムを生成出力するＩＮＳＥＲＴ文実行結果評価プログラム生成部と、前記制御部からＵＰＤＡＴＥ処理包含ソースファイル（ＵＰＤＡＴＥ文が実行されるソースファイル。このようなソースファイルが複数存在することもありうる）とともに制御を渡された場合に、そのＵＰＤＡＴＥ処理包含ソースファイルを読み込んで、実行されるＵＰＤＡＴＥ文の内容を解析し、解析した内容を示す解析結果情報を出力するＵＰＤＡＴＥ文解析部と、前記ＵＰＤＡＴＥ文解析部により出力された解析結果情報を読み込み、当該解析結果情報を基にＵＰＤＡＴＥ文が実行された場合に実際に更新されたデータ（データベースで更新されるデータ）を参照するためのＳＥＬＥＣＴ文（ＵＰＤＡＴＥされたデータがデータベースに反映されているか否かを確認するためのＳＥＬＥＣＴ文）を生成し、そのＳＥＬＥＣＴ文を有するＵＰＤＡＴＥ文実行結果評価プログラムを生成出力するＵＰＤＡＴＥ文実行結果評価プログラム生成部と、前記制御部からＤＥＬＥＴＥ処理包含ソースファイル（ＤＥＬＥＴＥ文が実行されるソースファイル。このようなソースファイルが複数存在することもありうる）とともに制御を渡された場合に、そのＤＥＬＥＴＥ処理包含ソースファイルを読み込んで、実行されるＤＥＬＥＴＥ文の内容を解析し、解析した内容を示す解析結果情報を出力するＤＥＬＥＴＥ文解析部と、前記ＤＥＬＥＴＥ文解析部により出力された解析結果情報を読み込み、当該解析結果情報を基にＤＥＬＥＴＥ文が実行された場合にデータベースから削除されるデータを参照するためのＳＥＬＥＣＴ文（ＤＥＬＥＴＥされたデータがデータベースから削除されているか否かを確認するためのＳＥＬＥＣＴ文）を生成し、そのＳＥＬＥＣＴ文を有するＤＥＬＥＴＥ文実行結果評価プログラムを生成出力するＤＥＬＥＴＥ文実行結果評価プログラム生成部とを有する。
【００１４】
また、本発明の単体テストプログラム自動生成方式は、上記の構成要素に加えて、ＩＮＳＥＲＴ文の実行情報（ＩＮＳＥＲＴ処理の内容を示す情報）および実行結果情報（ＩＮＳＥＲＴ処理の処理結果を示す情報）を外部出力（ファイル等への出力。ＳＥＬＥＣＴ文による取り出しとは別の態様での出力）するためのコードを生成し、そのコードをＩＮＳＥＲＴ文実行結果評価プログラム生成部によって生成されたＩＮＳＥＲＴ文実行結果評価プログラムに埋め込んで、その埋め込み後のＩＮＳＥＲＴ文実行結果評価プログラムを出力するＩＮＳＥＲＴ文情報出力用コード生成部と、ＵＰＤＡＴＥ文の実行情報（ＵＰＤＡＴＥ処理の内容を示す情報）および実行結果情報（ＵＰＤＡＴＥ処理の処理結果を示す情報）を外部出力（ファイル等への出力。ＳＥＬＥＣＴ文による取り出しとは別の態様での出力）するためのコードを生成し、そのコードをＵＰＤＡＴＥ文実行結果評価プログラム生成部によって生成されたＵＰＤＡＴＥ文実行結果評価プログラムに埋め込んで、その埋め込み後のＵＰＤＡＴＥ文実行結果評価プログラムを出力するＵＰＤＡＴＥ文情報出力用コード生成部と、ＤＥＬＥＴＥ文の実行情報（ＤＥＬＥＴＥ処理の内容を示す情報）および実行結果情報（ＤＥＬＥＴＥ処理の処理結果を示す情報）を外部出力（ファイル等への出力。ＳＥＬＥＣＴ文による取り出しとは別の態様での出力）するためのコードを生成し、そのコードをＤＥＬＥＴＥ文実行結果評価プログラム生成部によって生成されたＤＥＬＥＴＥ文実行結果評価プログラムに埋め込んで、その埋め込み後のＤＥＬＥＴＥ文実行結果評価プログラムを出力するＤＥＬＥＴＥ文情報出力用コード生成部とを有するように構成することも可能である。
【００１５】
さらに、本発明の単体テストプログラム自動生成方式においては、上記のＩＮＳＥＲＴ文実行結果評価プログラム生成部が、ＳＥＬＥＣＴ文を生成する際に、ＳＥＬＥＣＴ結果のデータと正しい追加データとが同一であるか否かを判定しその判定結果を出力するためのコード（正当性のチェックを行うためのコード）を生成し、ＳＥＬＥＣＴ文とともにそのコードを有するＩＮＳＥＲＴ文実行結果評価プログラムを生成出力するようにし、上記のＵＰＤＡＴＥ文実行結果評価プログラム生成部が、ＳＥＬＥＣＴ文を生成する際に、ＳＥＬＥＣＴ結果のデータと正しい更新データとが同一であるか否かを判定しその判定結果を出力するためのコード（正当性のチェックを行うためのコード）を生成し、ＳＥＬＥＣＴ文とともにそのコードを有するＵＰＤＡＴＥ文実行結果評価プログラムを生成出力するようにし、上記のＤＥＬＥＴＥ文実行結果評価プログラム生成部が、ＳＥＬＥＣＴ文を生成する際に、ＳＥＬＥＣＴ結果においてデータがヒットしない状態を確認しその確認結果を出力するためのコード（正当性のチェックを行うためのコード）を生成し、ＳＥＬＥＣＴ文とともにそのコードを有するＤＥＬＥＴＥ文実行結果評価プログラムを生成出力するようにすることも可能である。
【００１６】
なお、本発明の単体テストプログラム自動生成方式は、より一般的には、単体テストの対象となるソースファイル群を読み込んで単体テストプログラムを構成する各データベース更新系処理の実行結果評価プログラムを生成出力するコンピュータシステムにおいて、ソースファイル群を読み込み、その内容を解析して、当該ソースファイル群の中にデータベース更新系処理があるかないかをチェックし、データベース更新系処理が存在する場合には当該データベース更新系処理を包含するソースファイルとともに当該データベース更新系処理に対応する評価用処理生成部に制御を渡す制御部と、前記制御部から制御を渡された場合に、受け取ったソースファイルの中のデータベース更新系処理のコードの内容を解析し、その解析結果を基に当該データベース更新系処理の内容がデータベースに反映されているか否かを確認するためのＳＥＬＥＣＴ文を生成し、当該ＳＥＬＥＣＴ文を含む当該データベース更新系処理の実行結果評価プログラムを生成出力する各データベース更新系処理に対応する評価用処理生成部（例えば、図２中のＩＮＳＥＲＴ文評価用処理生成部２０１や図３中のＵＰＤＡＴＥ文評価用処理生成部３０１や図４中のＤＥＬＥＴＥ文評価用処理生成部４０１）とを有すると表現することができる。
【００１７】
また、本発明は、コンピュータシステムを、単体テストの対象となるソースファイル群を読み込み、その内容を解析して、当該ソースファイル群の中にデータベース更新系処理があるかないかをチェックし、データベース更新系処理が存在する場合には当該データベース更新系処理を包含するソースファイルとともに当該データベース更新系処理に対応する評価用処理生成部に制御を渡す制御部，および前記制御部から制御を渡された場合に、受け取ったソースファイルの中のデータベース更新系処理のコードの内容を解析し、その解析結果を基に当該データベース更新系処理の内容がデータベースに反映されているか否かを確認するためのＳＥＬＥＣＴ文を生成し、当該ＳＥＬＥＣＴ文を含む当該データベース更新系処理の実行結果評価プログラムを生成出力する各データベース更新系処理に対応する評価用処理生成部として機能させるためのプログラムの形態で実現することも可能である。
【００１８】
【発明の実施の形態】
次に、本発明について図面を参照して詳細に説明する。
【００１９】
（１）　第１の実施の形態
【００２０】
図１は、本発明の第１の実施の形態に係る単体テストプログラム自動生成方式の構成を示すブロック図である。
【００２１】
図１を参照すると、本実施の形態に係る単体テストプログラム自動生成方式は、制御部１００と、ＩＮＳＥＲＴ文解析部１０１と、ＵＰＤＡＴＥ文解析部１０２と、ＤＥＬＥＴＥ文解析部１０３と、ＩＮＳＥＲＴ文実行結果評価プログラム生成部１０４と、ＵＰＤＡＴＥ文実行結果評価プログラム生成部１０５と、ＤＥＬＥＴＥ文実行結果評価プログラム生成部１０６と、ソースファイル群１１０と、ＩＮＳＥＲＴ文実行結果評価プログラムファイル１１１と、ＵＰＤＡＴＥ文実行結果評価プログラムファイル１１２と、ＤＥＬＥＴＥ文実行結果評価プログラムファイル１１３とを含んで構成されている。
【００２２】
図１に示すように、本実施の形態に係る単体テストプログラム自動生成方式は、複数の独立したプログラム制御を組み合わせた態様によって動作する。
【００２３】
図２は、図１中のＩＮＳＥＲＴ文解析部１０１およびＩＮＳＥＲＴ文実行結果評価プログラム生成部１０４によって形成されるＩＮＳＥＲＴ文評価用処理生成部２０１の詳細な構成および動作を説明するためのブロック図である。
【００２４】
この部分（ＩＮＳＥＲＴ文評価用処理生成部２０１）は、ソースファイル読み込み部２１１およびソースファイル解析部２１２からなるＩＮＳＥＲＴ文解析部１０１と、ＩＮＳＥＲＴ文実行結果評価プログラム生成部１０４とによって構成されている。
【００２５】
これらの構成要素（各部）は、概略、次のように動作する。
【００２６】
ＩＮＳＥＲＴ文解析部１０１内のソースファイル読み込み部２１１は、制御部１００でソースファイル群１１０の中にＩＮＳＥＲＴ処理包含ソースファイル２２１（ＩＮＳＥＲＴ文が実行されるソースファイル。このようなソースファイルが複数存在することもありうる）があると判断された場合に、そのＩＮＳＥＲＴ処理包含ソースファイル２２１を読み込んで、当該ＩＮＳＥＲＴ処理包含ソースファイル２２１の内容を記憶領域２２２（第１の記憶領域）に出力（展開）する。
【００２７】
なお、ここでいう「記憶領域」は、メモリ上に実現することを想定している。ファイルから情報の読み込みを毎回行うと処理が遅くなるので、メモリ上に展開してそこにアクセスすることが処理遅延防止のために適切であるからである。ただし、メモリ以外の直接アクセス記憶装置上に当該記憶領域を実現することも可能である。
【００２８】
ＩＮＳＥＲＴ文解析部１０１内のソースファイル解析部２１２は、記憶領域２２２に格納されている情報（ＩＮＳＥＲＴ処理包含ソースファイル２２１の内容）を読み込んで、どのようなＩＮＳＥＲＴ文が実行されるのか等について解析し、解析した内容（解析結果情報）を記憶領域２２３（第２の記憶領域）に出力する（書き込む）。
【００２９】
ＩＮＳＥＲＴ文実行結果評価プログラム生成部１０４は、記憶領域２２３から解析結果情報を読み込み、ＩＮＳＥＲＴ文が実行された場合にデータベースに入力（追加）されるデータを参照するためのＳＥＬＥＣＴ文を生成し、そのＳＥＬＥＣＴ文を有するＩＮＳＥＲＴ文実行結果評価プログラムをＩＮＳＥＲＴ文実行結果評価プログラムファイル１１１に出力する。
【００３０】
図３は、図１中のＵＰＤＡＴＥ文解析部１０２およびＵＰＤＡＴＥ文実行結果評価プログラム生成部１０５によって形成されるＵＰＤＡＴＥ文評価用処理生成部３０１の詳細な構成および動作を説明するためのブロック図である。
【００３１】
この部分（ＵＰＤＡＴＥ文評価用処理生成部３０１）は、ソースファイル読み込み部３１１およびソースファイル解析部３１２からなるＵＰＤＡＴＥ文解析部１０２と、ＵＰＤＡＴＥ文実行結果評価プログラム生成部１０５とによって構成されている。
【００３２】
これらの構成要素（各部）は、概略、次のように動作する。
【００３３】
ＵＰＤＡＴＥ文解析部１０２内のソースファイル読み込み部３１１は、制御部１００でソースファイル群１１０の中にＵＰＤＡＴＥ処理包含ソースファイル３２１（ＵＰＤＡＴＥ文が実行されるソースファイル。このようなソースファイルが複数存在することもありうる）があると判断された場合に、そのＵＰＤＡＴＥ処理包含ソースファイル３２１を読み込んで、当該ＵＰＤＡＴＥ処理包含ソースファイル３２１の内容を記憶領域３２２（第１の記憶領域）に出力（展開）する。
【００３４】
ＵＰＤＡＴＥ文解析部１０２内のソースファイル解析部３１２は、記憶領域３２２に格納されている情報（ＵＰＤＡＴＥ処理包含ソースファイル３２１の内容）を読み込んで、どのようなＵＰＤＡＴＥ文が実行されるのか等について解析し、解析した内容（解析結果情報）を記憶領域３２３（第２の記憶領域）に出力する（書き込む）。この解析結果情報としては、キーとなる列名，キー値，更新される列名，および更新されるデータ等からなる情報が考えられる。
【００３５】
ＵＰＤＡＴＥ文実行結果評価プログラム生成部１０５は、記憶領域３２３から解析結果情報を読み込み、ＵＰＤＡＴＥ文が実行された場合に実際に更新されたデータを参照するためのＳＥＬＥＣＴ文を生成し、そのＳＥＬＥＣＴ文を有するＵＰＤＡＴＥ文実行結果評価プログラムをＵＰＤＡＴＥ文実行結果評価プログラムファイル１１２に出力する。
【００３６】
図４は、図１中のＤＥＬＥＴＥ文解析部１０３およびＤＥＬＥＴＥ文実行結果評価プログラム生成部１０６によって形成されるＤＥＬＥＴＥ文評価用処理生成部４０１の詳細な構成および動作を説明するためのブロック図である。
【００３７】
この部分（ＤＥＬＥＴＥ文評価用処理生成部４０１）は、ソースファイル読み込み部４１１およびソースファイル解析部４１２からなるＤＥＬＥＴＥ文解析部１０３と、ＤＥＬＥＴＥ文実行結果評価プログラム生成部１０６とによって構成されている。
【００３８】
これらの構成要素（各部）は、概略、次のように動作する。
【００３９】
ＤＥＬＥＴＥ文解析部１０３内のソースファイル読み込み部４１１は、制御部１００でソースファイル群１１０の中にＤＥＬＥＴＥ処理包含ソースファイル４２１（ＤＥＬＥＴＥ文が実行されるソースファイル。このようなソースファイルが複数存在することもありうる）があると判断された場合に、そのＤＥＬＥＴＥ処理包含ソースファイル４２１を読み込んで、当該ＤＥＬＥＴＥ処理包含ソースファイル４２１の内容を記憶領域４２２（第１の記憶領域）に出力（展開）する。
【００４０】
ＤＥＬＥＴＥ文解析部１０３内のソースファイル解析部４１２は、記憶領域４２２に格納されている情報（ＤＥＬＥＴＥ処理包含ソースファイル４２１の内容）を読み込んで、どのようなＤＥＬＥＴＥ文が実行されるのか等について解析し、解析した内容（解析結果情報）を記憶領域４２３（第２の記憶領域）に出力する（書き込む）。この解析結果情報としては、キーとなる列名およびキー値等からなる情報が考えられる。
【００４１】
ＤＥＬＥＴＥ文実行結果評価プログラム生成部１０６は、記憶領域４２３から解析結果情報を読み込み、ＤＥＬＥＴＥ文が実行された場合にデータベースから削除されるデータを参照するためのＳＥＬＥＣＴ文を生成し、そのＳＥＬＥＣＴ文を有するＤＥＬＥＴＥ文実行結果評価プログラムをＤＥＬＥＴＥ文実行結果評価プログラムファイル１１３に出力する。
【００４２】
図５は、本実施の形態に係る単体テストプログラム自動生成方式の処理を示す流れ図である。この処理は、ソースファイル群読み込みステップ５０１と、ソースファイル内容解析ステップ５０２と、ソースファイル群最後到達判定ステップ５０３と、ＩＮＳＥＲＴ処理存在判定ステップ５０４と、ＩＮＳＥＲＴ文実行結果評価プログラム生成処理ステップ５０５と、ＵＰＤＡＴＥ処理存在判定ステップ５０６と、ＵＰＤＡＴＥ文実行結果評価プログラム生成処理ステップ５０７と、ＤＥＬＥＴＥ処理存在判定ステップ５０８と、ＤＥＬＥＴＥ文実行結果評価プログラム生成処理ステップ５０９とからなる。
【００４３】
図６は、図５中のＩＮＳＥＲＴ文実行結果評価プログラム生成処理ステップ５０５の詳細な処理を示す流れ図である。この処理は、ＩＮＳＥＲＴ処理包含ソースファイル読み込みステップ６０１と、ＩＮＳＥＲＴ処理内容解析ステップ６０２と、ＩＮＳＥＲＴ文実行結果評価プログラム生成・出力ステップ６０３とからなる。
【００４４】
図７は、図５中のＵＰＤＡＴＥ文実行結果評価プログラム生成処理ステップ５０７の詳細な処理を示す流れ図である。この処理は、ＵＰＤＡＴＥ処理包含ソースファイル読み込みステップ７０１と、ＵＰＤＡＴＥ処理内容解析ステップ７０２と、ＵＰＤＡＴＥ文実行結果評価プログラム生成・出力ステップ７０３とからなる。
【００４５】
図８は、図５中のＤＥＬＥＴＥ文実行結果評価プログラム生成処理ステップ５０９の詳細な処理を示す流れ図である。この処理は、ＤＥＬＥＴＥ処理包含ソースファイル読み込みステップ８０１と、ＤＥＬＥＴＥ処理内容解析ステップ８０２と、ＤＥＬＥＴＥ文実行結果評価プログラム生成・出力ステップ８０３とからなる。
【００４６】
次に、図１〜図８を参照して、上記のように構成された本実施の形態に係る単体テストプログラム自動生成方式の全体の動作について詳細に説明する。
【００４７】
第１に、本実施の形態に係る単体テストプログラム自動生成方式における全体の処理の流れについて説明する（図５参照）。
【００４８】
なお、この処理（動作）の前提として（本発明の機能を利用する前に）、利用者は完成したソースファイル群１１０（データベースアクセス処理を含みオブジェクト指向言語でプログラミングされたソースファイルの集合）を作成しておく必要がある。なお、当該データベースアクセス処理はＳＱＬによって記述されていることを想定している。したがって、データベース更新系処理としては、ＩＮＳＥＲＴ処理，ＵＰＤＡＴＥ処理，およびＤＥＬＥＴＥ処理が存在しうる。
【００４９】
最初に、制御部１００は、開発を行った結果得られた資産であり単体テストの対象となるソースファイル群１１０を読み込んで、その内容をメモリ上に展開する（ステップ５０１）。
【００５０】
次に、制御部１００は、メモリ上に展開したソースファイル群１１０の内容を初めから順に探索していき、各ソースファイルの内容を解析する（ステップ５０２）。そして、当該解析に基づき、以下のステップ５０３，ステップ５０４，ステップ５０６，およびステップ５０８の分岐判定を行う。
【００５１】
まず、すでにソースファイル群１１０の最後に達しているか否か（解析すべきソースファイルがもう残っていないかどうか）を判定する（ステップ５０３）。
【００５２】
ステップ５０３で「ソースファイル群１１０の最後に達している」と判定した場合には、処理を終了する。
【００５３】
一方、ステップ５０３で「ソースファイル群１１０の最後に達していない」と判定した場合には、当該ソースファイル（現時点で解析対象のソースファイル）の中にＩＮＳＥＲＴ処理が存在するか否かを判定する（ステップ５０４）。
【００５４】
ステップ５０４で「ＩＮＳＥＲＴ処理が存在する」と判定した場合（ＩＮＳＥＲＴ処理が行われる箇所が見つかった場合）には、当該ソースファイル（図２中のＩＮＳＥＲＴ処理包含ソースファイル２２１に該当するソースファイル）をＩＮＳＥＲＴ文評価用処理生成部２０１（図２参照）に渡し、ＩＮＳＥＲＴ文実行結果評価用プログラム生成処理（ステップ５０５）を実行させるようにＩＮＳＥＲＴ文評価用処理生成部２０１に制御を移行する。
【００５５】
ステップ５０４で「ＩＮＳＥＲＴ処理が存在しない」と判定した場合またはステップ５０５の処理が終了した場合には、当該ソースファイルの中にＵＰＤＡＴＥ処理が存在するか否かを判定する（ステップ５０６）。
【００５６】
ステップ５０６で「ＵＰＤＡＴＥ処理が存在する」と判定した場合（ＵＰＤＡＴＥ処理が行われる箇所が見つかった場合）には、当該ソースファイル（図３中のＵＰＤＡＴＥ処理包含ソースファイル３２１に該当するソースファイル）をＵＰＤＡＴＥ文評価用処理生成部３０１（図３参照）に渡し、ＵＰＤＡＴＥ文実行結果評価用プログラム生成処理（ステップ５０７）を実行させるようにＵＰＤＡＴＥ文評価用処理生成部３０１に制御を移行する。
【００５７】
ステップ５０６で「ＵＰＤＡＴＥ処理が存在しない」と判定した場合またはステップ５０７の処理が終了した場合には、当該ソースファイルの中にＤＥＬＥＴＥ処理が存在するか否かを判定する（ステップ５０８）。
【００５８】
ステップ５０８で「ＤＥＬＥＴＥ処理が存在する」と判定した場合（ＤＥＬＥＴＥ処理が行われる箇所が見つかった場合）には、当該ソースファイル（図４中のＤＥＬＥＴＥ処理包含ソースファイル４２１に該当するソースファイル）をＤＥＬＥＴＥ文評価用処理生成部４０１（図４参照）に渡し、ＤＥＬＥＴＥ文実行結果評価用プログラム生成処理（ステップ５０９）を実行させるようにＤＥＬＥＴＥ文評価用処理生成部４０１に制御を移行する。
【００５９】
ステップ５０８で「ＤＥＬＥＴＥ処理が存在しない」と判定した場合またはステップ５０９の処理が終了した場合には、次のソースファイルを対象としてステップ５０２以下の処理および判定を繰り返す。
【００６０】
なお、「データベース更新系処理（ＩＮＳＥＲＴ処理，ＵＰＤＡＴＥ処理，およびＤＥＬＥＴＥ処理の各処理）が存在するソースファイルを探すための処理」は、上記の図５に示すような処理に限定されるものではなく、ソースファイル群１１０の中からデータベース更新系処理の箇所を見つけ出しその箇所を含むソースファイルを取り出すことが実現できれば、どのような態様でもよい（図５に示す処理の態様はあくもでも例示である）。
【００６１】
第２に、ＩＮＳＥＲＴ文実行結果評価プログラム生成処理（ステップ５０５）が行われる場合の動作について説明する。
【００６２】
先述のように、ステップ５０４でＩＮＳＥＲＴ処理が行われる箇所が見つかれば、ＩＮＳＥＲＴ文評価用処理生成部２０１（図２参照）に、ＩＮＳＥＲＴ処理包含ソースファイル２２１とともに制御が渡される。この際に、ＩＮＳＥＲＴ文評価用処理生成部２０１は、ＩＮＳＥＲＴ文実行結果評価プログラム生成処理として、以下のような処理を行う（図６参照）。
【００６３】
まず、ＩＮＳＥＲＴ文評価用処理生成部２０１内のＩＮＳＥＲＴ文解析部１０１中のソースファイル読み込み部２１１は、ＩＮＳＥＲＴ処理包含ソースファイル２２１を読み込んで、その内容をメモリ上の記憶領域２２２に展開する（ステップ６０１）。
【００６４】
次に、ソースファイル解析部２１２は、記憶領域２２２に展開されたＩＮＳＥＲＴ処理包含ソースファイル２２１の内容を参照し、ＩＮＳＥＲＴ処理の内容を解析して、実行されるＩＮＳＥＲＴ文の内容、つまり、データが追加される表名，列名，および追加するデータ等を解析結果情報として一時記憶領域２２３に取り出しておく（ステップ６０２）。
【００６５】
次に、ＩＮＳＥＲＴ文実行結果評価プログラム生成部１０４は、ステップ６０２で一時的に記憶領域２２３に退避された情報を基に、ＩＮＳＥＲＴされたデータを参照するためのＳＥＬＥＣＴ文を含むＩＮＳＥＲＴ文実行結果評価プログラムを生成し、そのプログラムをＩＮＳＥＲＴ文実行結果評価プログラムファイル１１１に出力する（ステップ６０３）。ここで、このＳＥＬＥＣＴ文は、例えば、（ＳＥＬＥＣＴ　＊　ＦＲＯＭ　表名　ＷＨＥＲＥ　キー列名　＝　’追加したデータ値’）のような形式の文となる。
【００６６】
なお、このＩＮＳＥＲＴ文実行結果評価プログラムは、本実施の形態による生成対象の単体テストプログラムの一部を形成することとなる。
【００６７】
また、その単体テストプログラムによる単体テストの実行時に、上記のようなＳＥＬＥＣＴ文によって検索・表示される内容に基づき、利用者は、ＳＥＬＥＣＴ結果のデータとＩＮＳＥＲＴ処理による正しい追加データとが同一であるか否かを判断することにより、当該ＩＮＳＥＲＴ処理の実行結果の正当性のチェック（ＩＮＳＥＲＴ文による処理内容が正しいことの確認）を行うことができる。
【００６８】
ここで、ＩＮＳＥＲＴ文実行結果評価プログラム生成部１０４が、ＳＥＬＥＣＴ文を生成する際に、ＳＥＬＥＣＴ結果のデータと正しい追加データとが同一であるか否かを判定しその判定結果を出力するためのコード（正当性のチェックを行うためのコード）を生成し、ＳＥＬＥＣＴ文とともにそのコードを有するＩＮＳＥＲＴ文実行結果評価プログラムを生成してＩＮＳＥＲＴ文実行結果評価プログラムファイル１１１に出力するようにすることも可能である。
【００６９】
第３に、ＵＰＤＡＴＥ文実行結果評価プログラム生成処理（ステップ５０７）が行われる場合の動作について説明する。
【００７０】
先述のように、ステップ５０６でＵＰＤＡＴＥ処理が行われる箇所が見つかれば、ＵＰＤＡＴＥ文評価用処理生成部３０１（図３参照）に、ＵＰＤＡＴＥ処理包含ソースファイル３２１とともに制御が渡される。この際に、ＵＰＤＡＴＥ文評価用処理生成部３０１は、ＵＰＤＡＴＥ文実行結果評価プログラム生成処理として、以下のような処理を行う（図７参照）。
【００７１】
まず、ＵＰＤＡＴＥ文評価用処理生成部３０１内のＵＰＤＡＴＥ文解析部１０２中のソースファイル読み込み部３１１は、ＵＰＤＡＴＥ処理包含ソースファイル３２１を読み込んで、その内容をメモリ上の記憶領域３２２に展開する（ステップ７０１）。
【００７２】
次に、ソースファイル解析部３１２は、記憶領域３２２に展開されたＵＰＤＡＴＥ処理包含ソースファイル３２１の内容を参照し、ＵＰＤＡＴＥ処理の内容を解析して、実行されるＵＰＤＡＴＥ文の内容、つまり、データが更新される表名，更新される列名，更新するデータ，キー列名，およびキー値等を解析結果情報として一時記憶領域３２３に取り出しておく（ステップ７０２）。
【００７３】
次に、ＵＰＤＡＴＥ文実行結果評価プログラム生成部１０５は、ステップ７０２で一時的に記憶領域３２３に退避された情報を基に、ＵＰＤＡＴＥされたデータを参照するためのＳＥＬＥＣＴ文を含むＵＰＤＡＴＥ文実行結果評価プログラムを生成し、そのプログラムをＵＰＤＡＴＥ文実行結果評価プログラムファイル１１２に出力する（ステップ７０３）。ここで、このＳＥＬＥＣＴ文は、例えば、（ＳＥＬＥＣＴ　更新する列名　ＦＲＯＭ　表名　ＷＨＥＲＥ　キー列名　＝　’キー値’）のような形式の文となる。
【００７４】
なお、このＵＰＤＡＴＥ文実行結果評価プログラムは、本実施の形態による生成対象の単体テストプログラムの一部を形成することとなる。
【００７５】
また、その単体テストプログラムによる単体テストの実行時に、上記のようなＳＥＬＥＣＴ文によって検索・表示される内容に基づき、利用者は、ＳＥＬＥＣＴ結果のデータとＵＰＤＡＴＥ処理による正しい更新データとが同一であるか否かを判断することにより、当該ＵＰＤＡＴＥ処理の実行結果の正当性のチェック（ＵＰＤＡＴＥ文による処理内容が正しいことの確認）を行うことができる。
【００７６】
ここで、ＵＰＤＡＴＥ文実行結果評価プログラム生成部１０５が、ＳＥＬＥＣＴ文を生成する際に、ＳＥＬＥＣＴ結果のデータと正しい更新データとが同一であるか否かを判定しその判定結果を出力するためのコード（正当性のチェックを行うためのコード）を生成し、ＳＥＬＥＣＴ文とともにそのコードを有するＵＰＤＡＴＥ文実行結果評価プログラムを生成してＵＰＤＡＴＥ文実行結果評価プログラムファイル１１２に出力するようにすることも可能である。
【００７７】
第４に、ＤＥＬＥＴＥ文実行結果評価プログラム生成処理（ステップ５０９）が行われる場合の動作について説明する。
【００７８】
先述のように、ステップ５０８でＤＥＬＥＴＥ処理が行われる箇所が見つかれば、ＤＥＬＥＴＥ文評価用処理生成部４０１（図４参照）に、ＤＥＬＥＴＥ処理包含ソースファイル４２１とともに制御が渡される。この際に、ＤＥＬＥＴＥ文評価用処理生成部４０１は、ＤＥＬＥＴＥ文実行結果評価プログラム生成処理として、以下のような処理を行う（図８参照）。
【００７９】
まず、ＤＥＬＥＴＥ文評価用処理生成部４０１内のＤＥＬＥＴＥ文解析部１０３中のソースファイル読み込み部４１１は、ＤＥＬＥＴＥ処理包含ソースファイル４２１を読み込んで、その内容をメモリ上の記憶領域４２２に展開する（ステップ８０１）。
【００８０】
次に、ソースファイル解析部４１２は、記憶領域４２２に展開されたＤＥＬＥＴＥ処理包含ソースファイル４２１の内容を参照し、ＤＥＬＥＴＥ処理の内容を解析して、実行されるＤＥＬＥＴＥ文の内容、つまり、データが削除される表名，キー列名，および削除するキー値等を解析結果情報として一時記憶領域４２３に取り出しておく（ステップ８０２）。
【００８１】
次に、ＤＥＬＥＴＥ文実行結果評価プログラム生成部１０６は、ステップ８０２で一時的に記憶領域４２３に退避された情報を基に、ＤＥＬＥＴＥされたデータを参照するためのＳＥＬＥＣＴ文を含むＤＥＬＥＴＥ文実行結果評価プログラムを生成し、そのプログラムをＤＥＬＥＴＥ文実行結果評価プログラムファイル１１３に出力する（ステップ８０３）。ここで、このＳＥＬＥＣＴ文は、例えば、（ＳＥＬＥＣＴ　＊　ＦＲＯＭ　表名　ＷＨＥＲＥ　キー列名　＝　’削除したデータ値’）のような形式の文となる。
【００８２】
なお、このＤＥＬＥＴＥ文実行結果評価プログラムは、本実施の形態による生成対象の単体テストプログラムの一部を形成することとなる。
【００８３】
また、その単体テストプログラムによる単体テストの実行時に、上記のようなＳＥＬＥＣＴ文によって検索・表示される内容に基づき、利用者は、ＳＥＬＥＣＴ結果（検索結果）においてデータがヒットしない状態を確認することにより、当該ＤＥＬＥＴＥ処理の実行結果の正当性のチェック（ＤＥＬＥＴＥ文による処理内容が正しいことの確認）を行うことができる。
【００８４】
ここで、ＤＥＬＥＴＥ文実行結果評価プログラム生成部１０６が、ＳＥＬＥＣＴ文を生成する際に、ＳＥＬＥＣＴ結果においてデータがヒットしない状態を確認しその確認結果を出力するためのコード（正当性のチェックを行うためのコード）を生成し、ＳＥＬＥＣＴ文とともにそのコードを有するＤＥＬＥＴＥ文実行結果評価プログラムを生成してＤＥＬＥＴＥ文実行結果評価プログラムファイル１１３に出力するようにすることも可能である。
【００８５】
先にも述べたように、上記のような図５〜図８に示す処理の進展の後に、ステップ５０３で「ソースファイル群１１０の最後に達している」と判定された場合に、上記の一連の処理が終了する。
【００８６】
（２）　第２の実施の形態
【００８７】
図９は、本発明の第２の実施の形態に係る単体テストプログラム自動生成方式の構成を示すブロック図である。
【００８８】
図９を参照すると、本実施の形態に係る単体テストプログラム自動生成方式は、制御部９００と、ＩＮＳＥＲＴ文解析部９０１と、ＵＰＤＡＴＥ文解析部９０２と、ＤＥＬＥＴＥ文解析部９０３と、ＩＮＳＥＲＴ文実行結果評価プログラム生成部９０４と、ＵＰＤＡＴＥ文実行結果評価プログラム生成部９０５と、ＤＥＬＥＴＥ文実行結果評価プログラム生成部９０６と、ＩＮＳＥＲＴ文情報出力用コード生成部９０７と、ＵＰＤＡＴＥ文情報出力用コード生成部９０８と、ＤＥＬＥＴＥ文情報出力用コード生成部９０９と、ソースファイル群９１０と、ＩＮＳＥＲＴ文実行結果評価プログラムファイル９１１と、ＵＰＤＡＴＥ文実行結果評価プログラムファイル９１２と、ＤＥＬＥＴＥ文実行結果評価プログラムファイル９１３とを含んで構成されている。
【００８９】
図９と図１とを対比して参照すると、本実施の形態に係る単体テストプログラム自動生成方式は、図１に示した第１の実施の形態に係る単体テストプログラム自動生成方式と比較して、データベース更新系処理の内容を示す情報（実行情報）およびデータベース更新系処理の処理結果を示す情報（実行結果情報）を出力するためのコードを生成する部分（ＩＮＳＥＲＴ文情報出力用コード生成部９０７，ＵＰＤＡＴＥ文情報出力用コード生成部９０８，およびＤＥＬＥＴＥ文情報出力用コード生成部９０９）が本単体テストプログラム自動生成方式内に取り込まれている点が異なっている。
【００９０】
次に、図９を参照して、上記のように構成された本実施の形態に係る単体テストプログラム自動生成方式の全体の動作について説明する。
【００９１】
基本的な動作は第１の実施の形態に係る単体テストプログラム自動生成方式の動作と同様であるが、行おうとしたデータベース更新系処理の内容とその処理結果とを出力するためのコードを単体テストプログラム（ＩＮＳＥＲＴ文実行結果評価プログラム，ＵＰＤＡＴＥ文実行結果評価プログラム，およびＤＥＬＥＴＥ文実行結果評価プログラムを有するプログラム）に埋め込むための動作が存在する点が異なっている。これにより、利用者は、データベース更新系処理の処理結果を編集等も加えた上で比較・参照することができ、その処理の妥当性を種々の形式で検証できるようになる。
【００９２】
第１の実施の形態における制御部１００と同様に、制御部９００は、開発を行った結果得られた資産（ソースファイル群９１０）を読み込み、プログラミングされたソースファイル群９１０の内容を解析して、データベース更新系処理の有無をチェックする。そして、データベース更新系処理（ＩＮＳＥＲＴ処理，ＵＰＤＡＴＥ処理，またはＤＥＬＥＴＥ処理）が埋め込まれている場合には、それぞれ、専用の処理部（ＩＮＳＥＲＴ文解析部９０１，ＵＰＤＡＴＥ文解析部９０２，またはＤＥＬＥＴＥ文解析部９０３）に制御を渡す。
【００９３】
ＩＮＳＥＲＴ処理が存在する場合における、ＩＮＳＥＲＴ文解析部９０１およびＩＮＳＥＲＴ文実行結果評価プログラム生成部９０４の動作は、第１の実施の形態におけるＩＮＳＥＲＴ文解析部１０１およびＩＮＳＥＲＴ文実行結果評価プログラム生成部１０４の動作と同様である。
【００９４】
そのようなＩＮＳＥＲＴ文解析部９０１およびＩＮＳＥＲＴ文実行結果評価プログラム生成部９０４の動作が存在することを前提として、ＩＮＳＥＲＴ文情報出力用コード生成部９０７は、ＩＮＳＥＲＴ文の実行情報および実行結果情報をファイル等に外部出力（ＳＥＬＥＣＴ文による取り出しとは別の態様での出力）するためのコードを生成し、そのコードをＩＮＳＥＲＴ文実行結果評価プログラム生成部９０４によって生成されたＩＮＳＥＲＴ文実行結果評価プログラムに埋め込んで、そのＩＮＳＥＲＴ文実行結果評価プログラムをＩＮＳＥＲＴ文実行結果評価プログラムファイル９１１に出力する。
【００９５】
また、ＵＰＤＡＴＥ処理が存在する場合における、ＵＰＤＡＴＥ文解析部９０２およびＵＰＤＡＴＥ文実行結果評価プログラム生成部９０５の動作は、第１の実施の形態におけるＵＰＤＡＴＥ文解析部１０２およびＵＰＤＡＴＥ文実行結果評価プログラム生成部１０５の動作と同様である。
【００９６】
そのようなＵＰＤＡＴＥ文解析部９０２およびＵＰＤＡＴＥ文実行結果評価プログラム生成部９０５の動作が存在することを前提として、ＵＰＤＡＴＥ文情報出力用コード生成部９０８は、ＵＰＤＡＴＥ文の実行情報および実行結果情報をファイル等に外部出力するためのコードを生成し、そのコードをＵＰＤＡＴＥ文実行結果評価プログラム生成部９０５によって生成されたＵＰＤＡＴＥ文実行結果評価プログラムに埋め込んで、そのＵＰＤＡＴＥ文実行結果評価プログラムをＵＰＤＡＴＥ文実行結果評価プログラムファイル９１２に出力する。
【００９７】
さらに、ＤＥＬＥＴＥ処理が存在する場合における、ＤＥＬＥＴＥ文解析部９０３およびＤＥＬＥＴＥ文実行結果評価プログラム生成部９０６の動作は、第１の実施の形態におけるＤＥＬＥＴＥ文解析部１０３およびＤＥＬＥＴＥ文実行結果評価プログラム生成部１０６の動作と同様である。
【００９８】
そのようなＤＥＬＥＴＥ文解析部９０３およびＤＥＬＥＴＥ文実行結果評価プログラム生成部９０６の動作が存在することを前提として、ＤＥＬＥＴＥ文情報出力用コード生成部９０９は、ＤＥＬＥＴＥ文の実行情報および実行結果情報をファイル等に外部出力するためのコードを生成し、そのコードをＤＥＬＥＴＥ文実行結果評価プログラム生成部９０６によって生成されたＤＥＬＥＴＥ文実行結果評価プログラムに埋め込んで、そのＤＥＬＥＴＥ文実行結果評価プログラムをＤＥＬＥＴＥ文実行結果評価プログラムファイル９１３に出力する。
【００９９】
ここで、上記のような第２の実施の形態に係る単体テストプログラム自動生成方式では、当該方式で生成された単体テストプログラム（上記のようなＩＮＳＥＲＴ文実行結果評価プログラム，ＵＰＤＡＴＥ文実行結果評価プログラム，およびＤＥＬＥＴＥ文実行結果評価プログラムを有するプログラム）を用いることにより、データベース更新系処理の内容とその処理結果とが簡易にチェックできるようになるという特有の効果が生じる。また、当該単体テストプログラムによるテスト結果をファイル等に出力しておくことで、テスト結果の履歴をとる等、単体テストの利用方法に幅がもたらされるという特有の効果も得られる。
【０１００】
（３）　第３の実施の形態
【０１０１】
図１０は、本発明の第３の実施の形態の構成を示すブロック図である。
【０１０２】
図１０を参照すると、本発明の第３の実施の形態は、図１に示した第１の実施の形態に係る単体テストプログラム自動生成方式に対して、単体テストプログラム自動生成制御プログラム１０００を備える点が異なっている。
【０１０３】
単体テストプログラム自動生成制御プログラム１０００は、コンピュータシステムに読み込まれ、当該コンピュータシステムの動作を制御部１００，ＩＮＳＥＲＴ文解析部１０１，ＵＰＤＡＴＥ文解析部１０２，ＤＥＬＥＴＥ文解析部１０３，ＩＮＳＥＲＴ文実行結果評価プログラム生成部１０４，ＵＰＤＡＴＥ文実行結果評価プログラム生成部１０５，およびＤＥＬＥＴＥ文実行結果評価プログラム生成部１０６として制御する。単体テストプログラム自動生成制御プログラム１０００の制御による当該コンピュータシステム（ソースファイル群１１０を入力してＩＮＳＥＲＴ文実行結果評価プログラムファイル１１１，ＵＰＤＡＴＥ文実行結果評価プログラムファイル１１２，およびＤＥＬＥＴＥ文実行結果評価プログラムファイル１１３を出力するコンピュータシステム）の動作は、第１の実施の形態における制御部１００，ＩＮＳＥＲＴ文解析部１０１，ＵＰＤＡＴＥ文解析部１０２，ＤＥＬＥＴＥ文解析部１０３，ＩＮＳＥＲＴ文実行結果評価プログラム生成部１０４，ＵＰＤＡＴＥ文実行結果評価プログラム生成部１０５，およびＤＥＬＥＴＥ文実行結果評価プログラム生成部１０６の動作と全く同様になるので、その詳しい説明を割愛する。
【０１０４】
（４）　第４の実施の形態
【０１０５】
図１１は、本発明の第４の実施の形態の構成を示すブロック図である。
【０１０６】
図１１を参照すると、本発明の第４の実施の形態は、図９に示した第２の実施の形態に係る単体テストプログラム自動生成方式に対して、単体テストプログラム自動生成制御プログラム１１００を備える点が異なっている。
【０１０７】
単体テストプログラム自動生成制御プログラム１１００は、コンピュータシステムに読み込まれ、当該コンピュータシステムの動作を制御部９００，ＩＮＳＥＲＴ文解析部９０１，ＵＰＤＡＴＥ文解析部９０２，ＤＥＬＥＴＥ文解析部９０３，ＩＮＳＥＲＴ文実行結果評価プログラム生成部９０４，ＵＰＤＡＴＥ文実行結果評価プログラム生成部９０５，ＤＥＬＥＴＥ文実行結果評価プログラム生成部９０６，ＩＮＳＥＲＴ文情報出力用コード生成部９０７，ＵＰＤＡＴＥ文情報出力用コード生成部９０８，およびＤＥＬＥＴＥ文情報出力用コード生成部９０９として制御する。単体テストプログラム自動生成制御プログラム１１００の制御による当該コンピュータシステム（ソースファイル群９１０を入力してＩＮＳＥＲＴ文実行結果評価プログラムファイル９１１，ＵＰＤＡＴＥ文実行結果評価プログラムファイル９１２，およびＤＥＬＥＴＥ文実行結果評価プログラムファイル９１３を出力するコンピュータシステム）の動作は、第２の実施の形態における制御部９００，ＩＮＳＥＲＴ文解析部９０１，ＵＰＤＡＴＥ文解析部９０２，ＤＥＬＥＴＥ文解析部９０３，ＩＮＳＥＲＴ文実行結果評価プログラム生成部９０４，ＵＰＤＡＴＥ文実行結果評価プログラム生成部９０５，ＤＥＬＥＴＥ文実行結果評価プログラム生成部９０６，ＩＮＳＥＲＴ文情報出力用コード生成部９０７，ＵＰＤＡＴＥ文情報出力用コード生成部９０８，およびＤＥＬＥＴＥ文情報出力用コード生成部９０９の動作と全く同様になるので、その詳しい説明を割愛する。
【０１０８】
【発明の効果】
以上説明したように、本発明によると、データベース上のデータを更新する処理（データベース更新系処理）を含むデータベースアクセス処理を有するプログラムに対する単体テストを行う場合に、特別なテストプログラムを用意しなくても、データベースの状態が正しく更新（データの追加や削除を含む）されていることまで保証できる単体テストを実現することが可能になるという効果が生じる。すなわち、本発明によって生成された単体テストプログラム（各データベース更新系処理の実行結果評価プログラムを有する単体テストプログラム）を用いることで、データベース更新系処理が正常終了したか異常終了したかをチェックできるだけでなく、データベースの内容自体の正当性もチェックできるようになる。
【０１０９】
このような効果が生じる理由は、データベース更新系処理を解析して単体テスト用にデータベース更新系処理の処理結果の内容を確認・参照するためのコードを有する単体テストプログラムを生成できるためである。
【０１１０】
これにより、本発明によって生成された単体テストプログラムを実行すると、特別な用意を行うことなしに、データベース更新系処理が正しくデータベースを更新等しているか否かを確認することが可能になり、評価工数の削減と品質の強化とにつながる。
【０１１１】
特に、２バイト文字でコード変換が処理中に入るような場合や、特殊記号等を扱う場合等には、データベースに格納されているデータの正当性をチェックすることは重要であり、かつ、これまでそのようなチェックを単純で効果的に行う方法がなかったことに鑑みると、本発明によってデータの正当性のチェック（評価）の負担が軽減されることの意義は大きい。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係る単体テストプログラム自動生成方式の構成を示すブロック図である。
【図２】図１中のＩＮＳＥＲＴ文解析部およびＩＮＳＥＲＴ文実行結果評価プログラム生成部によって形成されるＩＮＳＥＲＴ文評価用処理生成部の詳細な構成および動作を説明するためのブロック図である。
【図３】図１中のＵＰＤＡＴＥ文解析部およびＵＰＤＡＴＥ文実行結果評価プログラム生成部によって形成されるＵＰＤＡＴＥ文評価用処理生成部の詳細な構成および動作を説明するためのブロック図である。
【図４】図１中のＤＥＬＥＴＥ文解析部およびＤＥＬＥＴＥ文実行結果評価プログラム生成部によって形成されるＤＥＬＥＴＥ文評価用処理生成部の詳細な構成および動作を説明するためのブロック図である。
【図５】図１に示す単体テストプログラム自動生成方式の処理を示す流れ図である。
【図６】図５中のＩＮＳＥＲＴ文実行結果評価プログラム生成処理ステップの詳細な処理を示す流れ図である。
【図７】図５中のＵＰＤＡＴＥ文実行結果評価プログラム生成処理ステップの詳細な処理を示す流れ図である。
【図８】図５中のＤＥＬＥＴＥ文実行結果評価プログラム生成処理ステップの詳細な処理を示す流れ図である。
【図９】本発明の第２の実施の形態に係る単体テストプログラム自動生成方式の構成を示すブロック図である。
【図１０】本発明の第３の実施の形態の構成を示すブロック図である。
【図１１】本発明の第４の実施の形態の構成を示すブロック図である。
【符号の説明】
１００，９００　制御部
１０１，９０１　ＩＮＳＥＲＴ文解析部
１０２，９０２　ＵＰＤＡＴＥ文解析部
１０３，９０３　ＤＥＬＥＴＥ文解析部
１０４，９０４　ＩＮＳＥＲＴ文実行結果評価プログラム生成部
１０５，９０５　ＵＰＤＡＴＥ文実行結果評価プログラム生成部
１０６，９０６　ＤＥＬＥＴＥ文実行結果評価プログラム生成部
１１０，９１０　ソースファイル群
１１１，９１１　ＩＮＳＥＲＴ文実行結果評価プログラムファイル
１１２，９１２　ＵＰＤＡＴＥ文実行結果評価プログラムファイル
１１３，９１３　ＤＥＬＥＴＥ文実行結果評価プログラムファイル
２０１　ＩＮＳＥＲＴ文評価用処理生成部
２１１，３１１，４１１　ソースファイル読み込み部
２１２，３１２，４１２　ソースファイル解析部
２２１　ＩＮＳＥＲＴ処理包含ソースファイル
２２２，２２３，３２２，３２３，４２２，４２３　記憶領域
３０１　ＵＰＤＡＴＥ文評価用処理生成部
３２１　ＵＰＤＡＴＥ処理包含ソースファイル
４０１　ＤＥＬＥＴＥ文評価用処理生成部
４２１　ＤＥＬＥＴＥ処理包含ソースファイル
９０７　ＩＮＳＥＲＴ文情報出力用コード生成部
９０８　ＵＰＤＡＴＥ文情報出力用コード生成部
９０９　ＤＥＬＥＴＥ文情報出力用コード生成部
１０００，１１００　単体テストプログラム自動生成制御プログラム
【図１】
2004086446.tif 000003
【図２】
2004086446.tif 000004
【図３】
2004086446.tif 000005
【図４】
2004086446.tif 000006
【図５】
2004086446.tif 000007
【図６】
2004086446.tif 000008
【図７】
2004086446.tif 000009
【図８】
2004086446.tif 000010
【図９】
2004086446.tif 000011
【図１０】
2004086446.tif 000012
【図１１】
2004086446.tif 000013