(58)【調査した分野】(Int.Cl.,DB名)
旧第1の出力ファイルを作成する機能を有する改修前の旧第1のプログラムと、前記旧第1のプログラムの一部の機能を改修したプログラムであって、新第1の出力ファイルを作成する機能を有する新第1のプログラムと、前記旧第1の出力ファイルの各データ項目のバイト数を含む旧第1の出力ファイル仕様と、前記新第1の出力ファイルの各データ項目のバイト数を含む新第1の出力ファイル仕様とを記憶した記憶手段と、
前記旧第1のプログラムおよび前記新第1のプログラムを実行して、それぞれ前記旧第1の出力ファイルと前記新第1の出力ファイルを作成した後に起動され、前記旧第1の出力ファイルと前記新第1の出力ファイルとを比較して、差異のある箇所を不一致リストとして出力する出力ファイル比較手段と、
前記旧第1の出力ファイル仕様と前記新第1の出力ファイル仕様とに基づいて、前記出力ファイル比較手段における前記旧第1の出力ファイルと前記新第1の出力ファイルとの比較時に、不一致が予測される箇所をマスク箇所リストとして出力するマスク箇所抽出手段と、
前記記憶手段に記憶した前記旧第1のプログラムと、前記新第1のプログラムと、前記旧第1の出力ファイル仕様と、前記新第1の出力ファイル仕様と、前記出力ファイル比較手段によって出力した前記不一致リストとに基づいて、不一致の原因となったプログラムを判定する原因プログラム判定手段と、
を備えることを特徴とする出力ファイル検証システム。
記憶手段は、前記旧第1のプログラムに続いて実行されるプログラムであって、旧第2の出力ファイルを作成する機能を有する改修前の旧第2のプログラムと、前記新第1のプログラムに続いて実行されるプログラムであって、新第2の出力ファイルを作成する機能を有する改修後の新第2のプログラムと、前記旧第2の出力ファイルの各データ項目のバイト数を含む旧第2の出力ファイル仕様と、前記新第2の出力ファイルの各データ項目のバイト数を含む新第2の出力ファイル仕様とを記憶し、
前記マスク箇所抽出手段は、前記旧第2の出力ファイル仕様と前記新第2の出力ファイル仕様とに基づいて、前記出力ファイル比較手段における前記旧第2の出力ファイルと前記新第2の出力ファイルとの比較時に、不一致が予測される箇所をマスク箇所リストとして出力する、
ことを特徴とする請求項1に記載の出力ファイル検証システム。
【発明の概要】
【発明が解決しようとする課題】
【0006】
改修前後の出力ファイルを比較して検証する際には、変更した項目は比較の対象外とし、変更していない項目が一致することを確認する。このとき、比較の対象外とする項目をプログラムのソースコードから自動で抽出することができれば、作業の精度が向上し、作業時間を大幅に短縮することができる。また、出力ファイルの比較結果から、原因となったプログラムなどを判定することができれば、デバッグ作業が容易となる、と本出願の発明者は考えた。
【0007】
しかしながら、引用文献1から3に記載のいずれの技術であっても、比較の対象外とする項目をプログラムのソースコードから自動で抽出したり、出力ファイルの比較結果から、原因となったプログラムなどを判定したりすることはできないものであった。
【0008】
そこで、この発明は、前記の課題を解決し、出力ファイルを作成する機能を有するプログラムの改修時に、改修の前後の出力ファイルを比較して、出力ファイルが正しいか否かを検証する出力ファイル検証システムを提供することを目的としている。
【課題を解決するための手段】
【0009】
前記の課題を解決するために、請求項1の発明は、旧第1の出力ファイルを作成する機能を有する改修前の旧第1のプログラムと、前記旧第1のプログラムの一部の機能を改修したプログラムであって、新第1の出力ファイルを作成する機能を有する新第1のプログラムと、前記旧第1の出力ファイルの各データ項目のバイト数を含む旧第1の出力ファイル仕様と、前記新第1の出力ファイルの各データ項目のバイト数を含む新第1の出力ファイル仕様とを記憶した記憶手段と、前記旧第1のプログラムおよび前記新第1のプログラムを実行して、それぞれ前記旧第1の出力ファイルと前記新第1の出力ファイルを作成した後に起動され、前記旧第1の出力ファイルと前記新第1の出力ファイルとを比較して、差異のある箇所を不一致リストとして出力する出力ファイル比較手段と、前記旧第1の出力ファイル仕様と前記新第1の出力ファイル仕様とに基づいて、前記出力ファイル比較手段における前記旧第1の出力ファイルと前記新第1の出力ファイルとの比較時に、不一致が予測される箇所をマスク箇所リストとして出力するマスク箇所抽出手段と、前記記憶手段に記憶した前記旧第1のプログラムと、前記新第1のプログラムと、前記旧第1の出力ファイル仕様と、前記新第1の出力ファイル仕様と、前記出力ファイル比較手段によって出力した前記不一致リストとに基づいて、不一致の原因となったプログラムを判定する原因プログラム判定手段と、を備えることを特徴とする出力ファイル検証システムである。
【0010】
この発明によれば、出力ファイル比較手段によって、旧第1のプログラムおよび新プログラムが実行されて、それぞれ旧第1の出力ファイルと新第1の出力ファイルが作成されて、旧第1の出力ファイルと新第1の出力ファイルとが比較されて、差異のある箇所を不一致リストとして出力される。出力するマスク箇所抽出手段によって、旧第1の出力ファイル仕様と新第1の出力ファイル仕様とに基づいて、出力ファイル比較手段における旧第1の出力ファイルと新第1の出力ファイルとの比較時に、不一致が予測される箇所がマスク箇所リストとされる。原因プログラム判定手段によって、記憶手段に記憶した旧第1のプログラムと、新第1のプログラムと、旧第1の出力ファイル仕様と、新第1の出力ファイル仕様と、出力ファイル比較手段によって出力した不一致リストとに基づいて、不一致の原因となったプログラムが判定される。
【0011】
請求項2に記載の発明は、請求項1に記載の出力ファイル検証システムにおいて、記憶手段は、前記旧第1のプログラムに続いて実行されるプログラムであって、旧第2の出力ファイルを作成する機能を有する改修前の旧第2のプログラムと、前記新第1のプログラムに続いて実行されるプログラムであって、新第2の出力ファイルを作成する機能を有する改修後の新第2のプログラムと、前記旧第2の出力ファイルの各データ項目のバイト数を含む旧第2の出力ファイル仕様と、前記新第2の出力ファイルの各データ項目のバイト数を含む新第2の出力ファイル仕様とを記憶し、前記マスク箇所抽出手段は、前記旧第2の出力ファイル仕様と前記新第2の出力ファイル仕様とに基づいて、前記出力ファイル比較手段における前記旧第2の出力ファイルと前記新第2の出力ファイルとの比較時に、不一致が予測される箇所をマスク箇所リストとして出力する、ことを特徴とする。
【発明の効果】
【0012】
請求項1に記載の発明によれば、マスク箇所抽出手段によって、旧第1の出力ファイル仕様と新第1の出力ファイル仕様に基づいてマスク箇所リストを作成することができる。すなわち、比較の対象外とする項目(マスク項目)をプログラムのソースコードから自動で抽出するので、人為的ミスが防止されて作業の精度が向上し、作業時間を大幅に短縮することができる。
【0013】
また、原因プログラム判定手段によって、旧第1のプログラムと、新第1のプログラムと、旧第1の出力ファイル仕様と、新第1の出力ファイル仕様と、出力ファイル比較手段によって出力した不一致リストに基づいて、不一致の原因となったプログラムを判定するので、デバッグ作業が容易となる。
【0014】
請求項2に記載の発明によれば、マスク箇所抽出手段によって、旧第2の出力ファイル仕様と新第2の出力ファイル仕様とに基づいて、旧第2の出力ファイルと新第2の出力ファイルとの比較時に、不一致が予測される箇所を出力することができる。すなわち、比較の対象外とする項目をプログラムのソースコードから自動で抽出するので、作業の精度が向上し、作業時間を大幅に短縮することができる。
【発明を実施するための形態】
【0016】
以下、この発明を図示の実施の形態に基づいて説明する。
【0017】
図1は、この発明の実施の形態に係る出力ファイル検証システム1の概略構成ブロック図である。この実施の形態では、
図9、
図10に示すように、旧第1のプログラム(図中のPRG−A1)211に続いて旧第2のプログラム(図中のPRG−B1)212を処理するシステムを改修して、新第1のプログラム(図中のPRG−A2)221に続いて新第2のプログラム(図中のPRG−B2)222を処理するシステムとする場合について説明する。ここでは、新第1のプログラム221は、旧第1の出力ファイル411に「有効期限」を追加した仕様の新第1の出力ファイル421を出力するように改修されたものとして説明する。
【0018】
出力ファイル検証システム1は、
図1に示すように、主として、記憶手段としての記憶部10と、出力ファイル比較手段としての第1のコンペアタスク61や第2のコンペアタスク62と、マスク箇所抽出手段としての第1のマスク箇所抽出タスク71や第2のマスク箇所抽出タスク72と、原因プログラム判定手段としての第1の原因プログラム判定タスク81や第2の原因プログラム判定タスク82と、これらを制御などする制御部90とを備えている。
【0019】
記憶部10は、主として、ソースプログラムを格納しているソースプログラムデータベース20と、ファイル仕様書を格納しているファイル仕様書データベース30と、出力ファイルを格納している出力ファイルデータベース40と、アンマッチ結果を格納しているアンマッチ結果データベース50とを記憶している。
【0020】
ソースプログラムデータベース20は、主として、
図10に示すように、旧第1の出力ファイル411を作成する機能を有する改修前の旧第1のプログラム211と、旧第1のプログラム211の一部の機能を改修したプログラムであって、新第1の出力ファイル421を作成する機能を有する新第1のプログラム221と、旧第1のプログラム211に続いて実行されるプログラムであって、旧第2の出力ファイル412を作成する機能を有する改修前の旧第2のプログラム212と、新第1のプログラム221に続いて実行されるプログラムであって、新第2の出力ファイル422を作成する機能を有する改修後の新第2のプログラム222を記憶している。ここで、旧第2のプログラム212は、旧第1の出力ファイル411を入力として処理を実行し、新第2のプログラム222は、新第1の出力ファイル421を入力として処理を実行するものである。このソースプログラムデータベース20には、ソースプログラムの追加や改修が行われた際に、当該ソースプログラムが追加、更新されるようになっている。
【0021】
ファイル仕様書データベース30は、主として、旧第1の出力ファイル411の各データ項目のバイト数を含む旧第1の出力ファイル仕様311と、新第1の出力ファイル421の各データ項目のバイト数を含む新第1の出力ファイル仕様321と、旧第2の出力ファイル412の各データ項目のバイト数を含む旧第2の出力ファイル仕様312と、新第2の出力ファイル422の各データ項目のバイト数を含む新第2の出力ファイル仕様322とを記憶している。
【0022】
旧第1の出力ファイル仕様311には、具体的には例えば、
図2に示すように、旧第1の出力ファイル411のファイル仕様が記憶されており、項目、開始位置、桁数が定義されている。ここでは、旧第1の出力ファイル仕様311には、旧第1の出力ファイル411は、「契約番号」が1バイトから桁数13であり、「お客さま名」が14バイトから桁数7であり、「計器番号」が21バイトから桁数3であり、・・・、と定義されていることが記憶されている。
【0023】
新第1の出力ファイル仕様321には、具体的には例えば、
図3に示すように、新第1の出力ファイル421のファイル仕様が記憶されており、「契約番号」が1バイトから桁数13であり、「お客さま名」が14バイトから桁数7であり、「計器番号」が21バイトから桁数3であり、・・・、「有効期限」が71バイトから桁数8である、と定義されていることが記憶されている。ここで、新第1の出力ファイル仕様321は、旧第1の出力ファイル仕様311に計器の有効期限を示す「有効期限」を追加したものとなっている。
【0024】
旧第2の出力ファイル仕様312には、具体的には例えば、
図4に示すように、旧第2の出力ファイル412のファイル仕様が記憶されており、「計器番号」が1バイトから桁数3であり、「製造番号」が4バイトから桁数10であり、「メーカー」が14バイトから桁数8であり、・・・、と定義されていることが記憶されている。
【0025】
新第2の出力ファイル仕様322は、旧第2の出力ファイル仕様312と同様に構成されている。
【0026】
出力ファイルデータベース40は、主として、旧第1の出力ファイル411と、新第1の出力ファイル421と、旧第2の出力ファイル412と、新第2の出力ファイル422とを記憶している。旧第1の出力ファイル411は、旧第1のプログラム211によって作成された際に記憶されるようになっている。また、新第1の出力ファイル421と、旧第2の出力ファイル412と、新第2の出力ファイル422も同様に作成された際に記憶されるようになっている。
【0027】
アンマッチ結果データベース50は、主として、不一致リストとしての第1のアンマッチ結果51と、第2のアンマッチ結果52とを記憶している。第1のアンマッチ結果51は、
図10に示すように、後述する第1のコンペアタスク61によって、旧第1の出力ファイル411と新第1の出力ファイル421を比較した結果が出力されるものである。第1のアンマッチ結果51は、具体的には例えば、
図5に示すように、3行で構成されており、1行目には位置が出力され、2行目には改修前プログラム結果として旧第1の出力ファイル411の内容が出力され、3行目には改修後プログラム結果として新第1の出力ファイル421の内容が出力される。第1のアンマッチ結果51は、2行目、3行目は、一致した項目、マスクによって比較の対象外となった項目は出力されず(ブランクが出力され)、不一致となった項目のみが出力されるようになっている。ここでは、21バイトから3桁が不一致となっており、2行目には「205」、3行目には「310」と出力されている。
【0028】
第2のアンマッチ結果52は、
図10に示すように、後述する第2のコンペアタスク62によって、旧第2の出力ファイル412と新第2の出力ファイル422を比較した結果が出力されるものであり、第1のアンマッチ結果51と同様に構成されている。
【0029】
第1のコンペアタスク61は、
図9、
図10に示すように、旧第1のプログラム211および新第1のプログラム221を実行して、それぞれ旧第1の出力ファイル411と新第1の出力ファイル421を作成した後に起動され、旧第1の出力ファイル411と新第1の出力ファイル421とを比較して、差異のある箇所を第1のアンマッチ結果51として出力する機能を有するプログラム、タスクである。この第1のコンペアタスク61は、制御部90によって旧第1のプログラム211および新第1のプログラム221の実行後に起動するように制御されている。
【0030】
第1のコンペアタスク61は、
図6に示すフローチャートに基づいた処理を行う。まず、旧第1の出力ファイル411と新第1の出力ファイル421とを比較する(ステップS11)。このとき、旧第1の出力ファイル411と新第1の出力ファイル421の項目のうち、後述するマスク箇所リスト611に記憶されている項目は、比較の対象外として、比較を行わないものとする。そして、ステップS11における比較結果を第1のアンマッチ結果51として出力して記憶部10に保存し(ステップS12)、このタスクの処理を終了する。これにより、第1のアンマッチ結果51は、旧第1の出力ファイル411と新第1の出力ファイル421が、一致した項目、マスク箇所リスト611に記憶されており比較の対象外となった項目は出力されず(ブランクが表示され)、不一致となった項目のみに旧第1の出力ファイル411と新第1の出力ファイル421の該当項目が2行目、3行目にそれぞれ表示される。
【0031】
このようにして、第1のコンペアタスク61によって、第1のアンマッチ結果51がアンマッチ結果データベース50に記憶される。
【0032】
第2のコンペアタスク62は、
図9、
図10に示すように、旧第2のプログラム212および新第2のプログラム222を実行して、それぞれ旧第2の出力ファイル412と新第2の出力ファイル422を作成した後に起動され、旧第2の出力ファイル412と新第2の出力ファイル422とを比較して、差異のある箇所を第2のアンマッチ結果52として出力する機能を有するプログラム、タスクである。この第2のコンペアタスク62は、第1のコンペアタスク61と同様の処理を行う。
【0033】
第1のマスク箇所抽出タスク71は、旧第1の出力ファイル仕様311と新第1の出力ファイル仕様321とに基づいて、第1のコンペアタスク61における旧第1の出力ファイル411と新第1の出力ファイル421との比較時に、不一致が予測される箇所を第1のマスク箇所リスト711として出力し、第1のマスク箇所リスト711と、旧第2の出力ファイル仕様312と新第2の出力ファイル仕様322とに基づいて、第2のコンペアタスク62における旧第2の出力ファイル412と新第2の出力ファイル422との比較時に、不一致が予測される箇所を第2のマスク箇所リスト712として出力する機能を有するプログラム、タスクである。第1のマスク箇所抽出タスク71によって作成された第1のマスク箇所リスト711、第2のマスク箇所リスト712は、記憶部10に記憶される。
【0034】
ここで、不一致が予測される箇所とは、プログラムの改修によって、出力ファイルの仕様が変更となっている箇所のことである。例えば、この実施の形態では、新第1のプログラム221によって、旧第1の出力ファイル411に「有効期限」を追加した新第1の出力ファイル421を出力するので、新第1の出力ファイル仕様321には、「有効期限」の項目と定義が追加されている。このとき、第1のマスク箇所リスト711には、「有効期限」の項目が、比較の対象外とするマスク箇所として記憶される。これにより、第1のコンペアタスク61における、旧第1の出力ファイル411と新第1の出力ファイル421との比較時には、「有効期限」に該当する両出力ファイル411、421の71バイトから8桁は比較が行われないこととなる。このとき、出力ファイル411の71バイトから8桁はブランクであり、出力ファイル421の71バイトから8桁には年月日が出力されているが、当該箇所はマスクされて比較されないために、第1のアンマッチ結果51にはブランクが出力されることとなる。
【0035】
第1のマスク箇所抽出タスク71は、
図7に示すフローチャートに基づいた処理を行う。まず、旧第1の出力ファイル仕様311と新第1の出力ファイル仕様321と、旧第2の出力ファイル仕様312と新第2の出力ファイル仕様322とを取得する(ステップS21)。そして、旧第1の出力ファイル仕様311と新第1の出力ファイル仕様321とに基づいて、第1のコンペアタスク61における旧第1の出力ファイル411と新第1の出力ファイル421との比較時に、不一致が予測される箇所を第1のマスク箇所リスト711として出力する。また、第1のマスク箇所リスト711と、旧第2の出力ファイル仕様312と新第2の出力ファイル仕様322とに基づいて、第2のコンペアタスク62における旧第2の出力ファイル412と新第2の出力ファイル422との比較時に、不一致が予測される箇所を第2のマスク箇所リスト712として出力する(ステップS22)。この第1のマスク箇所抽出タスク71は、制御部90によって、プログラムの改修があった際、すなわち、新第1のプログラム221や新第1の出力ファイル仕様321などが追加、更新された際に、第1のコンペアタスク61の起動前に起動されるように制御されている。
【0036】
このようにして、第1のマスク箇所抽出タスク71によって、第1のマスク箇所リスト711と第2のマスク箇所リスト712は、記憶部10に記憶される。
【0037】
第2のマスク箇所抽出タスク72は、旧第2の出力ファイル仕様312と新第2の出力ファイル仕様322とに基づいて、第2のコンペアタスク62における旧第2の出力ファイル412と新第2の出力ファイル422との比較時に、不一致が予測される箇所を第2のマスク箇所リスト712として出力する機能を有するプログラム、タスクである。このとき、第1のマスク箇所抽出タスク71によって、すでに第2のマスク箇所リスト712が作成されている場合は、第2のマスク箇所リスト712を更新するものとする。この第2のマスク箇所抽出タスク72は、第1のマスク箇所抽出タスク71と同様の処理を行う。
【0038】
第1の原因プログラム判定タスク81は、ソースプログラムデータベース20に記憶した旧第1のプログラム211と、新第1のプログラム221と、ファイル仕様書データベース30に記憶した旧第1の出力ファイル仕様311と、新第1の出力ファイル仕様321と、第1のコンペアタスク61によって出力した第1のアンマッチ結果51とに基づいて、不一致の原因となったプログラムを判定して、第1のアンマッチ項目編集箇所を出力する機能を有するプログラム、タスクである。
【0039】
第1の原因プログラム判定タスク81は、
図8に示すフローチャートに基づいた処理を行う。まず、第1のアンマッチ結果51を取得する(ステップS31)。そして、ソースプログラムデータベース20に記憶した旧第1のプログラム211と、新第1のプログラム221を取得し(ステップS32)、ファイル仕様書データベース30に記憶した旧第1の出力ファイル仕様311と、新第1の出力ファイル仕様321を取得する(ステップS33)。そして、原因プログラムを判定して、第1のアンマッチ項目編集箇所として出力する(ステップS34)。具体的には、第1のアンマッチ結果51に出力された項目(不一致の項目)を、旧第1の出力ファイル仕様311や新第1の出力ファイル仕様321に基づいて判定して、当該項目を含む旧第1のプログラム211や新第1のプログラム221を抽出する。このとき、プログラムの中で当該項目を含む関数が特定可能であれば、関数を絞り込んで判定する。例えば、
図5に示す第1のアンマッチ結果51の場合は、
図2に示す旧第1の出力ファイル仕様311や、
図3に示す新第1の出力ファイル仕様321に基づいて、不一致の項目が「計器番号」であることが分かるので、「計器番号」を含む旧第1のプログラム211や新第1のプログラム221や関数を抽出する。そして、判定結果としてプログラム名や関数名を第1のアンマッチ項目編集箇所として出力する。
【0040】
また、第1のアンマッチ結果51を検証した結果、不一致が生じた原因がプログラムのデグレードではないことが確認できた場合は、当該項目を第1のマスク箇所リスト711に追加できるようになっている。
【0041】
この第1の原因プログラム判定タスク81は、制御部90によって、第1のコンペアタスク61によって第1のアンマッチ結果51が作成された後に起動されるように制御されている。
【0042】
第2の原因プログラム判定タスク82は、ソースプログラムデータベース20に記憶した旧第2のプログラム212と、新第2のプログラム222と、ファイル仕様書データベース30に記憶した旧第2の出力ファイル仕様312と、新第2の出力ファイル仕様322と、第2のコンペアタスク62によって出力した第2のアンマッチ結果52とに基づいて、不一致の原因となったプログラムを判定して、第2のアンマッチ項目編集箇所を出力する機能を有するプログラム、タスクであり、第1の原因プログラム判定タスク81と同様の処理を行う。
【0043】
このようにして出力された第1のアンマッチ結果51や第2のアンマッチ結果52を、開発担当者Mは目視で確認し、デクレードの有無を確認する。また、第1の原因プログラム判定タスク81や第2の原因プログラム判定タスク82によって判定されたプログラム名や関数名を、第1のアンマッチ項目編集箇所や第2のアンマッチ項目編集箇所によって確認して、デバッグを行うことができる。
【0044】
次に、このような構成の出力ファイル検証システム1における情報の処理手段および作用について説明する。
【0045】
まず、開発担当者Mによって、新第1のプログラム221によって、当該プログラムの出力ファイルである旧第1の出力ファイル411に「有効期限」を追加した新第1の出力ファイル421を出力するようにプログラムが改修され、新第1の出力ファイル仕様321には、「有効期限」の項目と定義が追加される。また、新第1のプログラム221に後続して処理される新第2のプログラム222が改修され、当該プログラムの出力ファイルである新第2の出力ファイル422の新第2の出力ファイル仕様322が作成される。
【0046】
そして、プログラムの改修が終了すると、開発担当者Mによって、当該プログラムが所定の場所に登録される。当該プログラムが所定の場所に登録されると、制御部90によって、第1のマスク箇所抽出タスク71と第2のマスク箇所抽出タスク72が起動される。ここで、新システムへの切替日を2013年06月06日とし、開発担当者Mによって、記憶部10に新システムへの切替日として「20130606」が記憶される。
【0047】
そして、制御部90によって、所定時間に当該プログラムが実行される。この実施の形態では、毎日午前2時に旧第1のプログラム211が起動されて、続いて、旧第2のプログラム212が起動されるように設定されるとともに、当時に、新第1のプログラム221が起動されて、続いて、新第2のプログラム222が起動されるように設定されている。
【0048】
そして、制御部90によって、
図9、
図10に示すように、旧第1のプログラム211と新第1のプログラム221の処理の終了後、それぞれ旧第1の出力ファイル411と新第1の出力ファイル421を作成した後に、第1のコンペアタスク61が起動するように制御されている。
【0049】
第1のコンペアタスク61が起動されると、旧第1の出力ファイル411と新第1の出力ファイル421とが比較されて、差異のある箇所が
図5に示すような第1のアンマッチ結果51として出力される。具体的には例えば、第1のマスク箇所リスト711には、「有効期限」の項目が、比較の対象外とするマスク箇所として記憶されている場合は、旧第1の出力ファイル411と新第1の出力ファイル421との比較時には、「有効期限」に該当する両出力ファイル411、421の71バイトから8桁は比較が行われない。すなわち、出力ファイル411の71バイトから8桁はブランクであり、出力ファイル421の71バイトから8桁には年月日が出力されているが、当該箇所はマスクされて比較されないために、第1のアンマッチ結果51にはブランクが出力される。
【0050】
また、第1のコンペアタスク61の処理の終了後、新システムへの切替日より前、2013年06月06日までは、第1のアンマッチ結果51に不一致の項目が出力されていたとしても、後続の処理をそのまま継続するように制御される。また、新システムへの切替日以降、2013年06月06日以降であれば、第1のアンマッチ結果51に不一致の項目が出力されていた場合は、異常終了として後続の処理を継続しないように制御される。
【0051】
そして、制御部90によって、
図10に示すように、第1のコンペアタスク61の処理の終了後、第1のアンマッチ結果51を作成した後に、第1の原因プログラム判定タスク81が起動するように制御されている。
【0052】
また、制御部90によって、
図9、
図10に示すように、旧第1のプログラム211と新第1のプログラム221の処理の終了後、それぞれ旧第1の出力ファイル411と新第1の出力ファイル421を作成した後に、旧第2のプログラム212と新第2のプログラム222が起動するように制御されている。
【0053】
そして、制御部90によって、
図9、
図10に示すように、旧第2のプログラム212と新第2のプログラム222の処理の終了後、それぞれ旧第2の出力ファイル412と新第2の出力ファイル422を作成した後に、第2のコンペアタスク62が起動するように制御されている。
【0054】
第2のコンペアタスク62が起動されると、旧第2の出力ファイル412と新第2の出力ファイル422とが比較されて、差異のある箇所が第2のアンマッチ結果52として出力される。第2のコンペアタスク62の処理の終了後、このとき、新システムへの切替日より前、2013年06月06日までは、第2のアンマッチ結果52に不一致の項目が出力されていたとしても、後続の処理をそのまま継続するように制御される。新システムへの切替日以降、2013年06月06日以降であれば、第2のアンマッチ結果52に不一致の項目が出力されていた場合は、異常終了として後続の処理を継続しないように制御される。
【0055】
そして、制御部90によって、第2のコンペアタスク62の処理の終了後、第2のアンマッチ結果52を作成した後に、第2の原因プログラム判定タスク82が起動するように制御されている。
【0056】
このようにして、制御部90によって、所定時間に、旧第1のプログラム211と新第1のプログラム221が起動され、続いて、旧第2のプログラム212と新第2のプログラム222が起動される。そして、これらのプログラムの処理の終了後に、第1のコンペアタスク61や第2のコンペアタスク62が起動されて、第1のアンマッチ結果51や第2のアンマッチ結果52が出力される。
【0057】
また、第1のアンマッチ結果51や第2のアンマッチ結果52が作成された後に、第1の原因プログラム判定タスク81や第2の原因プログラム判定タスク82が起動されて、第1のアンマッチ項目編集箇所や第2のアンマッチ項目編集箇所が出力される。
【0058】
以上のように、この出力ファイル検証システム1によれば、第1のマスク箇所抽出タスク71によって、旧第1の出力ファイル仕様311と新第1の出力ファイル仕様321に基づいて第1のマスク箇所リスト711を作成することができる。すなわち、比較の対象外とする項目(マスク項目)をプログラムのソースコードから自動で抽出するので、人為的ミスが防止されて作業の精度が向上し、作業時間を大幅に短縮することができる。第2のマスク箇所抽出タスク72も同様である。
【0059】
また、第1のマスク箇所抽出タスク71によって、第1のマスク箇所リスト711と、旧第2の出力ファイル仕様312と新第2の出力ファイル仕様322とに基づいて、旧第2の出力ファイル412と新第2の出力ファイル422との比較時に、不一致が予測される箇所を出力することができる。これにより、第1のマスク箇所リスト711を作成するとともに、後続する処理についても第2のマスク箇所リスト712を作成してしまうので、作業時間を大幅に短縮することができる。
【0060】
これらによって、例えば、改修前後の出力ファイル411、412を比較して検証する際に、変更した項目は比較の対象外となるため、変更していない項目が一致していることを確認することが容易になり、例えば、テスト実施者が、出力ファイル411、412を並べたり、重ね合せたりする必要がないので、出力ファイル411、412の比較が容易かつ正確となり、テスト実施者による見落としや、見誤りを防止することが可能である。
【0061】
また、第1の原因プログラム判定タスク81によって、旧第1のプログラム211と、新第1のプログラム221と、ファイル仕様書データベース30に記憶した旧第1の出力ファイル仕様311と、新第1の出力ファイル仕様321と、第1のコンペアタスク61によって出力した第1のアンマッチ結果51に基づいて、不一致の原因となったプログラムや関数などを判定して第1のアンマッチ項目編集箇所として出力するので、デバッグ作業が容易となる。
【0062】
以上、この発明の実施の形態について説明したが、具体的な構成は、上記の実施の形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計の変更等があっても、この発明に含まれる。例えば、上記の実施の形態では、プログラムの数は2つとして説明したが、プログラムの数は2つに限定されないことはもちろんである。