JP5461716B1 - プログラム検証システム - Google Patents

プログラム検証システム Download PDF

Info

Publication number
JP5461716B1
JP5461716B1 JP2013002791A JP2013002791A JP5461716B1 JP 5461716 B1 JP5461716 B1 JP 5461716B1 JP 2013002791 A JP2013002791 A JP 2013002791A JP 2013002791 A JP2013002791 A JP 2013002791A JP 5461716 B1 JP5461716 B1 JP 5461716B1
Authority
JP
Japan
Prior art keywords
old
program
new
input file
output
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.)
Active
Application number
JP2013002791A
Other languages
English (en)
Other versions
JP2014134969A (ja
Inventor
鉄也 長岡
弘美 坂本
武 岡田
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.)
Chugoku Electric Power Co Inc
Original Assignee
Chugoku Electric Power Co Inc
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 Chugoku Electric Power Co Inc filed Critical Chugoku Electric Power Co Inc
Priority to JP2013002791A priority Critical patent/JP5461716B1/ja
Application granted granted Critical
Publication of JP5461716B1 publication Critical patent/JP5461716B1/ja
Publication of JP2014134969A publication Critical patent/JP2014134969A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】プログラム改修の際に、改修の途中であってもプログラムの検証を容易にする。
【解決手段】旧入力ファイルと新入力ファイルとのデータ定義に基づいて、旧入力ファイルに、データ項目の追加や削除、変更を含むデータ定義の差異を反映することによって新入力ファイルを作成し(S41)、旧入力ファイルに基づいて旧帳票を出力する機能を有する改修前の旧プログラムと、旧プログラムの一部の機能を改修したプログラムであって新入力ファイルに基づいて新帳票を出力する機能を有する新プログラムとを実行して、それぞれ旧帳票と新帳票を作成し(S42)、新帳票を旧帳票のフォーマットに合わせて編集し(S43)、編集された新帳票と旧帳票とを、行ごとに先頭から1バイトずつ比較して、新帳票と旧帳票とを併記して差異のある点を出力する(S44)。
【選択図】図12

Description

この発明は、入力ファイルに基づいて帳票を出力する機能を有するプログラムの改修時に、改修したプログラムが正しいか否かを検証するプログラム検証システムに関する。
電力会社においては、例えば、お客様の契約内容、電気使用量を含む帳票を業務ごと、部署ごとにシステムで出力する。そのため、業務の変更や新サービスの開始などによって、帳票の出力項目に増減が生じ、行の追加や削除のような増減を伴う帳票のフォーマット変更やプログラムの改修が発生する。このようなプログラムの改修後は、開発担当者は、新しい帳票が仕様通りに出力されているか否か、すなわち、デグレードの有無を確認するために、例えば、新旧の帳票を並べたり、重ね合せたりして出力内容の差異を目視で確認する。このため、帳票の出力項目が多い場合は、比較作業に多大な労力を要し、見落としを生じ易いという問題がある。また、帳票に行の追加や削除のような増減を伴う場合は、新旧の帳票を並べたり、重ね合せたりして比較することが困難となり、比較作業にさらに多大な時間と労力とを要することになる。
ところで、比較フィールドを追加して表示することにより、複数の電子帳票の間で必要なデータ部分の比較を容易にすることが開示されている(例えば、特許文献1参照。)。また、画面フォ−マットに従って単体テストデータの作成することが開示され(例えば、特許文献2参照。)、単体テスト用データ作成時に、動作シーケンス定義とデータ書式定義によって、値決定が必要なフィールドのみをユーザに示すことが開示され(例えば、特許文献3参照。)。先願4には、テストケースを生成することが開示されている(例えば、特許文献4参照。)。
特開2009−163412号公報 特開平06−348542号公報 特開平11−120029号公報 特開2012−108692号公報
しかしながら、引用文献1から4に記載のいずれの技術であっても、例えば、帳票の複数項目の追加や削除を行うプログラムの改修をした場合、テストによって不具合が発見されたとしても、不具合の原因箇所を特定することが困難となる。そのため、テスト結果や修正箇所を検証して原因箇所を特定する必要があるため、テスト実施者の経験度や熟練度によって、原因箇所の特定に要する時間に差異が生じる。
そのため、プログラムを機能ごとに改修し、機能ごとに改修が終了したタイミングで、機能ごとに改修内容についてデグレードの有無を検証することが出来れば、不具合の発生箇所の切り分けが容易となると本出願の発明者は考えた。
そこで、この発明は、前記の課題を解決し、プログラム改修の際に、改修の途中でプログラムの検証が容易なプログラム検証システムを提供することを目的としている。
前記の課題を解決するために、請求項1の発明は、旧入力ファイルに基づいて帳票を出力する機能を有する改修前の旧プログラムと、前記旧プログラムの一部の機能を改修したプログラムであって新入力ファイルに基づいて帳票を出力する機能を有する新プログラムとを記憶した記憶手段と、前記旧プログラムおよび前記新プログラムを実行して、それぞれ旧帳票と新帳票を作成するプログラム実行手段と、前記新プログラムによって出力された新帳票を、前記旧プログラムによって出力された旧帳票のフォーマットに合わせて編集する帳票編集手段と、前記帳票編集手段で編集された新帳票と、前記旧帳票とを比較して、差異のある点を表示するプログラム検証手段と、を備えることを特徴とする。
この発明によれば、帳票編集手段によって旧プログラムによって出力された旧帳票のフォーマットに合わせて編集された新帳票と、旧帳票とを比較して、差異のある点が表示される。
請求項2に記載の発明は、請求項1に記載のプログラム検証システムにおいて、前記新プログラムには、前記新入力ファイルのデータ型やバイト数を含むデータ定義が所定の書式で定義されており、前記データ定義に基づいて、前記新入力ファイルを作成する入力ファイル作成手段、を備えることを特徴とする。
請求項3に記載の発明は、請求項2に記載のプログラム検証システムにおいて、前記入力ファイル作成手段は、前記記憶手段に記憶されている前記旧入力ファイルに基づいて、データ項目の追加や削除、変更を含むデータ定義の差異を反映することによって前記新入力ファイルを作成する、ことを特徴とする。
請求項1に記載の発明によれば、プログラム検証手段によって、旧プログラムによって出力された旧帳票のフォーマットに合わせて編集された新帳票と、旧帳票とを比較して、差異のある点を表示するので、比較結果の確認が容易になる。すなわち、テスト実施者が、帳票を並べたり、重ね合せたりする必要がないので、帳票の比較が容易かつ正確となり見落としや、見誤りを防止することが可能である。
請求項2に記載の発明によれば、入力ファイル作成手段によって、新プログラムの各データ項目のデータ型やバイト数を含むデータ定義に基づいて新入力ファイルを作成するので、テスト実施者が入力ファイルを用意する必要がなくなり、より容易に帳票を比較することが可能となる。また、データ定義に基づいて新入力ファイルを作成するので、入力ファイルの作成ミスのような人為的ミスによって新プログラムが正しく動作しないということを防止できる。
また、入力ファイル作成手段によって、新プログラムのデータ定義に基づいて新入力ファイルを作成する。このため、例えば、複数項目を追加や削除する複数機能を機能ごとに改修するプログラムの改修時は、機能ごとに改修が終了したタイミングで入力データを作成することができる。つまり、プログラムを機能ごとに改修する場合は、機能ごとに改修が終了したタイミングで、改修内容についてデグレードの有無を検証することができる。これにより、不具合の発生箇所の切り分けが容易となり、プログラム改修を効率化することが可能である。
請求項3に記載の発明によれば、新入力ファイルは、旧入力ファイルを基にして、データ項目の追加や削除、変更を含むデータ定義の差異を反映することによって作成される。このため、入力ファイル作成手段によって作成された旧入力ファイルと新入力ファイルは、データ定義に差異があった項目以外は同一であるので、旧帳票と新帳票の比較が容易になる。すなわち、データ定義に差異があった項目以外は同一の入力ファイルに基づいて作成した新旧の帳票を比較することができるので、帳票の差分がプログラム改修に起因するものに限定され、容易に比較することができる。
この発明の実施の形態に係るプログラム検証システムの概略構成図である。 図1のプログラム検証システムで検証するプログラムによって作成される帳票に基づいて作成される請求書であり、(a)は現行の旧請求書であり、(b)は改修後の新請求書である。 図1のプログラム検証システムで検証するプログラムの旧入力ファイルの一部である。 図1のプログラム検証システムで検証するプログラムの新入力ファイルの一部である。 図1のプログラム検証システムで検証するプログラムによって作成された旧帳票の一部である。 図1のプログラム検証システムで検証するプログラムによって作成された新帳票の一部であり、(a)はプログラムによって作成された新帳票の一部であり、(b)はキー項目が付加された新帳票の一部であり、(c)は旧帳票の出力項目に合わせて編集された新帳票の一部であり、(d)は編集後新帳票の一部である。 図1のプログラム検証システムで検証するプログラムの定義ファイルの一部である。 図1のプログラム検証システムの入力ファイル作成タスクによる情報処理を示すフローチャートである。 図1のプログラム検証システムの帳票編集タスクによる情報処理を示すフローチャートである。 図1のプログラム検証システムの帳票比較タスクによって作成されるコンペアチェックリストの一部である。 図1のプログラム検証システムの帳票比較タスクによる情報処理を示すフローチャートである。 図1のプログラム検証システムのプログラム検証タスクによる情報処理を示すフローチャートである。 図1のプログラム検証システムを使用したプログラム改修を説明するためのフローチャートであり、開発担当者の動作と、開発サーバによる情報処理を示す。
以下、この発明を図示の実施の形態に基づいて説明する。
図1は、この発明の実施の形態に係るプログラム検証システム1の概略構成ブロック図である。この実施の形態では、電気料金の請求書作成プログラムを改修する場合について説明する。このプログラム検証システム1は、旧入力ファイル20に基づいて、図2(a)に示すような電気料金の旧請求書30を出力する機能を有する旧プログラムの改修時に、改修したプログラムが正しいか否か、すなわち、デグレードの有無を検証する機能を有するものである。この実施の形態では、旧プログラムを改修して、契約種別51と前月比52とを追加して、新入力ファイル40に基づいて、図2(b)に示す新請求書50を出力する新プログラムが正しいか否かを判定するものとする。
ここで、旧入力ファイル20は、旧請求書30を出力するために、図3に示すように、営業所番号、契約者番号ごとに、住所、請求年月、請求金額が記載されたものである。この旧入力ファイル20は、例えば、外部の料金計算システム(図示略)によって、契約者ごとの請求金額が計算された際に記憶部11に記憶されるようになっている。
旧請求書30は、図2(a)に示すように、契約者ごとに、住所、請求年月、請求金額を出力するものであり、旧帳票60に基づいて作成されるものである。
新入力ファイル40は、旧入力ファイル20と同様に、例えば、外部の料金計算システムによって作成されて、記憶部11に記憶されるものである。新入力ファイル40は、図4に示すように、旧入力ファイル20に契約種別と前月比とが、行の先頭から5項目目、7項目目に追加されたものである。
新請求書50は、図2(b)に示すように、旧請求書30に契約種別51と前月比52とを追加して出力するものであり、新帳票70に基づいて作成されるものである。
旧帳票60は、旧プログラムによって出力されるものであり、図5に示すように、旧請求書30を出力するための出力項目をキー項目によってグループ化し、ソートして並べたものである。この旧帳票60の出力項目を所定の書式で、契約者ごとに出力したものが旧請求書30である。
新帳票70は、新プログラムによって出力されるものであり、旧帳票60と同様に、図6(a)〜(d)に示すように、新請求書50を出力するための出力項目をキー項目によってグループ化し、ソートして並べたものである。この新帳票70の出力項目を所定の書式で、契約者ごとに出力したものが新請求書50である。
プログラム検証システム1は、図1に示すように、主として、旧プログラムおよび新プログラムを含むプログラム、タスク、ファイルを記憶した記憶部11と、入力ファイル作成手段としての入力ファイル作成タスク12と、プログラム実行手段としてのプログラム実行タスク13と、帳票編集手段としての帳票編集タスク14と、帳票比較手段としての帳票比較タスク15と、プログラム検証手段としてのプログラム検証タスク16と、これらを制御などする制御部10とを備えている。
記憶部11は、図3に示すような旧入力ファイル20に基づいて図2(a)に示すような旧請求書30を出力する機能を有する改修前の旧プログラムと、旧プログラムの一部の機能を改修したプログラムであって図4に示すような新入力ファイル40に基づいて図2(b)に示すような新請求書50を出力する機能を有する新プログラムと、図7に示す定義ファイル80を記憶する。この旧プログラム、新プログラムは、単体テストを行うタイミングで開発担当者Mによって開発サーバCに保存(登録)される。また、記憶部11は、旧入力ファイル20や新入力ファイル40、旧請求書30、新請求書50、旧帳票60、新帳票70を記憶する。旧入力ファイル20は、旧プログラムの実行前に保存され、新入力ファイル40は、入力ファイル作成タスク12によって作成されて保存される。ここで、プログラムの実行に使用する旧入力ファイル20と新入力ファイル40は、ファイル名にタイムスタンプを付加して、全ファイルを履歴として記憶部11に記憶するようになっている。旧帳票60と新帳票70は、プログラム実行タスク13によってプログラムが実行されると作成されて保存される。旧請求書30と新請求書50は、旧帳票60と新帳票70に基づいて、請求書作成タスク(図示略)が実行されると作成されて保存される。さらに、記憶部11は、プログラム、タスクや、プログラム、タスクの処理に必要な一時ファイルなどを記憶する。
入力ファイル作成タスク12は、新プログラムに定義された新入力ファイル40のデータ定義に基づいて、記憶部11に記憶された旧入力ファイル20に基づいて、データ項目の追加や削除、変更を含むデータ定義の差異を反映することによって新入力ファイル40を作成する機能を有するプログラム、タスクである。この入力ファイル作成タスク12は、後述するプログラム検証タスク16によって起動される。
入力ファイル作成タスク12は、図8に示すフローチャートに基づいた処理を行う。まず、データ定義を取得する(ステップS11)。データ定義は、プログラムで使用する入力項目を含む各データ項目のデータ型やバイト数を含むデータ定義が所定の書式で定義ファイル80に記載されている。データ定義は、入力項目ごとに、変数名、データ型(数値、文字列)、桁数、ファイル内の位置が定義されている。具体的には例えば、図7に示す定義ファイル80には、契約種別と前月比のデータ定義が新たに追加されている。すなわち、契約種別は、「KEISYU=File1(5,2) INPUT ITEM(integer,2)」と定義されており、変数名は「KEISYU」、入力ファイルは「File1」の5項目であって整数2バイトの入力項目であることが定義されている。また、前月比は、「ZENGETSU=File1(7,6) INPUT ITEM(integer,6)」と定義されており、変数名は「ZENGETSU」、入力ファイルは「File1」の7項目であって整数6バイトの入力項目であることが定義されている。ここで、定義ファイル80の追加行の末尾には、「//*UPD YYYYMMDD *//」とのコメントの記述がある。すなわち、行の末尾に、「//*UPD YYYYMMDD *//」とのコメントが記述されている場合、当該行が更新された行であると判定できるようになっている。
そして、旧入力ファイルを取得する(ステップS12)。すなわち、プログラム実行タスク13によって、旧プログラムの実行時に作成されて記憶部11に記憶されている旧入力ファイル20の中から、所定のものを取得する。ここで、所定のものとは、最新の旧入力ファイル20やプログラムのテストに適した、例えば、旧プログラムのテストにおいて使用した旧入力ファイル20を選択可能となっている。
そして、新入力ファイル40を作成して記憶部11に保存して、このタスクの処理を終了する(ステップS13)。すなわち、ステップS11で取得した定義ファイル80と、ステップS12で取得した旧入力ファイル20とに基づいて、新入力ファイル40を作成する。具体的には、定義ファイル80から、行の末尾に、「//*UPD YYYYMMDD *//」とのコメントと記述され、新プログラムの改修によって追加された入力項目は、入力ファイル「File1」の5項目の整数2バイトの契約種別と、7項目の整数6バイトの前月比であることが判定されるので、契約種別、前月比を旧入力ファイル20の該当箇所(4項目目と5項目目の間、5項目目の後)に追加して、図4に示す新入力ファイル40を作成する。
このようにして新入力ファイル40が作成されて、記憶部11に保存される。
プログラム実行タスク13は、記憶部11に記憶されている旧プログラムおよび新プログラムをロードして実行して、それぞれ旧帳票と新帳票を作成する機能を有するプログラム、タスクである。すなわち、プログラム実行タスク13が実行されると、旧帳票60および新帳票70がそれぞれ作成される。プログラム実行タスク13は、後述するプログラム検証タスク16によって起動される。
帳票編集タスク14は、新プログラムによって出力された新帳票70を、旧プログラムによって出力された旧帳票60のフォーマットに合わせて編集する機能を有するプログラム、タスクである。この帳票編集タスク14は、後述するプログラム検証タスク16によって起動される。
帳票編集タスク14は、図9に示すフローチャートに基づいた処理を行う。まず、新帳票70を取得する(ステップS21)。すなわち、新プログラムによって作成されて記憶部11に記憶されている新帳票70を取得する。
そして、新帳票70にキー情報を付加する(ステップS22)。ここで、キー情報とは、帳票ごとに定義され、グループ化やソート、改ページに用いられる項目のことであり、ここでは、営業所と契約番号をキー情報とする。つまり、帳票60、70においては、営業所順、契約番号順にソートされ、同一営業所の契約者情報が同一ページに出力されるようになっている。具体的には、図6(a)に示す新帳票70の各行の末尾にキー情報を付加して、図6(b)に示す新帳票70Bを作成する。
そして、新帳票70を旧帳票60のフォーマットに編集する(ステップS23)。具体的には、新帳票70において行が追加されている場合は、旧帳票60に存在しない行、つまり、新帳票70の追加行、例えば、図6(b)において色を付した行は削除して行を詰めて、旧帳票60の出力フォーマットに含まれる行のみで構成される図6(c)に示す新帳票70Cを作成する。さらに、新帳票70Cに含まれる営業所を営業所番号に変換して図6(d)に示す編集後新帳票70Dを作成する。ここで、新帳票70の追加行であるか否かの判定すなわち、新プログラムにおいて出力項目を追加した箇所であるか否かの判定は、定義ファイル80と同様に変更行であることを示す「//*UPD YYYYMMDD *//」とのコメントの有無によって判定することができる。
また、新帳票70において行が削除されている場合は、旧帳票60に存在して、新帳票70に存在しない削除行は改行して空白行を挿入し、旧帳票60の出力フォーマットと同じ行数で構成される新帳票70を作成する。
帳票比較タスク15は、帳票編集タスク14で編集された編集後新帳票70Dと、旧帳票60とを、行ごとに先頭から1バイトずつ比較して、編集後新帳票70Dと旧帳票60とを併記して差異のある点を図10に示すコンペアチェックリスト90として出力する機能を有するプログラム、タスクである。この帳票比較タスク15は、後述するプログラム検証タスク16によって起動される。
帳票比較タスク15は、図11に示すフローチャートに基づいた処理を行う。まず、編集後新帳票70Dと旧帳票60から制御文字を削除する(ステップS31)。すなわち、編集後新帳票70Dと旧帳票60から、出力用に記述した文字サイズ、文字間サイズなどを含む制御コードを削除する。具体的には、削除すべき制御コードのパターンを定義しておき、定義に合致する制御コードを削除する。
そして、編集後新帳票70Dと旧帳票60とを比較する(ステップS32)。具体的には、編集後新帳票70Dと旧帳票60とを、先頭から1バイトずつ比較し、差異がある場合は、編集後新帳票70Dまたは旧帳票60の行数と、行の先頭からの文字数を差異情報として記憶部11に記憶する。
そして、ステップS32で作成したコンペアチェックリスト90を出力する(ステップS33)。このコンペアチェックリスト90は、図10に示すように、編集後新帳票70Dと旧帳票60の1行を5列単位としてとして出力するものである。具体的には、1列目91には、キー項目を出力し、2列目92には、メモリ行を出力し、3列目93には、旧帳票60を1行出力し、4列目94には、編集後新帳票70Dを1行出力し、5列目95には、3列目93と4列目94の不一致箇所に「*」を出力する。この不一致箇所は、ステップS32で記憶した差異情報に基づいて、編集後新帳票70Dと旧帳票60の該当行の先頭からの文字数の位置に「*」を出力する。具体的には、この実施の形態では、3列目93の契約番号は「100200」であり、4列目94の契約番号は「100202」でるため、不一致と判定され、5列目95の契約番号の6桁目に該当する位置に「*」が出力される。また、ページの先頭には、キー項目である営業所名と帳票IDを出力する。
プログラム検証タスク16は、プログラム実行タスク13によって、旧プログラムと新プログラムを実行して旧帳票60と新帳票70を作成し、帳票編集タスク14で編集された編集後新帳票70Dと旧帳票60とに基づいて、帳票比較タスク15によって差異のある箇所を出力する機能を有するプログラム、タスクである。このプログラム検証タスク16は、開発担当者Mの実行指令によって起動される。
プログラム検証タスク16は、図12に示すフローチャートに基づいた処理を行う。まず、入力ファイル作成タスク12を実行して(ステップS41)、新入力ファイル40を作成する。そして、プログラム実行タスク13によって旧プログラムを実行して旧帳票60を出力し、新プログラムを実行して新帳票70を出力する(ステップS42)。
そして、帳票編集タスク14を実行して(ステップS43)、新帳票70に基づいて編集後新帳票70Dを出力する。
そして、帳票比較タスク15を実行して(ステップS44)、編集後新帳票70Dと旧帳票60とに基づいてコンペアチェックリスト90を出力し、このタスクの処理を終了する。
このようにして出力されたコンペアチェックリスト90を、開発担当者Mは目視で確認し、デクレードの有無を確認する。
次に、このような構成のプログラム検証システム1における情報の処理手段および作用について説明する。ここでは、旧プログラムを改修して、契約種別51と前月比52とを追加して、新入力ファイル40に基づいて、図2(b)に示す新請求書50を出力する新プログラムを作成するものとする。この改修においては、契約種別51の追加と、前月比52の追加は、それぞれ別機能として追加されるものとする。
また、開発担当者Mは、プログラムの改修と、プログラム検証タスク16によるデグレードのチェックを本番環境サーバとは異なる開発サーバCで行うものとする。
まず、開発担当者Mによって、契約種別51を追加する機能を追加する改修が行われる。
図13に示すように、開発担当者Mによって、契約種別51を出力するようにプログラムが改修されて、新プログラムが作成される(ステップS51)。すなわち、旧プログラムを改修して、契約種別51を出力項目に追加した新プログラムが作成される。具体的には、契約種別51を入力項目として取得し、新帳票70に出力する処理が新プログラムに追加されて、定義ファイル80に契約種別51が追加される。
そして、プログラムの改修が終了すると、開発担当者Mによって、プログラム検証タスク16が起動される(ステップS52)。すなわち、図3に示す旧入力ファイル20に契約種別51を追加した新入力ファイル40が作成されて、新帳票70と旧帳票60とが比較されて、コンペアチェックリスト90が作成される。このとき、新入力ファイル40は、プログラムおよび定義ファイル80に基づいて契約種別51のみが追加されたものが作成される。そして、作成されたコンペアチェックリスト90は、開発担当者Mに結果として通知される。
そして、開発担当者Mによって、コンペアチェックリスト90が目視で確認される(ステップS53)。ここで、確認の結果、デグレード、不具合が発見された場合は、不具合が解消されるまで、ステップS51からステップS53の処理が繰り返される。このとき、改修範囲は契約種別51を追加する機能であるため、原因箇所が限定される。また、確認の結果、不具合がない場合、つまり、仕様通りの結果が得られた場合は、次に前月比を出力する機能を追加する改修が行われる。
そして、開発担当者Mによって、前月比52を出力するようにプログラムが改修されて、新プログラムが作成される(ステップS54)。
そして、以下、同様にして、プログラム検証タスク16が起動されて、開発担当者Mによって結果が確認されて、不具合が解消されるまで、ステップS51からステップS53の処理が繰り返される。
このようにして、プログラムを機能ごと、例えば、新帳票70に契約種別51を追加する機能と、新帳票70に前月比52を追加する機能とを順番に改修した場合であっても、それぞれ、旧帳票60と新帳票70を比較して相違点を表示したコンペアチェックリスト90が出力される。
以上のように、このプログラム検証システム1によれば、プログラム検証タスク16によって、旧プログラムによって出力された旧帳票60のフォーマットに合わせて編集された新帳票70Dと、旧帳票60とを比較して、差異のある点をコンペアチェックリスト90として表示するので、比較結果の確認が容易になる。すなわち、開発担当者Mが、新帳票70と旧帳票60とを比較するために、並べたり、重ね合せたりする必要がないので、帳票の比較が容易かつ正確となり見落としや、見誤りを防止することが可能である。
また、入力ファイル作成タスク12によって、新プログラムの定義ファイル80の各データ項目のデータ型やバイト数を含むデータ定義に基づいて新入力ファイル40を作成するので、担当者が新入力ファイル40を用意する必要がなくなり、より容易に旧帳票60と新帳票70を比較することが可能となる。また、データ定義に基づいて新入力ファイル40を作成するので、新入力ファイル40の作成ミスのような人為的ミスによって新プログラムが正しく動作しないということを防止できる。
また、例えば、複数項目を追加や削除する複数機能を機能ごとに改修するプログラムの改修時は、機能ごとに改修が終了したタイミングで新入力ファイル40を作成することができる。つまり、プログラムの改修が機能ごとに終わったタイミングで、プログラム検証タスク16によってコンペアチェックリスト90が作成されて、デグレードの有無を確認できる。このため、デグレードが生じた場合は、不具合の原因箇所が限定されているため、不具合の発生箇所の切り分けが容易となり、プログラム改修を効率化することが可能である。
さらに、新入力ファイル40は、旧入力ファイル20を基にして、データ項目の追加や削除、変更を含むデータ定義の差異を反映することによって作成される。このため、入力ファイル作成タスク12によって作成された旧入力ファイル20と新入力ファイル40は、データ定義に差異があった項目以外は同一であるので、旧帳票60と新帳票70の比較が容易になる。すなわち、データ定義に差異があった項目以外は同一の入力ファイル20、40に基づいて作成した新旧の帳票60、70を比較することができるので、帳票60、70の差分がプログラム改修に起因するものに限定され、容易に比較することができる。
さらに、新入力ファイル40は、記憶部11に記憶されている旧入力ファイル20を基にして作成するので、過去に旧プログラムについて行った単体テストや、その他のテストデータなども有効に活用することができるので、テストデータの準備が容易になる。
以上、この発明の実施の形態について説明したが、具体的な構成は、上記の実施の形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計の変更等があっても、この発明に含まれる。例えば、上記の実施の形態では、データ定義は、定義ファイル80に記述するものとして説明したが、プログラムのソースコードの例えば冒頭に記載するようにしてもよい。
また、プログラム改修に伴う追加、削除などを含む変更箇所は、所定のコメント(「//*UPD YYYYMMDD *//」)を記述するのではなく、旧プログラムや旧定義ファイルとの差分を取得することにより、定義ファイル80の修正箇所、すなわち、入力項目の変更箇所を判断するようにしてもよい。
さらに、コンペアチェックリスト90の出力項目は、マスクが可能となっており、比較不要な項目を非表示(非出力)としたり、追加したりできるようにしてもよい。
1 プログラム検証システム
11 記憶部(記憶手段)
12 入力ファイル作成タスク(入力ファイル作成手段)
13 プログラム実行手段(プログラム実行タスク)
14 帳票編集手段(帳票編集タスク)
15 帳票比較手段(帳票比較タスク)
16 プログラム検証手段(プログラム検証タスク)
20 旧入力ファイル
30 旧請求書
40 新入力ファイル
50 新請求書
60 旧帳票
70 新帳票
70D 編集後新帳票
80 定義ファイル
90 コンペアチェックリスト

Claims (3)

  1. 旧入力ファイルに基づいて帳票を出力する機能を有する改修前の旧プログラムと、前記旧プログラムの一部の機能を改修したプログラムであって新入力ファイルに基づいて帳票を出力する機能を有する新プログラムとを記憶した記憶手段と、
    前記旧プログラムおよび前記新プログラムを実行して、それぞれ旧帳票と新帳票を作成するプログラム実行手段と、
    前記新プログラムによって出力された新帳票を、前記旧プログラムによって出力された旧帳票のフォーマットに合わせて編集する帳票編集手段と、
    前記帳票編集手段で編集された新帳票と、前記旧帳票とを、行ごとに先頭から1バイトずつ比較して、前記新帳票と前記旧帳票とを併記して差異のある点を出力する帳票比較手段と、
    を備えることを特徴とするプログラム検証システム。
  2. 前記新プログラムには、前記新入力ファイルの各データ項目のデータ型やバイト数を含むデータ定義が所定の書式で定義されており、
    前記データ定義に基づいて、前記新入力ファイルを作成する入力ファイル作成手段、
    を備えることを特徴とする請求項1に記載のプログラム検証システム。
  3. 前記入力ファイル作成手段は、前記記憶手段に記憶されている前記旧入力ファイルに基づいて、データ項目の追加や削除、変更を含むデータ定義の差異を反映することによって前記新入力ファイルを作成する、
    ことを特徴とする請求項2に記載のプログラム検証システム。
JP2013002791A 2013-01-10 2013-01-10 プログラム検証システム Active JP5461716B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013002791A JP5461716B1 (ja) 2013-01-10 2013-01-10 プログラム検証システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013002791A JP5461716B1 (ja) 2013-01-10 2013-01-10 プログラム検証システム

Publications (2)

Publication Number Publication Date
JP5461716B1 true JP5461716B1 (ja) 2014-04-02
JP2014134969A JP2014134969A (ja) 2014-07-24

Family

ID=50619348

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013002791A Active JP5461716B1 (ja) 2013-01-10 2013-01-10 プログラム検証システム

Country Status (1)

Country Link
JP (1) JP5461716B1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6565145B2 (ja) * 2014-08-11 2019-08-28 富士通株式会社 処理方法、処理装置及びプログラム
JP6490935B2 (ja) * 2014-09-26 2019-03-27 株式会社野村総合研究所 テスト実行装置、テスト実行方法およびコンピュータプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009163412A (ja) * 2007-12-28 2009-07-23 Canon It Solutions Inc 情報処理装置および方法
JP2011197844A (ja) * 2010-03-18 2011-10-06 Hitachi Ltd 差分検知システム
JP2012098778A (ja) * 2010-10-29 2012-05-24 Canon Software Inc 電子帳票処理システム、電子帳票処理装置、電子帳票処理方法、プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009163412A (ja) * 2007-12-28 2009-07-23 Canon It Solutions Inc 情報処理装置および方法
JP2011197844A (ja) * 2010-03-18 2011-10-06 Hitachi Ltd 差分検知システム
JP2012098778A (ja) * 2010-10-29 2012-05-24 Canon Software Inc 電子帳票処理システム、電子帳票処理装置、電子帳票処理方法、プログラム

Also Published As

Publication number Publication date
JP2014134969A (ja) 2014-07-24

Similar Documents

Publication Publication Date Title
CN107220172B (zh) 通过模型驱动技术进行自动用户界面(ui)测试的方法和系统
JP2012221380A (ja) 自動プログラム生成装置、方法及びコンピュータプログラム
US20130290075A1 (en) Localization quality assurance of localized software
CN102360331A (zh) 基于形式化描述的测试程序自动生成方法
CN104657274A (zh) 软件界面测试方法及装置
JP2007304660A (ja) コマンド実行結果記録システム及びコマンド実行結果記録方法
US20150234732A1 (en) Executable software specification generation
JP5461716B1 (ja) プログラム検証システム
CN115688675A (zh) 一种灵活在线检查和校正电路原理图参数方法
CN108170466A (zh) 一种基于程序合成的c/c++程序缺陷自动修复方法
CN117312270A (zh) 一种数据库自动化构建和部署的变更管理方法
JP6668580B2 (ja) ファイル編集方法、ファイル編集装置及びファイル編集プログラム
JP5293521B2 (ja) デザインルールチェック検証装置およびデザインルールチェック検証方法
JP5823478B2 (ja) 出力ファイル検証システム
KR101891797B1 (ko) Cad 기반의 제어신호 자동 연계 플랜트 제어회로 제작시스템
JP6287093B2 (ja) ソフトウェア開発支援装置、ソフトウェア開発支援方法及びプログラム
CN106909500B (zh) 机载软件开发过程中引入错误的检测方法和系统
CN106033338A (zh) 基于fog数据的源代码导入及解析的方法和装置
JP6006577B2 (ja) デグレードテスト支援システム、デグレードテスト支援方法及びデグレードテスト支援プログラム
CN104881455B (zh) 一种基于mysql的结构差异处理方法及系统
JP6840656B2 (ja) テストスクリプト修正装置及びプログラム
JP5893595B2 (ja) スケジュール支援システム
JP2014154070A (ja) プラント制御監視システム設計支援ツール
JP2008117029A (ja) 運用作業手順作成時の不正手順チェックアウト方法、障害発生防止のためのコマンド生成方法、および自動実行コマンド生成システム、ならびにそのプログラム
JP2013114443A (ja) 資材リリース確認支援システム、資材リリース確認支援方法、資材リリース確認支援プログラム

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140115

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5461716

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250