JP2007179347A - プログラム検証支援システム - Google Patents
プログラム検証支援システム Download PDFInfo
- Publication number
- JP2007179347A JP2007179347A JP2005377598A JP2005377598A JP2007179347A JP 2007179347 A JP2007179347 A JP 2007179347A JP 2005377598 A JP2005377598 A JP 2005377598A JP 2005377598 A JP2005377598 A JP 2005377598A JP 2007179347 A JP2007179347 A JP 2007179347A
- Authority
- JP
- Japan
- Prior art keywords
- data
- update
- item
- log data
- name
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】アプリケーションプログラムが正しく動作したか否かを検証するためのプログラム検証支援システムを提供する。
【解決手段】端末装置10は、アプリケーションプログラムの実行システムに対し、トランザクション毎のアプリケーションプログラム実行により更新対象となるデータベースの更新前ログデータ、及びアプリケーションプログラム実行により更新されたデータベースの更新後ログデータの読み込みを要求し、この要求に応答して更新前及び更新後ログデータが受信されたときそれを読み込み、そして、読み込んだ更新前及び更新後ログデータに設定されたテーブル名に基づいて定義ファイル13を検索し、この定義ファイル13に記載の属性データに基づいて当該更新前及び更新後ログデータを項目毎に取り出して解読する。その後、解読した更新前及び更新後ログデータを項目毎に対比可能に表示部18に表示する。
【選択図】図1
【解決手段】端末装置10は、アプリケーションプログラムの実行システムに対し、トランザクション毎のアプリケーションプログラム実行により更新対象となるデータベースの更新前ログデータ、及びアプリケーションプログラム実行により更新されたデータベースの更新後ログデータの読み込みを要求し、この要求に応答して更新前及び更新後ログデータが受信されたときそれを読み込み、そして、読み込んだ更新前及び更新後ログデータに設定されたテーブル名に基づいて定義ファイル13を検索し、この定義ファイル13に記載の属性データに基づいて当該更新前及び更新後ログデータを項目毎に取り出して解読する。その後、解読した更新前及び更新後ログデータを項目毎に対比可能に表示部18に表示する。
【選択図】図1
Description
本発明は、例えば金融系システムなどの構築、改良により開発されたアプリケーションプログラムを検証するプログラム検証支援システムに関するものである。
この種のものとして、例えば項目名付きファイルダンプ出力方法がある。これは、端末から入力された情報に従って、直接、ソースコードなどよりレコード定義情報を作成し、このレコード定義情報を基に、記憶装置上にあるダンプ対象ファイルを項目毎に区切って項目名付きファイルダンプリストを作成して出力する方法である。この方法においては、レコード内の2進数値や16進数値など特殊なデータを人間が視認し易いように変換して出力することも可能になっている(例えば、特許文献1参照)。
特開平11−272433号公報(第2−3頁、図1乃至図8)
ところで、金融系などのオンラインシステムにおいては、契約情報や契約の更新情報などをトランザクションデータとしてオンラインで受領した際に、そのデータに基づいて更新されるデータベースの更新前及び更新後のログデータをトランザクションと対応付けて保存する機能を備えたものが多く、このようなシステムでは過去1年〜数年分程度の前記情報をログデータとして保管されていることが多い。
また、前述した機能は、アプリケーションプログラムの開発や保守時にも利用できることが多いため、アプリケーションプログラムの開発者がプログラムのデバッグ(検証)に、そのログデータを利用することは極めて効果的で、意味のあるものであった。ただ、これらのログデータは、個々のシステムやアプリケーション依存の情報であり、汎用的に視認性の高い形態で表示することが困難であるため、多くの場合は、データを端末装置に表示したり、プリントアウトしたりして検証用に利用することが多かった。
しかしながら、金融系のオンラインシステムなどの開発作業においては、これらの検証用のデータの量が膨大であり、プリントアウトした場合には段ボール箱で30〜50箱になることも希ではなく、この膨大なデータの中から該当する検証対象項目を手作業で拾い出して確認する必要があるため、検証コストも膨大なものになっていた。また、紙ベースでの検証作業では、データの区切りのよいところで紙を分断することも簡単ではないことから、複数人での平行作業にも支障を来すことが多く、これも検証コストを増大させる要因になっていた。
また、前述した機能は、アプリケーションプログラムの開発や保守時にも利用できることが多いため、アプリケーションプログラムの開発者がプログラムのデバッグ(検証)に、そのログデータを利用することは極めて効果的で、意味のあるものであった。ただ、これらのログデータは、個々のシステムやアプリケーション依存の情報であり、汎用的に視認性の高い形態で表示することが困難であるため、多くの場合は、データを端末装置に表示したり、プリントアウトしたりして検証用に利用することが多かった。
しかしながら、金融系のオンラインシステムなどの開発作業においては、これらの検証用のデータの量が膨大であり、プリントアウトした場合には段ボール箱で30〜50箱になることも希ではなく、この膨大なデータの中から該当する検証対象項目を手作業で拾い出して確認する必要があるため、検証コストも膨大なものになっていた。また、紙ベースでの検証作業では、データの区切りのよいところで紙を分断することも簡単ではないことから、複数人での平行作業にも支障を来すことが多く、これも検証コストを増大させる要因になっていた。
本発明は、前述のような課題を解決するためになされたもので、膨大な用紙や作業時間、検証コストなどをかけることなく、開発されたアプリケーションプログラムが正しく動作したか否かを検証するためのプログラム検証支援システムを提供することを目的とする。
本発明に係るプログラム検証支援システムは、アプリケーションプログラムの実行システムに、トランザクション毎のアプリケーションプログラム実行により更新対象となるデータベースの更新前ログデータ、及びアプリケーションプログラム実行により更新された当該データベースの更新後ログデータの読み込みを要求し、この要求に応答して前記更新前及び更新後ログデータが受信されたときそれを読み込む第1のデータ読込手段と、予めトランザクション、及びトランザクション毎の更新前及び更新後ログデータに含まれるテーブル名に対応して設けられた定義データを有し、第1のデータ読込手段により読み込まれた更新前及び更新後ログデータに含まれるテーブル名に基づいて定義データを検索し、かつ、検索した定義データに記載の属性データに基づいてトランザクションと更新前及び更新後ログデータを項目毎に取り出して解読するデータ解読手段と、データ解読手段により解読された更新前及び更新後ログデータを項目毎に対比可能に表示部の画面に表示するデータ編集出力手段とを備えたものである。
本発明においては、第1のデータ読込手段により読み込まれた更新前及び更新後ログデータに設定されたテーブル名に基づいて定義データを検索し、かつ、検索した定義データに記載の属性データに基づいて当該更新前及び更新後ログデータを項目毎に分解して解読し、この解読された更新前及び更新後ログデータを項目毎に対比可能に表示部の画面に表示するようにしたので、膨大な用紙や作業時間、検証コストなどをかけることなく、開発されたアプリケーションプログラムが正しく動作したか否かを検証できる。
図1は本発明の実施の形態を示すプログラム検証支援システムのブロック構成図、図2はログデータの概略構成を示す図、図3は中間データの概略構成を示す図、図4は定義ファイルのログ構成ファイル及び項目定義ファイルの一例を示す図である。
図1に示す端末装置10は、アプリケーションプログラムの実行システムの例えばホストコンピュータ40に専用回線30を介して接続されたパーソナルコンピュータからなり、図中に示す各手段によりプログラム検証支援システムが構築されている。ホストコンピュータ40は、例えば、新規保険の契約に関する各種のトランザクションデータがオンラインを介して受信されると、そのデータに基づいてアプリケーションプログラムを実行し、その結果をトランザクションと対応付けてデータベース41に登録する。この場合は、更新前情報が存在しないため、その新規データを更新前ログデータとして保存する。また、契約の更新に関するトランザクションデータが受信されたときは、そのデータに基づいてアプリケーションプログラムを実行し、その結果をアプリケーションプログラムが更新対象とするテーブルの内容を更新前ログデータとして、また、そのアプリケーションプログラムの実行後の更新対象テーブルの内容を更新後ログデータとして、それぞれトランザクションデータと対応付けてデータ記憶装置43に保存する。
図1に示す端末装置10は、アプリケーションプログラムの実行システムの例えばホストコンピュータ40に専用回線30を介して接続されたパーソナルコンピュータからなり、図中に示す各手段によりプログラム検証支援システムが構築されている。ホストコンピュータ40は、例えば、新規保険の契約に関する各種のトランザクションデータがオンラインを介して受信されると、そのデータに基づいてアプリケーションプログラムを実行し、その結果をトランザクションと対応付けてデータベース41に登録する。この場合は、更新前情報が存在しないため、その新規データを更新前ログデータとして保存する。また、契約の更新に関するトランザクションデータが受信されたときは、そのデータに基づいてアプリケーションプログラムを実行し、その結果をアプリケーションプログラムが更新対象とするテーブルの内容を更新前ログデータとして、また、そのアプリケーションプログラムの実行後の更新対象テーブルの内容を更新後ログデータとして、それぞれトランザクションデータと対応付けてデータ記憶装置43に保存する。
また、新たに開発、又は改造されたアプリケーションプログラムのテストを行う場合は、予めテスト用データベース42にテストデータ(顧客及び契約情報など)を保存し、これを参照及び更新されるようにする。ホストコンピュータ40は、テスト用に受信されたトランザクションデータに応じて、検証対象であるアプリケーションプログラムを実行し、テスト用データベース42の中で当該アプリケーションプログラムが更新対象とするテーブルの内容を更新前ログデータとして、また、テスト用データベース42の中で当該アプリケーションプログラムの実行後の更新対象テーブルの内容を更新後ログデータとして、トランザクションデータと関連付けてデータ記憶装置43に保存する。さらに、新規データの登録時は、これを更新前ログデータとして、受信されたトランザクションデータと関連付けてデータ記憶装置43に保存する。
また、テスト用のトランザクションデータを受信しアプリケーションプログラムの実行時に発生し、かつ、アプリケーションプログラムの動作検証に必要な途中の情報や結果がある場合は、中間データとしてデータ記憶装置43に保存する。その中間データは、例えば顧客名や住所などのようにトランザクションデータ中に直接含まれるようなデータではなく、配当金の計算を行う過程で得られる配当率などのデータが主たる対象となっている。
このホストコンピュータ40は、開発又は改造されたアプリケーションプログラム実行の後に、端末装置10からの更新前及び更新後ログデータの読出要求を受けたときは、データ記憶装置43に保存したトランザクションデータ毎の更新前及び更新後ログデータをログデータ31として専用回線30を介して端末装置10に転送する。また、中間データの読出要求を受けたときは、データ記憶装置43に保存した中間データ32を専用回線30を介して端末装置10に転送する。
前述したログデータ31は、例えば図2に示すように、先頭にヘッダ部31aが設けられ、これに続いてトランザクション毎にトランザクション部31b及び複数のテーブルデータ部31c,31d…が配列されてなっている。ヘッダ部31aは、固定長で、例えば、基本情報としてトランザクションの入力年月日、時刻、入力場所などが、アプリケーション情報として契約番号、情報の入力端末番号などが書き込まれている。トランザクション部31bは、ヘッダ部31aに続いて書かれた固定長のトランザクション名と、可変長のトランザクションデータ部とからなっている。テーブルデータ部31c,31d…は、更新前か更新後かを識別させるためのフラグと、固定長のテーブル名と、キー部(可変長)を含む可変長のデータ部とからなっている。
テーブルデータ部31c,31d…のフラグは、例えば、固定長の1文字で表現され、データ部に更新前ログデータが書き込まれているときは記号の「*」が記入され、更新後ログデータが書き込まれているときは「スペース」となっている。データ部に含まれているキー部は、テーブル中で各レコードをユニークに識別するためのデータの一部であり、テーブルデータ部31c,31d…の一部を構成する。例えば、テーブル名が「契約」の場合には契約番号が、テーブル名が「顧客」の場合には顧客番号がキーとして書き込まれており、また、テーブル名が「住所」の場合には顧客番号+住所区分(自宅又は会社などの区分)がキーとして書き込まれている。データ部には、前記キーを除くデータ項目が書かれており、更新前ログデータの場合には、アプリケーションプログラムの実行によって更新される前の当該テーブル内の対象レコードの内容が、また、更新後ログデータの場合には、アプリケーションプログラムの実行によって更新された当該テーブル内の対象レコードの内容が書き込まれている。
中間データ32は、図3に示すように、先頭にヘッダ部(固定長)が設けられ、これに続いてデータ部が一つだけ存在する。このデータ部には、前述したように配当率などのデータが可変長のデータ群として書き込まれている。
前述した端末装置10は、キーボードやマウスなどからなる入力部(図示せず)と、表示部18とを有し、第1及び第2のデータ読込手段の機能を備えたデータ読込手段11と、データ取得手段12と、定義ファイル13(定義データ)と、データ解読手段14と、データ編集出力手段15と、中間データ項目定義ファイル16(中間定義データ)と、中間データ解読手段17とにより構築されるプログラム検証支援システムを備えている。前記の定義ファイル13は、図4に示すようにログ構成ファイル13a及び項目定義ファイル13bと、トランザクション項目定義ファイル(図示せず)とからなり、中間データ項目定義ファイル16と共に本装置10の記憶部(図示せず)にそれぞれ保存されている。なお、本実施の形態におけるプログラム検証支援システムの各手段の機能については、動作説明時に詳述する。
定義ファイル13のログ構成ファイル13aは、図4(a)に示すように、トランザクション名部とテーブル名部とに分類されている。そして、トランザクション名部は、「トランザクション名(TRX/TBL英字名)」と「トランザクション名日本語表記(TRX/TBL日本語名)」とをデータとして持つデータブロック列で、そのデータブロック列の中でログデータ31のトランザクション部31bに書かれたトランザクション名と同一のトランザクション名データを持つデータブロックを検索することで、トランザクション名に対応する日本語表記を取得させるためのものである。
また、テーブル名部は、同様に「テーブル名(TRX/TBL英字名)」と「テーブル名日本語表記(TRX/TBL日本語)」と「キー長」とをデータとして持つデータブロック列で、そのデータブロック列の中でログデータ31の各テーブルデータ部31c,31d…のテーブル名に書かれたテーブル名と同一のテーブル名データを持つデータブロックを検索することで、テーブル名に対応する日本語表記及びそのテーブルのキー長を取得させるためのものである。
また、テーブル名部は、同様に「テーブル名(TRX/TBL英字名)」と「テーブル名日本語表記(TRX/TBL日本語)」と「キー長」とをデータとして持つデータブロック列で、そのデータブロック列の中でログデータ31の各テーブルデータ部31c,31d…のテーブル名に書かれたテーブル名と同一のテーブル名データを持つデータブロックを検索することで、テーブル名に対応する日本語表記及びそのテーブルのキー長を取得させるためのものである。
項目定義ファイル13bは、図4(b)に示すように、テーブル名毎に独立して用意されており、そのファイル名とログデータ31のテーブルデータ部31c,31d…に書き込まれたテーブル名とが関連付けられている。それぞれの項目定義ファイル13bには、検証対象の各項目の更新前及び更新後ログデータを解析するための属性データが書き込まれている。属性データは、例えばレベル、項目長、項目属性、繰り返し回数、初期値判定コードからなっている。なお、本実施の形態では、実装を容易にするためにテーブル毎に項目定義ファイル13bを用意しているが、単一ファイルで構成しても良い。
属性データのレベルは、検証対象の項目名間の相対的な従属関係を指定するためのもので、「上位レベル」及び「下位レベル」を示すレベル値によってその従属関係が判別できるようになっている。例えば、「上位レベル値」を「10」とし、「下位レベル値」を「20」としており、「10」が数字の大きいレベル値「20」を包括する。従属する項目を持つ項目は、従属する項目の仮想的な代表項目を示したもので、実際には下位の項目の集合体である。この従属関係は、後述する繰り返し回数の指定において、複数の項目をサイクリックに繰り返す場合に利用する目的で用意されている。
項目長は、更新前及び更新後ログデータ中における各項目のアプリケーションプログラム実行環境におけるデータ長(バイト数)で、最初の項目名(契約−番号)に記載の項目長は「5」であり、かつ後述する項目属性「0」が「文字」を示すことから、元データは5文字の文字列であることを示し、取得したログデータ31のヘッダ部31aなどを除いたデータ部(キー部を含む)の1バイト目から5バイト目までが当該項目であることを示し、次項目が6バイト目から開始されることを示している。その次の項目名(契約−金額)に記載の項目長「6」は項目属性「1」が十進数を示すことから、元データは6バイト、即ち48ビットで表現された十進数であり、データ部の6バイト目から11バイト目までが当該項目であることを示している。
項目属性は、項目長により指定されたデータ文字列が数字か1バイト文字か、又は2バイト文字の漢字かなどを識別させるための可視化用のコード値である。コード値の「0」はデータ文字列が文字(1バイト文字)であることを示し、「1」は10進数、「2」は2進数、「3」は漢字であることを示しており、これらコード値を基に各項目名のデータ文字列を識別する。
繰り返し回数の項に記載の「0」は項目の繰り返しが無いことを示しており、「2」は同じ項目を2回繰り返すように指定している。図4(b)に示す項目定義ファイル13bにおいて、属性データのレベルが「10」、繰り返し回数が「2」、検証対象の項目名が「契約変更−情報」の場合、次の列に示すレベル「20」の「契約変更−日付」と「前回契約−金額」がレベル「10」の項目に従属するものとして、「契約変更−日付」と「前回契約−金額」をそれぞれ2回繰り返す。この場合、レベル「10」の項目である「契約変更−情報」はレベル「20」の集合体を表したものであり、実体としてデータはない。
初期値判定コードには、例えば「S」、「Z」、「M」、「X」の4つのコード値があり、「S」はスペース(ブランク)、「Z」はゼロを意味し、「M」は負数、「X」は初期値判定対象外であることを意味している。これらコード値は、例えば保険契約の成立によりデータ記憶装置43に保存された契約データのうち検証対象となる項目の属性や意味に対応して予め設定されたもので、各項目が初期状態に設定された空のレコード生成後、データを書き込んだ内容の検証に利用する。例えば、保存データにおいて初期値がスペースであるような項目に対しては、その項目(検証対象)に対するコード値は「S」が設定され、初期値がゼロであるような項目に対しては「Z」のコード値が設定され、ゼロ以上の正の値が有効値であり初期値が負数であるような項目に対しては「M」のコード値が設定され、その項目に有効値が設定されたのか、或いは初期状態のままなのかが容易に判定できる。また、その項目に値が設定されたか否かを問わず、無条件に表示対象として確認する項目に関しては「X」のコード値が設定されている。
定義ファイル13のトランザクション項目定義ファイルは、図示していないが、ログ構成ファイル13aに書かれた各種のトランザクション名にそれぞれ対応して用意され、トランザクション名と同じ名称のファイル名を有している。それぞれのファイルは、ファイル名毎に設定された項目名、各項目名に設定された各種データの文字列の実長を指定する項目長、項目長により指定されたデータ文字列が数字か文字か、又は漢字かなどを識別させるための属性項目などからなっている。
中間データ項目定義ファイルは、図示していないが、中間データに含まれる各種の中間データ名にそれぞれ対応して用意され、中間データ名と同じ名称のファイル名を有している。それぞれの中間データ項目定義ファイルは、ファイル名毎に設定された項目名、各項目名に設定されたデータを抽出するための項目長、項目長により指定されたデータが数字か文字か、又は漢字かなどを識別させるための属性項目、初期値判定コードなどからなっている。
次に、本実施の形態の動作について説明する。まず最初に更新前及び更新後ログデータに対するプログラム検証支援システムの動作について説明する。図5は更新前及び更新後ログデータに対するプログラム検証支援システムの動作を示すフローチャート、図6は契約金額に関する更新前及び更新後ログデータの編集表示例を示す図である。
入力部を介して更新前及び更新後ログデータの読み込みと対象ログデータが指示されると(S1)、端末装置10のデータ読込手段11は、ログデータ31の読み込みを専用回線30を介してホストコンピュータ40に要求し、この要求に応答してログデータ31が受信されると、データ取得手段12は、そのログデータ31(図2参照)を取得して記憶部(図示せず)に保存する(S2)。
一方、データ解読手段14は、ログデータ31が保存されると、図5には示していないが、そのログデータ31を記憶部から読み出してヘッダ部31aにアクセスし、前述した基本情報、アプリケーション情報などを認識して表示可能な形式に変換し、データ編集出力手段15に転送する。次いで、ログ構成ファイル13a(図4(a)参照)を記憶部から読み出して取得し(S3)、読み込んだログデータ31中のトランザクション部31bからトランザクション名(本実施の形態では「TRXIN001」)を読み出し、これと同一のトランザクション名「TRXIN001」をログ構成ファイル13aのトランザクション名部で検索し、これに対応する日本語名として「入力TRX001」を取得し、かつ、ログデータ31から読み出したトランザクション名「TRXIN001」と同じ名称のファイル名を有するトランザクション項目定義ファイル(図示せず)を取得する。
そして、取得したトランザクション項目定義ファイルの各項目名に設定された項目長に従ってトランザクション部31bのトランザクションデータ部に記載の各種データを抽出し、この抽出した各種データをトランザクション項目定義ファイルに記載の項目属性に従ってそれぞれ表示形式に変換し、先に取得したトランザクション名「入力TRX001」を表示形式に変換し、これらを関連付けてデータ編集出力手段15に転送する。
その後、データ解読手段14は、ログデータ31のテーブルデータ部31c,31d…に記載のフラグにアクセスして更新前か更新後かを判定する。フラグが空白のときは更新後と判断するが、フラグに「*」の記号があるときは更新前と判断してフラグに続く固定長のテーブル名を取得する(S4)。そして、その固定長のテーブル名と同じ名称のテーブル名をログ構成ファイル13aから取得すると共に、テーブル名に関連付けられたキー長を取得する。その後は、先に取得した固定長のテーブル名と同じ名称のファイル名を有する項目定義ファイル13bを検索する(S5)。
例えば、ログデータ31の最初のテーブルデータ部31cに記載のテーブル名が「KEIYAKU0」の場合、ログ構成ファイル13aのテーブル名からはテーブルの日本語名として「契約」及びキー長の「5バイト」を取得し、次いで、先に取得したテーブル名「KEIYAKU0」と同じファイル名称を持ち、本実施の形態においては、「CSV」をファイル拡張子とするファイル「KEIYAKU0.CSV」を有する項目定義ファイル13bを検索する。また、2番目のテーブルデータ部31dに記載のテーブル名が「KOKYAKU0」の場合、ログ構成ファイル13aのテーブル名からは日本語名として「顧客」及びキー長の「10バイト」を取得し、次いで、先に取得したテーブル名「KOKYAKU0」と同じ名称のファイル名「KOKYAKU0.CSV」を有する項目定義ファイル13bを検索する。さらに、3番目のテーブルデータ部に記載のテーブル名が「JYUUSHO0」の場合、ログ構成ファイル13aからは「住所」及びキー長の「12バイト」を取得し、次いで、先に取得したテーブル名「JYUUSHO0」と同じ名称のファイル名「JYUUSHO0.CSV」を有する項目定義ファイル13bを検索する。
最初に取得したテーブル名と同じファイル名「KEIYAKU0.CSV」の項目定義ファイル13bを検索すると、ログ構成ファイル13aから取得したキー長(5バイト)で指定されたデータ部のキー部に記載のデータ「契約−番号」をキーとし、項目定義ファイル13bに記載された「契約−番号」、「契約−金額」、「契約変更−情報」、「契約変更−日付」及び「前回契約−金額」の各項目名の項目長合計に基づいて、テーブルデータ部31cからデータ部の範囲を認識し、その範囲内の更新前データを抽出する(S6)。なお、この抽出方法として、予め項目長の合計値を項目定義ファイル13bに記述しておいても良いし、テーブルデータ部31cの最後にデータ中に決して出現しないことが判っているデータパターンをデリミタとして記述しておき、このデリミタを検出することでテーブルデータ部の終わりを検知するという方法などでも良い。
そして、その項目定義ファイル13b「KEIYAKU0.CSV」の最初の項目名「契約−番号」に記載の項目長に基づいて、抽出した更新前データからその項目名のデータを取り出す(S7)。そして、そのデータに対し初期値判定コード「X」が設定されているかどうかを判定する(S8)。初期値判定コード「X」が設定されているときは表示対象と判断してS16に進むが、この場合は、前記データ(契約−番号)に対する初期値判定コードが「S」であるため、S9に進んでログデータ31の中に「更新後」を示すフラグ値を持つテーブルデータ部が存在するか否かを検索する(S9)。ログデータ31の中にそのテーブルデータ部がないときは、前記データが初期か否かの判定に入るが(S10)、ログデータ31の中に更新後のテーブルデータ部を認識したときは、先に取得したテーブル名「KEIYAKU0」及び同一のキーデータを持つテーブルデータ部を検索する。前述した更新前のテーブルデータ部31cに対応する更新後のテーブルデータ部を検索したときは、前記と同様に、先に取得したキー長(5バイト)で指定されたデータ部のキー部に記載のデータ(契約−番号)をキーとし、項目定義ファイル13bに記載された各項目名(契約−番号の項目名も含む)に設定された項目長合計に基づいて、テーブルデータ部(図示せず)からデータ部の範囲を認識し、その範囲内の更新後データを抽出する。そして、前記と同様に最初の項目名(契約−番号)に記載の項目長に基づいて、抽出した更新後ログデータからその項目名のデータを取り出す(S11)。
その後、取り出した更新前と更新後の各データ(契約−番号)が共に初期値かどうかを判定する(S12)。両方のデータが共に初期値「S:スペース」の場合は、その両方のデータを表示対象外とするが(S13)、少なくとも一方のデータ、又は両方のデータが初期値でないときは、更新前と更新後の各データが同値、即ち同じ内容かどうかを判定する(S14)。両方のデータが同値でないときは、更新前と更新後のデータを表示対象とし、また、両方のデータが同値のときは、更新後側のデータを表示対象外とする(S15)。そして、その項目名(契約−番号)が、取得した項目定義ファイル13b(ファイル名:KEIYAKU0.CSV)に記載された最後の項目名かどうかを判定し(S16)、最後の項目名のときはS17に進むが、最後の項目名でないときは、S7に戻って、抽出した更新前データから次の項目名(契約−金額)に設定されたデータを項目長に基づいて取り出し、前述したS8〜S16の動作を繰り返し行う。
前述したS7〜S16の動作を項目名毎に繰り返し行って終了すると、項目名毎の表示対象の更新前と更新後のデータを項目属性に従って表示形式に変換すると共に、先に取得したログ構成ファイル13aに記載のテーブル名(契約)を表示形式に変換し(S17)、かつ、そのテーブル名と更新前及び更新後のデータとを関連付けてデータ編集出力手段15に転送する。項目定義ファイル13b「KEIYAKU0.CSV」に記載の「契約−番号」は、項目属性が「0」であるため、該当するデータはその属性に応じて表示形式に変換され、「契約−金額」は、項目属性が「1」であるため、該当するデータはその属性に応じて表示形式に変換され、「契約変更−情報」に従属する「契約変更−日付」は、項目属性が「0」であるため、該当するデータはその属性に応じて表示形式に変換され、また、「契約変更−情報」に従属する「前回契約−金額」は、項目属性が「1」であるため、該当するデータはその属性に応じて表示形式に変換される。
一方、データ編集出力手段15は、ログデータ解析手段14からの転送データを受けたとき、例えば図6に示すように「区分」、「TRX/TBL名」、「項目名」、「更新前値」、「更新後値」及び「検証メモ」を項目とするリストにその転送データを書き込む(S18)。この時点では、ヘッダ及びトランザクションに関するデータを書き込み、次いで、契約に関するデータを比較可能に更新前値と更新後値とにそれぞれ書き込む。契約に関するデータを書き込む際には、項目定義ファイル13bに記載の項目名毎のレベル値及び繰り返し回数に基づいて行う。契約−番号の項の更新後値側がブランクになっているのは、更新前値側の契約番号と同一であったためであり、「契約変更−日付」と「前回契約−金額」が2回繰り返されているのは、前述したように、項目定義ファイル13bの「契約変更−情報」の項に記載された繰り返し回数「2」とその「契約変更−情報」に続く「契約変更−日付」及び「前回契約−金額」の各項に記載のレベル値「20」に基づくものである。
テーブル「契約」に関するデータの書き込みが終了すると、データ解読手段14は、ログデータ31にアクセスして読み込んだログデータ31中に含まれる全てのテーブルデータ部の処理が終了したか否かを判定する(S19)。全てのテーブルデータ部の処理が終了したと判断したときは、リストの画面表示処理に進むが(S20)、未だ処理すべきテーブルデータ部が残っている場合には、次のテーブルデータ部のテーブル名を取得し(S4)、前述した動作を繰り返し行う(S5〜S16)。
前記の判定処理により、次のテーブルデータ部として、テーブル名「KOKYAKU0」であるテーブルデータ部31dを解読する。そして、そのテーブル名「KOKYAKU0」における項目名毎の更新前及び更新後のデータに対する表示対象の判別が終了すると、表示対象のデータを項目定義ファイル13b(ファイル名:KOKYAKU0.CSV)に記載の項目属性に従って表示形式に変換すると共に、先に取得したログ構成ファイル13aに記載のテーブル名(顧客)を表示形式に変換し(S17)、かつ、そのテーブル名と更新前及び更新後のデータとを関連付けてデータ編集出力手段15に転送する。項目定義ファイル13b「KOKYAKU0.CSV」に記載の「顧客−番号」及び「カナ−氏名」は、項目属性が「0」であるため、該当するデータはその属性に応じて表示形式(文字)に変換され、「漢字−氏名」は項目属性が「3」であるため、該当するデータはその属性に応じて表示形式(漢字)に変換される。一方、データ編集出力手段15は、その転送データを前記のリストに書き込む(S18)。顧客に関しては、図6に示すように、「顧客−番号」、「カナ−氏名」及び「漢字−氏名」の更新後値がそれぞれ更新前値と同一であるためブランクになっている。
顧客に関するデータの書き込みが終了すると、データ解読手段14は、前記と同様にログデータ31にアクセスしてテーブルデータ部の処理が終了したか否かの判定に入り(S19)、テーブル名が終了していないときは、前述したようにS4〜S17の動作を繰り返し、これを、読み込んだログデータ31の中で更新前側のテーブルデータ部が終了するまで繰り返し行う。ログデータ31中の更新前及び更新後のテーブルデータ部に対する解読及び処理が終了すると、データ解読手段14による操作を終了する。
一方、データ編集出力手段15は、データ解読手段14からのデータが入力される毎に前記リストに書き込み、これを1トランザクション毎にリストを作成して書き込んでいく。データ解読手段14を通じてテーブルデータ部の終了を確認したときは、作成したリスト(図6参照)を表示部18の画面に表示する(S20)。また、リスト表示の中には、ログデータ31中に含まれない年月日や時刻の「:」、顧客番号、契約番号などの「−」が付加されているが、これらは、プログラムで項目名を見て個別に判断処理されたものである。
データ編集出力手段15は、リストを画面に表示した後、キー操作による更新前値と更新後値に対する検証結果が入力されたかどうかを判定する(S21)。例えば、項目名の「契約−金額」に対して「金額変更」、項目名の「契約変更−日付(1)」に対して「金額変更日」などの検証結果が入力されたときは、各項目名に関連付けて登録し、かつ図6に示すように、該当する検証メモの欄に書き込んで表示する(S22)。そして、保存の指示があったかどうかを判定し(S23)、保存の指示がないときはS21に戻って検証結果が入力されたかどうかを判定する。また、キー操作による保存指示を受けたときは、画面上のリストをフロッピディスクなどの記録媒体に保存し(S24)、前述した一連の動作を終了する。
次に中間データに対するプログラム検証支援システムの動作について説明する。図7は中間データに対するプログラム検証支援システムの動作を示すフローチャート、図8は配当計算に係わる中間データの編集表示例を示す図である。
入力部の操作により、例えば、「中間結果」が選択され、読み込むべき中間データ名の「計算エリア」が指定されると(S31)、端末装置10のデータ読込手段11は、指定された中間データ名に対応付けられた中間データ32の読み込みを専用回線30を介してホストコンピュータ40に要求し、この要求に応答して指定の中間データ32が受信されると、データ取得手段12は、その中間データ32を取得して記憶部(図示せず)に保存する(S32)。
入力部の操作により、例えば、「中間結果」が選択され、読み込むべき中間データ名の「計算エリア」が指定されると(S31)、端末装置10のデータ読込手段11は、指定された中間データ名に対応付けられた中間データ32の読み込みを専用回線30を介してホストコンピュータ40に要求し、この要求に応答して指定の中間データ32が受信されると、データ取得手段12は、その中間データ32を取得して記憶部(図示せず)に保存する(S32)。
一方、中間データ解読手段17は、指定された中間データ32が保存されると、先の中間データ名をキーワードとして、同じ名称のファイル名を有する中間データ項目定義ファイル(図示せず)を検索する(S33)。そして、図7には示していないが、中間データ32を記憶部から読み出してヘッダ部を認識し、次いで、検索した中間データ項目定義ファイルに記載の各項目の属性情報に基づき、最初の項目のデータを取り出す(S35)。
そして、そのデータに対し初期値判定コード「X」が設定されているかどうかを判定する(S36)。初期値判定コード「X」が設定されているときは表示対象と判断してS39に進むが、初期値判定コード「X」が設定されていないときは、抽出したデータの内容(項目値)が初期値判定コードのS、Z、Mの何れかかどうかを中間データ項目定義ファイルを通じて判定する(S37)。そのデータに初期値判定コードで設定された初期値データが設定されていないときは表示対象と判断してS39に進み、また、その初期値データが設定されているときは表示対象外とする(S38)。
その後、その項目名が、検索した中間データ項目定義ファイルに記載された最後の項目名かどうかを判定し(S39)、最後の項目名のときはS40に進むが、最後の項目名でないときは、S35に戻って、抽出したデータから次の項目名のデータを項目長に基づいて取り出し、前述したS36〜S39の動作を繰り返し行う。このS35〜S39の動作を項目名毎に繰り返し行って終了すると、項目名毎の表示対象のデータを項目属性に従って表示形式に変換し(S40)、かつ、入力された中間データ名(計算エリア)と関連付けてデータ編集出力手段15に転送する。
一方、データ編集出力手段15は、中間データ解読手段14からの転送データを受けたとき、例えば図8に示すように「中間データ名」、「項目名」、「項目値」、「検証メモ」などを項目とするリストに転送データを書き込む(S41)。この場合、中間データ名の項に「計算エリア」を書き込み、項目名の項に中間データ項目定義ファイルに記載の項目名を書き込み、項目値の項に項目名に対応付けられた表示対象のデータを書き込む。
データ編集出力手段15は、リストへの書き込みが終了すると、そのリストを表示部18の画面に表示し(S42)、キー操作による項目値に対する検証結果が入力されたかどうかを判定する(S43)。例えば、項目名の「合計配当−金額」に対して「計算の正当性を確認」、項目名の「配当内容1−金額」に対して「別紙、手計算結果参照」などの検証結果が入力されたときは、各項目名に関連付けて登録し、かつ図8に示すように、該当する検証メモの欄に書き込んで表示する(S44)。そして、保存の指示があったかどうかを判定し(S45)、保存の指示がないときはS43に戻って検証結果が入力されたかどうかを判定する。また、キー操作による保存指示を受けたときは、画面上のリストをフロッピディスクなどの記録媒体に保存し(S46)、前述した一連の動作を終了する。
以上のように本実施の形態によれば、トランザクション毎に更新前及び更新後ログデータを項目毎に対比可能に、かつ検証結果を記入可能にリストを作成して、表示部の画面に表示するようにしたので、膨大な用紙や作業時間、検証コストなどをかけることなく、開発されたアプリケーションプログラムが正しく動作したか否かを検証できる。
また、更新前及び更新後ログデータが初期値のときは表示対象外とし、更新前及び更新後ログデータが同一のときは更新後ログデータを表示対象外としたので、検証者の作業負担を軽減できると共に作業時間を短縮できる。
さらに、アプリケーションプログラムのトランザクション毎の実行時に発生する途中の情報や結果の中間データを表示できるようにしたので、途中の情報から結果が正しいか否か、また結果が正しくない場合には、どの処理が誤っているかを容易に確認することができる。
また、更新前及び更新後ログデータが初期値のときは表示対象外とし、更新前及び更新後ログデータが同一のときは更新後ログデータを表示対象外としたので、検証者の作業負担を軽減できると共に作業時間を短縮できる。
さらに、アプリケーションプログラムのトランザクション毎の実行時に発生する途中の情報や結果の中間データを表示できるようにしたので、途中の情報から結果が正しいか否か、また結果が正しくない場合には、どの処理が誤っているかを容易に確認することができる。
10 端末装置、11 データ読込手段、12 データ取得手段、13 定義ファイル、14 データ解読手段、15 データ編集出力手段、16 中間データ項目定義ファイル、17 中間データ解読手段、18 表示部、30 専用回線、40 ホストコンピュータ、41 データベース、42 テスト用データベース、43 データ記憶装置。
Claims (8)
- アプリケーションプログラムの実行システムに、トランザクション毎のアプリケーションプログラム実行により更新対象となるデータベースの更新前ログデータ、及びアプリケーションプログラム実行により更新された当該データベースの更新後ログデータの読み込みを要求し、この要求に応答して前記更新前及び更新後ログデータが受信されたときそれを読み込む第1のデータ読込手段と、
予め前記トランザクション、及び前記トランザクション毎の更新前及び更新後ログデータに含まれるテーブル名に対応して設けられた定義データを有し、前記第1のデータ読込手段により読み込まれた前記更新前及び更新後ログデータに含まれるテーブル名に基づいて定義データを検索し、かつ、検索した定義データに記載の属性データに基づいてトランザクションと当該更新前及び更新後ログデータを項目毎に取り出して解読するデータ解読手段と、
該データ解読手段により解読された更新前及び更新後ログデータを項目毎に対比可能に表示部の画面に表示するデータ編集出力手段と
を備えたことを特徴とするプログラム検証支援システム。 - 前記データ解読手段は、更新前及び更新後ログデータを項目毎に分解した際、前記定義データの属性データに基づいて更新前及び更新後ログデータが共に初期値かどうかを判定し、更新前及び更新後ログデータが共に初期値のときはその更新前及び更新後ログデータを表示対象外とすることを特徴とする請求項1記載のプログラム検証支援システム。
- 前記データ解読手段は、更新前及び更新後ログデータを項目毎に分解した際、前記定義データの属性データに基づいて更新前及び更新後ログデータが同一かどうかを判定し、同一のときは更新後ログデータを表示対象外とすることを特徴とする請求項1又は2記載のプログラム検証支援システム。
- 前記データ編集出力手段は、更新前及び更新後ログデータを項目毎に対比可能に表示部の画面に表示する際、項目毎に検証結果が入力可能なエリアを設けて任意の検証結果情報を入力及び編集可能とし、これを表示することを特徴とする請求項1乃至3の何れかに記載のプログラム検証支援システム。
- アプリケーションプログラム実行により更新されたデータベースの更新後ログデータに対する途中の中間データが指定されたときに前記実行システムに読み込みを要求し、この要求に応答して指定の中間データが受信されたときそれを読み込む第2のデータ読込手段と、
予め中間データの指定に対応して設けられた中間定義データを有し、前記第2のデータ読込手段により読み込まれた中間データに対応する中間定義データを検索し、かつ、検索した中間定義データに記載の属性データに基づいて当該中間データを項目毎に取り出して解読する中間データ解読手段とを備え、
前記データ編集出力手段は、前記中間データ解読手段により解読された中間データを項目毎に表示部の画面に表示することを特徴とする請求項1乃至4の何れかに記載のプログラム検証支援システム。 - 前記中間データ解読手段は、中間データを項目毎に分解した際、前記中間定義データの属性データに基づいて中間データが初期値かどうかを判定し、初期値のときは表示対象外とすることを特徴とする請求項5記載のプログラム検証支援システム。
- 前記データ編集出力手段は、中間データを項目毎に表示部の画面に表示する際、項目毎に検証結果が入力可能なエリアを設けて表示することを特徴とする請求項5又は6記載のプログラム検証支援システム。
- 前記データ編集出力手段は、入力部の操作により指定の項目に対する検証結果が入力されると、前記エリアのうち該当する項に書き込み、入力部の操作による保存指示を受けたときは記録媒体に記録することを特徴とする請求項4又は7記載のプログラム検証支援システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005377598A JP2007179347A (ja) | 2005-12-28 | 2005-12-28 | プログラム検証支援システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005377598A JP2007179347A (ja) | 2005-12-28 | 2005-12-28 | プログラム検証支援システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007179347A true JP2007179347A (ja) | 2007-07-12 |
Family
ID=38304463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005377598A Pending JP2007179347A (ja) | 2005-12-28 | 2005-12-28 | プログラム検証支援システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007179347A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009070170A (ja) * | 2007-09-13 | 2009-04-02 | Ricoh Co Ltd | 情報処理装置、情報処理プログラム、情報処理プログラムを記録する記録媒体 |
JP2009211213A (ja) * | 2008-03-01 | 2009-09-17 | Toshiba Corp | メモリシステム |
KR101024494B1 (ko) * | 2008-07-18 | 2011-03-31 | (주)디에프아이비즈 | 메타데이타를 이용한 변경 데이타 추출방법 |
US8443133B2 (en) | 2008-02-29 | 2013-05-14 | Kabushiki Kaisha Toshiba | Memory system storing management information and method of controlling same |
US10157241B2 (en) | 2012-01-18 | 2018-12-18 | Toyota Jidosha Kabushiki Kaisha | Information processing device and information processing method |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0296864A (ja) * | 1988-10-04 | 1990-04-09 | Hitachi Ltd | データ更新装置および更新方法 |
JPH05120065A (ja) * | 1991-10-25 | 1993-05-18 | Nippon Steel Corp | コンピユータプログラムのテスト検証方法 |
JPH07225707A (ja) * | 1994-02-10 | 1995-08-22 | Fujitsu Ltd | アプリケーションのテスト方法及びそのテスト支援装置 |
JP2000207254A (ja) * | 1999-01-11 | 2000-07-28 | Osaka Gas Co Ltd | サ―バ管理装置及び方法、並びにサ―バ管理プログラムを記録した記録媒体 |
JP2005092609A (ja) * | 2003-09-18 | 2005-04-07 | Nec Corp | シーケンス図表示装置およびシーケンス図表示プログラム |
-
2005
- 2005-12-28 JP JP2005377598A patent/JP2007179347A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0296864A (ja) * | 1988-10-04 | 1990-04-09 | Hitachi Ltd | データ更新装置および更新方法 |
JPH05120065A (ja) * | 1991-10-25 | 1993-05-18 | Nippon Steel Corp | コンピユータプログラムのテスト検証方法 |
JPH07225707A (ja) * | 1994-02-10 | 1995-08-22 | Fujitsu Ltd | アプリケーションのテスト方法及びそのテスト支援装置 |
JP2000207254A (ja) * | 1999-01-11 | 2000-07-28 | Osaka Gas Co Ltd | サ―バ管理装置及び方法、並びにサ―バ管理プログラムを記録した記録媒体 |
JP2005092609A (ja) * | 2003-09-18 | 2005-04-07 | Nec Corp | シーケンス図表示装置およびシーケンス図表示プログラム |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009070170A (ja) * | 2007-09-13 | 2009-04-02 | Ricoh Co Ltd | 情報処理装置、情報処理プログラム、情報処理プログラムを記録する記録媒体 |
US9164896B2 (en) | 2008-02-29 | 2015-10-20 | Kabushiki Kaisha Toshiba | Memory system storing management information and method of controlling same |
US8443133B2 (en) | 2008-02-29 | 2013-05-14 | Kabushiki Kaisha Toshiba | Memory system storing management information and method of controlling same |
TWI419161B (zh) * | 2008-02-29 | 2013-12-11 | Toshiba Kk | 儲存管理資訊之記憶體系統及控制其之方法 |
US8850107B2 (en) | 2008-02-29 | 2014-09-30 | Kabushiki Kaisha Toshiba | Memory system storing management information and method of controlling same |
US9582370B2 (en) | 2008-02-29 | 2017-02-28 | Kabushiki Kaisha Toshiba | Memory system storing management information and method of controlling same |
US10067698B2 (en) | 2008-02-29 | 2018-09-04 | Toshiba Memory Corporation | Memory system storing management information and method of controlling same |
US10379762B2 (en) | 2008-02-29 | 2019-08-13 | Toshiba Memory Corporation | Memory system storing management information and method of controlling same |
US10996868B2 (en) | 2008-02-29 | 2021-05-04 | Toshiba Memory Corporation | Memory system storing management information and method of controlling same |
US11573712B2 (en) | 2008-02-29 | 2023-02-07 | Kioxia Corporation | Memory system storing management information and method of controlling same |
US11972115B2 (en) | 2008-02-29 | 2024-04-30 | Kioxia Corporation | Memory system storing management information and method of controlling same |
JP2009211213A (ja) * | 2008-03-01 | 2009-09-17 | Toshiba Corp | メモリシステム |
KR101024494B1 (ko) * | 2008-07-18 | 2011-03-31 | (주)디에프아이비즈 | 메타데이타를 이용한 변경 데이타 추출방법 |
US10157241B2 (en) | 2012-01-18 | 2018-12-18 | Toyota Jidosha Kabushiki Kaisha | Information processing device and information processing method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4585039B2 (ja) | アプリケーションからの視覚的形式の情報をデータベースに格納しデータベースから検索する情報格納および検索システム | |
JP3175692B2 (ja) | コンピュータと携帯端末間のデータ連携システム及びそのデータ連携方法 | |
US7720814B2 (en) | Repopulating a database with document content | |
JP2007249322A (ja) | 文書視覚化装置及び文書視覚化プログラム | |
JP2007179347A (ja) | プログラム検証支援システム | |
JP7290391B2 (ja) | 情報処理装置及びプログラム | |
JP2018045286A (ja) | 前処理装置、インデックス追加ツリーデータ修正方法及びインデックス追加ツリーデータ修正プログラム | |
CN108304291B (zh) | 测试输入信息检索装置和方法 | |
JP2001256043A (ja) | プログラムソースの修正履歴管理方法および修正履歴管理システム | |
JP2018181121A (ja) | 分析装置、分析プログラム及び分析方法 | |
US6357002B1 (en) | Automated extraction of BIOS identification information for a computer system from any of a plurality of vendors | |
JP4373029B2 (ja) | 文書管理装置及び文書管理方法並びに記録媒体 | |
JP4828318B2 (ja) | 複数様式帳票統合印刷方法、システム及びプログラム | |
JP5198149B2 (ja) | 情報処理装置、プログラム、及び保険商品約款生成方法 | |
JP5504212B2 (ja) | テストケース自動生成システム、テストケース自動生成方法、およびテストケース自動生成プログラム | |
JP2702986B2 (ja) | プログラム内データ置換方法 | |
JP3195067B2 (ja) | レポート出力システム | |
JP2008123423A (ja) | 電文データの監査用保管・検索システム、電文データの監査用保管・検索方法、および電文データの監査用保管・検索プログラム | |
Hopkinson | UNIMARC Manual: Bibliographic Format | |
JPH11232149A (ja) | ファイル比較処理方法,装置およびファイルの比較処理プログラムを記憶した媒体 | |
JP3567299B2 (ja) | グラフ生成出力装置 | |
JP2006338159A (ja) | 位置座標付与装置 | |
JP4547954B2 (ja) | サーバ装置 | |
JP2015185101A (ja) | 文書ファイル管理システム及び文書ファイル管理方法 | |
JP2024049751A (ja) | 文書管理装置及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081226 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100914 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110726 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20111122 |