(57)【要約】【課題】アプリケーションプログラムが正しく動作したか否かを検証するためのプログラム検証支援システムを提供する。【解決手段】端末装置１０は、アプリケーションプログラムの実行システムに対し、トランザクション毎のアプリケーションプログラム実行により更新対象となるデータベースの更新前ログデータ、及びアプリケーションプログラム実行により更新されたデータベースの更新後ログデータの読み込みを要求し、この要求に応答して更新前及び更新後ログデータが受信されたときそれを読み込み、そして、読み込んだ更新前及び更新後ログデータに設定されたテーブル名に基づいて定義ファイル１３を検索し、この定義ファイル１３に記載の属性データに基づいて当該更新前及び更新後ログデータを項目毎に取り出して解読する。その後、解読した更新前及び更新後ログデータを項目毎に対比可能に表示部１８に表示する。【選択図】図１
2007179347.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムの実行システムに、トランザクション毎のアプリケーションプログラム実行により更新対象となるデータベースの更新前ログデータ、及びアプリケーションプログラム実行により更新された当該データベースの更新後ログデータの読み込みを要求し、この要求に応答して前記更新前及び更新後ログデータが受信されたときそれを読み込む第１のデータ読込手段と、
予め前記トランザクション、及び前記トランザクション毎の更新前及び更新後ログデータに含まれるテーブル名に対応して設けられた定義データを有し、前記第１のデータ読込手段により読み込まれた前記更新前及び更新後ログデータに含まれるテーブル名に基づいて定義データを検索し、かつ、検索した定義データに記載の属性データに基づいてトランザクションと当該更新前及び更新後ログデータを項目毎に取り出して解読するデータ解読手段と、
該データ解読手段により解読された更新前及び更新後ログデータを項目毎に対比可能に表示部の画面に表示するデータ編集出力手段と
を備えたことを特徴とするプログラム検証支援システム。
【請求項２】
前記データ解読手段は、更新前及び更新後ログデータを項目毎に分解した際、前記定義データの属性データに基づいて更新前及び更新後ログデータが共に初期値かどうかを判定し、更新前及び更新後ログデータが共に初期値のときはその更新前及び更新後ログデータを表示対象外とすることを特徴とする請求項１記載のプログラム検証支援システム。
【請求項３】
前記データ解読手段は、更新前及び更新後ログデータを項目毎に分解した際、前記定義データの属性データに基づいて更新前及び更新後ログデータが同一かどうかを判定し、同一のときは更新後ログデータを表示対象外とすることを特徴とする請求項１又は２記載のプログラム検証支援システム。
【請求項４】
前記データ編集出力手段は、更新前及び更新後ログデータを項目毎に対比可能に表示部の画面に表示する際、項目毎に検証結果が入力可能なエリアを設けて任意の検証結果情報を入力及び編集可能とし、これを表示することを特徴とする請求項１乃至３の何れかに記載のプログラム検証支援システム。
【請求項５】
アプリケーションプログラム実行により更新されたデータベースの更新後ログデータに対する途中の中間データが指定されたときに前記実行システムに読み込みを要求し、この要求に応答して指定の中間データが受信されたときそれを読み込む第２のデータ読込手段と、
予め中間データの指定に対応して設けられた中間定義データを有し、前記第２のデータ読込手段により読み込まれた中間データに対応する中間定義データを検索し、かつ、検索した中間定義データに記載の属性データに基づいて当該中間データを項目毎に取り出して解読する中間データ解読手段とを備え、
前記データ編集出力手段は、前記中間データ解読手段により解読された中間データを項目毎に表示部の画面に表示することを特徴とする請求項１乃至４の何れかに記載のプログラム検証支援システム。
【請求項６】
前記中間データ解読手段は、中間データを項目毎に分解した際、前記中間定義データの属性データに基づいて中間データが初期値かどうかを判定し、初期値のときは表示対象外とすることを特徴とする請求項５記載のプログラム検証支援システム。
【請求項７】
前記データ編集出力手段は、中間データを項目毎に表示部の画面に表示する際、項目毎に検証結果が入力可能なエリアを設けて表示することを特徴とする請求項５又は６記載のプログラム検証支援システム。
【請求項８】
前記データ編集出力手段は、入力部の操作により指定の項目に対する検証結果が入力されると、前記エリアのうち該当する項に書き込み、入力部の操作による保存指示を受けたときは記録媒体に記録することを特徴とする請求項４又は７記載のプログラム検証支援システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば金融系システムなどの構築、改良により開発されたアプリケーションプログラムを検証するプログラム検証支援システムに関するものである。
【背景技術】
【０００２】
この種のものとして、例えば項目名付きファイルダンプ出力方法がある。これは、端末から入力された情報に従って、直接、ソースコードなどよりレコード定義情報を作成し、このレコード定義情報を基に、記憶装置上にあるダンプ対象ファイルを項目毎に区切って項目名付きファイルダンプリストを作成して出力する方法である。この方法においては、レコード内の２進数値や１６進数値など特殊なデータを人間が視認し易いように変換して出力することも可能になっている（例えば、特許文献１参照）。
【特許文献１】特開平１１−２７２４３３号公報（第２−３頁、図１乃至図８）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、金融系などのオンラインシステムにおいては、契約情報や契約の更新情報などをトランザクションデータとしてオンラインで受領した際に、そのデータに基づいて更新されるデータベースの更新前及び更新後のログデータをトランザクションと対応付けて保存する機能を備えたものが多く、このようなシステムでは過去１年〜数年分程度の前記情報をログデータとして保管されていることが多い。
また、前述した機能は、アプリケーションプログラムの開発や保守時にも利用できることが多いため、アプリケーションプログラムの開発者がプログラムのデバッグ（検証）に、そのログデータを利用することは極めて効果的で、意味のあるものであった。ただ、これらのログデータは、個々のシステムやアプリケーション依存の情報であり、汎用的に視認性の高い形態で表示することが困難であるため、多くの場合は、データを端末装置に表示したり、プリントアウトしたりして検証用に利用することが多かった。
しかしながら、金融系のオンラインシステムなどの開発作業においては、これらの検証用のデータの量が膨大であり、プリントアウトした場合には段ボール箱で３０〜５０箱になることも希ではなく、この膨大なデータの中から該当する検証対象項目を手作業で拾い出して確認する必要があるため、検証コストも膨大なものになっていた。また、紙ベースでの検証作業では、データの区切りのよいところで紙を分断することも簡単ではないことから、複数人での平行作業にも支障を来すことが多く、これも検証コストを増大させる要因になっていた。
【０００４】
本発明は、前述のような課題を解決するためになされたもので、膨大な用紙や作業時間、検証コストなどをかけることなく、開発されたアプリケーションプログラムが正しく動作したか否かを検証するためのプログラム検証支援システムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明に係るプログラム検証支援システムは、アプリケーションプログラムの実行システムに、トランザクション毎のアプリケーションプログラム実行により更新対象となるデータベースの更新前ログデータ、及びアプリケーションプログラム実行により更新された当該データベースの更新後ログデータの読み込みを要求し、この要求に応答して前記更新前及び更新後ログデータが受信されたときそれを読み込む第１のデータ読込手段と、予めトランザクション、及びトランザクション毎の更新前及び更新後ログデータに含まれるテーブル名に対応して設けられた定義データを有し、第１のデータ読込手段により読み込まれた更新前及び更新後ログデータに含まれるテーブル名に基づいて定義データを検索し、かつ、検索した定義データに記載の属性データに基づいてトランザクションと更新前及び更新後ログデータを項目毎に取り出して解読するデータ解読手段と、データ解読手段により解読された更新前及び更新後ログデータを項目毎に対比可能に表示部の画面に表示するデータ編集出力手段とを備えたものである。
【発明の効果】
【０００６】
本発明においては、第１のデータ読込手段により読み込まれた更新前及び更新後ログデータに設定されたテーブル名に基づいて定義データを検索し、かつ、検索した定義データに記載の属性データに基づいて当該更新前及び更新後ログデータを項目毎に分解して解読し、この解読された更新前及び更新後ログデータを項目毎に対比可能に表示部の画面に表示するようにしたので、膨大な用紙や作業時間、検証コストなどをかけることなく、開発されたアプリケーションプログラムが正しく動作したか否かを検証できる。
【発明を実施するための最良の形態】
【０００７】
図１は本発明の実施の形態を示すプログラム検証支援システムのブロック構成図、図２はログデータの概略構成を示す図、図３は中間データの概略構成を示す図、図４は定義ファイルのログ構成ファイル及び項目定義ファイルの一例を示す図である。
図１に示す端末装置１０は、アプリケーションプログラムの実行システムの例えばホストコンピュータ４０に専用回線３０を介して接続されたパーソナルコンピュータからなり、図中に示す各手段によりプログラム検証支援システムが構築されている。ホストコンピュータ４０は、例えば、新規保険の契約に関する各種のトランザクションデータがオンラインを介して受信されると、そのデータに基づいてアプリケーションプログラムを実行し、その結果をトランザクションと対応付けてデータベース４１に登録する。この場合は、更新前情報が存在しないため、その新規データを更新前ログデータとして保存する。また、契約の更新に関するトランザクションデータが受信されたときは、そのデータに基づいてアプリケーションプログラムを実行し、その結果をアプリケーションプログラムが更新対象とするテーブルの内容を更新前ログデータとして、また、そのアプリケーションプログラムの実行後の更新対象テーブルの内容を更新後ログデータとして、それぞれトランザクションデータと対応付けてデータ記憶装置４３に保存する。
【０００８】
また、新たに開発、又は改造されたアプリケーションプログラムのテストを行う場合は、予めテスト用データベース４２にテストデータ（顧客及び契約情報など）を保存し、これを参照及び更新されるようにする。ホストコンピュータ４０は、テスト用に受信されたトランザクションデータに応じて、検証対象であるアプリケーションプログラムを実行し、テスト用データベース４２の中で当該アプリケーションプログラムが更新対象とするテーブルの内容を更新前ログデータとして、また、テスト用データベース４２の中で当該アプリケーションプログラムの実行後の更新対象テーブルの内容を更新後ログデータとして、トランザクションデータと関連付けてデータ記憶装置４３に保存する。さらに、新規データの登録時は、これを更新前ログデータとして、受信されたトランザクションデータと関連付けてデータ記憶装置４３に保存する。
【０００９】
また、テスト用のトランザクションデータを受信しアプリケーションプログラムの実行時に発生し、かつ、アプリケーションプログラムの動作検証に必要な途中の情報や結果がある場合は、中間データとしてデータ記憶装置４３に保存する。その中間データは、例えば顧客名や住所などのようにトランザクションデータ中に直接含まれるようなデータではなく、配当金の計算を行う過程で得られる配当率などのデータが主たる対象となっている。
【００１０】
このホストコンピュータ４０は、開発又は改造されたアプリケーションプログラム実行の後に、端末装置１０からの更新前及び更新後ログデータの読出要求を受けたときは、データ記憶装置４３に保存したトランザクションデータ毎の更新前及び更新後ログデータをログデータ３１として専用回線３０を介して端末装置１０に転送する。また、中間データの読出要求を受けたときは、データ記憶装置４３に保存した中間データ３２を専用回線３０を介して端末装置１０に転送する。
【００１１】
前述したログデータ３１は、例えば図２に示すように、先頭にヘッダ部３１ａが設けられ、これに続いてトランザクション毎にトランザクション部３１ｂ及び複数のテーブルデータ部３１ｃ，３１ｄ…が配列されてなっている。ヘッダ部３１ａは、固定長で、例えば、基本情報としてトランザクションの入力年月日、時刻、入力場所などが、アプリケーション情報として契約番号、情報の入力端末番号などが書き込まれている。トランザクション部３１ｂは、ヘッダ部３１ａに続いて書かれた固定長のトランザクション名と、可変長のトランザクションデータ部とからなっている。テーブルデータ部３１ｃ，３１ｄ…は、更新前か更新後かを識別させるためのフラグと、固定長のテーブル名と、キー部（可変長）を含む可変長のデータ部とからなっている。
【００１２】
テーブルデータ部３１ｃ，３１ｄ…のフラグは、例えば、固定長の１文字で表現され、データ部に更新前ログデータが書き込まれているときは記号の「＊」が記入され、更新後ログデータが書き込まれているときは「スペース」となっている。データ部に含まれているキー部は、テーブル中で各レコードをユニークに識別するためのデータの一部であり、テーブルデータ部３１ｃ，３１ｄ…の一部を構成する。例えば、テーブル名が「契約」の場合には契約番号が、テーブル名が「顧客」の場合には顧客番号がキーとして書き込まれており、また、テーブル名が「住所」の場合には顧客番号＋住所区分（自宅又は会社などの区分）がキーとして書き込まれている。データ部には、前記キーを除くデータ項目が書かれており、更新前ログデータの場合には、アプリケーションプログラムの実行によって更新される前の当該テーブル内の対象レコードの内容が、また、更新後ログデータの場合には、アプリケーションプログラムの実行によって更新された当該テーブル内の対象レコードの内容が書き込まれている。
【００１３】
中間データ３２は、図３に示すように、先頭にヘッダ部（固定長）が設けられ、これに続いてデータ部が一つだけ存在する。このデータ部には、前述したように配当率などのデータが可変長のデータ群として書き込まれている。
【００１４】
前述した端末装置１０は、キーボードやマウスなどからなる入力部（図示せず）と、表示部１８とを有し、第１及び第２のデータ読込手段の機能を備えたデータ読込手段１１と、データ取得手段１２と、定義ファイル１３（定義データ）と、データ解読手段１４と、データ編集出力手段１５と、中間データ項目定義ファイル１６（中間定義データ）と、中間データ解読手段１７とにより構築されるプログラム検証支援システムを備えている。前記の定義ファイル１３は、図４に示すようにログ構成ファイル１３ａ及び項目定義ファイル１３ｂと、トランザクション項目定義ファイル（図示せず）とからなり、中間データ項目定義ファイル１６と共に本装置１０の記憶部（図示せず）にそれぞれ保存されている。なお、本実施の形態におけるプログラム検証支援システムの各手段の機能については、動作説明時に詳述する。
【００１５】
定義ファイル１３のログ構成ファイル１３ａは、図４（ａ）に示すように、トランザクション名部とテーブル名部とに分類されている。そして、トランザクション名部は、「トランザクション名（ＴＲＸ／ＴＢＬ英字名）」と「トランザクション名日本語表記（ＴＲＸ／ＴＢＬ日本語名）」とをデータとして持つデータブロック列で、そのデータブロック列の中でログデータ３１のトランザクション部３１ｂに書かれたトランザクション名と同一のトランザクション名データを持つデータブロックを検索することで、トランザクション名に対応する日本語表記を取得させるためのものである。
また、テーブル名部は、同様に「テーブル名（ＴＲＸ／ＴＢＬ英字名）」と「テーブル名日本語表記（ＴＲＸ／ＴＢＬ日本語）」と「キー長」とをデータとして持つデータブロック列で、そのデータブロック列の中でログデータ３１の各テーブルデータ部３１ｃ，３１ｄ…のテーブル名に書かれたテーブル名と同一のテーブル名データを持つデータブロックを検索することで、テーブル名に対応する日本語表記及びそのテーブルのキー長を取得させるためのものである。
【００１６】
項目定義ファイル１３ｂは、図４（ｂ）に示すように、テーブル名毎に独立して用意されており、そのファイル名とログデータ３１のテーブルデータ部３１ｃ，３１ｄ…に書き込まれたテーブル名とが関連付けられている。それぞれの項目定義ファイル１３ｂには、検証対象の各項目の更新前及び更新後ログデータを解析するための属性データが書き込まれている。属性データは、例えばレベル、項目長、項目属性、繰り返し回数、初期値判定コードからなっている。なお、本実施の形態では、実装を容易にするためにテーブル毎に項目定義ファイル１３ｂを用意しているが、単一ファイルで構成しても良い。
【００１７】
属性データのレベルは、検証対象の項目名間の相対的な従属関係を指定するためのもので、「上位レベル」及び「下位レベル」を示すレベル値によってその従属関係が判別できるようになっている。例えば、「上位レベル値」を「１０」とし、「下位レベル値」を「２０」としており、「１０」が数字の大きいレベル値「２０」を包括する。従属する項目を持つ項目は、従属する項目の仮想的な代表項目を示したもので、実際には下位の項目の集合体である。この従属関係は、後述する繰り返し回数の指定において、複数の項目をサイクリックに繰り返す場合に利用する目的で用意されている。
【００１８】
項目長は、更新前及び更新後ログデータ中における各項目のアプリケーションプログラム実行環境におけるデータ長（バイト数）で、最初の項目名（契約−番号）に記載の項目長は「５」であり、かつ後述する項目属性「０」が「文字」を示すことから、元データは５文字の文字列であることを示し、取得したログデータ３１のヘッダ部３１ａなどを除いたデータ部（キー部を含む）の１バイト目から５バイト目までが当該項目であることを示し、次項目が６バイト目から開始されることを示している。その次の項目名（契約−金額）に記載の項目長「６」は項目属性「１」が十進数を示すことから、元データは６バイト、即ち４８ビットで表現された十進数であり、データ部の６バイト目から１１バイト目までが当該項目であることを示している。
【００１９】
項目属性は、項目長により指定されたデータ文字列が数字か１バイト文字か、又は２バイト文字の漢字かなどを識別させるための可視化用のコード値である。コード値の「０」はデータ文字列が文字（１バイト文字）であることを示し、「１」は１０進数、「２」は２進数、「３」は漢字であることを示しており、これらコード値を基に各項目名のデータ文字列を識別する。
【００２０】
繰り返し回数の項に記載の「０」は項目の繰り返しが無いことを示しており、「２」は同じ項目を２回繰り返すように指定している。図４（ｂ）に示す項目定義ファイル１３ｂにおいて、属性データのレベルが「１０」、繰り返し回数が「２」、検証対象の項目名が「契約変更−情報」の場合、次の列に示すレベル「２０」の「契約変更−日付」と「前回契約−金額」がレベル「１０」の項目に従属するものとして、「契約変更−日付」と「前回契約−金額」をそれぞれ２回繰り返す。この場合、レベル「１０」の項目である「契約変更−情報」はレベル「２０」の集合体を表したものであり、実体としてデータはない。
【００２１】
初期値判定コードには、例えば「Ｓ」、「Ｚ」、「Ｍ」、「Ｘ」の４つのコード値があり、「Ｓ」はスペース（ブランク）、「Ｚ」はゼロを意味し、「Ｍ」は負数、「Ｘ」は初期値判定対象外であることを意味している。これらコード値は、例えば保険契約の成立によりデータ記憶装置４３に保存された契約データのうち検証対象となる項目の属性や意味に対応して予め設定されたもので、各項目が初期状態に設定された空のレコード生成後、データを書き込んだ内容の検証に利用する。例えば、保存データにおいて初期値がスペースであるような項目に対しては、その項目（検証対象）に対するコード値は「Ｓ」が設定され、初期値がゼロであるような項目に対しては「Ｚ」のコード値が設定され、ゼロ以上の正の値が有効値であり初期値が負数であるような項目に対しては「Ｍ」のコード値が設定され、その項目に有効値が設定されたのか、或いは初期状態のままなのかが容易に判定できる。また、その項目に値が設定されたか否かを問わず、無条件に表示対象として確認する項目に関しては「Ｘ」のコード値が設定されている。
【００２２】
定義ファイル１３のトランザクション項目定義ファイルは、図示していないが、ログ構成ファイル１３ａに書かれた各種のトランザクション名にそれぞれ対応して用意され、トランザクション名と同じ名称のファイル名を有している。それぞれのファイルは、ファイル名毎に設定された項目名、各項目名に設定された各種データの文字列の実長を指定する項目長、項目長により指定されたデータ文字列が数字か文字か、又は漢字かなどを識別させるための属性項目などからなっている。
【００２３】
中間データ項目定義ファイルは、図示していないが、中間データに含まれる各種の中間データ名にそれぞれ対応して用意され、中間データ名と同じ名称のファイル名を有している。それぞれの中間データ項目定義ファイルは、ファイル名毎に設定された項目名、各項目名に設定されたデータを抽出するための項目長、項目長により指定されたデータが数字か文字か、又は漢字かなどを識別させるための属性項目、初期値判定コードなどからなっている。
【００２４】
次に、本実施の形態の動作について説明する。まず最初に更新前及び更新後ログデータに対するプログラム検証支援システムの動作について説明する。図５は更新前及び更新後ログデータに対するプログラム検証支援システムの動作を示すフローチャート、図６は契約金額に関する更新前及び更新後ログデータの編集表示例を示す図である。
【００２５】
入力部を介して更新前及び更新後ログデータの読み込みと対象ログデータが指示されると（Ｓ１）、端末装置１０のデータ読込手段１１は、ログデータ３１の読み込みを専用回線３０を介してホストコンピュータ４０に要求し、この要求に応答してログデータ３１が受信されると、データ取得手段１２は、そのログデータ３１（図２参照）を取得して記憶部（図示せず）に保存する（Ｓ２）。
【００２６】
一方、データ解読手段１４は、ログデータ３１が保存されると、図５には示していないが、そのログデータ３１を記憶部から読み出してヘッダ部３１ａにアクセスし、前述した基本情報、アプリケーション情報などを認識して表示可能な形式に変換し、データ編集出力手段１５に転送する。次いで、ログ構成ファイル１３ａ（図４（ａ）参照）を記憶部から読み出して取得し（Ｓ３）、読み込んだログデータ３１中のトランザクション部３１ｂからトランザクション名（本実施の形態では「ＴＲＸＩＮ００１」）を読み出し、これと同一のトランザクション名「ＴＲＸＩＮ００１」をログ構成ファイル１３ａのトランザクション名部で検索し、これに対応する日本語名として「入力ＴＲＸ００１」を取得し、かつ、ログデータ３１から読み出したトランザクション名「ＴＲＸＩＮ００１」と同じ名称のファイル名を有するトランザクション項目定義ファイル（図示せず）を取得する。
【００２７】
そして、取得したトランザクション項目定義ファイルの各項目名に設定された項目長に従ってトランザクション部３１ｂのトランザクションデータ部に記載の各種データを抽出し、この抽出した各種データをトランザクション項目定義ファイルに記載の項目属性に従ってそれぞれ表示形式に変換し、先に取得したトランザクション名「入力ＴＲＸ００１」を表示形式に変換し、これらを関連付けてデータ編集出力手段１５に転送する。
【００２８】
その後、データ解読手段１４は、ログデータ３１のテーブルデータ部３１ｃ，３１ｄ…に記載のフラグにアクセスして更新前か更新後かを判定する。フラグが空白のときは更新後と判断するが、フラグに「＊」の記号があるときは更新前と判断してフラグに続く固定長のテーブル名を取得する（Ｓ４）。そして、その固定長のテーブル名と同じ名称のテーブル名をログ構成ファイル１３ａから取得すると共に、テーブル名に関連付けられたキー長を取得する。その後は、先に取得した固定長のテーブル名と同じ名称のファイル名を有する項目定義ファイル１３ｂを検索する（Ｓ５）。
【００２９】
例えば、ログデータ３１の最初のテーブルデータ部３１ｃに記載のテーブル名が「ＫＥＩＹＡＫＵ０」の場合、ログ構成ファイル１３ａのテーブル名からはテーブルの日本語名として「契約」及びキー長の「５バイト」を取得し、次いで、先に取得したテーブル名「ＫＥＩＹＡＫＵ０」と同じファイル名称を持ち、本実施の形態においては、「ＣＳＶ」をファイル拡張子とするファイル「ＫＥＩＹＡＫＵ０．ＣＳＶ」を有する項目定義ファイル１３ｂを検索する。また、２番目のテーブルデータ部３１ｄに記載のテーブル名が「ＫＯＫＹＡＫＵ０」の場合、ログ構成ファイル１３ａのテーブル名からは日本語名として「顧客」及びキー長の「１０バイト」を取得し、次いで、先に取得したテーブル名「ＫＯＫＹＡＫＵ０」と同じ名称のファイル名「ＫＯＫＹＡＫＵ０．ＣＳＶ」を有する項目定義ファイル１３ｂを検索する。さらに、３番目のテーブルデータ部に記載のテーブル名が「ＪＹＵＵＳＨＯ０」の場合、ログ構成ファイル１３ａからは「住所」及びキー長の「１２バイト」を取得し、次いで、先に取得したテーブル名「ＪＹＵＵＳＨＯ０」と同じ名称のファイル名「ＪＹＵＵＳＨＯ０．ＣＳＶ」を有する項目定義ファイル１３ｂを検索する。
【００３０】
最初に取得したテーブル名と同じファイル名「ＫＥＩＹＡＫＵ０．ＣＳＶ」の項目定義ファイル１３ｂを検索すると、ログ構成ファイル１３ａから取得したキー長（５バイト）で指定されたデータ部のキー部に記載のデータ「契約−番号」をキーとし、項目定義ファイル１３ｂに記載された「契約−番号」、「契約−金額」、「契約変更−情報」、「契約変更−日付」及び「前回契約−金額」の各項目名の項目長合計に基づいて、テーブルデータ部３１ｃからデータ部の範囲を認識し、その範囲内の更新前データを抽出する（Ｓ６）。なお、この抽出方法として、予め項目長の合計値を項目定義ファイル１３ｂに記述しておいても良いし、テーブルデータ部３１ｃの最後にデータ中に決して出現しないことが判っているデータパターンをデリミタとして記述しておき、このデリミタを検出することでテーブルデータ部の終わりを検知するという方法などでも良い。
【００３１】
そして、その項目定義ファイル１３ｂ「ＫＥＩＹＡＫＵ０．ＣＳＶ」の最初の項目名「契約−番号」に記載の項目長に基づいて、抽出した更新前データからその項目名のデータを取り出す（Ｓ７）。そして、そのデータに対し初期値判定コード「Ｘ」が設定されているかどうかを判定する（Ｓ８）。初期値判定コード「Ｘ」が設定されているときは表示対象と判断してＳ１６に進むが、この場合は、前記データ（契約−番号）に対する初期値判定コードが「Ｓ」であるため、Ｓ９に進んでログデータ３１の中に「更新後」を示すフラグ値を持つテーブルデータ部が存在するか否かを検索する（Ｓ９）。ログデータ３１の中にそのテーブルデータ部がないときは、前記データが初期か否かの判定に入るが（Ｓ１０）、ログデータ３１の中に更新後のテーブルデータ部を認識したときは、先に取得したテーブル名「ＫＥＩＹＡＫＵ０」及び同一のキーデータを持つテーブルデータ部を検索する。前述した更新前のテーブルデータ部３１ｃに対応する更新後のテーブルデータ部を検索したときは、前記と同様に、先に取得したキー長（５バイト）で指定されたデータ部のキー部に記載のデータ（契約−番号）をキーとし、項目定義ファイル１３ｂに記載された各項目名（契約−番号の項目名も含む）に設定された項目長合計に基づいて、テーブルデータ部（図示せず）からデータ部の範囲を認識し、その範囲内の更新後データを抽出する。そして、前記と同様に最初の項目名（契約−番号）に記載の項目長に基づいて、抽出した更新後ログデータからその項目名のデータを取り出す（Ｓ１１）。
【００３２】
その後、取り出した更新前と更新後の各データ（契約−番号）が共に初期値かどうかを判定する（Ｓ１２）。両方のデータが共に初期値「Ｓ：スペース」の場合は、その両方のデータを表示対象外とするが（Ｓ１３）、少なくとも一方のデータ、又は両方のデータが初期値でないときは、更新前と更新後の各データが同値、即ち同じ内容かどうかを判定する（Ｓ１４）。両方のデータが同値でないときは、更新前と更新後のデータを表示対象とし、また、両方のデータが同値のときは、更新後側のデータを表示対象外とする（Ｓ１５）。そして、その項目名（契約−番号）が、取得した項目定義ファイル１３ｂ（ファイル名：ＫＥＩＹＡＫＵ０．ＣＳＶ）に記載された最後の項目名かどうかを判定し（Ｓ１６）、最後の項目名のときはＳ１７に進むが、最後の項目名でないときは、Ｓ７に戻って、抽出した更新前データから次の項目名（契約−金額）に設定されたデータを項目長に基づいて取り出し、前述したＳ８〜Ｓ１６の動作を繰り返し行う。
【００３３】
前述したＳ７〜Ｓ１６の動作を項目名毎に繰り返し行って終了すると、項目名毎の表示対象の更新前と更新後のデータを項目属性に従って表示形式に変換すると共に、先に取得したログ構成ファイル１３ａに記載のテーブル名（契約）を表示形式に変換し（Ｓ１７）、かつ、そのテーブル名と更新前及び更新後のデータとを関連付けてデータ編集出力手段１５に転送する。項目定義ファイル１３ｂ「ＫＥＩＹＡＫＵ０．ＣＳＶ」に記載の「契約−番号」は、項目属性が「０」であるため、該当するデータはその属性に応じて表示形式に変換され、「契約−金額」は、項目属性が「１」であるため、該当するデータはその属性に応じて表示形式に変換され、「契約変更−情報」に従属する「契約変更−日付」は、項目属性が「０」であるため、該当するデータはその属性に応じて表示形式に変換され、また、「契約変更−情報」に従属する「前回契約−金額」は、項目属性が「１」であるため、該当するデータはその属性に応じて表示形式に変換される。
【００３４】
一方、データ編集出力手段１５は、ログデータ解析手段１４からの転送データを受けたとき、例えば図６に示すように「区分」、「ＴＲＸ／ＴＢＬ名」、「項目名」、「更新前値」、「更新後値」及び「検証メモ」を項目とするリストにその転送データを書き込む（Ｓ１８）。この時点では、ヘッダ及びトランザクションに関するデータを書き込み、次いで、契約に関するデータを比較可能に更新前値と更新後値とにそれぞれ書き込む。契約に関するデータを書き込む際には、項目定義ファイル１３ｂに記載の項目名毎のレベル値及び繰り返し回数に基づいて行う。契約−番号の項の更新後値側がブランクになっているのは、更新前値側の契約番号と同一であったためであり、「契約変更−日付」と「前回契約−金額」が２回繰り返されているのは、前述したように、項目定義ファイル１３ｂの「契約変更−情報」の項に記載された繰り返し回数「２」とその「契約変更−情報」に続く「契約変更−日付」及び「前回契約−金額」の各項に記載のレベル値「２０」に基づくものである。
【００３５】
テーブル「契約」に関するデータの書き込みが終了すると、データ解読手段１４は、ログデータ３１にアクセスして読み込んだログデータ３１中に含まれる全てのテーブルデータ部の処理が終了したか否かを判定する（Ｓ１９）。全てのテーブルデータ部の処理が終了したと判断したときは、リストの画面表示処理に進むが（Ｓ２０）、未だ処理すべきテーブルデータ部が残っている場合には、次のテーブルデータ部のテーブル名を取得し（Ｓ４）、前述した動作を繰り返し行う（Ｓ５〜Ｓ１６）。
【００３６】
前記の判定処理により、次のテーブルデータ部として、テーブル名「ＫＯＫＹＡＫＵ０」であるテーブルデータ部３１ｄを解読する。そして、そのテーブル名「ＫＯＫＹＡＫＵ０」における項目名毎の更新前及び更新後のデータに対する表示対象の判別が終了すると、表示対象のデータを項目定義ファイル１３ｂ（ファイル名：ＫＯＫＹＡＫＵ０．ＣＳＶ）に記載の項目属性に従って表示形式に変換すると共に、先に取得したログ構成ファイル１３ａに記載のテーブル名（顧客）を表示形式に変換し（Ｓ１７）、かつ、そのテーブル名と更新前及び更新後のデータとを関連付けてデータ編集出力手段１５に転送する。項目定義ファイル１３ｂ「ＫＯＫＹＡＫＵ０．ＣＳＶ」に記載の「顧客−番号」及び「カナ−氏名」は、項目属性が「０」であるため、該当するデータはその属性に応じて表示形式（文字）に変換され、「漢字−氏名」は項目属性が「３」であるため、該当するデータはその属性に応じて表示形式（漢字）に変換される。一方、データ編集出力手段１５は、その転送データを前記のリストに書き込む（Ｓ１８）。顧客に関しては、図６に示すように、「顧客−番号」、「カナ−氏名」及び「漢字−氏名」の更新後値がそれぞれ更新前値と同一であるためブランクになっている。
【００３７】
顧客に関するデータの書き込みが終了すると、データ解読手段１４は、前記と同様にログデータ３１にアクセスしてテーブルデータ部の処理が終了したか否かの判定に入り（Ｓ１９）、テーブル名が終了していないときは、前述したようにＳ４〜Ｓ１７の動作を繰り返し、これを、読み込んだログデータ３１の中で更新前側のテーブルデータ部が終了するまで繰り返し行う。ログデータ３１中の更新前及び更新後のテーブルデータ部に対する解読及び処理が終了すると、データ解読手段１４による操作を終了する。
【００３８】
一方、データ編集出力手段１５は、データ解読手段１４からのデータが入力される毎に前記リストに書き込み、これを１トランザクション毎にリストを作成して書き込んでいく。データ解読手段１４を通じてテーブルデータ部の終了を確認したときは、作成したリスト（図６参照）を表示部１８の画面に表示する（Ｓ２０）。また、リスト表示の中には、ログデータ３１中に含まれない年月日や時刻の「：」、顧客番号、契約番号などの「−」が付加されているが、これらは、プログラムで項目名を見て個別に判断処理されたものである。
【００３９】
データ編集出力手段１５は、リストを画面に表示した後、キー操作による更新前値と更新後値に対する検証結果が入力されたかどうかを判定する（Ｓ２１）。例えば、項目名の「契約−金額」に対して「金額変更」、項目名の「契約変更−日付（１）」に対して「金額変更日」などの検証結果が入力されたときは、各項目名に関連付けて登録し、かつ図６に示すように、該当する検証メモの欄に書き込んで表示する（Ｓ２２）。そして、保存の指示があったかどうかを判定し（Ｓ２３）、保存の指示がないときはＳ２１に戻って検証結果が入力されたかどうかを判定する。また、キー操作による保存指示を受けたときは、画面上のリストをフロッピディスクなどの記録媒体に保存し（Ｓ２４）、前述した一連の動作を終了する。
【００４０】
次に中間データに対するプログラム検証支援システムの動作について説明する。図７は中間データに対するプログラム検証支援システムの動作を示すフローチャート、図８は配当計算に係わる中間データの編集表示例を示す図である。
入力部の操作により、例えば、「中間結果」が選択され、読み込むべき中間データ名の「計算エリア」が指定されると（Ｓ３１）、端末装置１０のデータ読込手段１１は、指定された中間データ名に対応付けられた中間データ３２の読み込みを専用回線３０を介してホストコンピュータ４０に要求し、この要求に応答して指定の中間データ３２が受信されると、データ取得手段１２は、その中間データ３２を取得して記憶部（図示せず）に保存する（Ｓ３２）。
【００４１】
一方、中間データ解読手段１７は、指定された中間データ３２が保存されると、先の中間データ名をキーワードとして、同じ名称のファイル名を有する中間データ項目定義ファイル（図示せず）を検索する（Ｓ３３）。そして、図７には示していないが、中間データ３２を記憶部から読み出してヘッダ部を認識し、次いで、検索した中間データ項目定義ファイルに記載の各項目の属性情報に基づき、最初の項目のデータを取り出す（Ｓ３５）。
【００４２】
そして、そのデータに対し初期値判定コード「Ｘ」が設定されているかどうかを判定する（Ｓ３６）。初期値判定コード「Ｘ」が設定されているときは表示対象と判断してＳ３９に進むが、初期値判定コード「Ｘ」が設定されていないときは、抽出したデータの内容（項目値）が初期値判定コードのＳ、Ｚ、Ｍの何れかかどうかを中間データ項目定義ファイルを通じて判定する（Ｓ３７）。そのデータに初期値判定コードで設定された初期値データが設定されていないときは表示対象と判断してＳ３９に進み、また、その初期値データが設定されているときは表示対象外とする（Ｓ３８）。
【００４３】
その後、その項目名が、検索した中間データ項目定義ファイルに記載された最後の項目名かどうかを判定し（Ｓ３９）、最後の項目名のときはＳ４０に進むが、最後の項目名でないときは、Ｓ３５に戻って、抽出したデータから次の項目名のデータを項目長に基づいて取り出し、前述したＳ３６〜Ｓ３９の動作を繰り返し行う。このＳ３５〜Ｓ３９の動作を項目名毎に繰り返し行って終了すると、項目名毎の表示対象のデータを項目属性に従って表示形式に変換し（Ｓ４０）、かつ、入力された中間データ名（計算エリア）と関連付けてデータ編集出力手段１５に転送する。
【００４４】
一方、データ編集出力手段１５は、中間データ解読手段１４からの転送データを受けたとき、例えば図８に示すように「中間データ名」、「項目名」、「項目値」、「検証メモ」などを項目とするリストに転送データを書き込む（Ｓ４１）。この場合、中間データ名の項に「計算エリア」を書き込み、項目名の項に中間データ項目定義ファイルに記載の項目名を書き込み、項目値の項に項目名に対応付けられた表示対象のデータを書き込む。
【００４５】
データ編集出力手段１５は、リストへの書き込みが終了すると、そのリストを表示部１８の画面に表示し（Ｓ４２）、キー操作による項目値に対する検証結果が入力されたかどうかを判定する（Ｓ４３）。例えば、項目名の「合計配当−金額」に対して「計算の正当性を確認」、項目名の「配当内容１−金額」に対して「別紙、手計算結果参照」などの検証結果が入力されたときは、各項目名に関連付けて登録し、かつ図８に示すように、該当する検証メモの欄に書き込んで表示する（Ｓ４４）。そして、保存の指示があったかどうかを判定し（Ｓ４５）、保存の指示がないときはＳ４３に戻って検証結果が入力されたかどうかを判定する。また、キー操作による保存指示を受けたときは、画面上のリストをフロッピディスクなどの記録媒体に保存し（Ｓ４６）、前述した一連の動作を終了する。
【００４６】
以上のように本実施の形態によれば、トランザクション毎に更新前及び更新後ログデータを項目毎に対比可能に、かつ検証結果を記入可能にリストを作成して、表示部の画面に表示するようにしたので、膨大な用紙や作業時間、検証コストなどをかけることなく、開発されたアプリケーションプログラムが正しく動作したか否かを検証できる。
また、更新前及び更新後ログデータが初期値のときは表示対象外とし、更新前及び更新後ログデータが同一のときは更新後ログデータを表示対象外としたので、検証者の作業負担を軽減できると共に作業時間を短縮できる。
さらに、アプリケーションプログラムのトランザクション毎の実行時に発生する途中の情報や結果の中間データを表示できるようにしたので、途中の情報から結果が正しいか否か、また結果が正しくない場合には、どの処理が誤っているかを容易に確認することができる。
【図面の簡単な説明】
【００４７】
【図１】本発明の実施の形態を示すプログラム検証支援システムのブロック構成図である。
【図２】ログデータの概略構成を示す図である。
【図３】中間データの概略構成を示す図である。
【図４】定義ファイルのログ構成ファイル及び項目定義ファイルの一例を示す図である。
【図５】更新前及び更新後ログデータに対するプログラム検証支援システムの動作を示すフローチャートである。
【図６】契約金額に関する更新前及び更新後ログデータの編集表示例を示す図である。
【図７】中間データに対するプログラム検証支援システムの動作を示すフローチャートである。
【図８】配当計算に係わる中間データの編集表示例を示す図である。
【符号の説明】
【００４８】
１０  端末装置、１１  データ読込手段、１２  データ取得手段、１３  定義ファイル、１４  データ解読手段、１５  データ編集出力手段、１６  中間データ項目定義ファイル、１７  中間データ解読手段、１８  表示部、３０  専用回線、４０  ホストコンピュータ、４１  データベース、４２  テスト用データベース、４３  データ記憶装置。
【図１】
2007179347.tif 000003
【図２】
2007179347.tif 000004
【図３】
2007179347.tif 000005
【図４】
2007179347.tif 000006
【図５】
2007179347.tif 000007
【図６】
2007179347.tif 000008
【図７】
2007179347.tif 000009
【図８】
2007179347.tif 000010