JP2004086446A - 単体テストプログラム自動生成方式 - Google Patents

単体テストプログラム自動生成方式 Download PDF

Info

Publication number
JP2004086446A
JP2004086446A JP2002245115A JP2002245115A JP2004086446A JP 2004086446 A JP2004086446 A JP 2004086446A JP 2002245115 A JP2002245115 A JP 2002245115A JP 2002245115 A JP2002245115 A JP 2002245115A JP 2004086446 A JP2004086446 A JP 2004086446A
Authority
JP
Japan
Prior art keywords
statement
execution result
update
evaluation program
insert
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002245115A
Other languages
English (en)
Inventor
Yukio Ozaki
尾崎 裕毅男
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2002245115A priority Critical patent/JP2004086446A/ja
Publication of JP2004086446A publication Critical patent/JP2004086446A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】単体テストにおいてデータベース更新系処理の正当性をチェックすることを可能にする。
【解決手段】制御部100から制御を渡されたINSERT文解析部101は、実行されるINSERT文の内容を解析し、解析結果を出力する。INSERT文実行結果評価プログラム生成部104は、当該解析結果を基にINSERT処理のデータベースへの反映を確認するためのSELECT文を生成し、そのSELECT文を有するINSERT文実行結果評価プログラムを生成してINSERT文実行結果評価プログラムファイル111に出力する。制御部100から制御を渡されたUPDATE文解析部102またはDELETE文解析部103およびUPDATE文実行結果評価プログラム生成部105またはDELETE文実行結果評価プログラム生成部106も、上記に準ずる処理を行う。
【選択図】    図1

Description

【0001】
【発明の属する技術分野】
本発明は、データベース更新系処理を含むデータベースアクセス処理を有するプログラムの単体テストを行うための単体テストプログラムを自動生成する単体テストプログラム自動生成方式に関する。
【0002】
【従来の技術】
従来、C++やJava(登録商標)等のオブジェクト指向のプログラム言語と統合化されて使用されるSQL(Structured Query Language)等のデータベース言語で記述されたデータベースアクセス処理を含むソースプログラム(オブジェクト指向のプログラム)の単体テストを行う場合には、テストフレームワーク等を用いてその単体テストが実施されていた。
【0003】
このような従来の技術においても、すでに、評価プログラム(単体テストプログラム)を自動生成するための技術は存在していた。また、データベース更新系処理について、そのエラーが発生したかどうかを確認することは、従来の技術においても容易にできた。
【0004】
しかしながら、上記のような従来の技術では、データベース更新系処理が正しく実行されているかどうかは保証されていなかった。
【0005】
【発明が解決しようとする課題】
データベースアクセス処理を含むプログラムの単体テストの実施に関する従来の技術では、上述のように、データベース更新系処理が正しく実行されているかどうかが保証されていなかったので、次のような問題点があった。
【0006】
すなわち、従来の技術では、データベース上のデータの更新系処理において、エラーが発生しない場合でも、データベースの状態(文字コード等も含めた状態)が正しく更新等されているかどうかは保証されないため、データベースの状態まで確認するには、別途、特別のテストプログラムを用意するか、データベース内のデータを目で確認する等の作業(工程)等が必要となっていた。
【0007】
本発明の目的は、上述の点に鑑み、現在のシステム開発の単体テストフェーズで用いられているテストフレームワーク等ではカバーしきれていなかった、単体テストにおいてデータベース更新系処理の正当性をチェックすることを可能にするための単体テストプログラム自動生成方式を提供することにある。
【0008】
なお、本発明の単体テストプログラム自動生成方式に対する従来技術に関する特許公報としては、プログラムのテストに関する技術を考察している点で本発明と類似している「特開2001−256076号公報」および「特開昭63−238639号公報」が存在し、データベースの更新に関する技術を考察している点で本発明と類似している「特開2002−055852号公報」が存在する。
【0009】
しかしながら、上記の各公報に記載された技術と本発明とは、以下のa〜cに示すような点で、本質的に相違している。
【0010】
a.特開2001−256076号公報に記載された技術(テストデータ生成装置、テストデータ生成方法及び記録媒体)は、テストデータを生成する点に重点をおいている。これに対して、本発明は、データベースを更新した際のデータの妥当性をチェックすることに重点をおいている。すなわち、本発明は、どのようなテストデータを作成するのか、どのように効率よくテストデータを作成するのか、といったことではなく、更新したデータの内容が本当に正しくデータベースに反映されているのかといった内容を単体テストプログラムに組み込むことで、効率よく単体テストを実施することを意図するものである。このように、両者は、その目的および効果の相違に起因して、その構成を異にしている。
【0011】
b.特開昭63−238639号公報に記載された技術(プログラムテスト方式)は、データベースの状態をチェックするような事柄には言及しておらず、本発明とはその目的,構成,および効果を本質的に異にしている。
【0012】
c.特開2002−055852号公報に記載された技術(オブジェクトの生成・消滅情報管理方式)は、プログラム実行時のオブジェクトの生成および消滅をチェックするものである。これに対して、本発明は、データベースを更新した際のデータの妥当性をチェックすることに関して重点をおいている。このように、両者は、その目的,構成,および効果を異にしている。
【0013】
【課題を解決するための手段】
本発明の単体テストプログラム自動生成方式は、単体テストの対象となるソースファイル群を読み込んで単体テストプログラムを構成するINSERT文実行結果評価プログラム,UPDATE文実行結果評価プログラム,およびDELETE文実行結果評価プログラムを生成出力するコンピュータシステムにおいて、ソースファイル群を読み込み、その内容を解析して、当該ソースファイル群の中にデータベース更新系処理があるかないかをチェックし、データベース更新系処理であるINSERT処理,UPDATE処理,およびDELETE処理のいずれかが存在する場合には当該データベース更新系処理を包含するソースファイル(INSERT処理包含ソースファイル,UPDATE処理包含ソースファイル,またはDELETE処理包含ソースファイル)とともに当該データベース更新系処理に対応する専用の処理部(INSERT文解析部,UPDATE文解析部,またはDELETE文解析部)に制御を渡す制御部と、前記制御部からINSERT処理包含ソースファイル(INSERT文が実行されるソースファイル。このようなソースファイルが複数存在することもありうる)とともに制御を渡された場合に、そのINSERT処理包含ソースファイルを読み込んで、実行されるINSERT文の内容を解析し、解析した内容を示す解析結果情報を出力するINSERT文解析部と、前記INSERT文解析部により出力された解析結果情報を読み込み、当該解析結果情報を基にINSERT文が実行された場合にデータベースに追加(入力)されるデータを参照するためのSELECT文(INSERTされたデータがデータベースに反映されているか否かを確認するためのSELECT文)を生成し、そのSELECT文を有するINSERT文実行結果評価プログラムを生成出力するINSERT文実行結果評価プログラム生成部と、前記制御部からUPDATE処理包含ソースファイル(UPDATE文が実行されるソースファイル。このようなソースファイルが複数存在することもありうる)とともに制御を渡された場合に、そのUPDATE処理包含ソースファイルを読み込んで、実行されるUPDATE文の内容を解析し、解析した内容を示す解析結果情報を出力するUPDATE文解析部と、前記UPDATE文解析部により出力された解析結果情報を読み込み、当該解析結果情報を基にUPDATE文が実行された場合に実際に更新されたデータ(データベースで更新されるデータ)を参照するためのSELECT文(UPDATEされたデータがデータベースに反映されているか否かを確認するためのSELECT文)を生成し、そのSELECT文を有するUPDATE文実行結果評価プログラムを生成出力するUPDATE文実行結果評価プログラム生成部と、前記制御部からDELETE処理包含ソースファイル(DELETE文が実行されるソースファイル。このようなソースファイルが複数存在することもありうる)とともに制御を渡された場合に、そのDELETE処理包含ソースファイルを読み込んで、実行されるDELETE文の内容を解析し、解析した内容を示す解析結果情報を出力するDELETE文解析部と、前記DELETE文解析部により出力された解析結果情報を読み込み、当該解析結果情報を基にDELETE文が実行された場合にデータベースから削除されるデータを参照するためのSELECT文(DELETEされたデータがデータベースから削除されているか否かを確認するためのSELECT文)を生成し、そのSELECT文を有するDELETE文実行結果評価プログラムを生成出力するDELETE文実行結果評価プログラム生成部とを有する。
【0014】
また、本発明の単体テストプログラム自動生成方式は、上記の構成要素に加えて、INSERT文の実行情報(INSERT処理の内容を示す情報)および実行結果情報(INSERT処理の処理結果を示す情報)を外部出力(ファイル等への出力。SELECT文による取り出しとは別の態様での出力)するためのコードを生成し、そのコードをINSERT文実行結果評価プログラム生成部によって生成されたINSERT文実行結果評価プログラムに埋め込んで、その埋め込み後のINSERT文実行結果評価プログラムを出力するINSERT文情報出力用コード生成部と、UPDATE文の実行情報(UPDATE処理の内容を示す情報)および実行結果情報(UPDATE処理の処理結果を示す情報)を外部出力(ファイル等への出力。SELECT文による取り出しとは別の態様での出力)するためのコードを生成し、そのコードをUPDATE文実行結果評価プログラム生成部によって生成されたUPDATE文実行結果評価プログラムに埋め込んで、その埋め込み後のUPDATE文実行結果評価プログラムを出力するUPDATE文情報出力用コード生成部と、DELETE文の実行情報(DELETE処理の内容を示す情報)および実行結果情報(DELETE処理の処理結果を示す情報)を外部出力(ファイル等への出力。SELECT文による取り出しとは別の態様での出力)するためのコードを生成し、そのコードをDELETE文実行結果評価プログラム生成部によって生成されたDELETE文実行結果評価プログラムに埋め込んで、その埋め込み後のDELETE文実行結果評価プログラムを出力するDELETE文情報出力用コード生成部とを有するように構成することも可能である。
【0015】
さらに、本発明の単体テストプログラム自動生成方式においては、上記のINSERT文実行結果評価プログラム生成部が、SELECT文を生成する際に、SELECT結果のデータと正しい追加データとが同一であるか否かを判定しその判定結果を出力するためのコード(正当性のチェックを行うためのコード)を生成し、SELECT文とともにそのコードを有するINSERT文実行結果評価プログラムを生成出力するようにし、上記のUPDATE文実行結果評価プログラム生成部が、SELECT文を生成する際に、SELECT結果のデータと正しい更新データとが同一であるか否かを判定しその判定結果を出力するためのコード(正当性のチェックを行うためのコード)を生成し、SELECT文とともにそのコードを有するUPDATE文実行結果評価プログラムを生成出力するようにし、上記のDELETE文実行結果評価プログラム生成部が、SELECT文を生成する際に、SELECT結果においてデータがヒットしない状態を確認しその確認結果を出力するためのコード(正当性のチェックを行うためのコード)を生成し、SELECT文とともにそのコードを有するDELETE文実行結果評価プログラムを生成出力するようにすることも可能である。
【0016】
なお、本発明の単体テストプログラム自動生成方式は、より一般的には、単体テストの対象となるソースファイル群を読み込んで単体テストプログラムを構成する各データベース更新系処理の実行結果評価プログラムを生成出力するコンピュータシステムにおいて、ソースファイル群を読み込み、その内容を解析して、当該ソースファイル群の中にデータベース更新系処理があるかないかをチェックし、データベース更新系処理が存在する場合には当該データベース更新系処理を包含するソースファイルとともに当該データベース更新系処理に対応する評価用処理生成部に制御を渡す制御部と、前記制御部から制御を渡された場合に、受け取ったソースファイルの中のデータベース更新系処理のコードの内容を解析し、その解析結果を基に当該データベース更新系処理の内容がデータベースに反映されているか否かを確認するためのSELECT文を生成し、当該SELECT文を含む当該データベース更新系処理の実行結果評価プログラムを生成出力する各データベース更新系処理に対応する評価用処理生成部(例えば、図2中のINSERT文評価用処理生成部201や図3中のUPDATE文評価用処理生成部301や図4中のDELETE文評価用処理生成部401)とを有すると表現することができる。
【0017】
また、本発明は、コンピュータシステムを、単体テストの対象となるソースファイル群を読み込み、その内容を解析して、当該ソースファイル群の中にデータベース更新系処理があるかないかをチェックし、データベース更新系処理が存在する場合には当該データベース更新系処理を包含するソースファイルとともに当該データベース更新系処理に対応する評価用処理生成部に制御を渡す制御部,および前記制御部から制御を渡された場合に、受け取ったソースファイルの中のデータベース更新系処理のコードの内容を解析し、その解析結果を基に当該データベース更新系処理の内容がデータベースに反映されているか否かを確認するためのSELECT文を生成し、当該SELECT文を含む当該データベース更新系処理の実行結果評価プログラムを生成出力する各データベース更新系処理に対応する評価用処理生成部として機能させるためのプログラムの形態で実現することも可能である。
【0018】
【発明の実施の形態】
次に、本発明について図面を参照して詳細に説明する。
【0019】
(1) 第1の実施の形態
【0020】
図1は、本発明の第1の実施の形態に係る単体テストプログラム自動生成方式の構成を示すブロック図である。
【0021】
図1を参照すると、本実施の形態に係る単体テストプログラム自動生成方式は、制御部100と、INSERT文解析部101と、UPDATE文解析部102と、DELETE文解析部103と、INSERT文実行結果評価プログラム生成部104と、UPDATE文実行結果評価プログラム生成部105と、DELETE文実行結果評価プログラム生成部106と、ソースファイル群110と、INSERT文実行結果評価プログラムファイル111と、UPDATE文実行結果評価プログラムファイル112と、DELETE文実行結果評価プログラムファイル113とを含んで構成されている。
【0022】
図1に示すように、本実施の形態に係る単体テストプログラム自動生成方式は、複数の独立したプログラム制御を組み合わせた態様によって動作する。
【0023】
図2は、図1中のINSERT文解析部101およびINSERT文実行結果評価プログラム生成部104によって形成されるINSERT文評価用処理生成部201の詳細な構成および動作を説明するためのブロック図である。
【0024】
この部分(INSERT文評価用処理生成部201)は、ソースファイル読み込み部211およびソースファイル解析部212からなるINSERT文解析部101と、INSERT文実行結果評価プログラム生成部104とによって構成されている。
【0025】
これらの構成要素(各部)は、概略、次のように動作する。
【0026】
INSERT文解析部101内のソースファイル読み込み部211は、制御部100でソースファイル群110の中にINSERT処理包含ソースファイル221(INSERT文が実行されるソースファイル。このようなソースファイルが複数存在することもありうる)があると判断された場合に、そのINSERT処理包含ソースファイル221を読み込んで、当該INSERT処理包含ソースファイル221の内容を記憶領域222(第1の記憶領域)に出力(展開)する。
【0027】
なお、ここでいう「記憶領域」は、メモリ上に実現することを想定している。ファイルから情報の読み込みを毎回行うと処理が遅くなるので、メモリ上に展開してそこにアクセスすることが処理遅延防止のために適切であるからである。ただし、メモリ以外の直接アクセス記憶装置上に当該記憶領域を実現することも可能である。
【0028】
INSERT文解析部101内のソースファイル解析部212は、記憶領域222に格納されている情報(INSERT処理包含ソースファイル221の内容)を読み込んで、どのようなINSERT文が実行されるのか等について解析し、解析した内容(解析結果情報)を記憶領域223(第2の記憶領域)に出力する(書き込む)。
【0029】
INSERT文実行結果評価プログラム生成部104は、記憶領域223から解析結果情報を読み込み、INSERT文が実行された場合にデータベースに入力(追加)されるデータを参照するためのSELECT文を生成し、そのSELECT文を有するINSERT文実行結果評価プログラムをINSERT文実行結果評価プログラムファイル111に出力する。
【0030】
図3は、図1中のUPDATE文解析部102およびUPDATE文実行結果評価プログラム生成部105によって形成されるUPDATE文評価用処理生成部301の詳細な構成および動作を説明するためのブロック図である。
【0031】
この部分(UPDATE文評価用処理生成部301)は、ソースファイル読み込み部311およびソースファイル解析部312からなるUPDATE文解析部102と、UPDATE文実行結果評価プログラム生成部105とによって構成されている。
【0032】
これらの構成要素(各部)は、概略、次のように動作する。
【0033】
UPDATE文解析部102内のソースファイル読み込み部311は、制御部100でソースファイル群110の中にUPDATE処理包含ソースファイル321(UPDATE文が実行されるソースファイル。このようなソースファイルが複数存在することもありうる)があると判断された場合に、そのUPDATE処理包含ソースファイル321を読み込んで、当該UPDATE処理包含ソースファイル321の内容を記憶領域322(第1の記憶領域)に出力(展開)する。
【0034】
UPDATE文解析部102内のソースファイル解析部312は、記憶領域322に格納されている情報(UPDATE処理包含ソースファイル321の内容)を読み込んで、どのようなUPDATE文が実行されるのか等について解析し、解析した内容(解析結果情報)を記憶領域323(第2の記憶領域)に出力する(書き込む)。この解析結果情報としては、キーとなる列名,キー値,更新される列名,および更新されるデータ等からなる情報が考えられる。
【0035】
UPDATE文実行結果評価プログラム生成部105は、記憶領域323から解析結果情報を読み込み、UPDATE文が実行された場合に実際に更新されたデータを参照するためのSELECT文を生成し、そのSELECT文を有するUPDATE文実行結果評価プログラムをUPDATE文実行結果評価プログラムファイル112に出力する。
【0036】
図4は、図1中のDELETE文解析部103およびDELETE文実行結果評価プログラム生成部106によって形成されるDELETE文評価用処理生成部401の詳細な構成および動作を説明するためのブロック図である。
【0037】
この部分(DELETE文評価用処理生成部401)は、ソースファイル読み込み部411およびソースファイル解析部412からなるDELETE文解析部103と、DELETE文実行結果評価プログラム生成部106とによって構成されている。
【0038】
これらの構成要素(各部)は、概略、次のように動作する。
【0039】
DELETE文解析部103内のソースファイル読み込み部411は、制御部100でソースファイル群110の中にDELETE処理包含ソースファイル421(DELETE文が実行されるソースファイル。このようなソースファイルが複数存在することもありうる)があると判断された場合に、そのDELETE処理包含ソースファイル421を読み込んで、当該DELETE処理包含ソースファイル421の内容を記憶領域422(第1の記憶領域)に出力(展開)する。
【0040】
DELETE文解析部103内のソースファイル解析部412は、記憶領域422に格納されている情報(DELETE処理包含ソースファイル421の内容)を読み込んで、どのようなDELETE文が実行されるのか等について解析し、解析した内容(解析結果情報)を記憶領域423(第2の記憶領域)に出力する(書き込む)。この解析結果情報としては、キーとなる列名およびキー値等からなる情報が考えられる。
【0041】
DELETE文実行結果評価プログラム生成部106は、記憶領域423から解析結果情報を読み込み、DELETE文が実行された場合にデータベースから削除されるデータを参照するためのSELECT文を生成し、そのSELECT文を有するDELETE文実行結果評価プログラムをDELETE文実行結果評価プログラムファイル113に出力する。
【0042】
図5は、本実施の形態に係る単体テストプログラム自動生成方式の処理を示す流れ図である。この処理は、ソースファイル群読み込みステップ501と、ソースファイル内容解析ステップ502と、ソースファイル群最後到達判定ステップ503と、INSERT処理存在判定ステップ504と、INSERT文実行結果評価プログラム生成処理ステップ505と、UPDATE処理存在判定ステップ506と、UPDATE文実行結果評価プログラム生成処理ステップ507と、DELETE処理存在判定ステップ508と、DELETE文実行結果評価プログラム生成処理ステップ509とからなる。
【0043】
図6は、図5中のINSERT文実行結果評価プログラム生成処理ステップ505の詳細な処理を示す流れ図である。この処理は、INSERT処理包含ソースファイル読み込みステップ601と、INSERT処理内容解析ステップ602と、INSERT文実行結果評価プログラム生成・出力ステップ603とからなる。
【0044】
図7は、図5中のUPDATE文実行結果評価プログラム生成処理ステップ507の詳細な処理を示す流れ図である。この処理は、UPDATE処理包含ソースファイル読み込みステップ701と、UPDATE処理内容解析ステップ702と、UPDATE文実行結果評価プログラム生成・出力ステップ703とからなる。
【0045】
図8は、図5中のDELETE文実行結果評価プログラム生成処理ステップ509の詳細な処理を示す流れ図である。この処理は、DELETE処理包含ソースファイル読み込みステップ801と、DELETE処理内容解析ステップ802と、DELETE文実行結果評価プログラム生成・出力ステップ803とからなる。
【0046】
次に、図1〜図8を参照して、上記のように構成された本実施の形態に係る単体テストプログラム自動生成方式の全体の動作について詳細に説明する。
【0047】
第1に、本実施の形態に係る単体テストプログラム自動生成方式における全体の処理の流れについて説明する(図5参照)。
【0048】
なお、この処理(動作)の前提として(本発明の機能を利用する前に)、利用者は完成したソースファイル群110(データベースアクセス処理を含みオブジェクト指向言語でプログラミングされたソースファイルの集合)を作成しておく必要がある。なお、当該データベースアクセス処理はSQLによって記述されていることを想定している。したがって、データベース更新系処理としては、INSERT処理,UPDATE処理,およびDELETE処理が存在しうる。
【0049】
最初に、制御部100は、開発を行った結果得られた資産であり単体テストの対象となるソースファイル群110を読み込んで、その内容をメモリ上に展開する(ステップ501)。
【0050】
次に、制御部100は、メモリ上に展開したソースファイル群110の内容を初めから順に探索していき、各ソースファイルの内容を解析する(ステップ502)。そして、当該解析に基づき、以下のステップ503,ステップ504,ステップ506,およびステップ508の分岐判定を行う。
【0051】
まず、すでにソースファイル群110の最後に達しているか否か(解析すべきソースファイルがもう残っていないかどうか)を判定する(ステップ503)。
【0052】
ステップ503で「ソースファイル群110の最後に達している」と判定した場合には、処理を終了する。
【0053】
一方、ステップ503で「ソースファイル群110の最後に達していない」と判定した場合には、当該ソースファイル(現時点で解析対象のソースファイル)の中にINSERT処理が存在するか否かを判定する(ステップ504)。
【0054】
ステップ504で「INSERT処理が存在する」と判定した場合(INSERT処理が行われる箇所が見つかった場合)には、当該ソースファイル(図2中のINSERT処理包含ソースファイル221に該当するソースファイル)をINSERT文評価用処理生成部201(図2参照)に渡し、INSERT文実行結果評価用プログラム生成処理(ステップ505)を実行させるようにINSERT文評価用処理生成部201に制御を移行する。
【0055】
ステップ504で「INSERT処理が存在しない」と判定した場合またはステップ505の処理が終了した場合には、当該ソースファイルの中にUPDATE処理が存在するか否かを判定する(ステップ506)。
【0056】
ステップ506で「UPDATE処理が存在する」と判定した場合(UPDATE処理が行われる箇所が見つかった場合)には、当該ソースファイル(図3中のUPDATE処理包含ソースファイル321に該当するソースファイル)をUPDATE文評価用処理生成部301(図3参照)に渡し、UPDATE文実行結果評価用プログラム生成処理(ステップ507)を実行させるようにUPDATE文評価用処理生成部301に制御を移行する。
【0057】
ステップ506で「UPDATE処理が存在しない」と判定した場合またはステップ507の処理が終了した場合には、当該ソースファイルの中にDELETE処理が存在するか否かを判定する(ステップ508)。
【0058】
ステップ508で「DELETE処理が存在する」と判定した場合(DELETE処理が行われる箇所が見つかった場合)には、当該ソースファイル(図4中のDELETE処理包含ソースファイル421に該当するソースファイル)をDELETE文評価用処理生成部401(図4参照)に渡し、DELETE文実行結果評価用プログラム生成処理(ステップ509)を実行させるようにDELETE文評価用処理生成部401に制御を移行する。
【0059】
ステップ508で「DELETE処理が存在しない」と判定した場合またはステップ509の処理が終了した場合には、次のソースファイルを対象としてステップ502以下の処理および判定を繰り返す。
【0060】
なお、「データベース更新系処理(INSERT処理,UPDATE処理,およびDELETE処理の各処理)が存在するソースファイルを探すための処理」は、上記の図5に示すような処理に限定されるものではなく、ソースファイル群110の中からデータベース更新系処理の箇所を見つけ出しその箇所を含むソースファイルを取り出すことが実現できれば、どのような態様でもよい(図5に示す処理の態様はあくもでも例示である)。
【0061】
第2に、INSERT文実行結果評価プログラム生成処理(ステップ505)が行われる場合の動作について説明する。
【0062】
先述のように、ステップ504でINSERT処理が行われる箇所が見つかれば、INSERT文評価用処理生成部201(図2参照)に、INSERT処理包含ソースファイル221とともに制御が渡される。この際に、INSERT文評価用処理生成部201は、INSERT文実行結果評価プログラム生成処理として、以下のような処理を行う(図6参照)。
【0063】
まず、INSERT文評価用処理生成部201内のINSERT文解析部101中のソースファイル読み込み部211は、INSERT処理包含ソースファイル221を読み込んで、その内容をメモリ上の記憶領域222に展開する(ステップ601)。
【0064】
次に、ソースファイル解析部212は、記憶領域222に展開されたINSERT処理包含ソースファイル221の内容を参照し、INSERT処理の内容を解析して、実行されるINSERT文の内容、つまり、データが追加される表名,列名,および追加するデータ等を解析結果情報として一時記憶領域223に取り出しておく(ステップ602)。
【0065】
次に、INSERT文実行結果評価プログラム生成部104は、ステップ602で一時的に記憶領域223に退避された情報を基に、INSERTされたデータを参照するためのSELECT文を含むINSERT文実行結果評価プログラムを生成し、そのプログラムをINSERT文実行結果評価プログラムファイル111に出力する(ステップ603)。ここで、このSELECT文は、例えば、(SELECT * FROM 表名 WHERE キー列名 = ’追加したデータ値’)のような形式の文となる。
【0066】
なお、このINSERT文実行結果評価プログラムは、本実施の形態による生成対象の単体テストプログラムの一部を形成することとなる。
【0067】
また、その単体テストプログラムによる単体テストの実行時に、上記のようなSELECT文によって検索・表示される内容に基づき、利用者は、SELECT結果のデータとINSERT処理による正しい追加データとが同一であるか否かを判断することにより、当該INSERT処理の実行結果の正当性のチェック(INSERT文による処理内容が正しいことの確認)を行うことができる。
【0068】
ここで、INSERT文実行結果評価プログラム生成部104が、SELECT文を生成する際に、SELECT結果のデータと正しい追加データとが同一であるか否かを判定しその判定結果を出力するためのコード(正当性のチェックを行うためのコード)を生成し、SELECT文とともにそのコードを有するINSERT文実行結果評価プログラムを生成してINSERT文実行結果評価プログラムファイル111に出力するようにすることも可能である。
【0069】
第3に、UPDATE文実行結果評価プログラム生成処理(ステップ507)が行われる場合の動作について説明する。
【0070】
先述のように、ステップ506でUPDATE処理が行われる箇所が見つかれば、UPDATE文評価用処理生成部301(図3参照)に、UPDATE処理包含ソースファイル321とともに制御が渡される。この際に、UPDATE文評価用処理生成部301は、UPDATE文実行結果評価プログラム生成処理として、以下のような処理を行う(図7参照)。
【0071】
まず、UPDATE文評価用処理生成部301内のUPDATE文解析部102中のソースファイル読み込み部311は、UPDATE処理包含ソースファイル321を読み込んで、その内容をメモリ上の記憶領域322に展開する(ステップ701)。
【0072】
次に、ソースファイル解析部312は、記憶領域322に展開されたUPDATE処理包含ソースファイル321の内容を参照し、UPDATE処理の内容を解析して、実行されるUPDATE文の内容、つまり、データが更新される表名,更新される列名,更新するデータ,キー列名,およびキー値等を解析結果情報として一時記憶領域323に取り出しておく(ステップ702)。
【0073】
次に、UPDATE文実行結果評価プログラム生成部105は、ステップ702で一時的に記憶領域323に退避された情報を基に、UPDATEされたデータを参照するためのSELECT文を含むUPDATE文実行結果評価プログラムを生成し、そのプログラムをUPDATE文実行結果評価プログラムファイル112に出力する(ステップ703)。ここで、このSELECT文は、例えば、(SELECT 更新する列名 FROM 表名 WHERE キー列名 = ’キー値’)のような形式の文となる。
【0074】
なお、このUPDATE文実行結果評価プログラムは、本実施の形態による生成対象の単体テストプログラムの一部を形成することとなる。
【0075】
また、その単体テストプログラムによる単体テストの実行時に、上記のようなSELECT文によって検索・表示される内容に基づき、利用者は、SELECT結果のデータとUPDATE処理による正しい更新データとが同一であるか否かを判断することにより、当該UPDATE処理の実行結果の正当性のチェック(UPDATE文による処理内容が正しいことの確認)を行うことができる。
【0076】
ここで、UPDATE文実行結果評価プログラム生成部105が、SELECT文を生成する際に、SELECT結果のデータと正しい更新データとが同一であるか否かを判定しその判定結果を出力するためのコード(正当性のチェックを行うためのコード)を生成し、SELECT文とともにそのコードを有するUPDATE文実行結果評価プログラムを生成してUPDATE文実行結果評価プログラムファイル112に出力するようにすることも可能である。
【0077】
第4に、DELETE文実行結果評価プログラム生成処理(ステップ509)が行われる場合の動作について説明する。
【0078】
先述のように、ステップ508でDELETE処理が行われる箇所が見つかれば、DELETE文評価用処理生成部401(図4参照)に、DELETE処理包含ソースファイル421とともに制御が渡される。この際に、DELETE文評価用処理生成部401は、DELETE文実行結果評価プログラム生成処理として、以下のような処理を行う(図8参照)。
【0079】
まず、DELETE文評価用処理生成部401内のDELETE文解析部103中のソースファイル読み込み部411は、DELETE処理包含ソースファイル421を読み込んで、その内容をメモリ上の記憶領域422に展開する(ステップ801)。
【0080】
次に、ソースファイル解析部412は、記憶領域422に展開されたDELETE処理包含ソースファイル421の内容を参照し、DELETE処理の内容を解析して、実行されるDELETE文の内容、つまり、データが削除される表名,キー列名,および削除するキー値等を解析結果情報として一時記憶領域423に取り出しておく(ステップ802)。
【0081】
次に、DELETE文実行結果評価プログラム生成部106は、ステップ802で一時的に記憶領域423に退避された情報を基に、DELETEされたデータを参照するためのSELECT文を含むDELETE文実行結果評価プログラムを生成し、そのプログラムをDELETE文実行結果評価プログラムファイル113に出力する(ステップ803)。ここで、このSELECT文は、例えば、(SELECT * FROM 表名 WHERE キー列名 = ’削除したデータ値’)のような形式の文となる。
【0082】
なお、このDELETE文実行結果評価プログラムは、本実施の形態による生成対象の単体テストプログラムの一部を形成することとなる。
【0083】
また、その単体テストプログラムによる単体テストの実行時に、上記のようなSELECT文によって検索・表示される内容に基づき、利用者は、SELECT結果(検索結果)においてデータがヒットしない状態を確認することにより、当該DELETE処理の実行結果の正当性のチェック(DELETE文による処理内容が正しいことの確認)を行うことができる。
【0084】
ここで、DELETE文実行結果評価プログラム生成部106が、SELECT文を生成する際に、SELECT結果においてデータがヒットしない状態を確認しその確認結果を出力するためのコード(正当性のチェックを行うためのコード)を生成し、SELECT文とともにそのコードを有するDELETE文実行結果評価プログラムを生成してDELETE文実行結果評価プログラムファイル113に出力するようにすることも可能である。
【0085】
先にも述べたように、上記のような図5〜図8に示す処理の進展の後に、ステップ503で「ソースファイル群110の最後に達している」と判定された場合に、上記の一連の処理が終了する。
【0086】
(2) 第2の実施の形態
【0087】
図9は、本発明の第2の実施の形態に係る単体テストプログラム自動生成方式の構成を示すブロック図である。
【0088】
図9を参照すると、本実施の形態に係る単体テストプログラム自動生成方式は、制御部900と、INSERT文解析部901と、UPDATE文解析部902と、DELETE文解析部903と、INSERT文実行結果評価プログラム生成部904と、UPDATE文実行結果評価プログラム生成部905と、DELETE文実行結果評価プログラム生成部906と、INSERT文情報出力用コード生成部907と、UPDATE文情報出力用コード生成部908と、DELETE文情報出力用コード生成部909と、ソースファイル群910と、INSERT文実行結果評価プログラムファイル911と、UPDATE文実行結果評価プログラムファイル912と、DELETE文実行結果評価プログラムファイル913とを含んで構成されている。
【0089】
図9と図1とを対比して参照すると、本実施の形態に係る単体テストプログラム自動生成方式は、図1に示した第1の実施の形態に係る単体テストプログラム自動生成方式と比較して、データベース更新系処理の内容を示す情報(実行情報)およびデータベース更新系処理の処理結果を示す情報(実行結果情報)を出力するためのコードを生成する部分(INSERT文情報出力用コード生成部907,UPDATE文情報出力用コード生成部908,およびDELETE文情報出力用コード生成部909)が本単体テストプログラム自動生成方式内に取り込まれている点が異なっている。
【0090】
次に、図9を参照して、上記のように構成された本実施の形態に係る単体テストプログラム自動生成方式の全体の動作について説明する。
【0091】
基本的な動作は第1の実施の形態に係る単体テストプログラム自動生成方式の動作と同様であるが、行おうとしたデータベース更新系処理の内容とその処理結果とを出力するためのコードを単体テストプログラム(INSERT文実行結果評価プログラム,UPDATE文実行結果評価プログラム,およびDELETE文実行結果評価プログラムを有するプログラム)に埋め込むための動作が存在する点が異なっている。これにより、利用者は、データベース更新系処理の処理結果を編集等も加えた上で比較・参照することができ、その処理の妥当性を種々の形式で検証できるようになる。
【0092】
第1の実施の形態における制御部100と同様に、制御部900は、開発を行った結果得られた資産(ソースファイル群910)を読み込み、プログラミングされたソースファイル群910の内容を解析して、データベース更新系処理の有無をチェックする。そして、データベース更新系処理(INSERT処理,UPDATE処理,またはDELETE処理)が埋め込まれている場合には、それぞれ、専用の処理部(INSERT文解析部901,UPDATE文解析部902,またはDELETE文解析部903)に制御を渡す。
【0093】
INSERT処理が存在する場合における、INSERT文解析部901およびINSERT文実行結果評価プログラム生成部904の動作は、第1の実施の形態におけるINSERT文解析部101およびINSERT文実行結果評価プログラム生成部104の動作と同様である。
【0094】
そのようなINSERT文解析部901およびINSERT文実行結果評価プログラム生成部904の動作が存在することを前提として、INSERT文情報出力用コード生成部907は、INSERT文の実行情報および実行結果情報をファイル等に外部出力(SELECT文による取り出しとは別の態様での出力)するためのコードを生成し、そのコードをINSERT文実行結果評価プログラム生成部904によって生成されたINSERT文実行結果評価プログラムに埋め込んで、そのINSERT文実行結果評価プログラムをINSERT文実行結果評価プログラムファイル911に出力する。
【0095】
また、UPDATE処理が存在する場合における、UPDATE文解析部902およびUPDATE文実行結果評価プログラム生成部905の動作は、第1の実施の形態におけるUPDATE文解析部102およびUPDATE文実行結果評価プログラム生成部105の動作と同様である。
【0096】
そのようなUPDATE文解析部902およびUPDATE文実行結果評価プログラム生成部905の動作が存在することを前提として、UPDATE文情報出力用コード生成部908は、UPDATE文の実行情報および実行結果情報をファイル等に外部出力するためのコードを生成し、そのコードをUPDATE文実行結果評価プログラム生成部905によって生成されたUPDATE文実行結果評価プログラムに埋め込んで、そのUPDATE文実行結果評価プログラムをUPDATE文実行結果評価プログラムファイル912に出力する。
【0097】
さらに、DELETE処理が存在する場合における、DELETE文解析部903およびDELETE文実行結果評価プログラム生成部906の動作は、第1の実施の形態におけるDELETE文解析部103およびDELETE文実行結果評価プログラム生成部106の動作と同様である。
【0098】
そのようなDELETE文解析部903およびDELETE文実行結果評価プログラム生成部906の動作が存在することを前提として、DELETE文情報出力用コード生成部909は、DELETE文の実行情報および実行結果情報をファイル等に外部出力するためのコードを生成し、そのコードをDELETE文実行結果評価プログラム生成部906によって生成されたDELETE文実行結果評価プログラムに埋め込んで、そのDELETE文実行結果評価プログラムをDELETE文実行結果評価プログラムファイル913に出力する。
【0099】
ここで、上記のような第2の実施の形態に係る単体テストプログラム自動生成方式では、当該方式で生成された単体テストプログラム(上記のようなINSERT文実行結果評価プログラム,UPDATE文実行結果評価プログラム,およびDELETE文実行結果評価プログラムを有するプログラム)を用いることにより、データベース更新系処理の内容とその処理結果とが簡易にチェックできるようになるという特有の効果が生じる。また、当該単体テストプログラムによるテスト結果をファイル等に出力しておくことで、テスト結果の履歴をとる等、単体テストの利用方法に幅がもたらされるという特有の効果も得られる。
【0100】
(3) 第3の実施の形態
【0101】
図10は、本発明の第3の実施の形態の構成を示すブロック図である。
【0102】
図10を参照すると、本発明の第3の実施の形態は、図1に示した第1の実施の形態に係る単体テストプログラム自動生成方式に対して、単体テストプログラム自動生成制御プログラム1000を備える点が異なっている。
【0103】
単体テストプログラム自動生成制御プログラム1000は、コンピュータシステムに読み込まれ、当該コンピュータシステムの動作を制御部100,INSERT文解析部101,UPDATE文解析部102,DELETE文解析部103,INSERT文実行結果評価プログラム生成部104,UPDATE文実行結果評価プログラム生成部105,およびDELETE文実行結果評価プログラム生成部106として制御する。単体テストプログラム自動生成制御プログラム1000の制御による当該コンピュータシステム(ソースファイル群110を入力してINSERT文実行結果評価プログラムファイル111,UPDATE文実行結果評価プログラムファイル112,およびDELETE文実行結果評価プログラムファイル113を出力するコンピュータシステム)の動作は、第1の実施の形態における制御部100,INSERT文解析部101,UPDATE文解析部102,DELETE文解析部103,INSERT文実行結果評価プログラム生成部104,UPDATE文実行結果評価プログラム生成部105,およびDELETE文実行結果評価プログラム生成部106の動作と全く同様になるので、その詳しい説明を割愛する。
【0104】
(4) 第4の実施の形態
【0105】
図11は、本発明の第4の実施の形態の構成を示すブロック図である。
【0106】
図11を参照すると、本発明の第4の実施の形態は、図9に示した第2の実施の形態に係る単体テストプログラム自動生成方式に対して、単体テストプログラム自動生成制御プログラム1100を備える点が異なっている。
【0107】
単体テストプログラム自動生成制御プログラム1100は、コンピュータシステムに読み込まれ、当該コンピュータシステムの動作を制御部900,INSERT文解析部901,UPDATE文解析部902,DELETE文解析部903,INSERT文実行結果評価プログラム生成部904,UPDATE文実行結果評価プログラム生成部905,DELETE文実行結果評価プログラム生成部906,INSERT文情報出力用コード生成部907,UPDATE文情報出力用コード生成部908,およびDELETE文情報出力用コード生成部909として制御する。単体テストプログラム自動生成制御プログラム1100の制御による当該コンピュータシステム(ソースファイル群910を入力してINSERT文実行結果評価プログラムファイル911,UPDATE文実行結果評価プログラムファイル912,およびDELETE文実行結果評価プログラムファイル913を出力するコンピュータシステム)の動作は、第2の実施の形態における制御部900,INSERT文解析部901,UPDATE文解析部902,DELETE文解析部903,INSERT文実行結果評価プログラム生成部904,UPDATE文実行結果評価プログラム生成部905,DELETE文実行結果評価プログラム生成部906,INSERT文情報出力用コード生成部907,UPDATE文情報出力用コード生成部908,およびDELETE文情報出力用コード生成部909の動作と全く同様になるので、その詳しい説明を割愛する。
【0108】
【発明の効果】
以上説明したように、本発明によると、データベース上のデータを更新する処理(データベース更新系処理)を含むデータベースアクセス処理を有するプログラムに対する単体テストを行う場合に、特別なテストプログラムを用意しなくても、データベースの状態が正しく更新(データの追加や削除を含む)されていることまで保証できる単体テストを実現することが可能になるという効果が生じる。すなわち、本発明によって生成された単体テストプログラム(各データベース更新系処理の実行結果評価プログラムを有する単体テストプログラム)を用いることで、データベース更新系処理が正常終了したか異常終了したかをチェックできるだけでなく、データベースの内容自体の正当性もチェックできるようになる。
【0109】
このような効果が生じる理由は、データベース更新系処理を解析して単体テスト用にデータベース更新系処理の処理結果の内容を確認・参照するためのコードを有する単体テストプログラムを生成できるためである。
【0110】
これにより、本発明によって生成された単体テストプログラムを実行すると、特別な用意を行うことなしに、データベース更新系処理が正しくデータベースを更新等しているか否かを確認することが可能になり、評価工数の削減と品質の強化とにつながる。
【0111】
特に、2バイト文字でコード変換が処理中に入るような場合や、特殊記号等を扱う場合等には、データベースに格納されているデータの正当性をチェックすることは重要であり、かつ、これまでそのようなチェックを単純で効果的に行う方法がなかったことに鑑みると、本発明によってデータの正当性のチェック(評価)の負担が軽減されることの意義は大きい。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係る単体テストプログラム自動生成方式の構成を示すブロック図である。
【図2】図1中のINSERT文解析部およびINSERT文実行結果評価プログラム生成部によって形成されるINSERT文評価用処理生成部の詳細な構成および動作を説明するためのブロック図である。
【図3】図1中のUPDATE文解析部およびUPDATE文実行結果評価プログラム生成部によって形成されるUPDATE文評価用処理生成部の詳細な構成および動作を説明するためのブロック図である。
【図4】図1中のDELETE文解析部およびDELETE文実行結果評価プログラム生成部によって形成されるDELETE文評価用処理生成部の詳細な構成および動作を説明するためのブロック図である。
【図5】図1に示す単体テストプログラム自動生成方式の処理を示す流れ図である。
【図6】図5中のINSERT文実行結果評価プログラム生成処理ステップの詳細な処理を示す流れ図である。
【図7】図5中のUPDATE文実行結果評価プログラム生成処理ステップの詳細な処理を示す流れ図である。
【図8】図5中のDELETE文実行結果評価プログラム生成処理ステップの詳細な処理を示す流れ図である。
【図9】本発明の第2の実施の形態に係る単体テストプログラム自動生成方式の構成を示すブロック図である。
【図10】本発明の第3の実施の形態の構成を示すブロック図である。
【図11】本発明の第4の実施の形態の構成を示すブロック図である。
【符号の説明】
100,900 制御部
101,901 INSERT文解析部
102,902 UPDATE文解析部
103,903 DELETE文解析部
104,904 INSERT文実行結果評価プログラム生成部
105,905 UPDATE文実行結果評価プログラム生成部
106,906 DELETE文実行結果評価プログラム生成部
110,910 ソースファイル群
111,911 INSERT文実行結果評価プログラムファイル
112,912 UPDATE文実行結果評価プログラムファイル
113,913 DELETE文実行結果評価プログラムファイル
201 INSERT文評価用処理生成部
211,311,411 ソースファイル読み込み部
212,312,412 ソースファイル解析部
221 INSERT処理包含ソースファイル
222,223,322,323,422,423 記憶領域
301 UPDATE文評価用処理生成部
321 UPDATE処理包含ソースファイル
401 DELETE文評価用処理生成部
421 DELETE処理包含ソースファイル
907 INSERT文情報出力用コード生成部
908 UPDATE文情報出力用コード生成部
909 DELETE文情報出力用コード生成部
1000,1100 単体テストプログラム自動生成制御プログラム

Claims (7)

  1. 単体テストの対象となるソースファイル群を読み込んで単体テストプログラムを構成する各データベース更新系処理の実行結果評価プログラムを生成出力するコンピュータシステムにおいて、
    ソースファイル群を読み込み、その内容を解析して、当該ソースファイル群の中にデータベース更新系処理があるかないかをチェックし、データベース更新系処理が存在する場合には当該データベース更新系処理を包含するソースファイルとともに当該データベース更新系処理に対応する評価用処理生成部に制御を渡す制御部と、
    前記制御部から制御を渡された場合に、受け取ったソースファイルの中のデータベース更新系処理のコードの内容を解析し、その解析結果を基に当該データベース更新系処理の内容がデータベースに反映されているか否かを確認するためのSELECT文を生成し、当該SELECT文を含む当該データベース更新系処理の実行結果評価プログラムを生成出力する各データベース更新系処理に対応する評価用処理生成部と
    を有することを特徴とする単体テストプログラム自動生成方式。
  2. 単体テストの対象となるソースファイル群を読み込んで単体テストプログラムを構成するINSERT文実行結果評価プログラム,UPDATE文実行結果評価プログラム,およびDELETE文実行結果評価プログラムを生成出力するコンピュータシステムにおいて、
    ソースファイル群を読み込み、その内容を解析して、当該ソースファイル群の中にデータベース更新系処理があるかないかをチェックし、データベース更新系処理であるINSERT処理,UPDATE処理,およびDELETE処理のいずれかが存在する場合には当該データベース更新系処理を包含するソースファイルとともに当該データベース更新系処理に対応する専用の処理部に制御を渡す制御部と、
    前記制御部からINSERT処理包含ソースファイルとともに制御を渡された場合に、そのINSERT処理包含ソースファイルを読み込んで、実行されるINSERT文の内容を解析し、解析した内容を示す解析結果情報を出力するINSERT文解析部と、
    前記INSERT文解析部により出力された解析結果情報を読み込み、当該解析結果情報を基にINSERT文が実行された場合にデータベースに追加されるデータを参照するためのSELECT文を生成し、そのSELECT文を有するINSERT文実行結果評価プログラムを生成出力するINSERT文実行結果評価プログラム生成部と、
    前記制御部からUPDATE処理包含ソースファイルとともに制御を渡された場合に、そのUPDATE処理包含ソースファイルを読み込んで、実行されるUPDATE文の内容を解析し、解析した内容を示す解析結果情報を出力するUPDATE文解析部と、
    前記UPDATE文解析部により出力された解析結果情報を読み込み、当該解析結果情報を基にUPDATE文が実行された場合に実際に更新されたデータを参照するためのSELECT文を生成し、そのSELECT文を有するUPDATE文実行結果評価プログラムを生成出力するUPDATE文実行結果評価プログラム生成部と、
    前記制御部からDELETE処理包含ソースファイルとともに制御を渡された場合に、そのDELETE処理包含ソースファイルを読み込んで、実行されるDELETE文の内容を解析し、解析した内容を示す解析結果情報を出力するDELETE文解析部と、
    前記DELETE文解析部により出力された解析結果情報を読み込み、当該解析結果情報を基にDELETE文が実行された場合にデータベースから削除されるデータを参照するためのSELECT文を生成し、そのSELECT文を有するDELETE文実行結果評価プログラムを生成出力するDELETE文実行結果評価プログラム生成部と
    を有することを特徴とする単体テストプログラム自動生成方式。
  3. INSERT文の実行情報および実行結果情報を外部出力するためのコードを生成し、そのコードをINSERT文実行結果評価プログラム生成部によって生成されたINSERT文実行結果評価プログラムに埋め込んで、その埋め込み後のINSERT文実行結果評価プログラムを出力するINSERT文情報出力用コード生成部と、
    UPDATE文の実行情報および実行結果情報を外部出力するためのコードを生成し、そのコードをUPDATE文実行結果評価プログラム生成部によって生成されたUPDATE文実行結果評価プログラムに埋め込んで、その埋め込み後のUPDATE文実行結果評価プログラムを出力するUPDATE文情報出力用コード生成部と、
    DELETE文の実行情報および実行結果情報を外部出力するためのコードを生成し、そのコードをDELETE文実行結果評価プログラム生成部によって生成されたDELETE文実行結果評価プログラムに埋め込んで、その埋め込み後のDELETE文実行結果評価プログラムを出力するDELETE文情報出力用コード生成部と
    を有することを特徴とする請求項2記載の単体テストプログラム自動生成方式。
  4. INSERT文実行結果評価プログラム生成部が、SELECT文を生成する際に、SELECT結果のデータと正しい追加データとが同一であるか否かを判定しその判定結果を出力するためのコードを生成し、SELECT文とともにそのコードを有するINSERT文実行結果評価プログラムを生成出力することと、
    UPDATE文実行結果評価プログラム生成部が、SELECT文を生成する際に、SELECT結果のデータと正しい更新データとが同一であるか否かを判定しその判定結果を出力するためのコードを生成し、SELECT文とともにそのコードを有するUPDATE文実行結果評価プログラムを生成出力することと、DELETE文実行結果評価プログラム生成部が、SELECT文を生成する際に、SELECT結果においてデータがヒットしない状態を確認しその確認結果を出力するためのコードを生成し、SELECT文とともにそのコードを有するDELETE文実行結果評価プログラムを生成出力することと
    を特徴とする請求項2または請求項3記載の単体テストプログラム自動生成方式。
  5. コンピュータシステムを、単体テストの対象となるソースファイル群を読み込み、その内容を解析して、当該ソースファイル群の中にデータベース更新系処理があるかないかをチェックし、データベース更新系処理が存在する場合には当該データベース更新系処理を包含するソースファイルとともに当該データベース更新系処理に対応する評価用処理生成部に制御を渡す制御部,および前記制御部から制御を渡された場合に、受け取ったソースファイルの中のデータベース更新系処理のコードの内容を解析し、その解析結果を基に当該データベース更新系処理の内容がデータベースに反映されているか否かを確認するためのSELECT文を生成し、当該SELECT文を含む当該データベース更新系処理の実行結果評価プログラムを生成出力する各データベース更新系処理に対応する評価用処理生成部として機能させるためのプログラム。
  6. コンピュータシステムを、単体テストの対象となるソースファイル群を読み込み、その内容を解析して、当該ソースファイル群の中にデータベース更新系処理があるかないかをチェックし、データベース更新系処理であるINSERT処理,UPDATE処理,およびDELETE処理のいずれかが存在する場合には当該データベース更新系処理を包含するソースファイルとともに当該データベース更新系処理に対応する専用の処理部に制御を渡す制御部,前記制御部からINSERT処理包含ソースファイルとともに制御を渡された場合に、そのINSERT処理包含ソースファイルを読み込んで、実行されるINSERT文の内容を解析し、解析した内容を示す解析結果情報を出力するINSERT文解析部,前記INSERT文解析部により出力された解析結果情報を読み込み、当該解析結果情報を基にINSERT文が実行された場合にデータベースに追加されるデータを参照するためのSELECT文を生成し、そのSELECT文を有するINSERT文実行結果評価プログラムを生成出力するINSERT文実行結果評価プログラム生成部,前記制御部からUPDATE処理包含ソースファイルとともに制御を渡された場合に、そのUPDATE処理包含ソースファイルを読み込んで、実行されるUPDATE文の内容を解析し、解析した内容を示す解析結果情報を出力するUPDATE文解析部,前記UPDATE文解析部により出力された解析結果情報を読み込み、当該解析結果情報を基にUPDATE文が実行された場合に実際に更新されたデータを参照するためのSELECT文を生成し、そのSELECT文を有するUPDATE文実行結果評価プログラムを生成出力するUPDATE文実行結果評価プログラム生成部,前記制御部からDELETE処理包含ソースファイルとともに制御を渡された場合に、そのDELETE処理包含ソースファイルを読み込んで、実行されるDELETE文の内容を解析し、解析した内容を示す解析結果情報を出力するDELETE文解析部,ならびに前記DELETE文解析部により出力された解析結果情報を読み込み、当該解析結果情報を基にDELETE文が実行された場合にデータベースから削除されるデータを参照するためのSELECT文を生成し、そのSELECT文を有するDELETE文実行結果評価プログラムを生成出力するDELETE文実行結果評価プログラム生成部として機能させるためのプログラム。
  7. コンピュータシステムを、請求項6記載の制御部,INSERT文解析部,INSERT文実行結果評価プログラム生成部,UPDATE文解析部,UPDATE文実行結果評価プログラム生成部,DELETE文解析部,およびDELETE文実行結果評価プログラム生成部として機能させるとともに、INSERT文の実行情報および実行結果情報を外部出力するためのコードを生成し、そのコードを前記INSERT文実行結果評価プログラム生成部によって生成されたINSERT文実行結果評価プログラムに埋め込んで、その埋め込み後のINSERT文実行結果評価プログラムを出力するINSERT文情報出力用コード生成部,UPDATE文の実行情報および実行結果情報を外部出力するためのコードを生成し、そのコードを前記UPDATE文実行結果評価プログラム生成部によって生成されたUPDATE文実行結果評価プログラムに埋め込んで、その埋め込み後のUPDATE文実行結果評価プログラムを出力するUPDATE文情報出力用コード生成部,ならびにDELETE文の実行情報および実行結果情報を外部出力するためのコードを生成し、そのコードを前記DELETE文実行結果評価プログラム生成部によって生成されたDELETE文実行結果評価プログラムに埋め込んで、その埋め込み後のDELETE文実行結果評価プログラムを出力するDELETE文情報出力用コード生成部として機能させるためのプログラム。
JP2002245115A 2002-08-26 2002-08-26 単体テストプログラム自動生成方式 Pending JP2004086446A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002245115A JP2004086446A (ja) 2002-08-26 2002-08-26 単体テストプログラム自動生成方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002245115A JP2004086446A (ja) 2002-08-26 2002-08-26 単体テストプログラム自動生成方式

Publications (1)

Publication Number Publication Date
JP2004086446A true JP2004086446A (ja) 2004-03-18

Family

ID=32053406

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002245115A Pending JP2004086446A (ja) 2002-08-26 2002-08-26 単体テストプログラム自動生成方式

Country Status (1)

Country Link
JP (1) JP2004086446A (ja)

Similar Documents

Publication Publication Date Title
JP4619698B2 (ja) コードセグメント作成方法及びそのシステム
US5926638A (en) Program debugging system for debugging a program having graphical user interface
US6651240B1 (en) Object-oriented software development support apparatus and development support method
US20010013043A1 (en) System and method for determining browser package and version compatibility of a web document
US7451391B1 (en) Method for web page rules compliance testing
US20050188323A1 (en) Template creation apparatus and creation method
JP5303795B2 (ja) アプリケーションの解析方法、解析システム及び解析プログラム
JP4951416B2 (ja) プログラム検証方法、プログラム検証装置
JP3828379B2 (ja) テスト仕様生成支援装置、方法、プログラム及び記録媒体
JP3502543B2 (ja) テストケース生成システム及びテストケース生成方法
JP2008293382A (ja) テスト仕様自動生成方式
JP2004126866A (ja) 記述出力抑制プログラム解析装置及び記述出力抑制プログラム解析方法
US6763516B2 (en) Convention checking apparatus, convention checking system, convention checking method, and storage medium on which is recorded a convention checking program
JP2004086446A (ja) 単体テストプログラム自動生成方式
JPH1153391A (ja) データベースアクセス方法
JP3584204B2 (ja) 原始プログラム自動変換装置
US12001324B2 (en) Operation pattern generation apparatus, operation pattern generation method and program
JP2006260053A (ja) 特定サブルーチン検索システムおよびこれに用いるプログラム
JPH06290039A (ja) プログラム変更方法
JPH11154093A (ja) プログラムコンパイラ及びコンパイラ用プログラムを記録した記録媒体
JP2006268777A (ja) ソースコード管理システム、ソースコード管理方法、およびソースコード管理プログラム
JP2006031424A (ja) ソフトウェア部品の再利用によるソフトウェア開発環境生成システム
JP2007066204A (ja) ソフトウエア開発支援システム
JPH1031584A (ja) ソフトウエアの検証自動化装置
JP2000242485A (ja) プログラミング言語変換プログラム開発支援システム、方法及び記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040427

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050124

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050308

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20070119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070313

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070703