JP2010238057A - Apparatus, method and program for extracting test restriction - Google Patents

Apparatus, method and program for extracting test restriction Download PDF

Info

Publication number
JP2010238057A
JP2010238057A JP2009086575A JP2009086575A JP2010238057A JP 2010238057 A JP2010238057 A JP 2010238057A JP 2009086575 A JP2009086575 A JP 2009086575A JP 2009086575 A JP2009086575 A JP 2009086575A JP 2010238057 A JP2010238057 A JP 2010238057A
Authority
JP
Japan
Prior art keywords
logical
function
control
test
golden
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
JP2009086575A
Other languages
Japanese (ja)
Inventor
Akitsugu Yamazaki
晃嗣 山崎
Ikuo Harada
育生 原田
Takashi Aoki
孝 青木
Akira Onozawa
晃 小野澤
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2009086575A priority Critical patent/JP2010238057A/en
Publication of JP2010238057A publication Critical patent/JP2010238057A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To automatically extract a test restriction satisfying operation requirements by analyzing golden (a program) by applying a SAT procedure. <P>SOLUTION: The golden is input, a CFG is generated by prescribed function of the input golden, and a control route by prescribed function is analytically generated by extracting only branch nodes arriving at a target from a control structure. A logical expression expressing the control route is generated by prescribed function, and a logical function expressing the entire control conditions of the golden is configured by combining respective obtained logical expressions. Then, a satisfactory solution satisfying the values of the entire logical function is found out by using the SAT method. When the satisfactory solution of the logical function exists, the satisfactory solution is displayed as an example of test restrictions, the obtained satisfactory solution is stored as a test restriction, AND of the logical NOT of the satisfactory solution and the original logical function is calculated, and search of other test restrictions is repeated. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、機能検証に用いるテスト制約を自動抽出する装置、方法およびプログラムに関するものである。   The present invention relates to an apparatus, a method, and a program for automatically extracting test constraints used for function verification.

あるシステムを実現するための要求条件(仕様S)があり、その機能を実現するソフトウェア(実装D1)があり、さらに、高性能化などの理由のために、同等の機能をLSI等のハードウェア(実装D2)で実現する場合を考える。このとき、機能検証とは、実装したシステムが、その仕様に計画された所望の動作と完全一致することを保証することである。機能検証は、大きく分けて2つのアプローチがある。   There is a requirement (specification S) for realizing a certain system, there is software (implementation D1) that realizes the function, and, for reasons such as higher performance, hardware such as LSI is provided with an equivalent function. Consider a case where it is realized by (Mounting D2). In this case, the function verification is to ensure that the mounted system completely matches the desired operation planned for the specification. Functional verification can be broadly divided into two approaches.

1つはフォーマル検証と呼ばれる方法である。これは機能検証の問題を数学的な証明問題に帰着することにより解決を図る。産業的に広く浸透しているとは言いがたいが、技術的には十分実用レベルに達しているものが出ている。特に、論理関数の充足可能性判定問題を解くSAT手法は、フォーマル検証の中核エンジンとして定着していて、例えばソフトウェアの静的解析技術への応用が挙げられる(非特許文献1参照)。これは実装D1の検証を対象としたもので、ソフトウェアが一般的に満たすべき性質の検証問題をSAT手法により効率的に解決する。   One is a method called formal verification. This is solved by reducing the function verification problem to a mathematical proof problem. Although it cannot be said that it is widely spread industrially, there are some technically sufficient practical levels. In particular, the SAT method for solving the satisfiability determination problem of a logical function has been established as a core engine of formal verification, and can be applied to, for example, software static analysis technology (see Non-Patent Document 1). This is intended for verification of the implementation D1, and efficiently solves the verification problem of the property that the software should generally satisfy by the SAT method.

一方、従来から広く行われている方法にシミュレーションがある。仕様Sの要件を完全に満たす実装D1があると仮定したとき、実装D1のプログラムをゴールデンと呼ぶ。実装D2が機能的に正しく実現されているかどうかを調べる場合、通常はテストパタンをゴールデンと実装D2に入力し、シミュレーションによって双方の出力の一致を確認する。このとき、ゴールデンは、実装D2が正しく実現できているかどうかを判断するためのリファレンス・プログラムとして動作している。一致検証を行うためには、テストベンチと呼ばれる周辺モジュールが必要になる。   On the other hand, there is simulation as a widely used method. When it is assumed that there is an implementation D1 that completely satisfies the requirements of the specification S, the program of the implementation D1 is called golden. When checking whether or not the mounting D2 is functionally correctly realized, usually, a test pattern is input to the golden and the mounting D2, and a match between both outputs is confirmed by simulation. At this time, Golden operates as a reference program for determining whether or not the implementation D2 has been correctly realized. In order to perform matching verification, a peripheral module called a test bench is required.

思いつく限りの検証項目をシミュレーションする場合、検証者が仕様を熟知していれば、ピンポイントで動作確認ができるので効果的である。しかし、テストベンチとテストパタンの作成工数が問題となる。また、検証を行う上で前提となる複雑なテスト制約を仕様Sから洗い出す必要があるが、必ずしも仕様や設計の意図を完全には知りえない第三者が、動作要件を満たすテスト制約を作成することは容易ではない。さらに、テスト制約やテスト制約に基づくテストパタンを可能な限り多く作成するのは困難な作業である。   When simulating as many verification items as possible, if the verifier is familiar with the specifications, the operation can be confirmed pinpointly, which is effective. However, the man-hours for creating the test bench and test pattern become a problem. In addition, it is necessary to identify the complex test constraints that are preconditions for verification from the specification S, but a third party who does not necessarily know the specifications and design intent completely creates test constraints that satisfy the operation requirements. It is not easy to do. Furthermore, it is difficult to create as many test patterns as possible based on test constraints and test constraints.

本発明の目的は、SAT手法を応用してゴールデンを解析することにより、動作要件を満たすテスト制約を自動抽出するできるようにすることにある。   An object of the present invention is to enable automatic extraction of test constraints satisfying operation requirements by analyzing a golden by applying a SAT method.

上記目的を達成するために、請求項1にかかる発明は、所望の仕様を満たすゴールデンの制御条件からテスト制約を抽出するテスト制約抽出装置において、対象となるゴールデンの所定機能毎に制御構造を生成する制御構造生成手段と、前記制御構造から目標に到達する分岐ノードのみを抽出した前記所定機能毎の制御経路を分析生成する制御経路分析手段と、前記所定機能毎に前記制御経路を表す論理式を生成し、得られた各論理式を組み合わせて、前記制御条件の全体を表す論理関数を構成する論理関数構成手段と、SAT手法を用いて前記論理関数の全体の値を充足する充足解を求める充足可能性判定手段と、得られた前記充足解をテスト制約として記憶するとともに、該充足解の論理否定と元の論理関数との論理積を演算し、別のテスト制約の探索を繰り返す別解探索・記憶手段と、前記各手段の制御を行う制御手段と、備えることを特徴とする。   In order to achieve the above object, the invention according to claim 1 is a test constraint extraction device that extracts a test constraint from a golden control condition that satisfies a desired specification, and generates a control structure for each target golden function. A control structure generating means for analyzing, a control path analyzing means for analyzing and generating a control path for each predetermined function obtained by extracting only a branch node reaching a target from the control structure, and a logical expression representing the control path for each predetermined function And a logical function constructing unit that constructs a logical function that represents the whole of the control condition by combining the obtained logical expressions, and a satisfying solution that satisfies the entire value of the logical function using the SAT method. The satisfiability determination means to be obtained and the obtained satisfiable solution are stored as test constraints, and a logical product of the logical negation of the sufficiency solution and the original logical function is calculated to obtain another test. And another solution search and storing means for repeating the search for bets constraint, and a control means for controlling said each means, characterized in that it comprises.

請求項2にかかる発明は、所望の仕様を満たすゴールデンの制御条件からテスト制約を抽出するテスト制約抽出方法において、対象となるゴールデンの所定機能毎に制御構造を生成する制御構造生成ステップと、前記制御構造から目標に到達する分岐ノードのみを抽出した前記所定機能毎の制御経路を分析生成する制御経路分析ステップと、前記所定機能毎に前記制御経路を表す論理式を生成し、得られた各論理式を組み合わせて、前記制御条件の全体を表す論理関数を構成する論理関数構成ステップと、SAT手法を用いて前記論理関数の全体の値を充足する充足解を求める充足可能性判定ステップと、得られた前記充足解をテスト制約として記憶するとともに、該充足解の論理否定と元の論理関数との論理積を演算し、別のテスト制約の探索を繰り返す別解探索・記憶ステップと、を備えることを特徴とする。   The invention according to claim 2 is a test constraint extraction method for extracting a test constraint from a golden control condition satisfying a desired specification, wherein a control structure generation step is performed for generating a control structure for each predetermined golden function, A control path analysis step for analyzing and generating a control path for each predetermined function that extracts only the branch node that reaches the target from the control structure, and a logical expression representing the control path for each predetermined function is generated, and each obtained Combining a logical expression, a logical function configuration step that configures a logical function that represents the entire control condition, and a satisfiability determination step that finds a satisfactory solution that satisfies the entire value of the logical function using a SAT technique; The obtained satisfactory solution is stored as a test constraint, and a logical product of the logical negation of the satisfied solution and the original logical function is calculated, and another test constraint Characterized in that it comprises a separate solution searching and storing step of repeating cord, a.

請求項3にかかる発明は、所望の仕様を満たすゴールデンの制御条件からテスト制約を抽出するテスト制約抽出プログラムにおいて、対象となるゴールデンの所定機能毎に制御構造を生成する制御構造生成ステップと、前記制御構造から目標に到達する分岐ノードのみを抽出した前記所定機能毎の制御経路を分析生成する制御経路分析ステップと、前記所定機能毎に前記制御経路を表す論理式を生成し、得られた各論理式を組み合わせて、前記制御条件の全体を表す論理関数を構成する論理関数構成ステップと、SAT手法を用いて前記論理関数の全体の値を充足する充足解を求める充足可能性判定ステップと、得られた前記充足解をテスト制約として記憶するとともに、該充足解の論理否定と元の論理関数との論理積を演算し、別のテスト制約の探索を繰り返す別解探索・記憶ステップと、を備えることを特徴とする。   According to a third aspect of the present invention, in the test constraint extraction program for extracting test constraints from golden control conditions satisfying desired specifications, a control structure generation step for generating a control structure for each predetermined golden function, A control path analysis step for analyzing and generating a control path for each predetermined function that extracts only the branch node that reaches the target from the control structure, and a logical expression representing the control path for each predetermined function is generated, and each obtained Combining a logical expression, a logical function configuration step that configures a logical function that represents the entire control condition, and a satisfiability determination step that finds a satisfactory solution that satisfies the entire value of the logical function using a SAT technique; The obtained satisfied solution is stored as a test constraint, and a logical product of the logical negation of the sufficiency solution and the original logical function is calculated, and another test is performed. And another solution search and storing steps are repeated about the search, characterized in that it comprises a.

本発明によれば、SAT手法を応用してゴールデンを解析することにより、機能検証を行う際に、検証目的に合致するテスト制約を複数組自動抽出することができるので、複雑に入り組んだテスト制約の作成にかかる負担を軽減できる。また、必ずしも仕様を熟知していなくてもテスト制約を抽出することができるので、仕様を理解するための工数を減らすことが期待できる。抽出したテスト制約は、ソフトウェアのテストだけでなく、ハードウェアの機能検証にも用いることができる。さらに、本発明が抽出したテスト制約は、テスト・シーケンスの作成にも活用することができるため、テストパタン作成にかかる工数を削減できる可能性がある。これらの効果により検証生産性が向上し、シミュレーション環境構築に要するトータルの検証期間の短縮を図ることができる。   According to the present invention, by analyzing the golden by applying the SAT method, it is possible to automatically extract a plurality of sets of test constraints that match the verification purpose when performing functional verification. Can reduce the burden of creating In addition, test constraints can be extracted even if the specifications are not fully understood, so it can be expected to reduce the man-hours for understanding the specifications. The extracted test constraints can be used not only for software testing but also for hardware functional verification. Furthermore, since the test constraints extracted by the present invention can be used for creating test sequences, there is a possibility that the man-hours required for creating test patterns can be reduced. These effects improve the verification productivity and shorten the total verification period required for building the simulation environment.

本発明のテスト制約抽出方法を実施するシステムのブロック図である。It is a block diagram of the system which implements the test constraint extraction method of this invention. 図1の制御装置8の動作手順を示すフローチャートである。It is a flowchart which shows the operation | movement procedure of the control apparatus 8 of FIG. 機能1の制御条件に着目した状態を示す図である。It is a figure which shows the state which paid its attention to the control conditions of the function 1. FIG. 機能1の制御条件を論理式で表現した図である。It is the figure which expressed the control condition of function 1 with the logical formula. 機能2の制御条件に着目した状態を示す図である。It is a figure which shows the state which paid its attention to the control conditions of the function 2. FIG. 機能2の制御条件を論理式で表現した図である。It is the figure which expressed the control condition of function 2 with a logical formula. 機能1と機能2の論理式から論理関数Fを構成する例を示す図である。It is a figure which shows the example which comprises the logical function F from the logical expression of the function 1 and the function 2. FIG. 論理関数Fの充足解と、充足解を複数抽出する手順を示す図である。It is a figure which shows the procedure which extracts the satisfaction solution of the logic function F, and multiple satisfaction solutions.

次に、本発明の実施例について図面を参照して説明する。図1は本発明のテスト制約抽出方法を実施するシステム(装置)のブロック図である。本装置は、ゴールデン(プログラム)を入力する入力装置1と、入力されたゴールデンの所定機能毎に制御構造(後記するCFG)を生成する制御構造生成装置2と、前記制御構造から目標に到達する分岐ノードのみを抽出した前記所定機能毎の制御経路を分析生成する制御経路分析装置3と、前記所定機能毎に前記制御経路を表す論理式を生成し、得られた各論理式を組み合わせて、ゴールデンの制御条件の全体を表す論理関数を構成する論理関数構成装置4と、SAT手法を用いて前記論理関数の全体の値を充足する充足解を求める充足可能性判定器5と、論理関数の充足解が存在するとき該充足解をテスト制約の一例として表示する出力装置6と、得られた前記充足解をテスト制約として記憶するとともに、該充足解の論理否定と元の論理関数との論理積を演算し、別のテスト制約の探索を繰り返す別解探索・記憶装置7と、全体の制御を制御プログラムによって制御するコンピュータによる制御装置8と、信号線9とで構成される。このように、本システムによる処理は、コンピュータと制御プログラムによって実現でき、制御プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。   Next, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a block diagram of a system (apparatus) that implements the test constraint extraction method of the present invention. This device has an input device 1 for inputting a golden (program), a control structure generating device 2 for generating a control structure (CFG described later) for each input golden function, and reaching the target from the control structure. A control path analyzer 3 that analyzes and generates a control path for each predetermined function that extracts only a branch node, generates a logical expression that represents the control path for each predetermined function, and combines the obtained logical expressions, A logical function construction device 4 that constitutes a logical function that represents the entire golden control condition, a satisfiability determiner 5 that finds a satisfactory solution that satisfies the overall value of the logical function using the SAT method, and a logical function An output device 6 that displays the satisfaction solution as an example of a test constraint when a satisfaction solution exists, stores the obtained satisfaction solution as a test constraint, and logically negates the original solution and the original A separate solution search / storage device 7 that calculates a logical product with a logical function and repeats a search for another test constraint, a computer control device 8 that controls the overall control by a control program, and a signal line 9. The Thus, the processing by this system can be realized by a computer and a control program, and the control program can be recorded on a recording medium or provided through a network.

図2は、図1の制御装置8の動作手順を示すフローチャートである。以下では、ステップS1〜S4を処理前半部とし、ステップS5〜S9を処理後半部として説明する。   FIG. 2 is a flowchart showing an operation procedure of the control device 8 of FIG. Hereinafter, steps S1 to S4 will be described as the first half of the process, and steps S5 to S9 will be described as the second half of the process.

<処理前半部>
まず、ステップS1では、入力装置1からゴールデンを図1のテスト制約抽出システムに入力する。制御構造生成装置2はゴールデンを入力として、制御フローグラフ(以下CFG)を生成する。図3では、ゴールデンを構成する一関数の制御構造(以下機能1)のプログラムを(a)に、該機能1の関数から自動生成したCFGを(b)に示した。CFGの自動生成には、プログラム・フロントエンドとして広く知られているものを用いることができる。
<First half of processing>
First, in step S1, golden is input from the input device 1 to the test constraint extraction system of FIG. The control structure generator 2 generates a control flow graph (hereinafter referred to as CFG) with Golden as an input. In FIG. 3, a program of a control structure of a function (hereinafter referred to as function 1) constituting Golden is shown in (a), and a CFG automatically generated from the function 1 is shown in (b). What is widely known as a program front end can be used for automatic generation of CFG.

次に、ステップS2ではCFGの制御ノードの位置を示すポインタ(位置)Piを定義する。制御ノードとは、プログラムの実行経路の制御情報を表す単位で、図3(b)では番号付きで示されている(i=933〜948)。制御ノード同士は一方向の矢印で接続され、制御のベクトルを示す。矢印を制御エッジと呼ぶ。iの値が大きいほど、CFGにおける機能的な位置が深いことを意味する。機能1の関数では、i=933が当該関数の開始ノードを示し、i=948が当該関数の終端ノードを示している。本実施例は、i=947に到達する、すなわち機能1が関数の最終段まで実行し、何らかの計算結果を返すことを機能確認の目標として指定しており、i=948に到達するためのプログラムの実行経路を分析し、テスト制約を抽出するものである。   In step S2, a pointer (position) Pi indicating the position of the control node of the CFG is defined. A control node is a unit representing control information of a program execution path, and is indicated with a number in FIG. 3B (i = 933 to 948). Control nodes are connected by a one-way arrow to indicate a control vector. The arrow is called a control edge. A larger value of i means a deeper functional position in the CFG. In the function 1 function, i = 933 indicates the start node of the function, and i = 948 indicates the end node of the function. In the present embodiment, i = 947 is reached, that is, function 1 is executed up to the final stage of the function and some calculation result is returned as a target for function confirmation, and a program for reaching i = 948 The execution path is analyzed and test constraints are extracted.

また、通常、ゴールデンは複数機能の集合体として構成されるため、複数の関数を保持しているが、関数は互いに呼び出し合う等の機能的な依存関係を持っており、それによりゴールデン全体の動作が決まる。図5(a)は図3(b)のcond4で呼び出される関数の制御構造(以下機能2)のプログラムを示し、図5(b)は該機能2の関数から自動生成したCFGを示す。機能2では、i=912が関数の開始ノードを示し、i=930が終端ノードで機能確認の目標として指定している。   Also, since Golden is usually configured as a collection of multiple functions, it holds multiple functions, but the functions have functional dependencies such as calling each other, which makes the entire Golden operation Is decided. FIG. 5A shows a program of a control structure (hereinafter function 2) of a function called by cond 4 of FIG. 3B, and FIG. 5B shows a CFG automatically generated from the function 2 function. In function 2, i = 912 indicates the start node of the function, and i = 930 is specified as the function check target at the end node.

ステップS3では、制御経路分析装置3がCFGに基づいて制御経路の分析を行う。図3(b)と図5(b)に、分岐条件を表すCFGの制御ノードに着目した様子を示す。該当する分岐ノードにおいて、条件式condの評価値がTRUEなら左エッジを、FALSEなら右エッジを示す。図4と図6は、機能1と機能2について、分岐ノードのみ抽出した制御関係を示す有向グラフである。つまり、順次実行文やその他経路の増減に直接関係のないノードを除外し、抽象化したCFGになっている。繰返し制御文については、基本的に同じ順次実行文を繰返すだけであるため、展開したループの中身を1回だけ辿ると考え、抽象化したCFGモデル上では扱わない。   In step S3, the control path analyzer 3 analyzes the control path based on the CFG. FIG. 3B and FIG. 5B show a state in which attention is paid to the CFG control node representing the branch condition. In the corresponding branch node, a left edge is indicated if the evaluation value of the conditional expression cond is TRUE, and a right edge is indicated if it is FALSE. 4 and 6 are directed graphs showing the control relationships in which only branch nodes are extracted for function 1 and function 2. FIG. In other words, the CFG is abstracted by excluding nodes that are not directly related to the increase or decrease of sequential execution statements and other routes. Since the repetition control statement basically repeats the same sequential execution statement, it is considered that the contents of the expanded loop are traced only once and is not handled on the abstracted CFG model.

論理関数構成装置4は、ステップS4で関数の開始〜終端ノード間の経路情報を、条件式の値TRUE/FALSEと、論理演算AND(∧)、OR(∨)、NOT(〜)の関係式で記述する。これを論理式Enとする。具体的には、図4と図6のCFG各分岐ノードに論理変数を割り当てる。この論理変数をリテラルLnとする。リテラルは論理変数の肯定形(Ln)または否定形(〜Ln)を表す。図4のリテラルはL=(a、b、c、d、e)、図6のリテラルはL=(m、n、o、p、q、r、s)と割り当てられている。このとき、図4と図6のCFGはそれぞれ以下の論理式(1)、(2)で表される。
func1=〜a∧〜b∧〜c∧d∧(e∨〜e) (1)
func2=〜m∧〜n∧〜o∧p∧(q∨〜q)∧r∧(s∨〜s) (2)
In step S4, the logical function construction device 4 determines the path information between the start and end nodes of the function, the conditional expression values TRUE / FALSE, and the logical expressions AND (∧), OR (∨), and NOT (˜). Describe in. This is the logical expression En. Specifically, a logical variable is assigned to each CFG branch node in FIGS. Let this logical variable be the literal Ln. A literal represents a positive form (Ln) or a negative form (˜Ln) of a logical variable. The literal of FIG. 4 is assigned as L 5 = (a, b, c, d, e), and the literal of FIG. 6 is assigned as L 7 = (m, n, o, p, q, r, s). At this time, CFGs in FIGS. 4 and 6 are expressed by the following logical expressions (1) and (2), respectively.
E func1 = ~ a∧ ~ b∧ ~ c∧d∧ (e∨ ~ e) (1)
E func2 = ~ m∧ ~ n∧ ~ o∧p∧ (q∨ ~ q) ∧r∧ (s∨ ~ s) (2)

すなわち、ノード間の経路が1本であれば各肯定/否定リテラルを項としてANDでとりまとめ、2本なら肯定リテラルと否定リテラルをORでとりまとめたものを項としてANDでつなげばよい。このようにすべての関数についてステップS3とS4の処理を繰り返すことにより、制御経路情報を論理式で表現することができる。   That is, if there is a single path between nodes, each positive / negative literal is combined as a term with AND, and if two paths are combined, a positive literal and a negative literal are combined with OR as a term. In this way, by repeating the processes of steps S3 and S4 for all functions, the control path information can be expressed by a logical expression.

<処理後半部>
図2のステップS5では、前処理として、ステップS4までで得られた論理式Enからゴールデン全体を構成する論理関数Fを作成する。論理関数Fの表現形式は、後段の処理の都合上、何らかの規則に従って記述されている方式を採る必要がある。表現形式としては、積和形論理式や和積形論理式のような標準形がある。公知の充足可能性判定器の多くは和積形論理式を受け付けるようになっているが、利用シーンに応じて適切な表現形式を使い分ければよい。本実施例では、式(1)と式(2)に示すように、和積形論理式で表現する。論理関数Fの作成例を図7に示す。論理関数Fは論理式Enの論理積で表される。すなわち、本実施例における機能1と機能2の論理式から作成される論理関数Fは以下の通りである。
F=Efunc1∧Efunc2 (3)
<Second half of processing>
In step S5 of FIG. 2, as preprocessing, a logical function F constituting the entire golden is created from the logical expression En obtained up to step S4. The expression format of the logical function F needs to adopt a method described according to some rules for the convenience of subsequent processing. There are standard forms such as sum-of-products formulas and sum-of-products formulas. Many of the known satisfiability determiners accept sum-product type logical expressions, but an appropriate expression format may be used depending on the usage scene. In this embodiment, it is expressed by a sum product type logical expression as shown in Expression (1) and Expression (2). An example of creating the logical function F is shown in FIG. The logical function F is represented by a logical product of the logical expression En. That is, the logical function F created from the logical expressions of function 1 and function 2 in this embodiment is as follows.
F = E func1 ∧ E func2 (3)

ここで、機能2は図3において機能1のi=942で呼び出されている。図4によると、i=942ノードには論理変数dが割り当てられている。そのため、論理変数dは機能2の論理式Efunc2で置き換えることができる。つまり、機能1が機能2を呼び出し、それらの依存関係全体を表現した論理関数Fは以下のように記述することができる。
F=〜a∧〜b∧〜c∧〜m∧〜n∧〜o∧p∧(q∨〜q)∧r∧(s∨〜s)∧ (e∨〜e) (4)
Here, function 2 is called with i = 942 of function 1 in FIG. According to FIG. 4, the logical variable d is assigned to the i = 942 node. Therefore, the logical variable d can be replaced by the logical expression E func2 of function 2. That is, the function 1 calls the function 2 and the logical function F expressing the entire dependency relationship can be described as follows.
F = ˜a∧-b∧-c∧-m∧-n∧-o∧p∧ (q∨-q) ∧r∧ (s∨-s) ∧ (e∨-e) (4)

次にステップS7では、式(4)の論理関数Fを充足可能性判定器5に与える。充足可能性判定器5には、SAT手法を用いた公知の充足可能性判定器を利用することができる。充足可能性判定器5は、論理関数F全体を1とするような入力論理変数の組合せが存在するか否か判定を行う。そのような論理変数の組が存在する場合には、充足可能(SATisfiable)と出力装置6に表示し、反対に、そのような変数の組合せが存在しない場合には、充足不可能(UNSATisfiable)と出力装置6に表示する。   Next, in step S7, the logical function F of Expression (4) is given to the satisfiability determiner 5. As the satisfiability determiner 5, a known satisfiability determiner using the SAT method can be used. The satisfiability determiner 5 determines whether or not there is a combination of input logical variables such that the entire logical function F is 1. When such a set of logical variables exists, it is displayed on the output device 6 as satisfiable, and conversely, when such a combination of variables does not exist, it is indicated as UNSATisable It is displayed on the output device 6.

ステップS8で、もしSATisfiableと表示されれば、論理関数Fを充足する充足解が存在するので、充足解がひとつ例示される。この充足解がテスト制約ということになる。テスト制約はTRUE/FALSEの組合せで表される制御情報であり、ステップS2で指定した機能確認目標に到達することが保証されている。すなわち、ここで得られた制御情報が機能検証の目的を満たすテスト制約そのものを意味する。図8に例を示す。ここでは、充足解Aが表示されたので、充足解Aとして別解探索・記憶装置7に保存する。充足可能性判定器5は通常、充足解をひとつしか表示しないため、別の充足解を例示させたい場合は以下のステップS9を実施する。 In step S8, if SATisfiable is displayed, since there is a satisfactory solution that satisfies the logical function F, one satisfactory solution is exemplified. This satisfactory solution is a test constraint. The test constraint is control information represented by a combination of TRUE / FALSE, and is guaranteed to reach the function confirmation target specified in step S2. That is, the control information obtained here means the test constraint itself that satisfies the purpose of function verification. An example is shown in FIG. Here, since satisfaction solution A 8 is displayed and stored in a separate solution search-storage device 7 as satisfaction solution A 8. Since the satisfiability determination unit 5 normally displays only one satisfiable solution, the following step S9 is performed when it is desired to exemplify another sufficiency solution.

複数の充足解Aiが存在するとき、別解を表示させるためには、ステップS9で「F=F∧〜Ai」を演算して、新たな論理関数F’を生成し、再度ステップS7で充足可能性判定器5に解かせる必要がある。   In order to display another solution when there are a plurality of satisfactory solutions Ai, “F = F∧˜Ai” is calculated in step S9 to generate a new logical function F ′, and is satisfied again in step S7. It is necessary to let the possibility determiner 5 solve it.

具体例を図8に示す。充足解Aは既に1度出力されたので、もう一度同じ解を表示する必要はない。しかし、論理関数Fのままでは充足可能性判定器5は再び充足解Aを出力する可能性がある。そこで、以下のように表示される充足解の候補から充足解Aを除外する。
F’=F∧〜A (5)
図8の表から、「A=〜a∧〜b∧〜c∧〜m∧〜n∧〜o∧p∧q∧r∧s∧e」なので、「〜A=〜(〜a∧〜b∧〜c∧〜m∧〜n∧〜o∧p∧q∧r∧s∧e)」となり、二重否定をなくすと、ド・モルガンの法則により、以下のように表される。
〜A=a∨b∨c∨m∨n∨o∨〜p∨〜q∨〜r∨〜s∨〜e (6)
式(6)を式(5)に代入してF’を解くと、充足解A以外の別解を得ることができる。図8は、充足解Aの次に充足解Aが得られた例を示している。
A specific example is shown in FIG. Since satisfaction solution A 8 is outputted already once, there is no need to display again the same solution. However, satisfiability determiner remains logic function F 5 is likely to output a satisfaction solution A 8 again. Therefore, to exclude the satisfaction solution A 8 from candidates of satisfaction solution which is displayed as follows.
F '= F∧ ~ A 8 (5)
From the table of FIG. 8, since “A 8 = ˜a ∧˜b ∧˜c ∧˜m ∧˜n ∧˜o ∧p ∧q ∧r ∧s ∧e”, “˜A 8 = ˜ (˜a ∧ ~ B∧ ~ c∧ ~ m∧ ~ n∧ ~ o∧p∧q∧r∧s∧e) "and without double negation, it is expressed as follows according to De Morgan's law.
~A 8 = a∨b∨c∨m∨n∨o∨~p∨~q∨~r∨~s∨~e (6)
By substituting equation (6) into equation (5) and solving F ′, another solution other than the satisfactory solution A 8 can be obtained. Figure 8 is satisfaction solution A 3 shows an example obtained next to the satisfaction solution A 8.

以下、同様に一度表示出力された充足解を除外し、UNSATisfiableが表示されるまで繰り返し充足可能性判定のステップS7を実施する。充足解が存在する限り新たなテスト制約を生成し、別解探索・記憶装置7に保存することができる。本実施例では、A1〜A8のすべてを出力後、UNSATisfiableと表示されるので、その時点で処理を終了する。   Similarly, the satisfiability solution that has been once displayed and output is excluded, and step S7 of the satisfiability determination is repeatedly performed until UNSATisable is displayed. As long as a satisfactory solution exists, a new test constraint can be generated and stored in another solution search / storage device 7. In this embodiment, since all of A1 to A8 are output and displayed as UNSATisfiable, the processing is terminated at that time.

以上のように、本実施例は、SAT手法を応用してゴールデンを解析することにより、機能検証を行う際に、検証目的に合致するテスト制約を複数組自動抽出することができる。また、必ずしも仕様を熟知していなくてもテスト制約を抽出することができる。抽出したテスト制約は、ソフトウェアのテストだけでなく、ハードウェアの機能検証にも用いることができる。さらに、抽出したテスト制約は、テスト・シーケンスの作成にも活用することができるる。   As described above, in this embodiment, by analyzing the golden by applying the SAT method, it is possible to automatically extract a plurality of sets of test constraints that match the verification purpose when performing functional verification. In addition, test constraints can be extracted without necessarily knowing the specifications. The extracted test constraints can be used not only for software testing but also for hardware functional verification. Furthermore, the extracted test constraints can be used to create a test sequence.

1:入力装置
2:制御構造生成装置
3:制御経路分析装置
4:論理関数構成装置
5:充足可能性判定器
6:出力装置
7:別解探索・記憶装置
8:制御装置
9:信号線
1: Input device 2: Control structure generation device 3: Control path analysis device 4: Logic function configuration device 5: Satisfiability determiner 6: Output device 7: Alternative solution search / storage device 8: Control device 9: Signal line

Ben Chelf and Andy Chou, “The Next Generation of Static Analysis (Boolean Satisfiability and Path Simulation − A Perfect Match)”, White Paper, Coverity, Inc.、[平成21年3月17日検索]、インターネット<URL: http://www.coverity.com/html_ja/research-library.html >(ブール充足可能性:次世代の静的解析)Ben Chelf and Andy Chou, “The Next Generation of Static Analysis (Boolean Satisfiability and Path Simulation − A Perfect Match)”, White Paper, Coverity, Inc., [Search March 17, 2009], Internet <URL: http : //www.coverity.com/html_en/research-library.html> (Boolean satisfaction: next-generation static analysis)

Claims (3)

所望の仕様を満たすゴールデンの制御条件からテスト制約を抽出するテスト制約抽出装置において、
対象となるゴールデンの所定機能毎に制御構造を生成する制御構造生成手段と、
前記制御構造から目標に到達する分岐ノードのみを抽出した前記所定機能毎の制御経路を分析生成する制御経路分析手段と、
前記所定機能毎に前記制御経路を表す論理式を生成し、得られた各論理式を組み合わせて、前記制御条件の全体を表す論理関数を構成する論理関数構成手段と、
SAT手法を用いて前記論理関数の全体の値を充足する充足解を求める充足可能性判定手段と、
得られた前記充足解をテスト制約として記憶するとともに、該充足解の論理否定と元の論理関数との論理積を演算し、別のテスト制約の探索を繰り返す別解探索・記憶手段と、
前記各手段の制御を行う制御手段と、
を備えることを特徴とするテスト制約抽出装置。
In a test constraint extraction device that extracts test constraints from golden control conditions that meet desired specifications,
Control structure generating means for generating a control structure for each predetermined function of the target golden;
Control path analysis means for analyzing and generating a control path for each of the predetermined functions in which only the branch node that reaches the target is extracted from the control structure;
Generating a logical expression representing the control path for each of the predetermined functions, and combining the obtained logical expressions to form a logical function representing the entire control condition;
Satisfiability determination means for obtaining a satisfiable solution that satisfies the entire value of the logic function using a SAT method;
Storing the obtained sufficiency solution as a test constraint, calculating a logical product of the logical negation of the sufficiency solution and the original logic function, and repeating a search for another test constraint;
Control means for controlling each means;
A test constraint extraction device comprising:
所望の仕様を満たすゴールデンの制御条件からテスト制約を抽出するテスト制約抽出方法において、
対象となるゴールデンの所定機能毎に制御構造を生成する制御構造生成ステップと、
前記制御構造から目標に到達する分岐ノードのみを抽出した前記所定機能毎の制御経路を分析生成する制御経路分析ステップと、
前記所定機能毎に前記制御経路を表す論理式を生成し、得られた各論理式を組み合わせて、前記制御条件の全体を表す論理関数を構成する論理関数構成ステップと、
SAT手法を用いて前記論理関数の全体の値を充足する充足解を求める充足可能性判定ステップと、
得られた前記充足解をテスト制約として記憶するとともに、該充足解の論理否定と元の論理関数との論理積を演算し、別のテスト制約の探索を繰り返す別解探索・記憶ステップと、
を備えることを特徴とするテスト制約抽出方法。
In a test constraint extraction method for extracting test constraints from golden control conditions that satisfy a desired specification,
A control structure generation step for generating a control structure for each predetermined function of the target golden;
A control path analyzing step for analyzing and generating a control path for each of the predetermined functions, in which only the branch nodes reaching the target are extracted from the control structure;
A logical function configuration step of generating a logical expression representing the control path for each predetermined function and combining the obtained logical expressions to form a logical function representing the entire control condition;
A satisfiability determination step for obtaining a sufficiency solution that satisfies the entire value of the logical function using a SAT method;
Storing the obtained sufficiency solution as a test constraint, calculating a logical product of the logical negation of the sufficiency solution and the original logic function, and repeating a search for another test constraint;
A test constraint extraction method characterized by comprising:
所望の仕様を満たすゴールデンの制御条件からテスト制約を抽出するテスト制約抽出プログラムにおいて、
対象となるゴールデンの所定機能毎に制御構造を生成する制御構造生成ステップと、
前記制御構造から目標に到達する分岐ノードのみを抽出した前記所定機能毎の制御経路を分析生成する制御経路分析ステップと、
前記所定機能毎に前記制御経路を表す論理式を生成し、得られた各論理式を組み合わせて、前記制御条件の全体を表す論理関数を構成する論理関数構成ステップと、
SAT手法を用いて前記論理関数の全体の値を充足する充足解を求める充足可能性判定ステップと、
得られた前記充足解をテスト制約として記憶するとともに、該充足解の論理否定と元の論理関数との論理積を演算し、別のテスト制約の探索を繰り返す別解探索・記憶ステップと、
を備えることを特徴とするテスト制約抽出プログラム。
In a test constraint extraction program that extracts test constraints from golden control conditions that meet the desired specifications,
A control structure generation step for generating a control structure for each predetermined function of the target golden;
A control path analyzing step for analyzing and generating a control path for each of the predetermined functions, in which only the branch nodes reaching the target are extracted from the control structure
A logical function configuration step of generating a logical expression representing the control path for each predetermined function and combining the obtained logical expressions to form a logical function representing the entire control condition;
A satisfiability determination step for obtaining a sufficiency solution that satisfies the entire value of the logical function using a SAT method;
Storing the obtained sufficiency solution as a test constraint, calculating a logical product of the logical negation of the sufficiency solution and the original logic function, and repeating a search for another test constraint;
A test constraint extraction program characterized by comprising:
JP2009086575A 2009-03-31 2009-03-31 Apparatus, method and program for extracting test restriction Pending JP2010238057A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009086575A JP2010238057A (en) 2009-03-31 2009-03-31 Apparatus, method and program for extracting test restriction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009086575A JP2010238057A (en) 2009-03-31 2009-03-31 Apparatus, method and program for extracting test restriction

Publications (1)

Publication Number Publication Date
JP2010238057A true JP2010238057A (en) 2010-10-21

Family

ID=43092302

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009086575A Pending JP2010238057A (en) 2009-03-31 2009-03-31 Apparatus, method and program for extracting test restriction

Country Status (1)

Country Link
JP (1) JP2010238057A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016001982A1 (en) * 2014-06-30 2016-01-07 株式会社 日立製作所 Test data generation assistance device and test data generation assistance method
JP2020088718A (en) * 2018-11-29 2020-06-04 ソフトバンク株式会社 System structure analysis device, system structure analysis method, and system structure analysis program
CN117056203A (en) * 2023-07-11 2023-11-14 南华大学 Numerical expression type metamorphic relation selection method based on complexity

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016001982A1 (en) * 2014-06-30 2016-01-07 株式会社 日立製作所 Test data generation assistance device and test data generation assistance method
JP2020088718A (en) * 2018-11-29 2020-06-04 ソフトバンク株式会社 System structure analysis device, system structure analysis method, and system structure analysis program
CN117056203A (en) * 2023-07-11 2023-11-14 南华大学 Numerical expression type metamorphic relation selection method based on complexity
CN117056203B (en) * 2023-07-11 2024-04-09 南华大学 Numerical expression type metamorphic relation selection method based on complexity

Similar Documents

Publication Publication Date Title
Brayton et al. ABC: An academic industrial-strength verification tool
Gosain et al. Static analysis: A survey of techniques and tools
US7665072B2 (en) Generating test cases for software with complex preconditions
US9207935B2 (en) Early analysis of software design diagrams
Carmona et al. New region-based algorithms for deriving bounded Petri nets
US10719645B1 (en) Model structure analysis with integration of transformed slice
Hooimeijer et al. StrSolve: solving string constraints lazily
US11314225B2 (en) Systems and methods for evaluating assessments
Karfa et al. Verification of datapath and controller generation phase in high-level synthesis of digital circuits
Redl The dlvhex system for knowledge representation: recent advances (system description)
Černý et al. Segment abstraction for worst-case execution time analysis
Deantoni et al. Towards a meta-language for the concurrency concern in DSLs
US9043746B2 (en) Conducting verification in event processing applications using formal methods
Meinke Learning-based testing: recent progress and future prospects
US8909579B2 (en) Identifying invariant candidates based on proofs
Penczek et al. Abstractions and partial order reductions for checking branching properties of time Petri nets
JP2010238057A (en) Apparatus, method and program for extracting test restriction
JP2017522639A5 (en)
Rashid et al. Exploring the platform for expressing SystemVerilog assertions in model based system engineering
JP5328987B2 (en) Method and process computer for calculating state quantities of hybrid differential algebra process model
Swain et al. Test case generation based on state machine diagram
Morin-Allory et al. Efficient and correct by construction assertion-based synthesis
WO2019142266A1 (en) Test case generation device, test case generation method, and test case generation program
Lun et al. Automatic generation of basis component path coverage for software architecture testing
Doan et al. Towards a developer-oriented process for verifying behavioral properties in UML and OCL models

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101228

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110812

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120124

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120326

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120626