(57)【要約】 【課題】  出力ファイルを作成する機能を有するプログラムの改修時に、改修の前後の出力ファイルを比較して、出力ファイルが正しいか否かを検証する。【解決手段】  第１のコンペアタスク６１によって、新、旧第１のプログラム２１１、２２１を実行して、新、旧出力ファイル４１１、４２１を作成した後に起動され、新、旧出力ファイル４１１、４２１を比較して、差異のある箇所を第１のアンマッチ結果５１として出力する。第１のマスク箇所抽出タスク７１によって、新、旧第１の出力ファイル仕様３１１、３２１に基づいて、新、旧第１の出力ファイル４１１、４２１の比較時に、不一致が予測される箇所を第１のマスク箇所リスト７１１として出力する。第１の原因プログラム判定タスク８１によって、新、旧第１のプログラム２１１、２２１と、新、旧第１の出力ファイル仕様３１１、３２１と、第１のアンマッチ結果５１とに基づいて、不一致の原因となったプログラムを判定する。【選択図】  図１０
2015108937.tif 000002
【特許請求の範囲】
【請求項１】
旧第１の出力ファイルを作成する機能を有する改修前の旧第１のプログラムと、前記旧第１のプログラムの一部の機能を改修したプログラムであって、新第１の出力ファイルを作成する機能を有する新第１のプログラムと、前記旧第１の出力ファイルの各データ項目のバイト数を含む旧第１の出力ファイル仕様と、前記新第１の出力ファイルの各データ項目のバイト数を含む新第１の出力ファイル仕様とを記憶した記憶手段と、
前記旧第１のプログラムおよび前記新第１のプログラムを実行して、それぞれ前記旧第１の出力ファイルと前記新第１の出力ファイルを作成した後に起動され、前記旧第１の出力ファイルと前記新第１の出力ファイルとを比較して、差異のある箇所を不一致リストとして出力する出力ファイル比較手段と、
前記旧第１の出力ファイル仕様と前記新第１の出力ファイル仕様とに基づいて、前記出力ファイル比較手段における前記旧第１の出力ファイルと前記新第１の出力ファイルとの比較時に、不一致が予測される箇所をマスク箇所リストとして出力するマスク箇所抽出手段と、
前記記憶手段に記憶した前記旧第１のプログラムと、前記新第１のプログラムと、前記旧第１の出力ファイル仕様と、前記新第１の出力ファイル仕様と、前記出力ファイル比較手段によって出力した前記不一致リストとに基づいて、不一致の原因となったプログラムを判定する原因プログラム判定手段と、
を備えることを特徴とする出力ファイル検証システム。
【請求項２】
記憶手段は、前記旧第１のプログラムに続いて実行されるプログラムであって、旧第２の出力ファイルを作成する機能を有する改修前の旧第２のプログラムと、前記新第１のプログラムに続いて実行されるプログラムであって、新第２の出力ファイルを作成する機能を有する改修後の新第２のプログラムと、前記旧第２の出力ファイルの各データ項目のバイト数を含む旧第２の出力ファイル仕様と、前記新第２の出力ファイルの各データ項目のバイト数を含む新第２の出力ファイル仕様とを記憶し、
前記マスク箇所抽出手段は、前記旧第２の出力ファイル仕様と前記新第２の出力ファイル仕様とに基づいて、前記出力ファイル比較手段における前記旧第２の出力ファイルと前記新第２の出力ファイルとの比較時に、不一致が予測される箇所をマスク箇所リストとして出力する、
ことを特徴とする請求項１に記載の出力ファイル検証システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、出力ファイルを作成する機能を有するプログラムの改修時に、改修の前後の出力ファイルを比較して、出力ファイルが正しいか否かを検証する出力ファイル検証システムに関する。
【背景技術】
【０００２】
大規模システムにおいては、サブシステム間でファイルを連携して処理を行う場合がある。このため、一部のサブシステムのファイル仕様が変更になった場合は、当該サブシステムの改修前後の出力ファイルを比較して検証し、出力ファイルが正しく出力されていることを確認してから、後続のサブシステムの処理を実行する必要がある。このとき、出力ファイルの変更した項目が正しく変更されたことを確認するとともに、変更していない項目が変更されていないことを確認して、デグレードが生じていないことを確認する必要がある。
【０００３】
このような出力ファイルの検証作業を人間系で行う場合は、多大な労力を要し、見落としを生じ易いという問題がある。具体的には、変更していない項目が変更されていないこと、デグレードが生じていないことを確認するためには、想定され得るパターンのデータについて検証する必要があり、多大な労力と時間とを要するものである。
【０００４】
ところで、帳票出力プログラムを修正又は他機種へ移行した場合の検証が各帳票レコードの出力位置を含め自動的に行う出力帳票の自動検証方法に関する技術が開示されている（例えば、特許文献１参照。）。この技術は、新・旧両プログラムが出力した帳票出力レコードのプリント制御ソースコードと制御ソースコードテーブル及び前レコードの出力位置により当レコードの出力位置を計算し、出力位置及び出力内容を比較検証するものである。また、新・旧レコード内の最大のデータ項目長に合わせて左詰および右詰してレコードを比較する新旧システムの処理結果の検証装置と方法に関する技術が開示されている（例えば、特許文献２参照。）。さらに、紙情報の目視確認による検証作業（入力と出力の照合を含む）を機械的に実施するテスト結果照合システム、方法、及びプログラムに関する技術が知られている（例えば、特許文献３参照。）。この技術は、画面入力や帳票入力を含む入力形態に応じて、必要情報を抽出し入力情報ファイルとして保持する処理、画面出力や帳票出力を含む出力形態に応じて、必要情報を抽出し出力情報ファイルとして保持する処理を行う入出力情報取得部、入力情報ファイル・出力情報ファイルを用いて、入力と出力の照合に関する自動的な比較の処理を行って、正常／エラーの区分を含む比較結果一覧情報を出力するものである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０６−０７５８２２号公報
【特許文献２】特開平２００１−２０９５５９号公報
【特許文献３】特開平２０１２−０９８８７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
改修前後の出力ファイルを比較して検証する際には、変更した項目は比較の対象外とし、変更していない項目が一致することを確認する。このとき、比較の対象外とする項目をプログラムのソースコードから自動で抽出することができれば、作業の精度が向上し、作業時間を大幅に短縮することができる。また、出力ファイルの比較結果から、原因となったプログラムなどを判定することができれば、デバッグ作業が容易となる、と本出願の発明者は考えた。
【０００７】
しかしながら、引用文献１から３に記載のいずれの技術であっても、比較の対象外とする項目をプログラムのソースコードから自動で抽出したり、出力ファイルの比較結果から、原因となったプログラムなどを判定したりすることはできないものであった。
【０００８】
そこで、この発明は、前記の課題を解決し、出力ファイルを作成する機能を有するプログラムの改修時に、改修の前後の出力ファイルを比較して、出力ファイルが正しいか否かを検証する出力ファイル検証システムを提供することを目的としている。
【課題を解決するための手段】
【０００９】
前記の課題を解決するために、請求項１の発明は、旧第１の出力ファイルを作成する機能を有する改修前の旧第１のプログラムと、前記旧第１のプログラムの一部の機能を改修したプログラムであって、新第１の出力ファイルを作成する機能を有する新第１のプログラムと、前記旧第１の出力ファイルの各データ項目のバイト数を含む旧第１の出力ファイル仕様と、前記新第１の出力ファイルの各データ項目のバイト数を含む新第１の出力ファイル仕様とを記憶した記憶手段と、前記旧第１のプログラムおよび前記新第１のプログラムを実行して、それぞれ前記旧第１の出力ファイルと前記新第１の出力ファイルを作成した後に起動され、前記旧第１の出力ファイルと前記新第１の出力ファイルとを比較して、差異のある箇所を不一致リストとして出力する出力ファイル比較手段と、前記旧第１の出力ファイル仕様と前記新第１の出力ファイル仕様とに基づいて、前記出力ファイル比較手段における前記旧第１の出力ファイルと前記新第１の出力ファイルとの比較時に、不一致が予測される箇所をマスク箇所リストとして出力するマスク箇所抽出手段と、前記記憶手段に記憶した前記旧第１のプログラムと、前記新第１のプログラムと、前記旧第１の出力ファイル仕様と、前記新第１の出力ファイル仕様と、前記出力ファイル比較手段によって出力した前記不一致リストとに基づいて、不一致の原因となったプログラムを判定する原因プログラム判定手段と、を備えることを特徴とする出力ファイル検証システムである。
【００１０】
この発明によれば、出力ファイル比較手段によって、旧第１のプログラムおよび新プログラムが実行されて、それぞれ旧第１の出力ファイルと新第１の出力ファイルが作成されて、旧第１の出力ファイルと新第１の出力ファイルとが比較されて、差異のある箇所を不一致リストとして出力される。出力するマスク箇所抽出手段によって、旧第１の出力ファイル仕様と新第１の出力ファイル仕様とに基づいて、出力ファイル比較手段における旧第１の出力ファイルと新第１の出力ファイルとの比較時に、不一致が予測される箇所がマスク箇所リストとされる。原因プログラム判定手段によって、記憶手段に記憶した旧第１のプログラムと、新第１のプログラムと、旧第１の出力ファイル仕様と、新第１の出力ファイル仕様と、出力ファイル比較手段によって出力した不一致リストとに基づいて、不一致の原因となったプログラムが判定される。
【００１１】
請求項２に記載の発明は、請求項１に記載の出力ファイル検証システムにおいて、記憶手段は、前記旧第１のプログラムに続いて実行されるプログラムであって、旧第２の出力ファイルを作成する機能を有する改修前の旧第２のプログラムと、前記新第１のプログラムに続いて実行されるプログラムであって、新第２の出力ファイルを作成する機能を有する改修後の新第２のプログラムと、前記旧第２の出力ファイルの各データ項目のバイト数を含む旧第２の出力ファイル仕様と、前記新第２の出力ファイルの各データ項目のバイト数を含む新第２の出力ファイル仕様とを記憶し、前記マスク箇所抽出手段は、前記旧第２の出力ファイル仕様と前記新第２の出力ファイル仕様とに基づいて、前記出力ファイル比較手段における前記旧第２の出力ファイルと前記新第２の出力ファイルとの比較時に、不一致が予測される箇所をマスク箇所リストとして出力する、ことを特徴とする。
【発明の効果】
【００１２】
請求項１に記載の発明によれば、マスク箇所抽出手段によって、旧第１の出力ファイル仕様と新第１の出力ファイル仕様に基づいてマスク箇所リストを作成することができる。すなわち、比較の対象外とする項目（マスク項目）をプログラムのソースコードから自動で抽出するので、人為的ミスが防止されて作業の精度が向上し、作業時間を大幅に短縮することができる。
【００１３】
また、原因プログラム判定手段によって、旧第１のプログラムと、新第１のプログラムと、旧第１の出力ファイル仕様と、新第１の出力ファイル仕様と、出力ファイル比較手段によって出力した不一致リストに基づいて、不一致の原因となったプログラムを判定するので、デバッグ作業が容易となる。
【００１４】
請求項２に記載の発明によれば、マスク箇所抽出手段によって、旧第２の出力ファイル仕様と新第２の出力ファイル仕様とに基づいて、旧第２の出力ファイルと新第２の出力ファイルとの比較時に、不一致が予測される箇所を出力することができる。すなわち、比較の対象外とする項目をプログラムのソースコードから自動で抽出するので、作業の精度が向上し、作業時間を大幅に短縮することができる。
【図面の簡単な説明】
【００１５】
【図１】この発明の実施の形態に係る出力ファイル検証システムの概略構成図である。
【図２】図１の出力ファイル検証システムの出力ファイル仕様書の一例であり、マスク箇所を示す図である。
【図３】図１の出力ファイル検証システムの出力ファイル仕様書の一例であり、マスク箇所を示す図である。
【図４】図１の出力ファイル検証システムの出力ファイル仕様書の一例であり、マスク箇所を示す図である。
【図５】図１の出力ファイル検証システムにおいて検証した出力ファイルの不一致リストとしての第１のアンマッチ結果の一例を示す図である。
【図６】図１の出力ファイル検証システムのコンペアタスクによる情報処理を示すフローチャートである。
【図７】図１の出力ファイル検証システムのマスク箇所抽出タスクによる情報処理を示すフローチャートである。
【図８】図１の出力ファイル検証システムの原因プログラム判定タスクによる情報処理を示すフローチャートである。
【図９】図１の出力ファイル検証システムを使用した改修前プログラムと、改修後プログラムと、コンペアタスクによる情報処理の順序を示すタイミングチャートである。
【図１０】図１の出力ファイル検証システムの情報処理を示す概略ブロック図である。
【発明を実施するための形態】
【００１６】
以下、この発明を図示の実施の形態に基づいて説明する。
【００１７】
図１は、この発明の実施の形態に係る出力ファイル検証システム１の概略構成ブロック図である。この実施の形態では、図９、図１０に示すように、旧第１のプログラム（図中のＰＲＧ−Ａ１）２１１に続いて旧第２のプログラム（図中のＰＲＧ−Ｂ１）２１２を処理するシステムを改修して、新第１のプログラム（図中のＰＲＧ−Ａ２）２２１に続いて新第２のプログラム（図中のＰＲＧ−Ｂ２）２２２を処理するシステムとする場合について説明する。ここでは、新第１のプログラム２２１は、旧第１の出力ファイル４１１に「有効期限」を追加した仕様の新第１の出力ファイル４２１を出力するように改修されたものとして説明する。
【００１８】
出力ファイル検証システム１は、図１に示すように、主として、記憶手段としての記憶部１０と、出力ファイル比較手段としての第１のコンペアタスク６１や第２のコンペアタスク６２と、マスク箇所抽出手段としての第１のマスク箇所抽出タスク７１や第２のマスク箇所抽出タスク７２と、原因プログラム判定手段としての第１の原因プログラム判定タスク８１や第２の原因プログラム判定タスク８２と、これらを制御などする制御部９０とを備えている。
【００１９】
記憶部１０は、主として、ソースプログラムを格納しているソースプログラムデータベース２０と、ファイル仕様書を格納しているファイル仕様書データベース３０と、出力ファイルを格納している出力ファイルデータベース４０と、アンマッチ結果を格納しているアンマッチ結果データベース５０とを記憶している。
【００２０】
ソースプログラムデータベース２０は、主として、図１０に示すように、旧第１の出力ファイル４１１を作成する機能を有する改修前の旧第１のプログラム２１１と、旧第１のプログラム２１１の一部の機能を改修したプログラムであって、新第１の出力ファイル４２１を作成する機能を有する新第１のプログラム２２１と、旧第１のプログラム２１１に続いて実行されるプログラムであって、旧第２の出力ファイル４１２を作成する機能を有する改修前の旧第２のプログラム２１２と、新第１のプログラム２２１に続いて実行されるプログラムであって、新第２の出力ファイル４２２を作成する機能を有する改修後の新第２のプログラム２２２を記憶している。ここで、旧第２のプログラム２１２は、旧第１の出力ファイル４１１を入力として処理を実行し、新第２のプログラム２２２は、新第１の出力ファイル４２１を入力として処理を実行するものである。このソースプログラムデータベース２０には、ソースプログラムの追加や改修が行われた際に、当該ソースプログラムが追加、更新されるようになっている。
【００２１】
ファイル仕様書データベース３０は、主として、旧第１の出力ファイル４１１の各データ項目のバイト数を含む旧第１の出力ファイル仕様３１１と、新第１の出力ファイル４２１の各データ項目のバイト数を含む新第１の出力ファイル仕様３２１と、旧第２の出力ファイル４１２の各データ項目のバイト数を含む旧第２の出力ファイル仕様３１２と、新第２の出力ファイル４２２の各データ項目のバイト数を含む新第２の出力ファイル仕様３２２とを記憶している。
【００２２】
旧第１の出力ファイル仕様３１１には、具体的には例えば、図２に示すように、旧第１の出力ファイル４１１のファイル仕様が記憶されており、項目、開始位置、桁数が定義されている。ここでは、旧第１の出力ファイル仕様３１１には、旧第１の出力ファイル４１１は、「契約番号」が１バイトから桁数１３であり、「お客さま名」が１４バイトから桁数７であり、「計器番号」が２１バイトから桁数３であり、・・・、と定義されていることが記憶されている。
【００２３】
新第１の出力ファイル仕様３２１には、具体的には例えば、図３に示すように、新第１の出力ファイル４２１のファイル仕様が記憶されており、「契約番号」が１バイトから桁数１３であり、「お客さま名」が１４バイトから桁数７であり、「計器番号」が２１バイトから桁数３であり、・・・、「有効期限」が７１バイトから桁数８である、と定義されていることが記憶されている。ここで、新第１の出力ファイル仕様３２１は、旧第１の出力ファイル仕様３１１に計器の有効期限を示す「有効期限」を追加したものとなっている。
【００２４】
旧第２の出力ファイル仕様３１２には、具体的には例えば、図４に示すように、旧第２の出力ファイル４１２のファイル仕様が記憶されており、「計器番号」が１バイトから桁数３であり、「製造番号」が４バイトから桁数１０であり、「メーカー」が１４バイトから桁数８であり、・・・、と定義されていることが記憶されている。
【００２５】
新第２の出力ファイル仕様３２２は、旧第２の出力ファイル仕様３１２と同様に構成されている。
【００２６】
出力ファイルデータベース４０は、主として、旧第１の出力ファイル４１１と、新第１の出力ファイル４２１と、旧第２の出力ファイル４１２と、新第２の出力ファイル４２２とを記憶している。旧第１の出力ファイル４１１は、旧第１のプログラム２１１によって作成された際に記憶されるようになっている。また、新第１の出力ファイル４２１と、旧第２の出力ファイル４１２と、新第２の出力ファイル４２２も同様に作成された際に記憶されるようになっている。
【００２７】
アンマッチ結果データベース５０は、主として、不一致リストとしての第１のアンマッチ結果５１と、第２のアンマッチ結果５２とを記憶している。第１のアンマッチ結果５１は、図１０に示すように、後述する第１のコンペアタスク６１によって、旧第１の出力ファイル４１１と新第１の出力ファイル４２１を比較した結果が出力されるものである。第１のアンマッチ結果５１は、具体的には例えば、図５に示すように、３行で構成されており、１行目には位置が出力され、２行目には改修前プログラム結果として旧第１の出力ファイル４１１の内容が出力され、３行目には改修後プログラム結果として新第１の出力ファイル４２１の内容が出力される。第１のアンマッチ結果５１は、２行目、３行目は、一致した項目、マスクによって比較の対象外となった項目は出力されず（ブランクが出力され）、不一致となった項目のみが出力されるようになっている。ここでは、２１バイトから３桁が不一致となっており、２行目には「２０５」、３行目には「３１０」と出力されている。
【００２８】
第２のアンマッチ結果５２は、図１０に示すように、後述する第２のコンペアタスク６２によって、旧第２の出力ファイル４１２と新第２の出力ファイル４２２を比較した結果が出力されるものであり、第１のアンマッチ結果５１と同様に構成されている。
【００２９】
第１のコンペアタスク６１は、図９、図１０に示すように、旧第１のプログラム２１１および新第１のプログラム２２１を実行して、それぞれ旧第１の出力ファイル４１１と新第１の出力ファイル４２１を作成した後に起動され、旧第１の出力ファイル４１１と新第１の出力ファイル４２１とを比較して、差異のある箇所を第１のアンマッチ結果５１として出力する機能を有するプログラム、タスクである。この第１のコンペアタスク６１は、制御部９０によって旧第１のプログラム２１１および新第１のプログラム２２１の実行後に起動するように制御されている。
【００３０】
第１のコンペアタスク６１は、図６に示すフローチャートに基づいた処理を行う。まず、旧第１の出力ファイル４１１と新第１の出力ファイル４２１とを比較する（ステップＳ１１）。このとき、旧第１の出力ファイル４１１と新第１の出力ファイル４２１の項目のうち、後述するマスク箇所リスト６１１に記憶されている項目は、比較の対象外として、比較を行わないものとする。そして、ステップＳ１１における比較結果を第１のアンマッチ結果５１として出力して記憶部１０に保存し（ステップＳ１２）、このタスクの処理を終了する。これにより、第１のアンマッチ結果５１は、旧第１の出力ファイル４１１と新第１の出力ファイル４２１が、一致した項目、マスク箇所リスト６１１に記憶されており比較の対象外となった項目は出力されず（ブランクが表示され）、不一致となった項目のみに旧第１の出力ファイル４１１と新第１の出力ファイル４２１の該当項目が２行目、３行目にそれぞれ表示される。
【００３１】
このようにして、第１のコンペアタスク６１によって、第１のアンマッチ結果５１がアンマッチ結果データベース５０に記憶される。
【００３２】
第２のコンペアタスク６２は、図９、図１０に示すように、旧第２のプログラム２１２および新第２のプログラム２２２を実行して、それぞれ旧第２の出力ファイル４１２と新第２の出力ファイル４２２を作成した後に起動され、旧第２の出力ファイル４１２と新第２の出力ファイル４２２とを比較して、差異のある箇所を第２のアンマッチ結果５２として出力する機能を有するプログラム、タスクである。この第２のコンペアタスク６２は、第１のコンペアタスク６１と同様の処理を行う。
【００３３】
第１のマスク箇所抽出タスク７１は、旧第１の出力ファイル仕様３１１と新第１の出力ファイル仕様３２１とに基づいて、第１のコンペアタスク６１における旧第１の出力ファイル４１１と新第１の出力ファイル４２１との比較時に、不一致が予測される箇所を第１のマスク箇所リスト７１１として出力し、第１のマスク箇所リスト７１１と、旧第２の出力ファイル仕様３１２と新第２の出力ファイル仕様３２２とに基づいて、第２のコンペアタスク６２における旧第２の出力ファイル４１２と新第２の出力ファイル４２２との比較時に、不一致が予測される箇所を第２のマスク箇所リスト７１２として出力する機能を有するプログラム、タスクである。第１のマスク箇所抽出タスク７１によって作成された第１のマスク箇所リスト７１１、第２のマスク箇所リスト７１２は、記憶部１０に記憶される。
【００３４】
ここで、不一致が予測される箇所とは、プログラムの改修によって、出力ファイルの仕様が変更となっている箇所のことである。例えば、この実施の形態では、新第１のプログラム２２１によって、旧第１の出力ファイル４１１に「有効期限」を追加した新第１の出力ファイル４２１を出力するので、新第１の出力ファイル仕様３２１には、「有効期限」の項目と定義が追加されている。このとき、第１のマスク箇所リスト７１１には、「有効期限」の項目が、比較の対象外とするマスク箇所として記憶される。これにより、第１のコンペアタスク６１における、旧第１の出力ファイル４１１と新第１の出力ファイル４２１との比較時には、「有効期限」に該当する両出力ファイル４１１、４２１の７１バイトから８桁は比較が行われないこととなる。このとき、出力ファイル４１１の７１バイトから８桁はブランクであり、出力ファイル４２１の７１バイトから８桁には年月日が出力されているが、当該箇所はマスクされて比較されないために、第１のアンマッチ結果５１にはブランクが出力されることとなる。
【００３５】
第１のマスク箇所抽出タスク７１は、図７に示すフローチャートに基づいた処理を行う。まず、旧第１の出力ファイル仕様３１１と新第１の出力ファイル仕様３２１と、旧第２の出力ファイル仕様３１２と新第２の出力ファイル仕様３２２とを取得する（ステップＳ２１）。そして、旧第１の出力ファイル仕様３１１と新第１の出力ファイル仕様３２１とに基づいて、第１のコンペアタスク６１における旧第１の出力ファイル４１１と新第１の出力ファイル４２１との比較時に、不一致が予測される箇所を第１のマスク箇所リスト７１１として出力する。また、第１のマスク箇所リスト７１１と、旧第２の出力ファイル仕様３１２と新第２の出力ファイル仕様３２２とに基づいて、第２のコンペアタスク６２における旧第２の出力ファイル４１２と新第２の出力ファイル４２２との比較時に、不一致が予測される箇所を第２のマスク箇所リスト７１２として出力する（ステップＳ２２）。この第１のマスク箇所抽出タスク７１は、制御部９０によって、プログラムの改修があった際、すなわち、新第１のプログラム２２１や新第１の出力ファイル仕様３２１などが追加、更新された際に、第１のコンペアタスク６１の起動前に起動されるように制御されている。
【００３６】
このようにして、第１のマスク箇所抽出タスク７１によって、第１のマスク箇所リスト７１１と第２のマスク箇所リスト７１２は、記憶部１０に記憶される。
【００３７】
第２のマスク箇所抽出タスク７２は、旧第２の出力ファイル仕様３１２と新第２の出力ファイル仕様３２２とに基づいて、第２のコンペアタスク６２における旧第２の出力ファイル４１２と新第２の出力ファイル４２２との比較時に、不一致が予測される箇所を第２のマスク箇所リスト７１２として出力する機能を有するプログラム、タスクである。このとき、第１のマスク箇所抽出タスク７１によって、すでに第２のマスク箇所リスト７１２が作成されている場合は、第２のマスク箇所リスト７１２を更新するものとする。この第２のマスク箇所抽出タスク７２は、第１のマスク箇所抽出タスク７１と同様の処理を行う。
【００３８】
第１の原因プログラム判定タスク８１は、ソースプログラムデータベース２０に記憶した旧第１のプログラム２１１と、新第１のプログラム２２１と、ファイル仕様書データベース３０に記憶した旧第１の出力ファイル仕様３１１と、新第１の出力ファイル仕様３２１と、第１のコンペアタスク６１によって出力した第１のアンマッチ結果５１とに基づいて、不一致の原因となったプログラムを判定して、第１のアンマッチ項目編集箇所を出力する機能を有するプログラム、タスクである。
【００３９】
第１の原因プログラム判定タスク８１は、図８に示すフローチャートに基づいた処理を行う。まず、第１のアンマッチ結果５１を取得する（ステップＳ３１）。そして、ソースプログラムデータベース２０に記憶した旧第１のプログラム２１１と、新第１のプログラム２２１を取得し（ステップＳ３２）、ファイル仕様書データベース３０に記憶した旧第１の出力ファイル仕様３１１と、新第１の出力ファイル仕様３２１を取得する（ステップＳ３３）。そして、原因プログラムを判定して、第１のアンマッチ項目編集箇所として出力する（ステップＳ３４）。具体的には、第１のアンマッチ結果５１に出力された項目（不一致の項目）を、旧第１の出力ファイル仕様３１１や新第１の出力ファイル仕様３２１に基づいて判定して、当該項目を含む旧第１のプログラム２１１や新第１のプログラム２２１を抽出する。このとき、プログラムの中で当該項目を含む関数が特定可能であれば、関数を絞り込んで判定する。例えば、図５に示す第１のアンマッチ結果５１の場合は、図２に示す旧第１の出力ファイル仕様３１１や、図３に示す新第１の出力ファイル仕様３２１に基づいて、不一致の項目が「計器番号」であることが分かるので、「計器番号」を含む旧第１のプログラム２１１や新第１のプログラム２２１や関数を抽出する。そして、判定結果としてプログラム名や関数名を第１のアンマッチ項目編集箇所として出力する。
【００４０】
また、第１のアンマッチ結果５１を検証した結果、不一致が生じた原因がプログラムのデグレードではないことが確認できた場合は、当該項目を第１のマスク箇所リスト７１１に追加できるようになっている。
【００４１】
この第１の原因プログラム判定タスク８１は、制御部９０によって、第１のコンペアタスク６１によって第１のアンマッチ結果５１が作成された後に起動されるように制御されている。
【００４２】
第２の原因プログラム判定タスク８２は、ソースプログラムデータベース２０に記憶した旧第２のプログラム２１２と、新第２のプログラム２２２と、ファイル仕様書データベース３０に記憶した旧第２の出力ファイル仕様３１２と、新第２の出力ファイル仕様３２２と、第２のコンペアタスク６２によって出力した第２のアンマッチ結果５２とに基づいて、不一致の原因となったプログラムを判定して、第２のアンマッチ項目編集箇所を出力する機能を有するプログラム、タスクであり、第１の原因プログラム判定タスク８１と同様の処理を行う。
【００４３】
このようにして出力された第１のアンマッチ結果５１や第２のアンマッチ結果５２を、開発担当者Ｍは目視で確認し、デクレードの有無を確認する。また、第１の原因プログラム判定タスク８１や第２の原因プログラム判定タスク８２によって判定されたプログラム名や関数名を、第１のアンマッチ項目編集箇所や第２のアンマッチ項目編集箇所によって確認して、デバッグを行うことができる。
【００４４】
次に、このような構成の出力ファイル検証システム１における情報の処理手段および作用について説明する。
【００４５】
まず、開発担当者Ｍによって、新第１のプログラム２２１によって、当該プログラムの出力ファイルである旧第１の出力ファイル４１１に「有効期限」を追加した新第１の出力ファイル４２１を出力するようにプログラムが改修され、新第１の出力ファイル仕様３２１には、「有効期限」の項目と定義が追加される。また、新第１のプログラム２２１に後続して処理される新第２のプログラム２２２が改修され、当該プログラムの出力ファイルである新第２の出力ファイル４２２の新第２の出力ファイル仕様３２２が作成される。
【００４６】
そして、プログラムの改修が終了すると、開発担当者Ｍによって、当該プログラムが所定の場所に登録される。当該プログラムが所定の場所に登録されると、制御部９０によって、第１のマスク箇所抽出タスク７１と第２のマスク箇所抽出タスク７２が起動される。ここで、新システムへの切替日を２０１３年０６月０６日とし、開発担当者Ｍによって、記憶部１０に新システムへの切替日として「２０１３０６０６」が記憶される。
【００４７】
そして、制御部９０によって、所定時間に当該プログラムが実行される。この実施の形態では、毎日午前２時に旧第１のプログラム２１１が起動されて、続いて、旧第２のプログラム２１２が起動されるように設定されるとともに、当時に、新第１のプログラム２２１が起動されて、続いて、新第２のプログラム２２２が起動されるように設定されている。
【００４８】
そして、制御部９０によって、図９、図１０に示すように、旧第１のプログラム２１１と新第１のプログラム２２１の処理の終了後、それぞれ旧第１の出力ファイル４１１と新第１の出力ファイル４２１を作成した後に、第１のコンペアタスク６１が起動するように制御されている。
【００４９】
第１のコンペアタスク６１が起動されると、旧第１の出力ファイル４１１と新第１の出力ファイル４２１とが比較されて、差異のある箇所が図５に示すような第１のアンマッチ結果５１として出力される。具体的には例えば、第１のマスク箇所リスト７１１には、「有効期限」の項目が、比較の対象外とするマスク箇所として記憶されている場合は、旧第１の出力ファイル４１１と新第１の出力ファイル４２１との比較時には、「有効期限」に該当する両出力ファイル４１１、４２１の７１バイトから８桁は比較が行われない。すなわち、出力ファイル４１１の７１バイトから８桁はブランクであり、出力ファイル４２１の７１バイトから８桁には年月日が出力されているが、当該箇所はマスクされて比較されないために、第１のアンマッチ結果５１にはブランクが出力される。
【００５０】
また、第１のコンペアタスク６１の処理の終了後、新システムへの切替日より前、２０１３年０６月０６日までは、第１のアンマッチ結果５１に不一致の項目が出力されていたとしても、後続の処理をそのまま継続するように制御される。また、新システムへの切替日以降、２０１３年０６月０６日以降であれば、第１のアンマッチ結果５１に不一致の項目が出力されていた場合は、異常終了として後続の処理を継続しないように制御される。
【００５１】
そして、制御部９０によって、図１０に示すように、第１のコンペアタスク６１の処理の終了後、第１のアンマッチ結果５１を作成した後に、第１の原因プログラム判定タスク８１が起動するように制御されている。
【００５２】
また、制御部９０によって、図９、図１０に示すように、旧第１のプログラム２１１と新第１のプログラム２２１の処理の終了後、それぞれ旧第１の出力ファイル４１１と新第１の出力ファイル４２１を作成した後に、旧第２のプログラム２１２と新第２のプログラム２２２が起動するように制御されている。
【００５３】
そして、制御部９０によって、図９、図１０に示すように、旧第２のプログラム２１２と新第２のプログラム２２２の処理の終了後、それぞれ旧第２の出力ファイル４１２と新第２の出力ファイル４２２を作成した後に、第２のコンペアタスク６２が起動するように制御されている。
【００５４】
第２のコンペアタスク６２が起動されると、旧第２の出力ファイル４１２と新第２の出力ファイル４２２とが比較されて、差異のある箇所が第２のアンマッチ結果５２として出力される。第２のコンペアタスク６２の処理の終了後、このとき、新システムへの切替日より前、２０１３年０６月０６日までは、第２のアンマッチ結果５２に不一致の項目が出力されていたとしても、後続の処理をそのまま継続するように制御される。新システムへの切替日以降、２０１３年０６月０６日以降であれば、第２のアンマッチ結果５２に不一致の項目が出力されていた場合は、異常終了として後続の処理を継続しないように制御される。
【００５５】
そして、制御部９０によって、第２のコンペアタスク６２の処理の終了後、第２のアンマッチ結果５２を作成した後に、第２の原因プログラム判定タスク８２が起動するように制御されている。
【００５６】
このようにして、制御部９０によって、所定時間に、旧第１のプログラム２１１と新第１のプログラム２２１が起動され、続いて、旧第２のプログラム２１２と新第２のプログラム２２２が起動される。そして、これらのプログラムの処理の終了後に、第１のコンペアタスク６１や第２のコンペアタスク６２が起動されて、第１のアンマッチ結果５１や第２のアンマッチ結果５２が出力される。
【００５７】
また、第１のアンマッチ結果５１や第２のアンマッチ結果５２が作成された後に、第１の原因プログラム判定タスク８１や第２の原因プログラム判定タスク８２が起動されて、第１のアンマッチ項目編集箇所や第２のアンマッチ項目編集箇所が出力される。
【００５８】
以上のように、この出力ファイル検証システム１によれば、第１のマスク箇所抽出タスク７１によって、旧第１の出力ファイル仕様３１１と新第１の出力ファイル仕様３２１に基づいて第１のマスク箇所リスト７１１を作成することができる。すなわち、比較の対象外とする項目（マスク項目）をプログラムのソースコードから自動で抽出するので、人為的ミスが防止されて作業の精度が向上し、作業時間を大幅に短縮することができる。第２のマスク箇所抽出タスク７２も同様である。
【００５９】
また、第１のマスク箇所抽出タスク７１によって、第１のマスク箇所リスト７１１と、旧第２の出力ファイル仕様３１２と新第２の出力ファイル仕様３２２とに基づいて、旧第２の出力ファイル４１２と新第２の出力ファイル４２２との比較時に、不一致が予測される箇所を出力することができる。これにより、第１のマスク箇所リスト７１１を作成するとともに、後続する処理についても第２のマスク箇所リスト７１２を作成してしまうので、作業時間を大幅に短縮することができる。
【００６０】
これらによって、例えば、改修前後の出力ファイル４１１、４１２を比較して検証する際に、変更した項目は比較の対象外となるため、変更していない項目が一致していることを確認することが容易になり、例えば、テスト実施者が、出力ファイル４１１、４１２を並べたり、重ね合せたりする必要がないので、出力ファイル４１１、４１２の比較が容易かつ正確となり、テスト実施者による見落としや、見誤りを防止することが可能である。
【００６１】
また、第１の原因プログラム判定タスク８１によって、旧第１のプログラム２１１と、新第１のプログラム２２１と、ファイル仕様書データベース３０に記憶した旧第１の出力ファイル仕様３１１と、新第１の出力ファイル仕様３２１と、第１のコンペアタスク６１によって出力した第１のアンマッチ結果５１に基づいて、不一致の原因となったプログラムや関数などを判定して第１のアンマッチ項目編集箇所として出力するので、デバッグ作業が容易となる。
【００６２】
以上、この発明の実施の形態について説明したが、具体的な構成は、上記の実施の形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計の変更等があっても、この発明に含まれる。例えば、上記の実施の形態では、プログラムの数は２つとして説明したが、プログラムの数は２つに限定されないことはもちろんである。
【符号の説明】
【００６３】
１              出力ファイル検証システム
１０            記憶部（記憶手段）
２０            ソースプログラムデータベース
２１１          旧第１のプログラム
２１２          旧第２のプログラム
２２１          新第１のプログラム
２２２          新第２のプログラム
３０            ファイル仕様書データベース
３１１          旧第１の出力ファイル仕様
３１２          旧第２の出力ファイル仕様
３２１          新第１の出力ファイル仕様
３２２          新第２の出力ファイル仕様
４０            出力ファイルデータベース
４１１          旧第１の出力ファイル
４１２          旧第２の出力ファイル
４２１          新第１の出力ファイル
４２２          新第２の出力ファイル
５０            アンマッチ結果データベース
５１            第１のアンマッチ結果（不一致リスト）
５２            第２のアンマッチ結果（不一致リスト）
６１            第１のコンペアタスク（出力ファイル比較手段）
６２            第２のコンペアタスク（出力ファイル比較手段）
７１            第１のマスク箇所抽出タスク（マスク箇所抽出手段）
７１１          第１のマスク箇所リスト
７１２          第２のマスク箇所リスト
７２            第２のマスク箇所抽出タスク（マスク箇所抽出手段）
８１            第１の原因プログラム判定タスク（原因プログラム判定手段）
８２            第２の原因プログラム判定タスク（原因プログラム判定手段）
【図１】
2015108937.tif 000003
【図２】
2015108937.tif 000004
【図３】
2015108937.tif 000005
【図４】
2015108937.tif 000006
【図５】
2015108937.tif 000007
【図６】
2015108937.tif 000008
【図７】
2015108937.tif 000009
【図８】
2015108937.tif 000010
【図９】
2015108937.tif 000011
【図１０】
2015108937.tif 000012