JP4501978B2 - Data processing apparatus, system, program, and method - Google Patents
Data processing apparatus, system, program, and method Download PDFInfo
- Publication number
- JP4501978B2 JP4501978B2 JP2007240710A JP2007240710A JP4501978B2 JP 4501978 B2 JP4501978 B2 JP 4501978B2 JP 2007240710 A JP2007240710 A JP 2007240710A JP 2007240710 A JP2007240710 A JP 2007240710A JP 4501978 B2 JP4501978 B2 JP 4501978B2
- Authority
- JP
- Japan
- Prior art keywords
- failure
- conditional expression
- trace
- instruction
- correction
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Description
本発明はデータ処理装置、システム、プログラム、及び、方法に関し、特に、動的プログラム検証におけるデータ処理装置、システム、プログラム、及び、方法に関する。 The present invention relates to a data processing apparatus, system, program, and method, and more particularly, to a data processing apparatus, system, program, and method in dynamic program verification.
動的プログラム検証とは、対象となるプログラムに入力値を与えプログラムを実行させて検証を行うテストや、模擬的に同等の処理を行い検証を行うシミュレーション等の技術を用いたプログラムの検証である。動的プログラム検証を行う場合、検証対象となるプログラムに与える入力値の組をあらかじめ作成するか、入力値を自動的に生成するためのルール(制約条件)をあらかじめ用意する必要がある。 Dynamic program verification is verification of a program using a technique such as a test for performing verification by giving an input value to a target program and executing the program, or a simulation for performing verification by performing a similar equivalent process. . When performing dynamic program verification, it is necessary to create in advance a set of input values to be given to a program to be verified, or to prepare rules (constraints) for automatically generating input values.
テストにおける入力値の組(テストケース)を作成する技術としては、例えば同値分割(非特許文献1の52ページ)がある。この技術は、入力値に対する制約条件からプログラムへの適切な入力をあらわす有効同値クラスと不適切な入力をあらわす無効同値クラスとを識別し、必要なテストケースの全数が最小となるようにテストケースを設計する技術である。ところが、実際には入力値に対する制約条件が十分に特定できない場合がある。そして、制約条件が十分に特定できない状態で動的プログラム検証を行うと、検証対象プログラムに内在するバグだけでなく、実システムでは起こり得ない不適切な入力値の組が原因で障害を検出する(テスト・検証が失敗する)ことがある。 As a technique for creating a set of input values (test case) in a test, for example, there is an equivalence division (page 52 of Non-Patent Document 1). This technology distinguishes between valid equivalence classes that represent the appropriate input to the program from the constraints on the input values and invalid equivalence classes that represent the improper input, so that the total number of test cases required is minimized. Is a technology to design. However, in practice, there are cases where the constraint condition for the input value cannot be specified sufficiently. When dynamic program verification is performed in a state where the constraint conditions cannot be specified sufficiently, a failure is detected not only due to a bug inherent in the verification target program but also due to an inappropriate set of input values that cannot occur in the actual system. (Test / verification may fail).
動的プログラム検証で障害を検出した場合には、以下の手順で対処する必要がある。まず、この障害を検出した際の実行トレースを解析し、障害を発生させるための入力値に対する条件(入力値の値域や、他の入力値との大小関係)を特定する。そして、その条件を用いて、検証対象プログラムに内在するバグが原因でテスト・検証が失敗したのか、入力値の組が不適切だったために失敗したのかを判定する。そして、前者の場合にはバグを見つけ出して修正し、後者の場合には入力値に対する正しい制約条件を導き出して同じ障害が発生しないようにする。 When a failure is detected by dynamic program verification, it is necessary to deal with the following procedure. First, the execution trace when this failure is detected is analyzed, and the conditions for the input value (the range of the input value and the magnitude relationship with other input values) for generating the failure are specified. Then, using the condition, it is determined whether the test / verification has failed due to a bug inherent in the program to be verified, or whether the input value pair has failed, or has failed. In the former case, a bug is found and corrected, and in the latter case, a correct constraint condition for the input value is derived so that the same failure does not occur.
障害が発生する原因を調査するための技術として、例えば、実行トレースの生成方法を含むプログラムデバッグ方法が特許文献1に記載されている。この関連する方法では、ディスプレイ装置の画面上にソースプログラムと対応付けて表示された実行トレースを参照しながらデバッグ作業を行う。この方法により障害を発生させるための入力値に対する条件を特定した場合、その条件は特定の入力値の1つ以上の組みとして示されることになる。
As a technique for investigating the cause of the failure, for example, a program debugging method including an execution trace generation method is described in
特許文献1、非特許文献1では、動的プログラム検証を行う場合、検出された障害を発生させるための入力値に対する条件を示す際、発生条件を特定の入力値の1つ以上の組として示すだけであった。このため、他の入力値について人手により検証しなければならないという問題があった。
In
例えば、図2に示すC言語のプログラムに対して動的プログラム検証を行い、図8に示す入力値の場合に、16行目の代入命令“a[pos]=val”で配列境界(下界)違反の障害が検出される。この場合、図3に示すこの障害を検出した際の実行トレースを元にして障害を発生させるための入力値に対する条件を抽出すると、offset=4,idx1=3,idx2=2と言う特定の入力値を組み合わせた条件が障害発生原因として示される。 For example, a dynamic program verification is performed on the C language program shown in FIG. 2, and in the case of the input value shown in FIG. A violation failure is detected. In this case, when the condition for the input value for generating the failure is extracted based on the execution trace at the time of detecting the failure shown in FIG. 3, a specific input of offset = 4, idx1 = 3, idx2 = 2 The condition that combines the values is indicated as the cause of the failure.
ここでidx2=2が入力値として不適切な値であった場合、検証で用いる入力値の組からidx2の値が不適切なためにこの障害を検出した際の実行トレースと同じ実行トレースをたどるものを取り除く必要がある。しかし、idx2=2という情報だけからは、idx2=2以外のどのような条件(例えばidx2>0あるいはidx2<4)で、もしくは他の入力値との大小関係により障害が発生するのか判断がつかない。このため、人手により不適切なidx2の値を定義する条件式を導出する必要があり、手間がかかっていた。 If idx2 = 2 is an inappropriate value as an input value, the same execution trace as the execution trace when this failure is detected is detected because the value of idx2 is inappropriate from the set of input values used for verification. It is necessary to remove things. However, from the information of idx2 = 2 alone, it is possible to determine under what conditions other than idx2 = 2 (for example, idx2> 0 or idx2 <4) or whether the failure occurs due to the magnitude relationship with other input values. Absent. For this reason, it is necessary to derive a conditional expression for defining an inappropriate value of idx2 manually, which is troublesome.
本発明の目的は、上述した課題を解決するデータ処理装置、システム、プログラム、及び、方法を提供することにある。 The objective of this invention is providing the data processor, system, program, and method which solve the subject mentioned above.
本発明のデータ処理装置は、動的プログラム検証において、障害検出時の実行トレース上の障害発生命令と障害内容と障害判定ルールとから障害判定条件式を生成し、前記障害発生命令を前記障害判定条件式で置換した修正トレースを生成する実行トレース修正手段と、前記修正トレース中の分岐命令の条件式乃至前記障害判定条件式を、前記修正トレース中の代入式に基づいて書き換え、障害発生となる入力値の値域を定義する障害発生条件式として抽出する障害発生条件抽出手段とを有する。 In the dynamic program verification, the data processing apparatus of the present invention generates a failure determination conditional expression from a failure occurrence instruction on the execution trace at the time of failure detection, a failure content, and a failure determination rule, and the failure occurrence instruction is determined as the failure determination Execution trace correction means for generating a correction trace replaced with a conditional expression, and the conditional expression of the branch instruction in the correction trace or the failure determination conditional expression are rewritten based on the substitution expression in the correction trace, resulting in a failure. Fault occurrence condition extracting means for extracting as a fault occurrence conditional expression defining a range of input values.
本発明のシステムは、動的プログラム検証において、障害検出時の実行トレース上の障害発生命令と障害内容と障害判定ルールとから障害判定条件式を生成し、前記障害発生命令を前記障害判定条件式で置換した修正トレースを生成する実行トレース修正手段と、前記修正トレース中の分岐命令の条件式乃至前記障害判定条件式を、前記修正トレース中の代入式に基づいて書き換え、障害発生となる入力値の値域を定義する障害発生条件式として抽出する障害発生条件抽出手段とを有する。 In the dynamic program verification, the system of the present invention generates a failure determination conditional expression from a failure occurrence instruction on the execution trace at the time of failure detection, a failure content, and a failure determination rule. An execution trace correcting means for generating a corrected trace replaced in step (b), and rewriting the conditional expression of the branch instruction in the corrected trace to the failure determination conditional expression based on the assignment expression in the corrected trace, and an input value causing a failure Failure occurrence condition extracting means for extracting as a failure occurrence condition expression defining a range of
本発明のプログラムは、障害検出時の実行トレース上の障害発生命令と障害内容と障害判定ルールとから障害判定条件式を生成し、前記障害発生命令を前記障害判定条件式で置換した修正トレースを生成する処理と、前記修正トレース中の分岐命令の条件式乃至前記障害判定条件式を、前記修正トレース中の代入式に基づいて書き換え、障害発生となる入力値の値域を定義する障害発生条件式として抽出する処理とをコンピュータに実行させる。 The program of the present invention generates a failure determination conditional expression from a failure occurrence instruction on the execution trace at the time of failure detection, a failure content, and a failure determination rule, and a modified trace in which the failure occurrence instruction is replaced with the failure determination conditional expression. A failure occurrence conditional expression that defines a range of input values that cause a failure by rewriting the processing to be generated and the conditional expression of the branch instruction in the correction trace to the failure determination conditional expression based on the substitution expression in the correction trace The computer executes the process of extracting as
本発明の方法は、コンピュータが、障害検出時の実行トレース上の障害発生命令と障害内容と障害判定ルールとから障害判定条件式を生成し、前記障害発生命令を前記障害判定条件式で置換した修正トレースを生成し、前記修正トレース中の分岐命令の条件式乃至前記障害判定条件式を、前記修正トレース中の代入式に基づいて書き換え、障害発生となる入力値の値域を定義する障害発生条件式として抽出する。 According to the method of the present invention, the computer generates a failure determination conditional expression from the failure occurrence instruction on the execution trace at the time of failure detection, the failure content, and the failure determination rule, and replaces the failure occurrence instruction with the failure determination conditional expression. A fault occurrence condition that generates a correction trace, rewrites the conditional expression of the branch instruction in the correction trace to the fault determination conditional expression based on the assignment expression in the correction trace, and defines a range of the input value that causes the fault Extract as an expression.
本発明によれば、障害を発生させる入力値の条件を、値域を定義した条件式として得ることが可能になる。 According to the present invention, it is possible to obtain a condition of an input value that causes a failure as a conditional expression defining a range.
次に、本発明について図面を参照して詳細に説明する。図1は本発明の第1の実施の形態の構成を示すブロック図である。本発明の第1の実施の形態は、中央処理装置111と、出力装置112と、二次記憶装置113とから構成される。
Next, the present invention will be described in detail with reference to the drawings. FIG. 1 is a block diagram showing the configuration of the first embodiment of the present invention. The first embodiment of the present invention includes a
中央処理装置111は、実行トレース修正手段121と、障害発生条件抽出手段122とから構成される。
The
二次記憶装置113は、プログラム記憶部131と、実行トレース記憶部132と、障害内容記憶部133と、障害判定ルール記憶部134とから構成される。
The
プログラム記憶部131は、図示しない手段によって格納された、図2に示す構造の検証対象プログラム141を記憶している。実行トレース記憶部132は、図示しない手段によって格納された、検証で実行した命令とこの命令を実行した時点で参照される変数値の組を時系列に並べた、図3に示す構造の実行トレース142を記憶している。障害内容記憶部133は、図示しない手段によって格納された、検証で検出した、図4に示す構造の障害内容143(例えば、『a[pos]における配列境界(下界)違反』など)を記憶している。障害判定ルール記憶部134は、図示しない手段によって格納された、図5に示す構造の障害判定ルール144(例えば、“配列の添え字<0”など)を記憶している。障害判定ルール144は、障害内容記憶部133で記憶している障害内容143に対応する障害発生を判定する条件式を導出するためのルールである。
The
実行トレース修正手段121は、障害を検出した後に、プログラム記憶部131から検証対象プログラム141を読み取る。そして、実行トレース修正手段121は、障害を検出した後に、実行トレース記憶部132から実行トレース142を読み取る。そして、実行トレース修正手段121は、障害を検出した後に、障害内容記憶部133から障害内容143を読み取る。そして、実行トレース修正手段121は、障害を検出した後に、障害判定ルール記憶部134から障害判定ルール144を読み取る。
The execution
そして、実行トレース修正手段121は、障害内容143と障害判定ルール144から障害判定条件式を導出する。そして、実行トレース修正手段121は、実行トレース142の最後にある障害発生命令を導出した障害判定条件式で置換した、図6に示す構造の修正トレース152を生成する。
Then, the execution
障害発生条件抽出手段122は、実行トレース修正手段121から渡される修正トレース152中の分岐命令の条件式乃至障害判定条件式を、修正トレース152中の代入式にもとづいて書き換える。そして、障害発生条件抽出手段122は、書き換えた分岐命令の条件式乃至障害判定条件式を、入力値の値域を定義した条件式として抽出する。そして、障害発生条件抽出手段122は、抽出した条件式群を障害発生条件として出力装置112に出力する。
The failure occurrence
次に、本発明の実施の形態の動作について図面を参照して説明する。図7は、中央処理装置111が行う障害発生条件の抽出動作を示すフローチャートである。
Next, the operation of the embodiment of the present invention will be described with reference to the drawings. FIG. 7 is a flowchart showing an operation of extracting a failure occurrence condition performed by the
中央処理装置111において、実行トレース修正手段121が、二次記憶装置113の実行トレース記憶部132から障害「hz1」を検出した際の実行トレース142(図3の例を参照)を取得する。さらに、実行トレース修正手段121が、障害内容記憶部133から障害内容143を取得する。さらに、実行トレース修正手段121が、障害判定ルール記憶部134から障害内容143に対応する障害判定ルール144「rule」を取得する(ステップST1)。
In the
実行トレース修正手段121が、障害内容143と対応する障害判定ルール144「rule」から障害判定条件式「ce」を導出する(ステップST2)。そして、実行トレース修正手段121が、実行トレース142の最後にある障害発生命令を障害判定条件式「ce」で置換した修正トレース152を作成する(ステップST3)。
The execution
障害発生条件抽出手段122が、障害「hz1」を発生させるための条件式の集合「C」(以下、障害発生条件式群「C」と表す)を空集合とする(ステップST4)。
The failure occurrence
そして、障害発生条件抽出手段122が、修正トレース152中の全ての分岐命令もしくは障害判定条件式に対して、以下に説明するステップST6からステップST14の処理を行う(ステップST5、ステップST15)。
Then, the failure occurrence
障害発生条件抽出手段122が、分岐命令もしくは障害判定条件式の実行時点を実行時点「pb」とする(ステップST6)。そして、実行時点「pb」の分岐命令の条件式もしくは障害判定条件式を分岐条件「cb」とする。この時、修正トレース152の実行時点「pb」において参照される変数値により分岐条件「cb」が不成立になる場合には、分岐条件「cb」の否定の条件式を分岐条件「cb」とする(ステップST7)。
The failure occurrence
続いて、障害発生条件抽出手段122が、実行時点「pb」を起点とし修正トレース152の先頭までの命令に対し、以下に説明するステップST9からステップST11の処理を行う(ステップST8、ステップST12)。
Subsequently, the failure occurrence
障害発生条件抽出手段122が、その命令をチェックする(ステップST9)。そして、代入命令であった場合(ステップST9でYESの場合)、障害発生条件抽出手段122が、代入式の左辺値である変数が分岐条件「cb」中の項として存在するか確認する(ステップST10)。そして、項として存在する場合(ステップST10でYESの場合)には、障害発生条件抽出手段122が、分岐条件「cb」中の対応する項を代入式の右辺の式で書き換える(ステップST11)。
The failure occurrence
次に、障害発生条件抽出手段122が、項の書換えをおこなった分岐条件「cb」が入力値となる変数を含むか否かをチェックする(ステップST13)。そして、入力値となる変数を含む場合(ステップST13のYESの場合)には、障害発生条件抽出手段122が、分岐条件「cb」を障害発生条件式群「C」に加える(ステップST14)。
Next, the failure occurrence
そして、障害発生条件抽出手段122が、出力装置112に対して障害発生条件式群「C」を障害発生条件として出力し(ステップST16)、終了する。
Then, the failure occurrence
次に、図7のフローチャートを参照し、実際のデータを用いて詳細に説明する。具体的な例として、図2に示すC言語のプログラム141に対して図8に示す入力値を与えて検証を実行したとする。そして、その結果、プログラム141の16行目の代入命令『a[pos]=val』で、『配列境界(下界)違反』の障害を検出し、その際の実行トレース142が図3に示すとおりになったとする。
Next, with reference to the flowchart of FIG. 7, it demonstrates in detail using actual data. As a specific example, it is assumed that the verification is executed by giving the input value shown in FIG. 8 to the
実行トレース修正手段121は、二次記憶装置113中の実行トレース記憶部132から、障害を検出した際の実行トレース142を取得する。そして、実行トレース修正手段121は、障害内容記憶部133から障害内容143として『a[pos]での配列境界(下界)違反』を取得する。さらに、実行トレース修正手段121は、障害判定ルール記憶部134から対応する障害判定ルール144「rule」『配列の添え字<0』を取得する(ステップST1)。
The execution
繰返しになるが、16行目の代入命令『a[pos]=val』で検出した障害内容143は、『a[pos]での配列境界(下界)違反』である。そこで、実行トレース修正手段121は、対応する障害判定ルール144「rule」『配列の添え字<0』にもとづき障害判定条件式を導出して障害判定条件式「ce」を『pos<0』とする(ステップST2)。そして、実行トレース修正手段121は、実行トレース142「EX」の最後にある障害発生命令をこの障害判定条件式「ce」で置換して図6に示す修正トレース152を作成する(ステップST3)。
Again, the
障害発生条件抽出手段122が、障害発生条件式群「C」を空集合『{}』とする(ステップST4)。
The failure occurrence
障害発生条件抽出手段122が、修正トレース152中のすべての分岐命令もしくは障害判定条件式に対してステップST6からステップST14の処理を繰り返し実行する(ステップST5とステップST15で示すループ)。
The failure occurrence
まず、最初の分岐命令もしくは障害判定条件式は、実行時点『2』の『idx1 < idx2』である。そこで、障害発生条件抽出手段122が、実行時点「pb」を『2』とする(ステップST6)。さらに、修正トレース152上の変数値『idx1=3,idx2=2』を参照すると、元の条件式『idx1 < idx2』は不成立となっている。そこで、障害発生条件抽出手段122が、元の条件式の否定の条件式『idx1 >= idx2』を分岐条件「cb」とする(ステップST7)。
First, the first branch instruction or failure determination conditional expression is “idx1 <idx2” at the execution time point “2”. Therefore, the failure
そして、障害発生条件抽出手段122が、実行時点「pb」(=2)を起点として修正トレース152の先頭までの命令に対してステップST9からステップST11の処理を行う(ステップST8とステップST12で示すループ)。まず、実行時点「pb」(=2)の命令は代入命令ではないので、障害発生条件抽出手段122は、ステップS10、ステップS11を行わない(ステップST9でNO)。次の実行時点『1』の命令は代入命令である(ステップST9でYES)が、その代入式の左辺値である変数『val』は分岐条件「cb」中の項としては存在しないので、障害発生条件抽出手段122はステップS11を行わない(ステップST10でNO)。また実行時点「pb」(=1)は修正トレース152の先頭なので、障害発生条件抽出手段122はST8からの繰り返しを終了する(ステップST12)。
Then, the failure condition extraction means 122 performs the processing from step ST9 to step ST11 on the instruction from the execution time point “pb” (= 2) to the head of the correction trace 152 (shown in steps ST8 and ST12). loop). First, since the instruction at the execution time point “pb” (= 2) is not an assignment instruction, the failure
分岐条件「cb」(=『idx1 >= idx2』)は、入力値となる変数idx1とidx2を含む(ステップST13でYES)。そこで、障害発生条件抽出手段122が、分岐条件「cb」を障害発生条件式群「C」に加え、C={『idx1 >= idx2』}とする(ステップST14)。
The branch condition “cb” (= “idx1> = idx2”) includes variables idx1 and idx2 that are input values (YES in step ST13). Therefore, the failure occurrence
次に、実行時点『2』の分岐命令の次の分岐命令もしくは障害判定条件式は、実行時点『4’』の『pos<0』であるので、障害発生条件抽出手段122が、実行時点「pb」を『4’』とする(ステップST6)。さらに、障害発生条件抽出手段122が、分岐条件「cb」を『pos < 0』とする(ステップST7)。
Next, since the branch instruction or failure determination conditional expression next to the branch instruction at the execution time “2” is “pos <0” at the execution time “4 ′”, the failure occurrence
そして、障害発生条件抽出手段122が、実行時点「pb」(=4’)を起点として修正トレース152の先頭までの命令に対してステップST9からステップST11の処理を行う(ステップST8とステップST12で示すループ)。実行時点「pb」(=4’)の命令は代入命令ではないので、障害発生条件抽出手段122は、ステップS10、ステップS11を行わない(ステップST9でNO)。
Then, the failure occurrence
次の実行時点『3』の命令は代入命令である(ステップST9でYES)。そして、その代入式『pos = idx2 − offset』の左辺値である変数『pos』が分岐条件「cb」中の項として存在する(ステップST10でYES)。そこで、障害発生条件抽出手段122は、分岐条件「cb」中の項『pos』を代入式の右辺の式『idx2 − offset』で書き換えることにより、分岐条件「cb」を『idx2 − offset < 0』とする(ステップST11)。
The next instruction “3” is an assignment instruction (YES in step ST9). Then, the variable “pos” that is the left-side value of the assignment expression “pos = idx2−offset” exists as a term in the branch condition “cb” (YES in step ST10). Therefore, the failure occurrence
次の実行時点『2』の命令は代入命令ではないので、障害発生条件抽出手段122は、ステップS10、ステップS11を行わない(ステップST9でNO)。
Since the instruction at the next execution time point “2” is not an assignment instruction, the failure occurrence
更に、次の実行時点『1』の命令は代入命令である(ステップST9でYES)。しかし、その代入式の左辺値である変数『val』は分岐条件「cb」中の項としては存在しないので、障害発生条件抽出手段122はステップS11を行わない(ステップST10でNO)。また実行時点「pb」(=1)は修正トレース152の先頭なので、障害発生条件抽出手段122はST8からの繰り返しを終了する(ステップST12)。
Further, the instruction at the next execution time “1” is an assignment instruction (YES in step ST9). However, since the variable “val” that is the left-side value of the assignment expression does not exist as a term in the branch condition “cb”, the failure occurrence
項の書換えを行った分岐条件「cb」(=『idx2 − offset < 0』)は入力値idx2とoffsetを含む(ステップST13でYES)。そこで、障害発生条件抽出手段122は、この分岐条件「cb」を障害発生条件式群「C」に加え、C={『idx1 >= idx2』,『idx2 − offset < 0』}とする(ステップST14)。
The branch condition “cb” (= “idx2−offset <0”) in which the term has been rewritten includes the input value idx2 and offset (YES in step ST13). Therefore, the failure occurrence
修正トレース152にはこれ以上分岐命令もしくは障害判定条件式がないので、ステップST5からの繰り返しを終了する(ステップST15)。
Since there are no more branch instructions or failure determination conditional expressions in the
こうして、障害発生条件抽出手段122は、障害発生条件式群「C」を抽出する。そして、障害発生条件抽出手段122は、出力装置112に対して、C={『idx1 >= idx2』,『idx2 − offset < 0』}を障害発生条件として出力し(ステップST16)、終了する。
Thus, the failure occurrence
本発明の第1の実施の形態によれば、障害を発生させる入力値の値域を定義した条件式として誤った条件式を導出することを防止することができる。その理由は、修正トレース中に存在する分岐命令の条件式に対して、修正トレース中にある代入命令にもとづいて項の書換えを行い、入力値に対する条件式を自動的に抽出するためである。 According to the first embodiment of the present invention, it is possible to prevent an erroneous conditional expression from being derived as a conditional expression that defines a range of input values that cause a failure. The reason is that the conditional expression for the input value is automatically extracted by rewriting the term for the conditional expression of the branch instruction existing in the correction trace based on the assignment instruction in the correction trace.
また、本発明の第1の実施の形態によれば、動的プログラム検証で検出された障害に対する調査・分析作業を削減することができる。その理由は、検出されたある障害の原因が不正な入力値であることが判明した場合、入力値の値域あるいは他の入力値との関係を表した条件式の形式としてこの障害を発生させる条件を抽出するからである。こうして、その条件に合致する他の入力値を起因とする障害を同じ原因で検出された障害とみなすことができる。このため、あらためて調査・分析作業を実施する必要がなくなるためである。 Further, according to the first embodiment of the present invention, it is possible to reduce the investigation and analysis work for the failure detected by the dynamic program verification. The reason is that if it is found that the cause of a detected failure is an invalid input value, the condition that causes this failure in the form of a conditional expression that expresses the relationship between the input value range or other input values. It is because it extracts. Thus, a failure caused by another input value that matches the condition can be regarded as a failure detected for the same reason. For this reason, there is no need to conduct another survey / analysis work.
また、本発明の第1の実施の形態によれば、動的プログラム検証における入力値が満たすべき値域や他の入力値との大小関係といった制約条件を洗練する作業を削減することができる。その理由は、抽出された条件中に含まれる1つ以上の不正な入力値を表す条件式に対し、その条件式の否定の条件式をそのまま入力値に対する正しい制約条件とすることができるためである。 Further, according to the first embodiment of the present invention, it is possible to reduce the work of refining constraint conditions such as a value range to be satisfied by an input value in dynamic program verification and a magnitude relationship with other input values. The reason is that for a conditional expression representing one or more illegal input values included in the extracted condition, a negative conditional expression of the conditional expression can be used as a correct constraint condition for the input value as it is. is there.
次に本発明の第2の実施の形態について図面を参照して詳細に説明する。図9は、本発明の第2の実施の形態の構成を示すブロック図である。 Next, a second embodiment of the present invention will be described in detail with reference to the drawings. FIG. 9 is a block diagram showing a configuration of the second exemplary embodiment of the present invention.
本発明の第2の実施の形態のデータ処理装置120は、実行トレース修正手段121と、障害発生条件抽出手段122とから構成される。実行トレース修正手段121と、障害発生条件抽出手段122とは、それぞれ、ハードウェアで実現されても良いし、ソフトウェアで実現されても良いし、ハードウェアとソフトウェアの混在により実現されても良い。
The
実行トレース修正手段121は、図示しない手段から、検証対象のプログラム141と、障害検出時の実行トレース142と、検出した障害内容143と、障害判定ルール144を取得する。この図示しない手段は、例えば、操作者が図示しない入力装置から入力する手段であっても良い。そして、実行トレース修正手段121は、取得した障害内容143と障害判定ルール144から障害判定条件式を生成し、取得した実行トレース142上の障害発生命令を、生成した障害判定条件式で置換した修正トレース152を生成する。障害発生条件抽出手段122は、修正トレース152中の分岐命令の条件式乃至前記障害判定条件式を、同修正トレース152中の代入式に基づいて書き換え、障害発生となる入力値の値域を定義する障害発生条件式として抽出する。
The execution trace correction means 121 acquires the
こうして、第1の実施の形態と同様の効果を得ることができる。 Thus, the same effect as that of the first embodiment can be obtained.
次に本発明の第3の実施の形態について説明する。図10は、本発明の第3の実施の形態の構成を示すブロック図である。 Next, a third embodiment of the present invention will be described. FIG. 10 is a block diagram showing the configuration of the third exemplary embodiment of the present invention.
本発明の第3の実施の形態は、第1の実施の形態とほぼ同様である。本発明の第3の実施の形態は、出力装置112を有していないことが、第1の実施の形態と異なる。また、本発明の第3の実施の形態は、二次記憶装置113に障害発生条件記憶部135を有することが、第1の実施の形態と異なる。
The third embodiment of the present invention is substantially the same as the first embodiment. The third embodiment of the present invention is different from the first embodiment in that the
障害発生条件抽出手段122は、二次記憶装置113の障害発生条件記憶部135に、抽出した障害発生条件式群「C」を格納する。
The failure occurrence
本発明の第3の実施の形態によれば、制約条件である障害発生条件式を図示しない手段により、あるいは、他日、あるいは、繰り返して利用することが可能になる。その理由は、制約条件を二次記憶装置に格納することで、必要時に読み出すことができるようにしたためである。 According to the third embodiment of the present invention, it is possible to use a failure occurrence conditional expression that is a constraint condition by means not shown, or on another day or repeatedly. The reason is that the constraint condition is stored in the secondary storage device so that it can be read out when necessary.
本発明によれば、動的プログラム検証における入力値に対する制約条件の洗練や、失敗したテスト・検証結果の分析(入力値のカテゴライズ)といった用途に適用できる。 The present invention can be applied to applications such as refinement of constraints on input values in dynamic program verification and analysis of failed test / verification results (categorization of input values).
111 中央処理装置
112 出力装置
113 二次記憶装置
120 データ処理装置
121 実行トレース修正手段
122 障害発生条件抽出手段
131 プログラム記憶部
132 実行トレース記憶部
133 障害内容記憶部
134 障害判定ルール記憶部
141 検証対象プログラム
141 プログラム
142 実行トレース
143 障害内容
144 障害判定ルール
152 修正トレース
111
Claims (10)
The data processing apparatus according to claim 1 to 6, wherein with a failure condition storage unit for storing a pre-Symbol failure condition.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007240710A JP4501978B2 (en) | 2007-09-18 | 2007-09-18 | Data processing apparatus, system, program, and method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007240710A JP4501978B2 (en) | 2007-09-18 | 2007-09-18 | Data processing apparatus, system, program, and method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2009070322A JP2009070322A (en) | 2009-04-02 |
| JP4501978B2 true JP4501978B2 (en) | 2010-07-14 |
Family
ID=40606469
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2007240710A Expired - Fee Related JP4501978B2 (en) | 2007-09-18 | 2007-09-18 | Data processing apparatus, system, program, and method |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4501978B2 (en) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP7074739B2 (en) * | 2019-10-21 | 2022-05-24 | 矢崎総業株式会社 | Vulnerability assessment device |
| JP6966522B2 (en) * | 2019-10-21 | 2021-11-17 | 矢崎総業株式会社 | Vulnerability analyzer |
| WO2022013944A1 (en) * | 2020-07-14 | 2022-01-20 | 日本電信電話株式会社 | Failure analysis assistance device, failure analysis assistance method, and program |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH01226042A (en) * | 1988-03-04 | 1989-09-08 | Nec Corp | Program trace processing system |
| JPH05210537A (en) * | 1992-01-30 | 1993-08-20 | Nec Corp | Test item preparing device |
| JP2001202272A (en) * | 2000-01-21 | 2001-07-27 | Nec Ic Microcomput Syst Ltd | Debugging method, debugging device using this method and recording medium with debugging method recorded thereon |
| JP2009032133A (en) * | 2007-07-30 | 2009-02-12 | Hitachi Ltd | Test case generation system |
-
2007
- 2007-09-18 JP JP2007240710A patent/JP4501978B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2009070322A (en) | 2009-04-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11222091B2 (en) | Systems and methods for development of web products | |
| US20160179653A1 (en) | Source code equivalence verification device and source code equivalence verification method | |
| US8868976B2 (en) | System-level testcase generation | |
| US20110126179A1 (en) | Method and System for Dynamic Patching Software Using Source Code | |
| JP2019101538A (en) | Test script correction device and program | |
| Choi et al. | Iterative refactoring of real-world open-source programs with large language models | |
| JP5845888B2 (en) | Software correction apparatus, software correction system, software correction method, and software correction program | |
| JP4501978B2 (en) | Data processing apparatus, system, program, and method | |
| Gay | Improving the readability of generated tests using gpt-4 and chatgpt code interpreter | |
| JP5440287B2 (en) | Symbolic execution support program, method and apparatus | |
| WO2018154657A1 (en) | Equivalence checking device and equivalence checking program | |
| US12001324B2 (en) | Operation pattern generation apparatus, operation pattern generation method and program | |
| Fang et al. | Improving the performance of software fault localization with effective coverage data reduction techniques | |
| JP2011150716A (en) | Program, apparatus and method for auditing vulnerability | |
| US20220156174A1 (en) | Automated identification of lines of code related to errors field | |
| JP6547345B2 (en) | Test case generation program, test case generation method and test case generation apparatus | |
| CN108132799B (en) | Interprocess static program analysis information extraction method, device and device | |
| JP6116983B2 (en) | Entry point extraction device | |
| WO2012049816A1 (en) | Model checking device, method, and program | |
| JP2014126900A (en) | Program analysis device, program analysis method, and program analysis program | |
| JP6840656B2 (en) | Test script modifiers and programs | |
| JP5755861B2 (en) | Test case generation apparatus, test case generation method, and test case generation program | |
| JP2018147106A (en) | Program analyzer, program analysis method and program analysis program | |
| JP7643544B2 (en) | Test generation device, test generation method, and program | |
| JP6524827B2 (en) | Information processing apparatus, difference association method, and difference association program |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20090512 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100106 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100126 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100304 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100330 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100412 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130430 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130430 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140430 Year of fee payment: 4 |
|
| LAPS | Cancellation because of no payment of annual fees |