[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2023057721A - Verification program, verification method, and information processing device - Google Patents

Verification program, verification method, and information processing device Download PDF

Info

Publication number
JP2023057721A
JP2023057721A JP2021167367A JP2021167367A JP2023057721A JP 2023057721 A JP2023057721 A JP 2023057721A JP 2021167367 A JP2021167367 A JP 2021167367A JP 2021167367 A JP2021167367 A JP 2021167367A JP 2023057721 A JP2023057721 A JP 2023057721A
Authority
JP
Japan
Prior art keywords
data
program
data change
execution
history
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
Application number
JP2021167367A
Other languages
Japanese (ja)
Inventor
剛司 山本
Tsuyoshi Yamamoto
貴正 浦本
Takamasa Uramoto
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2021167367A priority Critical patent/JP2023057721A/en
Publication of JP2023057721A publication Critical patent/JP2023057721A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

To enable an occurrence spot of an incompatible operation to be easily located.SOLUTION: An information processing device 10 executes a first execution program 2 for execution of processing according to a verification object program 1 in a first program execution environment 12a to thereby acquire a first data change history 6 having a change content of a value of first data 4 with a first data change instruction recorded therein. The information processing device 10 executes a second execution program 3 for execution of the processing according to the verification object program 1 in a second program execution environment 12b to thereby acquire a second data change history 7 having a change content of a value of second data 5 with a second data change instruction recorded therein. The information processing device 10 detects an incompatible operation by comparing the first data change history 6 with the second data change history 7.SELECTED DRAWING: Figure 1

Description

本発明は、検証プログラム、検証方法、および情報処理装置に関する。 The present invention relates to a verification program, verification method, and information processing apparatus.

業務に使用されるアプリケーションソフトウェア(以下、単に「アプリケーション」と呼ぶ)の中には、古くに開発され、現在も運用され続けているものがある。特にCOBOL言語で記述されたアプリケーションにはそのようなものが多い。 Some application software (hereinafter simply referred to as "applications") used in business were developed long ago and are still in operation today. In particular, applications written in the COBOL language have many such cases.

それに対して、アプリケーションを実行する実行環境(ハードウェア、OS(Operating System)、文字コード体系など)は、時代と共に変遷する。そのため長期にわたって同じアプリケーションを運用し続けるために、実行環境の変化に合わせたアプリケーションの新たな実行環境への移行作業が行われる。 On the other hand, the execution environment (hardware, OS (Operating System), character code system, etc.) for executing applications changes with the times. Therefore, in order to continue to operate the same application over a long period of time, work is performed to migrate the application to a new execution environment in accordance with changes in the execution environment.

新たな実行環境へアプリケーションを移行させる場合、アプリケーションを大きく改修することなく実行環境の切り替えのみで移行できることが望まれる。しかし、移行前後の実行環境で取り扱うデータのデータ形式(CPU(Central Processing Unit)のビット幅、エンディアン、浮動小数点形式、文字コードなど)が異なる場合がある。この場合、アプリケーションのプログラムの処理ロジックに変更がなくとも、データ形式の違いに起因して、アプリケーション実行時に意図しない動作(非互換動作)が発生する可能性がある。そのため運用者は、アプリケーションの実行環境を変更する場合、移行先環境での動作検証を行うこととなる。 When migrating an application to a new execution environment, it is desirable to be able to migrate by simply switching the execution environment without making major modifications to the application. However, the data format of data handled in the execution environment before and after migration (bit width of CPU (Central Processing Unit), endian, floating point format, character code, etc.) may differ. In this case, even if there is no change in the processing logic of the application program, unintended behavior (incompatible behavior) may occur during application execution due to differences in data formats. Therefore, when changing the execution environment of an application, the operator must verify the operation in the migration destination environment.

アプリケーションの実行環境の移行に伴う検証作業の自動化に関して、様々な技術が提案されている。例えばシステム移行テストにおいて、現行システムと新システムとの間の差分を解析するにあたり、アプリケーションが改修されている部分を解析対象から除外し、新旧システム間の相違原因を分析し易くする移行テスト支援システムが提案されている。 Various techniques have been proposed for automating verification work associated with migration of an application execution environment. For example, in a system migration test, when analyzing the difference between the current system and the new system, the part where the application has been modified is excluded from the analysis target, and the migration test support system makes it easier to analyze the cause of the difference between the old and new systems. is proposed.

特開2012-203580号公報Japanese Unexamined Patent Application Publication No. 2012-203580

しかし従来技術では、移行前後の実行環境のデータ形式の違いに起因して発生する非互換動作の原因箇所を事前に特定するのが困難である。例えば運用者は、移行先環境においてアプリケーションをテスト実行させ、非互換動作が発生した場合にコードレビューやデバッガによるデバッグを行い、非互換動作部分からロジックをさかのぼり原因箇所を特定する。この方法では、原因箇所の特定が手作業となるため工数がかかる。またテストの対象となっていない状況で発生する非互換動作が存在する場合、そのような非互換動作を検出できない。この非互換動作がアプリケーションの移行先における運用開始後に顕在化すると、実運用環境において障害を引き起こす可能性がある。 However, with the conventional technology, it is difficult to identify in advance the cause of an incompatible operation that occurs due to the difference in the data format of the execution environment before and after migration. For example, the operator performs test execution of the application in the migration destination environment, performs code review and debugging with a debugger when incompatible behavior occurs, and traces the logic from the incompatible behavior portion to identify the cause. This method requires a lot of man-hours because the location of the cause is identified manually. Also, if there is an incompatible behavior that occurs in a situation not covered by the test, such incompatible behavior cannot be detected. If this incompatible behavior becomes apparent after the application starts operating at the migration destination, it may cause a failure in the actual operating environment.

1つの側面では、本件は、非互換動作の発生箇所を容易に特定できるようにすることを目的とする。 In one aspect, this application aims to make it possible to easily identify the location of occurrence of incompatible behavior.

1つの案では、以下の処理をコンピュータに実行させる検証プログラムが提供される。
コンピュータは、データの値を変更する検証対象命令を含む検証対象プログラムに従った処理を第1のプログラム実行環境で実行するための第1の実行プログラムに、検証対象命令に基づいて第1の実行プログラム内に設定された第1のデータ変更命令による変更内容を記録させる第1の記録命令を追加する。コンピュータは、第1のプログラム実行環境で第1の実行プログラムを実行させることで、第1のデータ変更命令による第1のデータの値の変更内容が記録された第1のデータ変更履歴を取得する。コンピュータは、検証対象プログラムに従った処理を第2のプログラム実行環境で実行するための第2の実行プログラムに、検証対象命令に基づいて第2の実行プログラム内に設定された第2のデータ変更命令による変更内容を記録させる第2の記録命令を追加する。コンピュータは、第2のプログラム実行環境で第2の実行プログラムを実行させることで、第2のデータ変更命令による第2のデータの値の変更内容が記録された第2のデータ変更履歴を取得する。そしてコンピュータは、第1のデータ変更履歴と第2のデータ変更履歴とを比較することで非互換動作を検出する。
In one proposal, a verification program is provided that causes a computer to perform the following processes.
The computer causes a first execution program for executing, in a first program execution environment, a process according to the verification target program including the verification target instruction that changes the value of the data, based on the verification target instruction. A first recording command is added to record the content of change made by the first data change command set in the program. The computer executes the first execution program in the first program execution environment, thereby obtaining a first data change history in which changes to the value of the first data according to the first data change instruction are recorded. . The computer changes the second data set in the second execution program based on the verification target instruction to the second execution program for executing the process according to the verification target program in the second program execution environment. Add a second recording instruction that causes the changes made by the instruction to be recorded. The computer executes the second execution program in the second program execution environment to obtain a second data change history in which changes to the value of the second data according to the second data change instruction are recorded. . The computer then detects the incompatible operation by comparing the first data change history and the second data change history.

1態様によれば、非互換動作の発生箇所を容易に特定可能となる。 According to one aspect, it is possible to easily identify the location where the incompatible operation occurs.

第1の実施の形態に係る検証方法の一例を示す図である。It is a figure which shows an example of the verification method which concerns on 1st Embodiment. 第2の実施の形態のシステム構成の一例を示す図である。It is a figure which shows an example of the system configuration|structure of 2nd Embodiment. 開発マシンのハードウェアの一例を示す図である。It is a figure which shows an example of the hardware of a development machine. アプリケーションの動作検証のために動作開発システムが有する機能の一例を示す図である。FIG. 2 is a diagram showing an example of functions that the behavior development system has for verifying the behavior of an application; 実行ファイルの生成状況の一例を示す図である。FIG. 10 is a diagram showing an example of an executable file generation situation; コンパイルの処理手順の一例を示す図である。FIG. 10 is a diagram illustrating an example of a compilation processing procedure; コンパイルの一例を示す図である。FIG. 10 is a diagram showing an example of compilation; データ変更履歴の生成と比較処理の一例を示す図である。It is a figure which shows an example of generation|occurrence|production of a data change log|history, and a comparison process. データ変更履歴の一例を示す図である。It is a figure which shows an example of a data change log. データ変更履歴比較処理の手順の一例を示すフローチャートである。9 is a flow chart showing an example of the procedure of data change history comparison processing; データ比較処理の第1の例を示す図である。FIG. 10 is a diagram showing a first example of data comparison processing; データ比較処理の第2の例を示す図である。FIG. 11 illustrates a second example of data comparison processing;

以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず第1の実施の形態について説明する。第1の実施の形態は、プログラムの実行環境を移行させる際に、データ形式の違いに起因する非互換動作の発生箇所を容易に特定できるようにする検証方法である。
Hereinafter, this embodiment will be described with reference to the drawings. It should be noted that each embodiment can be implemented by combining a plurality of embodiments within a consistent range.
[First Embodiment]
First, the first embodiment will be explained. The first embodiment is a verification method that makes it possible to easily identify a location where an incompatible operation due to a difference in data format occurs when migrating a program execution environment.

図1は、第1の実施の形態に係る検証方法の一例を示す図である。図1には、検証方法を実現する情報処理装置10の例を示している。情報処理装置10は、検証プログラムを実行することにより、検証方法を実施することができる。 FIG. 1 is a diagram showing an example of a verification method according to the first embodiment. FIG. 1 shows an example of an information processing device 10 that implements the verification method. The information processing device 10 can implement the verification method by executing the verification program.

情報処理装置10は、検証方法を実現するために、記憶部11と処理部12とを有する。記憶部11は、例えば情報処理装置10が有するメモリまたはストレージ装置である。処理部12は、例えば情報処理装置10が有するプロセッサまたは演算回路である。 The information processing device 10 has a storage unit 11 and a processing unit 12 in order to implement the verification method. The storage unit 11 is, for example, a memory or a storage device that the information processing device 10 has. The processing unit 12 is, for example, a processor or an arithmetic circuit included in the information processing device 10 .

記憶部11は、検証対象プログラム1を記憶する。検証対象プログラム1は、例えば高級言語で記述されたソースプログラムである。検証対象プログラム1には、データの値を変更する検証対象命令が含まれる。 The storage unit 11 stores the verification target program 1 . The verification target program 1 is, for example, a source program written in a high-level language. The verification target program 1 includes verification target instructions that change data values.

処理部12は、第1のプログラム実行環境12aと第2のプログラム実行環境12bとを有する。処理部12は、例えば検証対象プログラム1を第1のプログラム実行環境12a用にコンパイルするコンパイラと、第2のプログラム実行環境12b用にコンパイルするコンパイラとを有する。 The processing unit 12 has a first program execution environment 12a and a second program execution environment 12b. The processing unit 12 has, for example, a compiler that compiles the verification target program 1 for the first program execution environment 12a and a compiler that compiles it for the second program execution environment 12b.

第1のプログラム実行環境12aと第2のプログラム実行環境12bとは、ハードウェア、OSなどを含めたプログラムの実行環境である。第1のプログラム実行環境12aと第2のプログラム実行環境12bとは、例えば仮想マシンを用いて実現することができる。また情報処理装置10が複数のコンピュータを含むコンピュータシステムであれば、第1のプログラム実行環境12aと第2のプログラム実行環境12bとを異なるコンピュータ上に実現してもよい。また第1のプログラム実行環境12aと第2のプログラム実行環境12bとは、主として取り扱うデータのデータ形式(CPUのビット幅、エンディアン、浮動小数点形式、文字コードなど)が異なる。 The first program execution environment 12a and the second program execution environment 12b are program execution environments including hardware and OS. The first program execution environment 12a and the second program execution environment 12b can be implemented using virtual machines, for example. Also, if the information processing apparatus 10 is a computer system including a plurality of computers, the first program execution environment 12a and the second program execution environment 12b may be implemented on different computers. The first program execution environment 12a and the second program execution environment 12b mainly differ in the data format of data handled (CPU bit width, endian, floating point format, character code, etc.).

ここで情報処理装置10のユーザは、検証対象プログラム1に基づいて生成した実行プログラムを用いて第1のプログラム実行環境12a上で運用しているサービスを、第2のプログラム実行環境12bに移行させることを予定しているものとする。この場合、ユーザは、検証対象プログラム1を第2のプログラム実行環境12b用にコンパイルしたプログラムが正常に動作するかの動作検証を行う。動作検証では、運用者は、処理部12に以下の処理を実行させる。 Here, the user of the information processing apparatus 10 uses the execution program generated based on the verification target program 1 to transfer the service operated on the first program execution environment 12a to the second program execution environment 12b. It is assumed that In this case, the user verifies whether the program to be verified 1 compiled for the second program execution environment 12b operates normally. In the operation verification, the operator causes the processing unit 12 to execute the following processes.

処理部12は、例えば第1のプログラム実行環境12aにおいて検証対象プログラム1をコンパイルすることで、検証対象プログラム1に記述された処理を第1のプログラム実行環境12aで実行するための第1の実行プログラム2を生成する。このとき処理部12は、第1の実行プログラム2に、検証対象命令に基づいて第1の実行プログラム2内に設定された第1のデータ変更命令による変更内容を記録させる第1の記録命令を追加する。さらに処理部12は、第1のプログラム実行環境12aで第1の実行プログラム2を実行させることで、第1のデータ変更命令による第1のデータ4の値の変更内容が記録された第1のデータ変更履歴6を取得する。 The processing unit 12, for example, compiles the verification target program 1 in the first program execution environment 12a, thereby performing a first execution process for executing the process described in the verification target program 1 in the first program execution environment 12a. Generate program 2. At this time, the processing unit 12 issues to the first execution program 2 a first recording instruction that causes the first execution program 2 to record the changed content by the first data change instruction set in the first execution program 2 based on the verification target instruction. to add. Further, the processing unit 12 causes the first execution program 2 to be executed in the first program execution environment 12a, thereby creating a first Acquire the data change history 6.

また処理部12は、例えば第2のプログラム実行環境12bにおいて検証対象プログラム1をコンパイルすることで、検証対象プログラム1に記述された処理を第2のプログラム実行環境12bで実行するための第2の実行プログラム3を生成する。このとき処理部12は、第2の実行プログラム3に、検証対象命令に基づいて第2の実行プログラム3内に設定された第2のデータ変更命令による変更内容を記録させる第2の記録命令を追加する。さらに処理部12は、第2のプログラム実行環境12bで第2の実行プログラム3を実行させることで、第2のデータ変更命令による第2のデータ5の値の変更内容が記録された第2のデータ変更履歴7を取得する。 Further, the processing unit 12 compiles the verification target program 1 in the second program execution environment 12b, for example, so that the processing described in the verification target program 1 is executed in the second program execution environment 12b. Generate execution program 3. At this time, the processing unit 12 issues a second recording instruction to the second execution program 3 to record the changed contents by the second data change instruction set in the second execution program 3 based on the verification target instruction. to add. Furthermore, the processing unit 12 causes the second execution program 3 to be executed in the second program execution environment 12b, thereby creating a second data 5 in which changes to the value of the second data 5 according to the second data change instruction are recorded. Acquire the data change history 7.

なお、第2のデータ5は、例えば非互換動作がなければ第1のデータ4と同じ意味を有する値が設定されるデータである。例えば第1のデータ4が文字列の場合、第2のデータ5にも同じ文字列を示す値が設定される。ただし、第2のデータ5のデータ形式は、第1のデータ4のデータ形式とは異なる場合がある。例えば第1のデータ4の文字列を表す文字コード体系と、第2のデータ5の文字列を表す文字コード体系とが異なる。この場合、第1のデータ4の値(文字コード)と第2のデータの値(文字コード)とは異なるが、それぞれの文字コードによって表される意味(文字列)は同一である。 The second data 5 is data to which a value having the same meaning as the first data 4 is set, for example, if there is no incompatible operation. For example, if the first data 4 is a character string, the second data 5 is also set to a value indicating the same character string. However, the data format of the second data 5 may differ from the data format of the first data 4 . For example, the character code system representing the character string of the first data 4 and the character code system representing the character string of the second data 5 are different. In this case, the value (character code) of the first data 4 and the value (character code) of the second data are different, but the meaning (character string) represented by each character code is the same.

第1のデータ変更履歴6と第2のデータ変更履歴7とを取得すると、処理部12は、第1のデータ変更履歴6と第2のデータ変更履歴7とを比較することで、データ形式の違いに起因する非互換動作を検出する。例えば処理部12は、第1のデータ4の変更前の値または変更後の値を含む第1のデータ変更履歴6を取得する。また処理部12は、第2のデータ5の変更前の値または変更後の値を含む第2のデータ変更履歴7を取得する。そして処理部12は、第1のデータ変更履歴6に示される第1のデータ4の値によって表される意味と第2のデータ変更履歴7に示される第2のデータ5の値によって表される意味とを比較し、異なる意味を表している場合に非互換動作があると判断する。すなわち異なる意味を表している場合、第1のデータ変更命令と第2のデータ変更命令とは、同じ検証対象命令に基づいて設定された命令であるものの、異なる意味を表す値へのデータ変更動作(非互換動作)を行っている。 After acquiring the first data change history 6 and the second data change history 7, the processing unit 12 compares the first data change history 6 and the second data change history 7 to determine the data format. Detect incompatible behavior due to differences. For example, the processing unit 12 acquires the first data change history 6 including the values before or after the change of the first data 4 . The processing unit 12 also acquires the second data change history 7 including the values before or after the change of the second data 5 . The processing unit 12 is represented by the meaning represented by the value of the first data 4 shown in the first data change history 6 and the value of the second data 5 shown in the second data change history 7. It is determined that there is an incompatible behavior if different meanings are expressed. In other words, if the first data modification instruction and the second data modification instruction are instructions set based on the same verification target instruction, the data modification operation to a value that expresses a different meaning is performed. (incompatible operation).

例えば第1の実行プログラム2の第1のデータ変更命令は、第1のプログラム実行環境12aにおいて標準のデータ形式のデータの値への変更を意図しているものとする。この場合、第1のデータ変更命令に基づいて、第1のデータ4が、第1のプログラム実行環境12aにおいて標準のデータ形式のデータであるものと解釈して変更処理が行われる。 For example, it is assumed that the first data change instruction of the first execution program 2 intends to change the value of data in the standard data format in the first program execution environment 12a. In this case, based on the first data change command, the first data 4 is interpreted as data in the standard data format in the first program execution environment 12a, and the change processing is performed.

同様に、第2の実行プログラム3の第2のデータ変更命令が、第2のプログラム実行環境12bにおいて標準のデータ形式のデータの値への変更を意図しているものとする。この場合、第2のデータ変更命令に基づいて、第2のデータ5が、第2のプログラム実行環境12bにおいて標準のデータ形式のデータであるものと解釈して変更処理が行われる。 Similarly, assume that the second data modification instruction of the second executable program 3 is intended to modify the value of data in the standard data format in the second program execution environment 12b. In this case, based on the second data change instruction, the second data 5 is interpreted as data in the standard data format in the second program execution environment 12b, and the change processing is performed.

このとき第2のデータ5のデータ形式が、想定されているデータ形式とは異なっている場合、変更後の第2のデータ5の値で表される意味が、変更後の第1のデータ4の値で表される意味とは異なる意味となる。その結果、非互換動作(異なる意味を表す値へのデータ変更)があると判定される。 At this time, if the data format of the second data 5 is different from the assumed data format, the meaning represented by the value of the second data 5 after change is different from that of the first data 4 after change. It has a different meaning from the meaning represented by the value of . As a result, it is determined that there is an incompatible operation (change of data to a value representing a different meaning).

データ形式の相違に基づく非互換動作を検知する場合、例えば処理部12は、第1のデータ4に求められる第1のデータ形式と、第1のデータ4の変更前の値または変更後の値とを含む第1のデータ変更履歴6を取得する。また処理部12は、第2のデータ5に求められる第2のデータ形式と、第2のデータ5の変更前の値または変更後の値とを含む第2のデータ変更履歴7を取得する。さらに処理部12は、第1のデータ変更履歴6に示される第1のデータ形式と第2のデータ変更履歴7に示される第2のデータ形式とに基づいて、第1のデータ4と第2のデータ5との少なくとも一方のデータ形式を変換する。そして処理部12は、第1のデータ4と第2のデータ5との値を比較する。 When detecting an incompatible operation based on a difference in data format, for example, the processing unit 12 determines the first data format required for the first data 4 and the value before or after the change of the first data 4. and the first data change history 6 is acquired. The processing unit 12 also acquires the second data change history 7 including the second data format required for the second data 5 and the values before or after the change of the second data 5 . Furthermore, the processing unit 12 converts the first data 4 and the second data format based on the first data format indicated in the first data change history 6 and the second data format indicated in the second data change history 7 converts at least one of the data formats of the data 5 of The processing unit 12 then compares the values of the first data 4 and the second data 5 .

図1の例では、第1のデータ変更履歴6には、データの値が「A4A2A4A4A4A68140」であること、データの形式が「日本語EUC(Extended UNIX(登録商標) Code)文字列」であることが示されている。また第2のデータ変更履歴7には、データの値が「A4A2A4A4A4A68140」であること、データの形式が「UTF(Unicode Transformation Format)-16LE(Little Endian)文字列」であることが示されている。図1の例では、第1のデータ変更履歴6と第2のデータ変更履歴7とのそれぞれに示されるデータの値は同じである。しかし第1の実行プログラム2の実行時に解釈した文字コード体系と、第2の実行プログラム3の実行時に解釈した文字コード体系とは異なる。これは、第2のプログラム実行環境12bにおいても日本語EUCのデータが第2の実行プログラム3の処理対象として入力された場合に起こり得る。 In the example of FIG. 1, the first data change history 6 indicates that the data value is "A4A2A4A4A4A68140" and that the data format is "Japanese EUC (Extended UNIX (registered trademark) Code) character string". It is shown. The second data change history 7 indicates that the data value is "A4A2A4A4A4A68140" and the data format is "UTF (Unicode Transformation Format)-16LE (Little Endian) character string". . In the example of FIG. 1, the data values shown in the first data change history 6 and the second data change history 7 are the same. However, the character code system interpreted when the first execution program 2 is executed differs from the character code system interpreted when the second execution program 3 is executed. This can occur in the second program execution environment 12b also when Japanese EUC data is input as a processing object of the second execution program 3. FIG.

この場合、処理部12は、第1のデータ4と第2のデータ5との文字コードを統一し、第1のデータ4と第2のデータ5との値を比較する。例えば処理部12は、第1のデータ4の値(日本語EUCの文字コード)をUTF-16LEの文字コードに変換して、第1のデータ4の変換後の値と第2のデータ5の値とを比較する。すると値は不一致となる。すなわち、第1のデータ変更履歴6と第2のデータ変更履歴7とのそれぞれに示されるデータの値で表される意味(文字列)は異なる。この場合、処理部12は、検証対象プログラム1の検証対象命令の部分において非互換動作が生じていると判断する。 In this case, the processing unit 12 unifies the character codes of the first data 4 and the second data 5 and compares the values of the first data 4 and the second data 5 . For example, the processing unit 12 converts the value of the first data 4 (character code of Japanese EUC) to the character code of UTF-16LE, and converts the value after conversion of the first data 4 and the second data 5 Compare with value. Then the values will not match. That is, the meanings (character strings) represented by the data values shown in the first data change history 6 and the second data change history 7 are different. In this case, the processing unit 12 determines that an incompatible operation occurs in the part of the verification target instruction of the verification target program 1 .

このように情報処理装置10は、非互換動作の原因箇所が容易に特定できる。しかもデータ形式の違いに起因する非互換動作を高精度に検出可能である。
例えば、第2のデータ5の文字コード体系が、第2のデータ変更命令で想定される文字コード体系と異なる場合において、第2のデータ5の文字コードが想定される文字コード体系に存在しない値であれば、従来から第2のデータ5の不正を検出するのは容易である。しかし、一般には、第2のデータ5の値として設定されている文字コードが、第2のデータ変更命令で想定している文字コード体系にも存在する文字コードであった場合、それをエラーとして検出するのは困難である。多くの場合、エラーとして検出されずに処理が続行され、文字化けとして問題が顕在化する。
In this manner, the information processing apparatus 10 can easily identify the cause of the incompatible operation. Moreover, it is possible to detect incompatible operations caused by differences in data format with high accuracy.
For example, when the character code system of the second data 5 is different from the character code system assumed in the second data change instruction, the value that does not exist in the character code system assumed for the character code of the second data 5 If so, it is conventionally easy to detect the fraud of the second data 5 . However, in general, if the character code set as the value of the second data 5 is a character code that also exists in the character code system assumed in the second data change instruction, it is treated as an error. It is difficult to detect. In many cases, processing continues without being detected as an error, and the problem manifests itself as garbled characters.

それに対して処理部12は、第1のデータ変更履歴6と第2のデータ変更履歴7との比較により非互換動作を検出している。これにより、第2のデータ5の文字コードが、第2のデータ変更命令で想定している文字コード体系にも存在する場合であっても、第2のデータ5の文字コード体系が想定されているものと異なれば、非互換動作として検出できる。そのため、データ形式の違いに起因する非互換動作を正確に検出可能である。 On the other hand, the processing unit 12 detects incompatible operations by comparing the first data change history 6 and the second data change history 7 . As a result, even if the character code of the second data 5 is also present in the character code system assumed in the second data change instruction, the character code system of the second data 5 is assumed. If it is different from what it is, it can be detected as incompatible behavior. Therefore, it is possible to accurately detect an incompatible operation caused by a difference in data format.

データ形式の違いに起因する非互換動作が生じる場合、ユーザは、例えば原因箇所である検証対象命令までの処理ロジックを見直し、想定と異なるデータ形式のデータが入力されても正しく処理できるように検証対象プログラム1を修正する。または、ユーザは、検証対象命令で読み込んでいるデータを確認し、入力されるデータのデータ形式が想定通りのデータ形式となるように、第2のプログラム実行環境12bにおける環境設定を行うこともできる。 If an incompatible operation occurs due to a difference in data format, the user should, for example, review the processing logic up to the verification target instruction, which is the cause of the problem, and verify that even if data with a different data format than expected is input, it can be processed correctly. Correct the target program 1. Alternatively, the user can check the data read by the verification target instruction and set the environment in the second program execution environment 12b so that the data format of the input data is as expected. .

また処理部12は、第1のデータ4と第2のデータ5とのデータ名を照合して、同じデータ名のデータが比較対象となっていることを確認してもよい。その場合、処理部12は、第1のデータ4を識別する第1のデータ名を含む第1のデータ変更履歴6を取得する。また処理部12は、第2のデータ5を識別する第2のデータ名を含む第2のデータ変更履歴7を取得する。そして処理部12は、第1のデータ変更履歴6に示される第1のデータ名と第2のデータ変更履歴7に示される第2のデータ名とを比較し、一致することを確認する。第1の実行プログラム2と第2の実行プログラム3との処理ロジックが等しければ、第1のデータ変更命令で値を変更する第1のデータ4のデータ名と第2のデータ変更命令で値を変更する第2のデータ5のデータ名とは同じとなる。そのため第1のデータのデータ名と第2のデータ名とが不一致となる場合、処理ロジックが異なる(2つの実行プログラムが等価のプログラムではない)と判断できる。すなわち、第1のプログラム実行環境12aで実行されていた第1の実行プログラム2による処理を第2のプログラム実行環境12bに移行する際に、処理ロジックが変更されていないことを確認できる。 In addition, the processing unit 12 may compare the data names of the first data 4 and the second data 5 to confirm that data having the same data name are to be compared. In that case, the processing unit 12 acquires the first data change history 6 including the first data name that identifies the first data 4 . The processing unit 12 also acquires the second data change history 7 including the second data name that identifies the second data 5 . The processing unit 12 then compares the first data name indicated in the first data change history 6 and the second data name indicated in the second data change history 7 and confirms that they match. If the processing logic of the first execution program 2 and the second execution program 3 are the same, the data name of the first data 4 whose value is changed by the first data change instruction and the value is changed by the second data change instruction. The data name is the same as the data name of the second data 5 to be changed. Therefore, when the data name of the first data and the second data name do not match, it can be determined that the processing logics are different (the two execution programs are not equivalent programs). That is, it can be confirmed that the processing logic is not changed when the processing by the first execution program 2 executed in the first program execution environment 12a is transferred to the second program execution environment 12b.

なおデータのデータ形式としては、文字コード以外にも、エンディアン、浮動小数点の表現形式などがある。なお処理部12は、第1のデータ4と第2のデータ5とで浮動小数点の表現形式が異なる場合、いずれか一方のデータのデータ形式に統一すると、浮動小数点で表される数値の精度が劣化してしまう可能性がある。そこで処理部12は、第1のデータ4と第2のデータ5とで浮動小数点の表現形式が異なる場合、第1のデータ4と第2のデータ5とを第3の表現形式に変換してもよい。例えば処理部12は、第1のデータ4と第2のデータ5とを、それらのデータの値で示される数値(数字と小数点との配列)に変換してもよい。これにより、第1のデータ4と第2のデータ5との値(浮動小数点)で表される意味(数値)を、正しく比較することができる。 In addition to the character code, the data format includes endian, floating point representation, and the like. Note that if the first data 4 and the second data 5 have different floating-point representation formats, the processing unit 12 can unify the data format of either one of the data to increase the precision of the numerical values represented by the floating-point. It may deteriorate. Therefore, when the first data 4 and the second data 5 have different floating-point representation formats, the processing unit 12 converts the first data 4 and the second data 5 into the third representation format. good too. For example, the processing unit 12 may convert the first data 4 and the second data 5 into numerical values (arrangements of numerals and decimal points) indicated by the values of these data. Thereby, the meaning (numerical value) represented by the value (floating point) of the first data 4 and the second data 5 can be correctly compared.

〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、ある実行環境のコンピュータで運用中のアプリケーションを、異なる実行環境のコンピュータに移行させる際に、開発環境において事前に動作検証を行い、データ形式の違いによる非互換動作の有無を確認するものである。
[Second embodiment]
Next, a second embodiment will be described. In the second embodiment, when an application running on a computer with a certain execution environment is migrated to a computer with a different execution environment, operation verification is performed in advance in the development environment, and incompatible operations due to differences in data formats are verified. It confirms the presence or absence of

図2は、第2の実施の形態のシステム構成の一例を示す図である。図2には、運用システム200において実行されているアプリケーションの実行環境を移行させる際に、開発システム100を用いてアプリケーションの動作検証を事前に実施する場合のシステム構成例が示されている。 FIG. 2 is a diagram showing an example of a system configuration according to the second embodiment. FIG. 2 shows a system configuration example in which the development system 100 is used to verify the operation of an application in advance when migrating the execution environment of the application being executed in the operation system 200 .

例えばネットワーク20を介して開発システム100と運用システム200とが接続されている。開発システム100には、アプリケーションの開発者が使用する2台の開発マシン100a,100bが含まれている。運用システム200には、アプリケーションを用いたサービスの提供に使用される2台の運用マシン200a,200bが含まれている。 For example, a development system 100 and an operation system 200 are connected via a network 20 . The development system 100 includes two development machines 100a and 100b used by application developers. The operating system 200 includes two operating machines 200a and 200b that are used to provide services using applications.

開発マシン100a,100bは、アプリケーションの開発とテスト用に用意されたコンピュータである。運用マシン200a,200bは、アプリケーションを用いた処理を実行し、各種サービスなどの運用を行うために用意されたコンピュータである。 The development machines 100a and 100b are computers prepared for application development and testing. The operation machines 200a and 200b are computers prepared for executing processes using applications and operating various services.

ここで運用マシン200aにおいて運用していたアプリケーションを、運用マシン200bに移行させるものとする。運用マシン200bは、運用マシン200aとは異なる動作環境を有している。この場合、開発システム100では、移行元の運用マシン200aと同じ動作環境が開発マシン100aに構築され、移行先の運用マシン200bと同じ動作環境が開発マシン100bに構築される。 Assume that an application that has been operated on the operating machine 200a is migrated to the operating machine 200b. The operating machine 200b has an operating environment different from that of the operating machine 200a. In this case, in the development system 100, the development machine 100a has the same operating environment as the migration source operation machine 200a, and the development machine 100b has the same operating environment as the migration destination operation machine 200b.

なお開発マシン100a,100bは、それぞれ運用マシン200a,200bの動作環境を再現した仮想マシンであってもよい。開発マシン100a,100bが共に仮想マシンである場合、同一のコンピュータ内に両方の開発マシン100a,100bを構築することができる。 The development machines 100a and 100b may be virtual machines that reproduce the operating environments of the operation machines 200a and 200b, respectively. If both development machines 100a and 100b are virtual machines, both development machines 100a and 100b can be constructed within the same computer.

図3は、開発マシンのハードウェアの一例を示す図である。開発マシン100aは、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。 FIG. 3 is a diagram illustrating an example of hardware of a development machine. The development machine 100 a is entirely controlled by a processor 101 . A memory 102 and a plurality of peripheral devices are connected to the processor 101 via a bus 109 . Processor 101 may be a multiprocessor. The processor 101 is, for example, a CPU, MPU (Micro Processing Unit), or DSP (Digital Signal Processor). At least part of the functions realized by the processor 101 executing the program may be realized by an electronic circuit such as an ASIC (Application Specific Integrated Circuit) or a PLD (Programmable Logic Device).

メモリ102は、開発マシン100aの主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。 The memory 102 is used as the main storage device of the development machine 100a. The memory 102 temporarily stores at least part of an OS program and application programs to be executed by the processor 101 . In addition, the memory 102 stores various data used for processing by the processor 101 . As the memory 102, for example, a volatile semiconductor memory device such as a RAM (Random Access Memory) is used.

バス109に接続されている周辺機器としては、ストレージ装置103、GPU(Graphics Processing Unit)104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。 Peripheral devices connected to the bus 109 include a storage device 103 , a GPU (Graphics Processing Unit) 104 , an input interface 105 , an optical drive device 106 , a device connection interface 107 and a network interface 108 .

ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、開発マシン100aの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。 The storage device 103 electrically or magnetically writes data to and reads data from a built-in recording medium. The storage device 103 is used as an auxiliary storage device for the development machine 100a. The storage device 103 stores an OS program, application programs, and various data. As the storage device 103, for example, an HDD (Hard Disk Drive) or an SSD (Solid State Drive) can be used.

GPU104は画像処理を行う演算装置であり、グラフィックコントローラとも呼ばれる。GPU104には、モニタ21が接続されている。GPU104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。 The GPU 104 is an arithmetic unit that performs image processing, and is also called a graphic controller. A monitor 21 is connected to the GPU 104 . The GPU 104 displays an image on the screen of the monitor 21 according to instructions from the processor 101 . Examples of the monitor 21 include a display device using an organic EL (Electro Luminescence), a liquid crystal display device, and the like.

入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。 A keyboard 22 and a mouse 23 are connected to the input interface 105 . The input interface 105 transmits signals sent from the keyboard 22 and mouse 23 to the processor 101 . Note that the mouse 23 is an example of a pointing device, and other pointing devices can also be used. Other pointing devices include touch panels, tablets, touchpads, trackballs, and the like.

光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取り、または光ディスク24へのデータの書き込みを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。 The optical drive device 106 reads data recorded on the optical disc 24 or writes data on the optical disc 24 using laser light or the like. The optical disc 24 is a portable recording medium on which data is recorded so as to be readable by light reflection. The optical disc 24 includes DVD (Digital Versatile Disc), DVD-RAM, CD-ROM (Compact Disc Read Only Memory), CD-R (Recordable)/RW (ReWritable), and the like.

機器接続インタフェース107は、開発マシン100aに周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。 The device connection interface 107 is a communication interface for connecting peripheral devices to the development machine 100a. For example, the device connection interface 107 can be connected to the memory device 25 and the memory reader/writer 26 . The memory device 25 is a recording medium equipped with a communication function with the device connection interface 107 . The memory reader/writer 26 is a device that writes data to the memory card 27 or reads data from the memory card 27 . The memory card 27 is a card-type recording medium.

ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。ネットワークインタフェース108は、例えばスイッチやルータなどの有線通信装置にケーブルで接続される有線通信インタフェースである。またネットワークインタフェース108は、基地局やアクセスポイントなどの無線通信装置に電波によって通信接続される無線通信インタフェースであってもよい。 Network interface 108 is connected to network 20 . Network interface 108 transmits and receives data to and from other computers or communication devices via network 20 . The network interface 108 is a wired communication interface that is connected by a cable to a wired communication device such as a switch or router. Also, the network interface 108 may be a wireless communication interface that communicates with a wireless communication device such as a base station or an access point via radio waves.

開発マシン100aは、以上のようなハードウェアによって実現することができる。他の開発マシン100bおよび運用マシン200a,200bも、開発マシン100aと同様のハードウェアで実現することができる。また、第1の実施の形態に示した情報処理装置10も、図3に示した開発マシン100aと同様のハードウェアにより実現することができる。 The development machine 100a can be realized by the above hardware. The other development machine 100b and the operation machines 200a and 200b can also be realized with hardware similar to the development machine 100a. The information processing apparatus 10 shown in the first embodiment can also be realized by hardware similar to the development machine 100a shown in FIG.

開発マシン100aは、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。開発マシン100aに実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、開発マシン100aに実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また開発マシン100aに実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。 The development machine 100a implements the processing functions of the second embodiment, for example, by executing a program recorded on a computer-readable recording medium. A program describing the processing contents to be executed by the development machine 100a can be recorded in various recording media. For example, a program to be executed by the development machine 100 a can be stored in the storage device 103 . The processor 101 loads at least part of the program in the storage device 103 into the memory 102 and executes the program. The program to be executed by the development machine 100a can also be recorded in a portable recording medium such as the optical disk 24, memory device 25, memory card 27, or the like. A program stored in a portable recording medium can be executed after being installed in the storage device 103 under the control of the processor 101, for example. Alternatively, the processor 101 can read and execute the program directly from the portable recording medium.

例えば運用マシン200aでアプリケーションを実行させてサービスを提供する運用者は、アプリケーションを別の運用マシン200bに移行する場合、例えば事前に開発マシン100a,100bを用いて、アプリケーションの実行環境の互換性の検証を行う。互換性の検証では、データ形式の違いに起因して意図しない動作(非互換動作)が実行されるか否かが検証される。 For example, when an operator who executes an application on the operation machine 200a and provides a service moves the application to another operation machine 200b, for example, the development machines 100a and 100b are used in advance to check the compatibility of the execution environment of the application. Validate. In compatibility verification, it is verified whether or not an unintended operation (incompatible operation) is executed due to a difference in data format.

ここでデータ形式の違いに起因する非互換動作としては、例えば以下のような動作がある。
第1の例は、エンディアンの違いに起因する非互換動作である。エンディアンとは、複数のバイトを並べる順序の種類である。エンディアンの種類には、ビッグエンディアン、リトルエンディアンなどがある。ビッグエンディアンでは、バイト単位のデータが上位のバイトから順に並べられる。リトルエンディアンでは、バイト単位のデータが下位のバイトから順に並べられる。
Examples of incompatible operations due to differences in data formats include the following operations.
The first example is incompatible behavior due to endian differences. Endianness is the type of order in which multiple bytes are arranged. Endian types include big endian and little endian. In big-endian, byte-wise data is ordered from the most significant byte. In little-endian, byte-wise data is ordered from the least significant byte.

ビッグエンディアンのデータ入力を前提とするプログラム実行環境からリトルエンディアンのデータ入力を前提とするプログラム実行環境へ移行する場合がある。例えば移行元のプログラム実行環境では、ネットワークからネットワークバイトオーダー(ビッグエンディアン)のバイト列を4バイト読み込み、それをそのままバイナリ整数と見なして処理しているものとする。このとき移行先のプログラム実行環境では、取得するデータをリトルエンディアンとして取り扱う場合がある。この場合、エンディアンが異なるため、ビッグエンディアンのデータをそのまま実行してしまうと、本来の値とは異なる整数値として処理が実行され、意図しない結果が出力される。 A program execution environment that assumes big-endian data input may shift to a program execution environment that assumes little-endian data input. For example, in the program execution environment of the migration source, it is assumed that a 4-byte byte string in network byte order (big endian) is read from the network and processed as it is as a binary integer. At this time, the program execution environment of the transfer destination may handle the acquired data as little endian. In this case, since the endian is different, if the big endian data is executed as it is, the processing is executed as an integer value different from the original value, and an unintended result is output.

第2の例は、文字コードの違いに起因する非互換動作である。例えばプログラムを実行するOSを、システム文字コードがEUCのOSからUTF-16のOSに移行する場合がある。この場合、移行先のコンピュータでは処理ロジックがEUCを想定しているため、取得した文字データがUTF-16のまま入力されると意図しない結果が出力される。 A second example is an incompatible operation caused by a difference in character codes. For example, there is a case where the OS for executing a program is shifted from an OS whose system character code is EUC to an OS whose system character code is UTF-16. In this case, the processing logic of the destination computer assumes EUC, so if the acquired character data is input as it is in UTF-16, an unintended result will be output.

その他、浮動小数点の表現形式の違いも非互換動作の原因となり得る。このように、プログラム実行環境において取り扱われるデータ形式の違いにより、非互換動作が発生する。そこで運用者は、開発システム100を用いた実行環境移行に伴う動作検証を行い、データ形式の違いに起因する非互換動作の検出と非互換動作の原因箇所の特定を行う。 In addition, differences in floating-point representation formats can also cause incompatible behavior. In this way, incompatible operations occur due to the difference in data format handled in the program execution environment. Therefore, the operator performs operation verification accompanying execution environment migration using the development system 100, detects incompatible operations caused by the difference in data format, and identifies the cause of the incompatible operations.

図4は、アプリケーションの動作検証のために動作開発システムが有する機能の一例を示す図である。開発マシン100aは、記憶部110、コンパイラ120、および実行部130を有する。 FIG. 4 is a diagram showing an example of functions that the behavior development system has for verifying the behavior of an application. The development machine 100 a has a storage unit 110 , a compiler 120 and an execution unit 130 .

記憶部110は、ソースファイル111、実行ファイル112、複数のデータファイル113a,113b,・・・、ランタイムライブラリ114、およびデータ変更履歴115を有する。ソースファイル111は、アプリケーションの処理内容が高級言語で記述されたプログラムファイルである。実行ファイル112は、ソースファイル111に基づいて生成された実行形式の機械語のプログラムファイルである。データファイル113a,113b,・・・は、実行ファイル112の実行時に使用するデータが設定されたファイルである。ランタイムライブラリ114は、実行ファイル112の実行時に利用可能なランタイム(ソフトウェア部品)が登録されたファイルである。データ変更履歴115は、実行ファイル112によるアプリケーション実行時のデータ変更履歴が格納されたログファイルである。 The storage unit 110 has a source file 111, an execution file 112, a plurality of data files 113a, 113b, . The source file 111 is a program file in which the contents of application processing are described in a high-level language. The executable file 112 is an executable machine language program file generated based on the source file 111 . Data files 113a, 113b, . The runtime library 114 is a file in which runtimes (software components) that can be used when executing the executable file 112 are registered. The data change history 115 is a log file that stores the data change history when the execution file 112 executes the application.

コンパイラ120は、ソースファイル111の機械語への翻訳(コンパイル)を実行する。すなわちコンパイラ120は、ソースファイル111に記述されたプログラムを解釈し、開発マシン100aにおけるプログラム実行環境に適合する実行ファイル112を生成する。なお開発マシン100aのプログラム実行環境は運用システム200における移行元の運用マシン200aと同じであるため、生成される実行ファイル112は移行元の運用マシン200aにも適合している。コンパイラ120は、データ領域内のデータの変更を伴う命令を検出した場合、変更前後においてデータの値を記録する命令を、実行ファイル112に追加する。 The compiler 120 translates (compiles) the source file 111 into machine language. That is, the compiler 120 interprets the program described in the source file 111 and generates the execution file 112 that conforms to the program execution environment of the development machine 100a. Since the program execution environment of the development machine 100a is the same as that of the migration source operation machine 200a in the operation system 200, the generated execution file 112 is also compatible with the migration source operation machine 200a. When the compiler 120 detects an instruction that involves changing data in the data area, the compiler 120 adds to the executable file 112 an instruction that records the value of the data before and after the change.

実行部130は、実行ファイル112を実行するプロセスである。実行部130は、実行ファイル112の実行過程で処理対象のデータ読み込み命令がある場合、例えばデータファイル113a,113b,・・・から該当するデータを読み込む。また実行部130は、実行ファイル112の実行途中でランタイムが呼び出された場合、ランタイムライブラリ114から該当するランタイムを取得して、取得したランタイムを実行する。例えば指定されたデータをデータ変更履歴115に記録するランタイムが用意されている場合、実行部130は、データの値を記録する命令の実行時にそのランタイムを呼び出して実行する。実行部130が実行ファイル112を実行することで、実行ファイル112の実行過程で変更されたデータの変更前後での値がデータ変更履歴115に格納される。 Execution unit 130 is a process that executes executable file 112 . When there is an instruction to read data to be processed in the process of executing the execution file 112, the execution unit 130 reads corresponding data from the data files 113a, 113b, . . . , for example. Also, when the runtime is called during execution of the executable file 112, the execution unit 130 acquires the corresponding runtime from the runtime library 114 and executes the acquired runtime. For example, if a runtime for recording designated data in the data change history 115 is prepared, the execution unit 130 calls and executes the runtime when executing an instruction for recording data values. By executing the execution file 112 by the execution unit 130 , the data change history 115 stores the values before and after the data changed in the process of executing the execution file 112 .

開発マシン100bは、記憶部140、コンパイラ150、実行部160、およびデータ履歴比較部170を有する。
記憶部140は、ソースファイル141、実行ファイル142、複数のデータファイル143a,143b,・・・、ランタイムライブラリ144、およびデータ変更履歴115を有する。ソースファイル141は、ソースファイル111と同じ内容のプログラムファイルである。実行ファイル142は、ソースファイル141に基づいて生成された実行形式のプログラムである。データファイル143a,143b,・・・は、実行ファイル142の実行時に使用するデータが設定されたファイルである。ランタイムライブラリ144は、実行ファイル142の実行時に利用可能なランタイムが登録されたファイルである。データ変更履歴145は、実行ファイル142によるアプリケーション実行時のデータ変更履歴が格納されたログファイルである。
The development machine 100 b has a storage unit 140 , a compiler 150 , an execution unit 160 and a data history comparison unit 170 .
The storage unit 140 has a source file 141, an execution file 142, a plurality of data files 143a, 143b, . A source file 141 is a program file having the same content as the source file 111 . The executable file 142 is an executable program generated based on the source file 141 . The data files 143a, 143b, . . . are files in which data used when executing the execution file 142 are set. The runtime library 144 is a file in which runtimes that can be used when executing the executable file 142 are registered. The data change history 145 is a log file that stores the data change history when the execution file 142 executes the application.

なおデータファイル143a,143b,・・・は、例えば開発マシン100aが有するデータファイル113a,113b,・・・に含まれるデータのデータ形式を、移行先のプログラム実行環境に対応するデータ形式に変換することで生成される。ここで、データファイル143a,143b,・・・が大量にあるとき、データ形式の変換漏れが発生する可能性がある。このようなデータ形式の変換漏れは、非互換動作の発生原因となる。 The data files 143a, 143b, . generated by Here, when there are a large number of data files 143a, 143b, . Such omission of data format conversion causes incompatible operations.

コンパイラ150は、ソースファイル141の機械語へのコンパイルを実行する。すなわちコンパイラ150は、ソースファイル141に記述されたプログラムを解釈し、開発マシン100bにおけるプログラム実行環境に適合する実行ファイル142を生成する。なお開発マシン100bのプログラム実行環境は運用システム200における移行先の運用マシン200bと同じであるため、生成される実行ファイル142は移行先の運用マシン200bにも適合している。コンパイラ150は、データ領域内のデータの変更を伴う命令を検出した場合、変更前後においてデータの値を記録する命令を、実行ファイル142に追加する。 Compiler 150 performs compilation of source files 141 into machine language. That is, the compiler 150 interprets the program written in the source file 141 and generates the execution file 142 that conforms to the program execution environment of the development machine 100b. Since the program execution environment of the development machine 100b is the same as that of the migration destination operation machine 200b in the operation system 200, the generated execution file 142 is also suitable for the migration destination operation machine 200b. When the compiler 150 detects an instruction that changes data in the data area, the compiler 150 adds to the executable file 142 an instruction that records the value of the data before and after the change.

実行部160は、実行ファイル142を実行するプロセスである。実行部160は、実行ファイル142の実行過程で処理対象のデータ読み込み命令がある場合、例えばデータファイル143a,143b,・・・から該当するデータを読み込む。また実行部160は、実行ファイル142の実行途中でランタイムが呼び出された場合、ランタイムライブラリ144から該当するランタイムを取得して、取得したランタイムを実行する。例えば指定されたデータをデータ変更履歴145に記録するランタイムが用意されている場合、実行部160は、データの値を記録する命令の実行時にそのランタイムを呼び出して実行する。実行部160が実行ファイル142を実行することで、実行ファイル142の実行過程で変更されたデータの変更前後での値がデータ変更履歴145に格納される。 Execution unit 160 is a process that executes executable file 142 . When there is a data read instruction to be processed during the process of executing the execution file 142, the execution unit 160 reads the corresponding data from the data files 143a, 143b, . . . , for example. Also, when the runtime is called during execution of the executable file 142, the execution unit 160 acquires the corresponding runtime from the runtime library 144 and executes the acquired runtime. For example, if a runtime for recording designated data in the data change history 145 is prepared, the execution unit 160 calls and executes the runtime when executing an instruction for recording data values. By executing the execution file 142 by the execution unit 160 , the data change history 145 stores the values before and after the data changed in the process of executing the execution file 142 .

データ履歴比較部170は、両方の開発マシン100a,100bのデータ変更履歴115,145の値で表される意味を比較し、非互換動作を検出する。
開発システム100による非互換動作の検出と非互換動作の原因箇所の特定処理は、以下の手順で行われる。
The data history comparison unit 170 compares the meanings represented by the values of the data change histories 115 and 145 of both development machines 100a and 100b to detect incompatible operations.
The process of detecting an incompatible operation and identifying the cause of the incompatible operation by the development system 100 is performed in the following procedure.

まずソースファイル111,141に記述されたプログラムの記述言語に対応するコンパイラ120,150が、実行ファイル112,142に示されるプログラム実行時のすべてのデータの変更履歴を自動的に記録するようにプログラムを生成する。 First, the compilers 120, 150 corresponding to the description language of the programs described in the source files 111, 141 are programmed to automatically record the change history of all data when the programs shown in the execution files 112, 142 are executed. to generate

図5は、実行ファイルの生成状況の一例を示す図である。例えば開発マシン100aにおいて、コンパイラ120がソースファイル111をコンパイルし、実行ファイル112を生成する。また開発マシン100bにおいて、コンパイラ150がソースファイル141(ソースファイル111のコピー)をコンパイルし、実行ファイル142を生成する。コンパイラ120,150は、ソースファイル111,141をコンパイルする際、データの変更を伴う命令を検出すると、その命令の前後に、データの記録命令を追加する。 FIG. 5 is a diagram illustrating an example of how an executable file is generated. For example, in the development machine 100a, the compiler 120 compiles the source file 111 and generates the execution file 112. FIG. Also, in the development machine 100b, the compiler 150 compiles the source file 141 (a copy of the source file 111) to generate the executable file 142. FIG. When compiling the source files 111 and 141, the compilers 120 and 150 add data recording instructions before and after the instruction when detecting an instruction that changes data.

図6は、コンパイルの処理手順の一例を示す図である。以下、開発マシン100a内のコンパイラ120がコンパイルする場合を例にとり、図6に示す処理をステップ番号に沿って説明する。 FIG. 6 is a diagram illustrating an example of a compilation processing procedure. The processing shown in FIG. 6 will be described below along with the step numbers, taking as an example the case where the compiler 120 in the development machine 100a compiles.

[ステップS101]コンパイラ120は、ソースファイル111の命令文を一文ずつ上から順に選択し、選択した命令文に応じて実行する処理を解釈する。
[ステップS102]コンパイラ120は、解釈した命令文に応じた処理によりデータの変更が行われるか否かを判断する。例えばコンパイラ120は、メモリ102のデータ領域へのデータの読み込みを伴う命令であれば、データの変更があると判断する。コンパイラ120は、データの変更がある場合、処理をステップS104に進める。またコンパイラ120は、データの変更がなければ、処理をステップS103に進める。
[Step S101] The compiler 120 selects the statements of the source file 111 one by one from the top, and interprets the processing to be executed according to the selected statements.
[Step S102] The compiler 120 determines whether data will be changed by processing according to the interpreted statement. For example, the compiler 120 determines that data is changed if the instruction involves reading data into the data area of the memory 102 . Compiler 120 advances the process to step S104 if there is a data change. If there is no data change, the compiler 120 advances the process to step S103.

[ステップS103]コンパイラ120は、解釈した命令文に対応する機械語の命令を、実行ファイル112に追加する。その後、コンパイラ120は処理をステップS107に進める。 [Step S<b>103 ] The compiler 120 adds a machine language instruction corresponding to the interpreted statement to the execution file 112 . After that, the compiler 120 advances the process to step S107.

[ステップS104]コンパイラ120は、変更されるデータの変更前の値をデータ変更履歴115に記録する機械語の命令を、実行ファイル112に追加する。この際、コンパイラ120は、例えば記録対象のデータの変更前の値に加え、データのアドレス、そのアドレスに対応するデータの名前、データ形式などを記録対象とする。 [Step S<b>104 ] The compiler 120 adds to the execution file 112 a machine-language instruction for recording the pre-change value of the data to be changed in the data change history 115 . At this time, the compiler 120 records, for example, the address of the data, the name of the data corresponding to the address, the data format, etc., in addition to the value of the data to be recorded before the change.

例えばCOBOLなどの高級言語では、ソースファイル111上の記述と翻訳オプションなどによって、データ形式(例えば文字コードUTF-8の文字列)を把握することができる。そこでコンパイラ120は、ソースファイル111の翻訳オプションなどに基づいてデータ形式を把握し、データのデータ形式をデータ変更履歴115への記録対象とする。またコンパイラ120は、例えば、データとそのデータ形式を対応付けたファイルをソースファイル111とともにコンパイル時の入力とし、そのファイルに基づいてデータ形式を把握し、データのデータ形式をデータ変更履歴115への記録対象とすることもできる。 For example, in a high-level language such as COBOL, the data format (for example, a character string of character code UTF-8) can be grasped from the description on the source file 111 and the translation option. Therefore, the compiler 120 grasps the data format based on the translation options of the source file 111 and the like, and records the data format of the data in the data change history 115 . Also, the compiler 120, for example, takes a file in which data and its data format are associated with each other together with the source file 111 as an input at the time of compiling, grasps the data format based on the file, and transfers the data format of the data to the data change history 115. It can also be recorded.

[ステップS105]コンパイラ120は、解釈した命令文に対応する機械語の命令を、実行ファイル112に追加する。
[ステップS106]コンパイラ120は、変更されるデータの変更後の値をデータ変更履歴115に記録する機械語の命令を、実行ファイル112に追加する。この際、コンパイラ120は、例えば記録対象のデータの変更後の値に加え、データのアドレス、そのアドレスに対応するデータの名前、データ形式などを記録対象とする。
[Step S<b>105 ] The compiler 120 adds a machine language instruction corresponding to the interpreted statement to the execution file 112 .
[Step S<b>106 ] The compiler 120 adds to the executable file 112 a machine language instruction for recording the changed value of the data to be changed in the data change history 115 . At this time, the compiler 120 records, for example, the changed value of the data to be recorded, the address of the data, the name of the data corresponding to the address, the data format, and the like.

[ステップS107]コンパイラ120は、ソースファイル111に記述されたプログラムの最後の命令まで解釈が終了したか否かを判断する。コンパイラ120は、最後の命令まで解釈が終了した場合、コンパイルを終了する。コンパイラ120は、未解釈の命令がある場合、処理をステップS101に進める。 [Step S107] The compiler 120 determines whether the interpretation of the last instruction of the program described in the source file 111 has been completed. Compiler 120 terminates compilation when interpretation is completed up to the last instruction. If there is an uninterpreted instruction, the compiler 120 advances the process to step S101.

このようにしてコンパイラ120によりコンパイルが実行され、機械語の命令によって処理が記述された実行ファイル112が生成される。なお上記の説明では、移行元と同一の実行環境を有する開発マシン100aにおける処理を示したが、移行先と同一の実行環境を有する開発マシン100bにおいても、コンパイラ150によって図6に示した処理手順でコンパイルが実行される。 Compilation is executed by the compiler 120 in this manner, and an execution file 112 is generated in which processing is described by machine language instructions. In the above description, the processing in the development machine 100a having the same execution environment as that of the migration source is shown, but the processing procedure shown in FIG. compilation is performed.

図7は、コンパイルの一例を示す図である。図7では、COBOL言語で記述されたグラムのソースファイル111をコンパイルする例が示されている。ソースファイル111のファイル名は「a.cob」であり、そのソースファイル111に記述されたプログラムは「PROG-A」である。なお実行ファイル112の内容としては、機械語の命令そのものではなく、記述された命令の意味を示している。 FIG. 7 is a diagram showing an example of compilation. FIG. 7 shows an example of compiling a gram source file 111 written in the COBOL language. The file name of the source file 111 is "a.cob", and the program described in the source file 111 is "PROG-A". Note that the contents of the execution file 112 are not the machine language instructions themselves, but the meanings of the written instructions.

例えばコンパイラ120は、データの変更を記述するすべての命令文の前後に操作対象データのその時点の値を記録する命令を生成する。以下、プログラム中の「READ FILE-1.」という文(行番号「000100」)に対してデータの値を記録する命令を生成する例を詳細に説明する。 For example, the compiler 120 generates instructions that record the current value of the data being operated on before and after every statement that describes a data change. An example of generating an instruction for recording a data value for a statement "READ FILE-1." (line number "000100") in a program will be described in detail below.

コンパイラ120は、その言語の文の仕様を理解している。そのためコンパイラ120は、その文を解析した結果、その文がどのデータを変更する可能性があるかを把握することができる。図7に示すソースファイル111のREAD文(ファイルからデータを読み込む命令文)の場合、コンパイラ120は以下の事柄を認識する。
・READ文はデータ領域WK-RECORDを書き換える可能性がある。
・WK-RECORDの定義から、WK-RECORDは以下の末端項目から構成されている。
WK-ITEM-1:4バイト
WK-ITEM-2:8バイト
コンパイラ120はこの例のREAD文に対する命令の前後に、変更される可能性のあるデータ領域の値を記録する命令を生成する。この命令生成は、変更される可能性のあるデータ領域のそれぞれに対して行われる。この例の場合、変更される可能性があるデータ領域はWK-RECORDのみなので、コンパイラ120はWK-RECORDに対してのみデータの値を記録する命令を生成する。ただしコンパイラ120は、その命令をWK-RECORDに対して生成するのではなく、末端のデータ項目(この場合、WK-ITEM-1とWK-ITEM-2)ごとに順番に出力する。
Compiler 120 understands the sentence specification of the language. As a result of parsing the statement, the compiler 120 can therefore know which data the statement may change. In the case of the READ statement (command statement for reading data from the file) of the source file 111 shown in FIG. 7, the compiler 120 recognizes the following matters.
・A READ statement may rewrite the data area WK-RECORD.
• From the definition of WK-RECORD, WK-RECORD consists of the following terminal items.
WK-ITEM-1: 4 bytes WK-ITEM-2: 8 bytes Compiler 120 generates instructions around the instruction for the READ statement in this example to record the values of the data areas that may change. This instruction generation is performed for each data area that may be changed. In this example, WK-RECORD is the only data area that can be changed, so compiler 120 generates instructions to record data values only in WK-RECORD. However, the compiler 120 does not generate the instructions for WK-RECORD, but outputs them in order for each terminal data item (WK-ITEM-1 and WK-ITEM-2 in this case).

これにより実行ファイル112には、「READ FILE-1.」に相当する命令の前後に、WK-ITEM-1とWK-ITEM-2とのそれぞれを記録する命令が追加される。 As a result, instructions for recording WK-ITEM-1 and WK-ITEM-2 are added to the execution file 112 before and after the instruction corresponding to "READ FILE-1."

「データ領域の値を記録する命令」は、例えばデータの値をデータ変更履歴115に記録する機能を持つランタイム関数の読み出し命令である。その場合、コンパイラ120は、データの値をデータ変更履歴115に記録するために、ランタイム関数に以下の情報を渡す命令を生成する。
・記録対象とする文の位置(図7の例では「a.cob」の行「000100」)
・イベント種類(記録対象とする文の実行前か実行後か)
・データ領域の先頭アドレス
・データ領域のサイズ
・データ名(実行プロセス内でデータを一意に識別できるように修飾された名前(例えばPROG-A/WK-RECORD/WK-ITEM-1))
・データ形式
コンパイラ120は、翻訳にあたり、各データ領域のデータ形式を例えば以下の情報から決定する。
・データの種類に応じたCOBOLのデフォルト値(多くは実行環境ごとに設定される)
・COBOL翻訳オプションなどによる指定(例えばユーザによるデフォルト値の書き換え)
・ソースファイル111上でのデータに対する明示的な記述
このようにして、データの値を記録する命令を含む実行ファイル112が生成される。同様にして、移行先の実行環境を有する開発マシン100bにおいても実行ファイル142が生成される。そして、移行元と移行先とのそれぞれの実行環境を有する開発マシン100a,100bにおいて、実行ファイル112,142が実行されデータ変更履歴115,145に変更前後でのデータの値が記録される。そして移行元と移行先との実行環境ごとのデータ変更履歴115,145を比較することで、非互換動作の有無を示す比較結果が生成される。
The “instruction to record the value of the data area” is, for example, a run-time function readout instruction that has the function of recording the data value in the data change history 115 . In that case, the compiler 120 generates an instruction that passes the following information to the run-time function in order to record the value of the data in the data change history 115.
- The position of the sentence to be recorded (in the example of FIG. 7, the line "000100" of "a.cob")
- Event type (whether before or after executing the statement to be recorded)
・Start address of data area ・Size of data area ・Data name (name qualified to uniquely identify data within execution process (eg PROG-A/WK-RECORD/WK-ITEM-1))
Data format The compiler 120 determines the data format of each data area based on the following information, for example.
・Default value of COBOL according to data type (many are set for each execution environment)
・Specification by COBOL translation options (for example, rewriting of default values by the user)
• Explicit description for data on source file 111 In this way, an executable file 112 is generated that includes instructions for recording data values. Similarly, the execution file 142 is also generated in the development machine 100b having the destination execution environment. Then, the execution files 112 and 142 are executed in the development machines 100a and 100b having respective execution environments of the migration source and the migration destination, and the data values before and after the change are recorded in the data change histories 115 and 145, respectively. By comparing the data change histories 115 and 145 for each execution environment between the migration source and the migration destination, a comparison result indicating whether or not there is an incompatible operation is generated.

図8は、データ変更履歴の生成と比較処理の一例を示す図である。例えば開発マシン100aへの実行ファイル112の実行を指示する入力に応じて、実行部130は、実行ファイル112から機械語のプログラム112aを読み込み、プログラム112aを実行する。実行部130は、データの値を記録する命令(ランタイム関数の呼び出し命令)の実行時には、ランタイムライブラリ114から対応するランタイム114aを読み込む。そして実行部130は、ランタイム114aに記述された命令を実行することで、データの値をデータ変更履歴115に格納する。 FIG. 8 is a diagram illustrating an example of data change history generation and comparison processing. For example, in response to an input instructing the development machine 100a to execute the execution file 112, the execution unit 130 reads the machine language program 112a from the execution file 112 and executes the program 112a. The execution unit 130 reads the corresponding runtime 114 a from the runtime library 114 when executing an instruction for recording data values (an instruction to call a runtime function). The execution unit 130 then stores the data values in the data change history 115 by executing the instructions described in the runtime 114a.

開発マシン100bへの実行ファイル142の実行を指示する入力に応じて、実行部160は、実行ファイル142から機械語のプログラム142aを読み込み、プログラム142aを実行する。実行部160は、データの値を記録する命令(ランタイム関数の呼び出し命令)の実行時には、ランタイムライブラリ144から対応するランタイム144aを読み込む。そして実行部160は、ランタイム144aに記述された命令を実行することで、データの値をデータ変更履歴145に格納する。 In response to an input instructing the development machine 100b to execute the execution file 142, the execution unit 160 reads the machine language program 142a from the execution file 142 and executes the program 142a. The execution unit 160 reads the corresponding runtime 144a from the runtime library 144 when executing an instruction to record a data value (an instruction to call a runtime function). The execution unit 160 then stores data values in the data change history 145 by executing the instructions described in the runtime 144a.

実行部130による実行ファイル112の実行と、実行部160による実行ファイル142の実行とが終了すると、データ履歴比較部170がデータ変更履歴115とデータ変更履歴145とを比較し、比較結果171を出力する。比較結果171には、実行ファイル112,142によって提供されるアプリケーションの移行前後での動作の互換性の有無が示される。 When execution of execution file 112 by execution unit 130 and execution of execution file 142 by execution unit 160 are completed, data history comparison unit 170 compares data change history 115 and data change history 145 and outputs comparison result 171. do. The comparison result 171 indicates whether the applications provided by the executable files 112 and 142 are compatible in operation before and after migration.

図9は、データ変更履歴の一例を示す図である。実行部130がプログラム112aを実行すると、ランタイム114aによって、プログラム中の各命令文の前後におけるデータの値を含むログレコードが、命令文の実行順にデータ変更履歴115に記録される。図9の例では、繰り返し処理により同じREAD文が2回実行された場合に、データ変更履歴115に記録されたログレコードを示している。 FIG. 9 is a diagram showing an example of a data change history. When the execution unit 130 executes the program 112a, the runtime 114a records log records including data values before and after each statement in the program in the data change history 115 in order of execution of the statements. The example of FIG. 9 shows log records recorded in the data change history 115 when the same READ statement is executed twice by repeated processing.

データ変更履歴115には、操作対象のデータ領域全体(この場合WK-RECORD)ごとではなく、末端項目ごと(この場合WK-ITEM-1とWK-ITEM-2)に分割して、ログレコードが順番に出力されている。 In the data change history 115, log records are divided not by the entire data area to be operated (WK-RECORD in this case) but by terminal items (WK-ITEM-1 and WK-ITEM-2 in this case). output in order.

ログレコードには、通し番号、ソースファイル名、行番号、イベント種類、アドレス、サイズ、値、データ名、およびデータ形式の各情報が含まれる。通し番号は、ログレコードに付与された識別番号であり、ログレコードへの記録が早い順に1から昇順の番号が付与される。ソースファイル名は、実行された実行ファイル112の生成元となったソースファイル111のファイル名である。行番号は、ログレコードを出力する原因となった命令に対応する、ソースファイル111内の命令が記述されたソースファイル111内の行番号である。イベント種類は、ログレコードが、データの変更を伴う命令の実行前のログ(実行前)なのか、あるいはデータの変更を伴う命令の実行後のログ(実行後)なのかを示す情報である。アドレスは、変更されるデータのメモリ内のアドレスである。サイズは、変更されるデータのバイト数である。値は、データの変更前または変更後のそのデータの値である。データ名は、プログラム112aを実行する実行部130内で該当データを一意に識別できるように修飾された名前である。データ形式は、変更されるデータのデータ形式を示す情報である。 A log record contains serial number, source file name, line number, event type, address, size, value, data name, and data format information. The serial number is an identification number assigned to each log record, and numbers are assigned in ascending order starting from 1 in order of earliest recording to the log record. The source file name is the file name of the source file 111 from which the executed execution file 112 was generated. The line number is the line number in the source file 111 where the command in the source file 111 corresponding to the command that caused the output of the log record is described. The event type is information indicating whether the log record is a log before execution of an instruction involving data change (pre-execution) or a log after execution of an instruction involving data change (post-execution). Address is the address in memory of the data to be changed. Size is the number of bytes of data to be changed. Value is the value of the data before or after the data is changed. The data name is a name qualified so as to uniquely identify the corresponding data within the execution unit 130 that executes the program 112a. The data format is information indicating the data format of the data to be changed.

図9の例では、WK-ITEM-1のデータ形式は、ビッグエンディアンバイナリ整数である。WK-ITEM-2のデータ形式は、日本語EUC文字列である。
移行先の事項環境を有する開発マシン100bで生成されたデータ変更履歴145も、データ変更履歴115と同じ種別の情報を含んでいる。データ変更履歴115とデータ変更履歴145とでは、同じ通し番号を有するログレコード同士が対応関係にある。データ履歴比較部170は、対応関係にあるログレコード同士を比較して、そのログレコードに示されている行番号の命令文に応じた処理の移行前後での互換性の有無を判断する。
In the example of FIG. 9, the data format of WK-ITEM-1 is big endian binary integer. The data format of WK-ITEM-2 is Japanese EUC character string.
The data change history 145 generated by the development machine 100b having the migration destination item environment also includes the same type of information as the data change history 115. FIG. In the data change history 115 and the data change history 145, log records having the same serial number have a corresponding relationship. The data history comparison unit 170 compares the log records that have a corresponding relationship, and determines whether there is compatibility before and after the transition of the processing corresponding to the statement of the line number indicated in the log record.

図10は、データ変更履歴比較処理の手順の一例を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
[ステップS201]データ履歴比較部170は、比較対象のログレコードの通し番号を示す変数iを「1」に初期化する。
FIG. 10 is a flowchart illustrating an example of the procedure of data change history comparison processing. The processing shown in FIG. 10 will be described below along with the step numbers.
[Step S201] The data history comparison unit 170 initializes the variable i indicating the serial number of the log record to be compared to "1".

[ステップS202]データ履歴比較部170は、双方のデータ変更履歴115,145それぞれから、i番目のログレコード(通し番号がi)を取得する。
[ステップS203]データ履歴比較部170は、取得した2つのログレコードに示されるデータ名が同一か否かを判断する。データ履歴比較部170は、データ名が同一であれば処理をステップS205に進める。またデータ履歴比較部170は、データ名が異なれば処理をステップS204に進める。
[Step S202] The data history comparison unit 170 acquires the i-th log record (serial number is i) from both the data change histories 115 and 145, respectively.
[Step S203] The data history comparison unit 170 determines whether the data names indicated in the two acquired log records are the same. If the data names are the same, data history comparison unit 170 advances the process to step S205. If the data names are different, data history comparing section 170 advances the process to step S204.

[ステップS204]データ履歴比較部170は、データ変更履歴115,145それぞれを生成する際に実行されたプログラムが不一致であると判定し、データ変更履歴115,145の比較処理を終了する。 [Step S204] The data history comparison unit 170 determines that the programs executed to generate the data change histories 115 and 145 do not match, and ends the comparison processing of the data change histories 115 and 145. FIG.

[ステップS205]データ履歴比較部170は、取得した2つのログレコードに示されるデータ形式に相違があるか否かを判断する。データ履歴比較部170は、データ形式が異なる場合、処理をステップS206に進める。またデータ履歴比較部170は、データ形式が同じ場合、処理をステップS209に進める。 [Step S205] The data history comparison unit 170 determines whether there is a difference between the data formats indicated in the two acquired log records. If the data formats are different, data history comparison unit 170 advances the process to step S206. If the data formats are the same, data history comparison section 170 advances the process to step S209.

[ステップS206]データ履歴比較部170は、データ形式の相違が浮動小数点の相違か否かを判断する。データ履歴比較部170は、浮動小数点の相違の場合、処理をステップS208に進める。またデータ履歴比較部170は、浮動小数点以外の相違の場合、処理をステップS207に進める。 [Step S206] The data history comparison unit 170 determines whether the difference in data format is a difference in floating point numbers. Data history comparison unit 170 advances the process to step S208 if there is a floating-point difference. If the difference is other than floating point, data history comparison unit 170 advances the process to step S207.

[ステップS207]データ履歴比較部170は、一方のデータのデータ形式に他方のデータのデータ形式を変換する。これにより、比較対象の2つのログレコードのデータのデータ形式が一致する。その後、データ履歴比較部170は処理をステップS209に進める。 [Step S207] The data history comparison unit 170 converts the data format of one data into the data format of the other data. As a result, the data formats of the two log records to be compared match. After that, the data history comparison unit 170 advances the process to step S209.

[ステップS208]データ履歴比較部170は、比較対象のログレコード両方のデータのデータ形式を所定のデータ形式に変換する。例えばデータ履歴比較部170は、浮動小数点を数値形式(例えば数字と小数点との文字列)に変換する。 [Step S208] The data history comparison unit 170 converts the data formats of both log records to be compared into a predetermined data format. For example, the data history comparison unit 170 converts floating point data into a numeric format (for example, a string of numbers and decimal points).

[ステップS209]データ履歴比較部170は、比較対象のログレコードに示されるデータの値を比較する。
[ステップS210]データ履歴比較部170は、データの値が同一か否かを判断する。データ履歴比較部170は、データの値が同一であれば処理をステップS211に進める。またデータ履歴比較部170は、データの値が相違する場合、処理をステップS212に進める。
[Step S209] The data history comparison unit 170 compares data values indicated in log records to be compared.
[Step S210] The data history comparison unit 170 determines whether the data values are the same. If the data values are the same, data history comparison unit 170 advances the process to step S211. If the data values are different, data history comparing section 170 advances the process to step S212.

[ステップS211]データ履歴比較部170は、動作に互換性があることが確認できたことを示す比較結果レコードを比較結果171内に出力する。その後、データ履歴比較部170は処理をステップS213に進める。 [Step S211] The data history comparison unit 170 outputs a comparison result record in the comparison result 171 indicating that the operation compatibility has been confirmed. After that, the data history comparison unit 170 advances the process to step S213.

[ステップS212]データ履歴比較部170は、非互換動作の検出を示す比較結果レコードを比較結果171内に出力する。
[ステップS213]データ履歴比較部170は、変数iに1を加算する。
[Step S212] The data history comparison unit 170 outputs a comparison result record indicating detection of an incompatible operation in the comparison result 171. FIG.
[Step S213] The data history comparison unit 170 adds 1 to the variable i.

[ステップS214]データ履歴比較部170は、データ変更履歴115,145にi番目のログレコードがあるか否かを判断する。データ履歴比較部170は、i番目のログレコードがあれば処理をステップS202に進める。またデータ履歴比較部170は、i番目のログレコードがなければデータ変更履歴比較処理を終了する。 [Step S214] The data history comparing unit 170 determines whether or not the data change history 115, 145 includes the i-th log record. Data history comparison unit 170 advances the process to step S202 if there is an i-th log record. If there is no i-th log record, the data history comparison unit 170 ends the data change history comparison process.

このようにして通し番号が同じログレコード同士が比較され、データ形式の違いによる非互換動作の有無が判断される。
図11は、データ比較処理の第1の例を示す図である。移行元の実行環境上で取得したデータ変更履歴115の13番目のログレコードには、WK-ITEM-1について、バイナリ整数であり、エンディアンはビッグエンディアンであるものとして翻訳したことが示されている。データ変更履歴115の14番目のログレコードには、WK-ITEM-2について、日本語EUC文字列として翻訳したことが示されている。
In this way, log records with the same serial number are compared to determine whether or not there is an incompatible operation due to a difference in data format.
FIG. 11 is a diagram showing a first example of data comparison processing. The 13th log record of the data change history 115 acquired on the execution environment of the migration source indicates that WK-ITEM-1 was translated as a binary integer with a big endian endian. . The 14th log record of the data change history 115 indicates that WK-ITEM-2 has been translated as a Japanese EUC character string.

移行先の実行環境上で取得したデータ変更履歴145の13番目のログレコードには、WK-ITEM-1について、バイナリ整数であり、エンディアンはリトルエンディアンであるものとして翻訳したことが示されている。データ変更履歴145の14番目のログレコードには、WK-ITEM-2について、UTF-16LE文字列として翻訳したことが示されている。 The 13th log record of the data change history 145 acquired on the migration destination execution environment indicates that WK-ITEM-1 was translated as a binary integer and endian as little endian. . The 14th log record of the data change history 145 indicates that WK-ITEM-2 was translated as a UTF-16LE character string.

データ履歴比較部170は、ログレコード同士を比較する場合、まずデータ名が一致していることを確認する。データ名が不一致の場合、データ履歴比較部170は、プログラムの処理ロジックが異なっている(同一プログラムではない)と判断し、比較を中止する。なおプログラムのロジックが同じであっても実行環境に応じてアドレスは異なるため、比較対象のログレコードに示されるアドレスは異なっていてもよい。図11の例では、13番目のログレコードのデータ名は共に「WK-ITEM-1」である。また14番目のログレコードのデータ名は共に「WK-ITEM-2」である。従って、いずれもデータ名は一致する。 When comparing log records, the data history comparison unit 170 first confirms that the data names match. If the data names do not match, the data history comparison unit 170 determines that the processing logic of the programs is different (they are not the same programs), and stops comparison. Even if the logic of the program is the same, the addresses shown in the log records to be compared may be different because the addresses differ depending on the execution environment. In the example of FIG. 11, the data name of the 13th log record is both "WK-ITEM-1". The data name of the 14th log record is both "WK-ITEM-2". Therefore, both data names match.

データ履歴比較部170は、データ名が一致した場合、データ形式が一致するか否かを判断し、データ形式が一致していれば、データ形式の変換をせずにデータの値を比較する。他方、データ形式が不一致の場合、データ履歴比較部170は、データ形式を一致させた後にデータの値を比較する。 If the data names match, the data history comparison unit 170 determines whether the data formats match. On the other hand, if the data formats do not match, the data history comparison unit 170 compares the data values after making the data formats match.

13番目のログレコードの比較の場合、データ履歴比較部170は、移行元の実行環境に基づいて取得したデータ変更履歴115内のログレコードのデータのエンディアンを、ビッグエンディアンからリトルエンディアンに変更している。そしてデータ履歴比較部170は、エンディアンを揃えて、データの値を比較している。13番目のログレコードのデータの値で表される意味は、共に10進数で表すと「123456」となる。そこでデータ履歴比較部170は、比較結果171に、互換確認を示す比較結果レコード171aを出力する。 In the case of the 13th log record comparison, the data history comparison unit 170 changes the endian of the log record data in the data change history 115 acquired based on the migration source execution environment from big endian to little endian. there is Then, the data history comparison unit 170 compares data values with the same endian. The meaning represented by the data value of the 13th log record is "123456" when expressed in decimal. Therefore, the data history comparison unit 170 outputs a comparison result record 171a indicating compatibility confirmation as the comparison result 171. FIG.

14番目のログレコードの比較の場合、データ履歴比較部170は、移行元の実行環境に基づいて取得したデータ変更履歴115内のログレコードのデータの文字コードをUTF16-LEに変換している。そしてデータ履歴比較部170は、文字コードを揃えて、データの値を比較している。14番目のログレコードのデータの値は文字コードの変換をする前に既に同一である。これは、例えばデータファイル143a,143b,・・・を生成する際のデータ形式の変換漏れによって発生する。同じ値となっている比較対象の文字コードの一方を変換することで、比較の結果は不一致となる。そこでデータ履歴比較部170は、比較結果171に、非互換動作の検出を示す比較結果レコード171bを出力する。 In the case of the 14th log record comparison, the data history comparison unit 170 converts the character code of the log record data in the data change history 115 acquired based on the migration source execution environment into UTF16-LE. The data history comparison unit 170 aligns the character codes and compares the data values. The data values of the 14th log record are already the same before character code conversion. This is caused, for example, by omission of data format conversion when the data files 143a, 143b, . . . are generated. By converting one of the character codes to be compared that have the same value, the result of the comparison will be a mismatch. Therefore, the data history comparison unit 170 outputs, as the comparison result 171, a comparison result record 171b indicating detection of incompatible operation.

比較結果171には、ログレコードが比較されるごとに、比較結果レコード171a,171bが格納される。比較結果レコード171a,171bには、結果、通し番号、ソースファイル名、行、およびイベント種類が含まれる。結果は、互換性の有無を示す情報であり、互換性が確認できた場合は「OK」、非互換動作を検出した場合は「NG」と設定される。通し番号は、比較されたログレコードの通し番号である。ソースファイル名は、比較対象のデータ変更履歴115,145を生成するために実行された実行ファイル112,142に対応するソースファイル111,141のファイル名である。行は、比較されたログレコードを記録する命令に対応するソースファイル111,141内の命令文の行番号である。イベント種類は、比較されたログレコードが、データの変更を伴う命令の実行前のログ(実行前)なのか、あるいはデータの変更を伴う命令の実行後のログ(実行後)なのかを示す情報である。データ名は、比較されたログレコードに示されるデータのデータ名である。 The comparison result 171 stores comparison result records 171a and 171b each time log records are compared. Comparison result records 171a and 171b include result, serial number, source file name, line, and event type. The result is information indicating the presence or absence of compatibility, and "OK" is set when compatibility is confirmed, and "NG" is set when incompatible operation is detected. The serial number is the serial number of the compared log records. The source file name is the file name of the source file 111, 141 corresponding to the execution file 112, 142 executed to generate the data change history 115, 145 to be compared. Line is the line number of the statement in the source file 111, 141 corresponding to the instruction recording the compared log record. The event type is information indicating whether the compared log record is a log before execution of an instruction with data modification (pre-execution) or a log after execution of an instruction with data modification (post-execution). is. The data name is the data name of the data indicated in the compared log records.

また比較結果レコード171a,171bには、移行元のログレコードのデータのデータ形式、サイズ、および値、並びに移行先のログレコードのデータのデータ形式、サイズ、および値が含まれる。 The comparison result records 171a and 171b also include the data format, size, and value of the log record data of the migration source, and the data format, size, and value of the log record data of the migration destination.

例えば比較結果レコード171aは、結果が「OK」である。すなわち、互換性が確認されたことが示されている。また比較結果レコード171bは、結果が「NG」である。すなわち、非互換動作が検出されたことが示されている。 For example, the result of the comparison result record 171a is "OK". That is, it indicates that compatibility has been confirmed. The result of the comparison result record 171b is "NG". That is, it indicates that an incompatible operation has been detected.

図12は、データ比較処理の第2の例を示す図である。図12には、浮動小数点の形式が異なる場合の比較処理の例が示されている。
移行元の実行環境上で取得したデータ変更履歴115の23番目のログレコードには、WK-ITEM-1について、バイナリ整数であり、エンディアンはビッグエンディアンであるものとして翻訳したことが示されている。データ変更履歴115の24番目のログレコードには、WK-ITEM-2について、ホスト形式浮動と呼ばれる浮動小数点として翻訳したことが示されている。
FIG. 12 is a diagram showing a second example of data comparison processing. FIG. 12 shows an example of comparison processing when the floating-point formats are different.
The 23rd log record of the data change history 115 acquired on the migration source execution environment indicates that WK-ITEM-1 was translated as a binary integer with a big endian endian. . The twenty-fourth log record of data change history 115 shows that WK-ITEM-2 was translated as a floating point called host format floating point.

移行先の実行環境上で取得したデータ変更履歴145の23番目のログレコードには、WK-ITEM-1について、バイナリ整数であり、エンディアンはリトルエンディアンであるものとして翻訳したことが示されている。データ変更履歴145の24番目のログレコードには、WK-ITEM-2について、IEEE(Institute of Electrical and Electronics Engineers)浮動と呼ばれる浮動小数点として翻訳したことが示されている。 The 23rd log record of the data change history 145 acquired on the destination execution environment indicates that WK-ITEM-1 was translated as a binary integer and endian as little endian. . The 24th log record of data change history 145 shows that WK-ITEM-2 was translated as a floating point called IEEE (Institute of Electrical and Electronics Engineers) floating point.

23番目のログレコードの比較の場合、データ履歴比較部170は、移行元の実行環境に基づいて取得したデータ変更履歴115内のログレコードのデータのエンディアンを、ビッグエンディアンからリトルエンディアンに変更している。そしてデータ履歴比較部170は、エンディアンを揃えて、データの値を比較している。23番目のログレコードのデータの値で表される意味は、共に10進数で表すと「123456」となる。そこでデータ履歴比較部170は、比較結果171に、互換確認を示す比較結果レコード171cを出力する。 In the case of the 23rd log record comparison, the data history comparison unit 170 changes the endian of the log record data in the data change history 115 acquired based on the migration source execution environment from big endian to little endian. there is Then, the data history comparison unit 170 compares data values with the same endian. The meaning represented by the data value of the 23rd log record is "123456" when expressed in decimal. Therefore, the data history comparison unit 170 outputs a comparison result record 171c indicating compatibility confirmation as the comparison result 171. FIG.

24番目のログレコードの比較の場合、データ履歴比較部170は、両方のログレコードのデータの浮動小数点を、数値に変換している。そしてデータ履歴比較部170は、データの値(浮動小数点)で表される数値を比較している。24番目のログレコードのデータの値で表される数値は共に「0.125」となる。そこでデータ履歴比較部170は、比較結果171に、互換確認を示す比較結果レコード171dを出力する。 When comparing the 24th log record, the data history comparison unit 170 converts the floating point data of both log records into numerical values. The data history comparison unit 170 compares numerical values represented by data values (floating point numbers). The numerical values represented by the data values of the 24th log record are both "0.125". Therefore, the data history comparison unit 170 outputs a comparison result record 171d indicating compatibility confirmation as the comparison result 171. FIG.

例えば比較結果レコード171c,171dは、結果が共に「OK」である。すなわち、互換性が確認されたことが示されている。
このように、データ履歴比較部170は、比較対象のログレコードの両者のデータ形式が異なっていれば、どちらかのデータ形式または所定のデータ形式にデータ形式を統一したうえでデータの値を比較する。これにより、データの値で表させる意味の同一性を判断できる。
For example, comparison result records 171c and 171d are both "OK". That is, it indicates that compatibility has been confirmed.
In this way, if the data formats of both log records to be compared are different, the data history comparison unit 170 unifies the data formats to one of the data formats or a predetermined data format before comparing the data values. do. This makes it possible to determine the identity of the meaning represented by the data values.

なおデータ履歴比較部170は、データ形式が一致していればデータの値をそのまま比較する。そしてデータ履歴比較部170は、比較の結果、データの値が相違することを検出した場合、移行先の実行環境において非互換動作が発生していると判断し、その旨を示す比較結果レコードを比較結果117に出力する。 Note that the data history comparison unit 170 compares the data values as they are if the data formats match. When the data history comparing unit 170 detects that the data values are different as a result of the comparison, it determines that an incompatible operation has occurred in the migration destination execution environment, and creates a comparison result record indicating that fact. Output to the comparison result 117 .

比較結果117には、比較されたログレコードの順に、比較によって互換性が確認できたのか(OK)、非互換動作を検出したのか(NG)が示される。比較結果171をモニタ21に表示することで、運用者は、最も早く非互換動作が検出されたログレコードに対応するソースファイル111,141の行を特定することができる。最も早く非互換動作が検出された行は、非互換動作発生の原因箇所であると推測される。すなわち、運用者は、比較結果171を参照することで、非互換動作発生の原因箇所を容易に特定することができる。 The comparison result 117 indicates whether compatibility was confirmed by comparison (OK) or whether incompatible operation was detected (NG) in the order of the compared log records. By displaying the comparison result 171 on the monitor 21, the operator can specify the line of the source files 111 and 141 corresponding to the log record in which the incompatible operation was detected earliest. The row where the incompatible operation is detected earliest is presumed to be the source of the occurrence of the incompatible operation. That is, by referring to the comparison result 171, the operator can easily identify the cause of the occurrence of the incompatible operation.

またコンパイラ120,150は、データを変更する命令の前後にデータの値を記録する命令を追加している。これにより、非互換動作の発生箇所においてどのようなデータ変換が行われたのかを比較結果から容易に確認でき、非互換動作の原因特定を迅速に行うことができる。 Compilers 120 and 150 also add instructions for recording data values before and after instructions that modify data. As a result, it is possible to easily confirm from the comparison result what kind of data conversion was performed at the location where the incompatible operation occurred, and to quickly identify the cause of the incompatible operation.

〔その他の実施の形態〕
第2の実施の形態では運用マシン200a,200bとは別に開発マシン100a,100bを用意したが、運用マシン200a,200bを用いてアプリケーションの互換性の検証を行ってもよい。
[Other embodiments]
In the second embodiment, the development machines 100a and 100b are prepared separately from the operation machines 200a and 200b, but application compatibility may be verified using the operation machines 200a and 200b.

第2の実施の形態では、コンパイラ120,150によって、データを変更する命令の前後にデータの値を記録する命令を追加しているが、コンパイラ120,150以外の手段でデータの値を記録する命令を追加してもよい。例えば開発マシン100a,100bは、既に生成されている実行ファイル内の機械語のプログラムを解析し、データを変更する命令の前後にデータの値を記録する命令を追加することもできる。 In the second embodiment, the compilers 120 and 150 add instructions for recording data values before and after instructions that change data. You can add instructions. For example, the development machines 100a and 100b can analyze a machine language program in an executable file that has already been generated, and add instructions for recording data values before and after instructions that change data.

また第2の実施の形態では、データを変更する命令の前と後の両方にデータの値を記録する命令を追加しているが、開発マシン100a,100bは、データを変更する命令の前または後の一方でのみデータの値を記録する命令を追加してもよい。 In the second embodiment, an instruction for recording data values is added both before and after an instruction that changes data. An instruction may be added to record the value of the data only in the latter one.

以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。 Although the embodiment has been exemplified above, the configuration of each part shown in the embodiment can be replaced with another one having the same function. Also, any other components or steps may be added. Furthermore, any two or more configurations (features) of the above-described embodiments may be combined.

1 検証対象プログラム
2 第1の実行プログラム
3 第2の実行プログラム
4 第1のデータ
5 第2のデータ
6 第1のデータ変更履歴
7 第2のデータ変更履歴
10 情報処理装置
11 記憶部
12 処理部
12a 第1のプログラム実行環境
12b 第2のプログラム実行環境
1 verification target program 2 first execution program 3 second execution program 4 first data 5 second data 6 first data change history 7 second data change history 10 information processing device 11 storage unit 12 processing unit 12a first program execution environment 12b second program execution environment

Claims (6)

データの値を変更する検証対象命令を含む検証対象プログラムに従った処理を第1のプログラム実行環境で実行するための第1の実行プログラムに、前記検証対象命令に基づいて前記第1の実行プログラム内に設定された第1のデータ変更命令による変更内容を記録させる第1の記録命令を追加し、
前記第1のプログラム実行環境で前記第1の実行プログラムを実行させることで、前記第1のデータ変更命令による第1のデータの値の変更内容が記録された第1のデータ変更履歴を取得し、
前記検証対象プログラムに従った処理を第2のプログラム実行環境で実行するための第2の実行プログラムに、前記検証対象命令に基づいて前記第2の実行プログラム内に設定された第2のデータ変更命令による変更内容を記録させる第2の記録命令を追加し、
前記第2のプログラム実行環境で前記第2の実行プログラムを実行させることで、前記第2のデータ変更命令による第2のデータの値の変更内容が記録された第2のデータ変更履歴を取得し、
前記第1のデータ変更履歴と前記第2のデータ変更履歴とを比較することで非互換動作を検出する、
処理をコンピュータに実行させる検証プログラム。
a first execution program for executing, in a first program execution environment, a process according to a verification target program including a verification target instruction that changes a data value, based on the verification target instruction; Add a first record command to record the change content by the first data change command set in
By executing the first execution program in the first program execution environment, acquiring a first data change history in which change contents of the value of the first data according to the first data change instruction are recorded. ,
A second data change set in the second execution program based on the verification target instruction in a second execution program for executing processing according to the verification target program in a second program execution environment. Add a second recording command to record the changes made by the command,
By executing the second execution program in the second program execution environment, acquiring a second data change history in which changes to the value of the second data by the second data change instruction are recorded. ,
detecting an incompatible operation by comparing the first data change history and the second data change history;
A verification program that causes a computer to perform a process.
前記第1のデータ変更履歴の取得では、前記第1のデータの変更前の値または変更後の値を含む前記第1のデータ変更履歴を取得し、
前記第2のデータ変更履歴の取得では、前記第2のデータの変更前の値または変更後の値を含む前記第2のデータ変更履歴を取得し、
非互換動作の検出では、前記第1のデータ変更履歴に示される前記第1のデータの値によって表される意味と前記第2のデータ変更履歴に示される前記第2のデータの値によって表される意味とを比較し、異なる意味を表している場合に非互換動作が生じていると判断する、
請求項1記載の検証プログラム。
Acquiring the first data change history includes acquiring the first data change history including the value before or after the change of the first data,
Acquiring the second data change history includes acquiring the second data change history including the value before or after the change of the second data,
In detecting an incompatible operation, the meaning represented by the value of the first data indicated in the first data change history and the value of the second data indicated in the second data change history. compare the meanings of the terms and determine that incompatible behavior occurs when different meanings are expressed;
The verification program according to claim 1.
前記第1のデータ変更履歴の取得では、前記第1のデータに求められる第1のデータ形式と、前記第1のデータの変更前の値または変更後の値とを含む前記第1のデータ変更履歴を取得し、
前記第2のデータ変更履歴の取得では、前記第2のデータに求められる第2のデータ形式と、前記第2のデータの変更前の値または変更後の値とを含む前記第2のデータ変更履歴を取得し、
非互換動作の検出では、前記第1のデータ変更履歴に示される前記第1のデータ形式と前記第2のデータ変更履歴に示される前記第2のデータ形式とに基づいて、前記第1のデータと前記第2のデータとの少なくとも一方のデータ形式を変換し、前記第1のデータと前記第2のデータとの値を比較する、
請求項2記載の検証プログラム。
In acquiring the first data change history, the first data change includes a first data format required for the first data and a value before or after the change of the first data. get history,
In acquiring the second data change history, the second data change includes a second data format required for the second data and a value before or after the change of the second data. get history,
detecting an incompatible operation based on the first data format indicated in the first data change history and the second data format indicated in the second data change history; Converting the data format of at least one of and the second data, and comparing the values of the first data and the second data;
3. The verification program according to claim 2.
前記第1のデータ変更履歴の取得では、前記第1のデータを識別する第1のデータ名を含む前記第1のデータ変更履歴を取得し、
前記第2のデータ変更履歴の取得では、前記第2のデータを識別する第2のデータ名を含む前記第2のデータ変更履歴を取得し、
非互換動作の検出では、前記第1のデータ変更履歴に示される前記第1のデータ名と前記第2のデータ変更履歴に示される前記第2のデータ名とを比較する、
請求項1から3のいずれかに記載の検証プログラム。
Acquiring the first data change history includes acquiring the first data change history including a first data name that identifies the first data,
Acquiring the second data change history includes acquiring the second data change history including a second data name that identifies the second data,
Detecting an incompatible operation includes comparing the first data name indicated in the first data change history with the second data name indicated in the second data change history;
The verification program according to any one of claims 1 to 3.
データの値を変更する検証対象命令を含む検証対象プログラムに従った処理を第1のプログラム実行環境で実行するための第1の実行プログラムに、前記検証対象命令に基づいて前記第1の実行プログラム内に設定された第1のデータ変更命令による変更内容を記録させる第1の記録命令を追加し、
前記第1のプログラム実行環境で前記第1の実行プログラムを実行させることで、前記第1のデータ変更命令による第1のデータの値の変更内容が記録された第1のデータ変更履歴を取得し、
前記検証対象プログラムに従った処理を第2のプログラム実行環境で実行するための第2の実行プログラムに、前記検証対象命令に基づいて前記第2の実行プログラム内に設定された第2のデータ変更命令による変更内容を記録させる第2の記録命令を追加し、
前記第2のプログラム実行環境で前記第2の実行プログラムを実行させることで、前記第2のデータ変更命令による第2のデータの値の変更内容が記録された第2のデータ変更履歴を取得し、
前記第1のデータ変更履歴と前記第2のデータ変更履歴とを比較することで非互換動作を検出する、
処理をコンピュータが実行する検証方法。
a first execution program for executing, in a first program execution environment, a process according to a verification target program including a verification target instruction that changes a data value, based on the verification target instruction; Add a first record command to record the change content by the first data change command set in
By executing the first execution program in the first program execution environment, acquiring a first data change history in which change contents of the value of the first data according to the first data change instruction are recorded. ,
A second data change set in the second execution program based on the verification target instruction in a second execution program for executing processing according to the verification target program in a second program execution environment. Add a second recording command to record the changes made by the command,
By executing the second execution program in the second program execution environment, acquiring a second data change history in which changes to the value of the second data by the second data change instruction are recorded. ,
detecting an incompatible operation by comparing the first data change history and the second data change history;
A verification method in which processing is performed by a computer.
データの値を変更する検証対象命令を含む検証対象プログラムに従った処理を第1のプログラム実行環境で実行するための第1の実行プログラムに、前記検証対象命令に基づいて前記第1の実行プログラム内に設定された第1のデータ変更命令による変更内容を記録させる第1の記録命令を追加し、前記第1のプログラム実行環境で前記第1の実行プログラムを実行させることで、前記第1のデータ変更命令による第1のデータの値の変更内容が記録された第1のデータ変更履歴を取得し、前記検証対象プログラムに従った処理を第2のプログラム実行環境で実行するための第2の実行プログラムに、前記検証対象命令に基づいて前記第2の実行プログラム内に設定された第2のデータ変更命令による変更内容を記録させる第2の記録命令を追加し、前記第2のプログラム実行環境で前記第2の実行プログラムを実行させることで、前記第2のデータ変更命令による第2のデータの値の変更内容が記録された第2のデータ変更履歴を取得し、前記第1のデータ変更履歴と前記第2のデータ変更履歴とを比較することで非互換動作を検出する処理部、
を有する情報処理装置。
a first execution program for executing, in a first program execution environment, a process according to a verification target program including a verification target instruction that changes a data value, based on the verification target instruction; By adding a first recording instruction for recording the change content by the first data modification instruction set in the first data modification instruction, and executing the first execution program in the first program execution environment, A second data change history for acquiring a first data change history in which changed contents of a first data value by a data change instruction are recorded, and executing a process according to the verification target program in a second program execution environment. adding, to the execution program, a second recording instruction for recording changes made by a second data modification instruction set in the second execution program based on the verification target instruction, and creating the second program execution environment; by executing the second execution program in the second data change instruction, acquiring a second data change history in which changes to the value of the second data are recorded, and performing the first data change a processing unit that detects an incompatible operation by comparing the history with the second data change history;
Information processing device having
JP2021167367A 2021-10-12 2021-10-12 Verification program, verification method, and information processing device Pending JP2023057721A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021167367A JP2023057721A (en) 2021-10-12 2021-10-12 Verification program, verification method, and information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021167367A JP2023057721A (en) 2021-10-12 2021-10-12 Verification program, verification method, and information processing device

Publications (1)

Publication Number Publication Date
JP2023057721A true JP2023057721A (en) 2023-04-24

Family

ID=86054781

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021167367A Pending JP2023057721A (en) 2021-10-12 2021-10-12 Verification program, verification method, and information processing device

Country Status (1)

Country Link
JP (1) JP2023057721A (en)

Similar Documents

Publication Publication Date Title
JP4148527B2 (en) Functional test script generator
RU2395836C2 (en) User configurable software libraries
US20070271553A1 (en) Method and system for translating assembler code to a target language
JP2018156133A (en) Compiler program, information processing apparatus and compilation method
US10839124B1 (en) Interactive compilation of software to a hardware language to satisfy formal verification constraints
CN113760266B (en) Method and device for creating function module file and electronic equipment
CN107077365B (en) Selectively loading precompiled headers and/or portions thereof
JP2023057721A (en) Verification program, verification method, and information processing device
JP7410269B2 (en) Automated verification of high-level construct optimization using test vectors
WO2022068559A1 (en) Code processing method and apparatus, and device
US11537308B2 (en) Information processing system, information processing device, storage medium, and information processing method of detecting destruction of data due to file transfer
JP2024142008A (en) Verification program, verification method, and information processing device
JP4983027B2 (en) Check program and check method
CN117075912B (en) Method for program language conversion, compiling method and related equipment
KR101449657B1 (en) Method for transforming intermediate language using range of values of operator, system and computer-readable recording medium with program therefor
WO2024232193A1 (en) Information processing device, information processing method, and computer program
JPH10293683A (en) Device for comparatively analyzing program, method therefor and mechanically readable recording medium recording comparative analytic program for program
EP4206904A1 (en) Code processing method and apparatus, and storage medium
US20170103011A1 (en) Information processing apparatus and system
WO2022127263A1 (en) Code processing method and related device
JP2022156575A (en) Analysis program, analysis method, and information processing apparatus
JP6639238B2 (en) Programs and computers
CN114327469A (en) Code analysis method, device, equipment and medium
CN113971043A (en) Device library generation method, device, chip and storage medium
EP0911743A1 (en) Converter for tag-delimited files

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240711