JP2010211521A - Device, method and program for automatically selecting verification target function - Google Patents

Device, method and program for automatically selecting verification target function Download PDF

Info

Publication number
JP2010211521A
JP2010211521A JP2009057004A JP2009057004A JP2010211521A JP 2010211521 A JP2010211521 A JP 2010211521A JP 2009057004 A JP2009057004 A JP 2009057004A JP 2009057004 A JP2009057004 A JP 2009057004A JP 2010211521 A JP2010211521 A JP 2010211521A
Authority
JP
Japan
Prior art keywords
function
model
inspection
cfg
check
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.)
Granted
Application number
JP2009057004A
Other languages
Japanese (ja)
Other versions
JP5396930B2 (en
Inventor
Masaya Obata
雅哉 小畑
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2009057004A priority Critical patent/JP5396930B2/en
Publication of JP2010211521A publication Critical patent/JP2010211521A/en
Application granted granted Critical
Publication of JP5396930B2 publication Critical patent/JP5396930B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

<P>PROBLEM TO BE SOLVED: To automatically select a function having high verification effect, in a processing system for performing verification of a source code by use of model inspection technique. <P>SOLUTION: This verification target function automatic selection device outputs a model capable of obtaining a more effective verification result within a given verification time by reconstructing the model of a verification target by use of a return value of a function or a variable getting any value before executing model inspection. First, in a CFG (Call Flow Graph) model converted from the imparted source code, a series of function call flows including reference of the function or the variable getting any value is excluded from the inspection target. Furthermore, the verification target function automatic selection device performs ranking based on an amount of enhancement of verification accuracy of an upper function by performing modeling about how many contexts a lower function imparts to the function of a call upper rank, i.e., modeling the lower function, and selects the function such that the number of all blocks of the model to be reconstructed is stored within a range of a previously designated upper limit. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、検証対象関数自動選択装置に関し、特にモデル検査手法における検証対象関数自動選択装置に関する。   The present invention relates to a verification target function automatic selection device, and more particularly to a verification target function automatic selection device in a model checking method.

C言語を始めとするプログラミング言語で記述されたソースコードを、形式検証の一手法であるモデル検査技法で検証するための方法として、例えば、“情報処理 49(5)「C言語へのフォーマルメソッドの適用」宮崎義昭、橋本祐介著(非特許文献1)”に記載されている従来技術のように、従来からいくつかの方法が知られている。   As a method for verifying a source code described in a programming language such as C language by a model checking technique which is a method of formal verification, for example, “Information Processing 49 (5)” Formal method to C language As in the prior art described in “Application of Yoshiaki Miyazaki and Yusuke Hashimoto (Non-patent Document 1)”, several methods are conventionally known.

また、関連技術として、特表2007−528059号公報(特許文献1)にソフトウェアのモデル化、抽象、及び分析のためのシステムと方法が開示されている。   Moreover, as a related technique, Japanese Patent Publication No. 2007-528059 (Patent Document 1) discloses a system and method for software modeling, abstraction, and analysis.

この関連技術は、ソースコード検証においてソースコードをモデル検査可能なモデルに変換し検証を行う技術である。   This related technology is a technology for performing verification by converting source code into a model that can be model-checked in source code verification.

しかし、この関連技術では、モデル化する関数に関しては何ら特別な処理は行わず、利用者が指定した検証コード及び検証対象の起点となる関数(エントリ関数と呼ぶ)から直接又は間接的に呼び出される関数全てを検証対象に加えていた。このため、検証結果が出てからでないと制限時間切れで検証結果が出ていないことがわからず、それを回避するための関数選択で人手による試行錯誤が必要となっていた。またその試行錯誤でも勘に頼った方法をとっていたため、必ずしも意図した通りの設定にすることができないという問題があった。   However, in this related technology, no special processing is performed for the function to be modeled, and it is directly or indirectly called from the verification code specified by the user and the function that is the starting point of the verification target (called the entry function). All functions were added for verification. For this reason, it is not known that the verification result is not output because the time limit has expired until the verification result is output, and manual trial and error is necessary in selecting a function to avoid it. In addition, since the trial and error used a method that relied on intuition, there was a problem that it was not always possible to set as intended.

一般に、ソースコードから自動的にモデルを構築し、モデル検査による検証を行う場合、生成されるモデルの状態数が膨大になり、計算量が非常に多くなるため、有意な時間内で全ての検証が終了しない場合が多い。   In general, when building a model automatically from source code and performing verification by model checking, the number of generated model states becomes enormous and the amount of calculations becomes very large. Often does not end.

そのため、検証時間の上限を予め設定しておき、その時間内で結果が得られない検証項目については、タイムアウトとして検証を終了する方法が取られている。   For this reason, an upper limit of the verification time is set in advance, and a verification item for which a result cannot be obtained within that time is taken as a timeout and the verification is terminated.

また、出来るだけ多くの検証結果が得られるように、モデル化の過程で様々な最適化を行い、検証結果に影響を与えない範囲でモデルを小さくする処理を行っているが、従来のモデル構築方法では、利用者が指定した起点関数から直接又は間接的に呼び出される関数を全て検証対象に加える方法を取っているため、対象となる関数が多い場合には、上限時間内に検証結果を出せない場合も多い。   Also, in order to obtain as many verification results as possible, various optimizations are performed during the modeling process, and processing is performed to reduce the model within a range that does not affect the verification results. In this method, all the functions that are called directly or indirectly from the origin function specified by the user are added to the verification target, so if there are many target functions, the verification result can be output within the upper limit time. Often not.

このような場合、起点関数から直接又は間接的に呼び出される関数のうち、計算量が多く制限時間内に結果が得られない一部の関数の検証に多くの時間が費やされ、比較的短い時間で検証が可能なその他の関数の検証にも影響が及び、全体として効果的な検証時間の配分がされていないという課題があった。   In such a case, among the functions that are directly or indirectly called from the origin function, a lot of time is spent on verifying some functions that have a large amount of calculation and cannot obtain a result within the time limit, and are relatively short. The verification of other functions that can be verified in time is also affected, and there is a problem that effective verification time is not allocated as a whole.

特表2007−528059号公報Special table 2007-528059 gazette

情報処理 49(5)「C言語へのフォーマルメソッドの適用」宮崎義昭、橋本祐介著Information Processing 49 (5) “Application of Formal Methods to C Language” by Yoshiaki Miyazaki and Yusuke Hashimoto 「コンパイラII 原理・技法・ツール」A.V.エイホ、R.セシィ、 J.D.ウルマン著“Compiler II Principle / Technique / Tool” V. Aiho, R.A. Cessie, J. D. By Ullman 産業技術総合研究所システム検証研究センター、テクニカルレポート「抽象化を用いた検証ツールの調査」田辺良則、高井利憲、高橋孝一National Institute of Advanced Industrial Science and Technology (AIST), System Verification Research Center, Technical Report “Survey of Verification Tools Using Abstraction” Yoshinori Tanabe, Toshinori Takai, Koichi Takahashi

本発明の目的は、モデル検査を実行する前に、検証対象のモデルの再構築を行うことにより、検証効果が高い関数群を自動的に選択してからモデル化する検証対象関数自動選択装置を提供することである。   An object of the present invention is to provide an automatic verification target function selection device that automatically selects a function group having a high verification effect and then models it by reconstructing the verification target model before performing model checking. Is to provide.

本発明の検証対象関数自動選択装置は、検査仕様と検査対象コードを読み込み、検査対象コードにコンパイラ最適化処理を施した上で、検査仕様を踏まえてCFG(Call Flow Graph:制御流れグラフ)モデルを作成するモデル検査制御手段と、CFGモデルを読み込み、検査仕様で指定されたエントリ関数から呼び出される関数を検出し、検出された関数のブロック数と評価値を算出し、算出されたブロック数と評価に基づいて、検出された関数の中から、検証対象に追加する関数を選択し、選択された関数に基づいて、CFGモデルを変換する検証対象関数選択手段とを含む。   The verification target function automatic selection apparatus of the present invention reads a test specification and a test target code, performs compiler optimization processing on the test target code, and then uses a CFG (Call Flow Graph) model based on the test specification. A model check control means for generating a function, a CFG model is read, a function called from an entry function specified by the check specification is detected, a block number and an evaluation value of the detected function are calculated, and the calculated block number and Based on the evaluation, a function to be added to the verification target is selected from the detected functions, and verification target function selection means for converting the CFG model based on the selected function is included.

モデル検査制御手段は、変換されたCFGモデルを読み込み、計算機論理(Computation Tree Logic:CTL)を用いた記号モデル検査法に即して検査モデルを作成し、検査モデルに対して、計算機論理(CTL)を用いた記号モデル検査法に即して検査を実行し、実行された検査の結果を出力する。   The model check control means reads the converted CFG model, creates a check model in accordance with a symbolic model check method using computer logic (CTL), and applies computer logic (CTL) to the check model. The inspection is executed in accordance with the symbol model inspection method using), and the result of the executed inspection is output.

本発明の検証対象関数自動選択方法では、検査仕様と検査対象コードを読み込み、検査対象コードにコンパイラ最適化処理を施した上で、検査仕様を踏まえてCFG(Call Flow Graph:制御流れグラフ)モデルを作成する。次に、CFGモデルを参照し、検査仕様で指定されたエントリ関数から呼び出される関数を検出し、検出された関数のブロック数と評価値を算出し、算出されたブロック数と評価に基づいて、検出された関数の中から、検証対象に追加する関数を選択し、選択された関数に基づいて、CFGモデルを変換する。次に、変換されたCFGモデルを参照し、計算機論理(Computation Tree Logic:CTL)を用いた記号モデル検査法に即して検査モデルを作成し、検査モデルに対して、計算機論理(CTL)を用いた記号モデル検査法に即して検査を実行し、実行された検査の結果を出力する。   In the verification target function automatic selection method of the present invention, a test specification and a test target code are read, a compiler optimization process is performed on the test target code, and then a CFG (Call Flow Graph: control flow graph) model based on the test specification. Create Next, referring to the CFG model, a function called from the entry function specified by the inspection specification is detected, the number of blocks and the evaluation value of the detected function are calculated, and based on the calculated number of blocks and evaluation, A function to be added to the verification target is selected from the detected functions, and the CFG model is converted based on the selected function. Next, with reference to the converted CFG model, an inspection model is created in accordance with a symbol model inspection method using computer tree logic (CTL), and computer logic (CTL) is applied to the inspection model. The inspection is executed in accordance with the used symbol model inspection method, and the result of the executed inspection is output.

本発明の検証対象関数自動選択用プログラムは、 検査仕様と検査対象コードを読み込み、検査対象コードにコンパイラ最適化処理を施した上で、検査仕様を踏まえてCFG(Call Flow Graph:制御流れグラフ)モデルを作成するステップと、CFGモデルを参照し、検査仕様で指定されたエントリ関数から呼び出される関数を検出し、検出された関数のブロック数と評価値を算出し、算出されたブロック数と評価に基づいて、検出された関数の中から、検証対象に追加する関数を選択し、選択された関数に基づいて、CFGモデルを変換するステップと、変換されたCFGモデルを参照し、計算機論理(Computation Tree Logic:CTL)を用いた記号モデル検査法に即して検査モデルを作成し、検査モデルに対して、計算機論理(CTL)を用いた記号モデル検査法に即して検査を実行し、実行された検査の結果を出力するステップとをコンピュータに実行させるためのプログラムである。   The verification target function automatic selection program of the present invention reads a test specification and a test target code, performs a compiler optimization process on the test target code, and then performs CFG (Call Flow Graph: control flow graph) based on the test specification. A step of creating a model, a function called from an entry function specified by the inspection specification is detected with reference to the CFG model, the number of blocks and evaluation values of the detected function are calculated, and the calculated number of blocks and evaluation Based on the above, a function to be added to the verification target is selected from the detected functions, a step of converting the CFG model based on the selected function, and the computer logic ( Create an inspection model according to the symbolic model inspection method using Computation Tree Logic (CTL). This is a program for causing a computer to execute a check on a model in accordance with a symbolic model check method using computer logic (CTL) and to output a result of the executed check.

モデル検査に先立って、検証対象のモデルの再構築を行うことにより、与えられた検証時間内により有効な検証結果が得られる。   Prior to model checking, a model to be verified is reconstructed, so that a more effective verification result can be obtained within a given verification time.

本発明の検証対象関数自動選択装置の構成例を示すブロック図である。It is a block diagram which shows the structural example of the verification object function automatic selection apparatus of this invention. 本発明の検証対象関数自動選択装置の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the verification object function automatic selection apparatus of this invention. 評価値(X,Y)の算出に用いられる規則の例を示す図である。It is a figure which shows the example of the rule used for calculation of evaluation value (X, Y). 第1のエントリ関数の例を示す図である。It is a figure which shows the example of a 1st entry function. 第1のエントリ関数の処理結果の例を示す図である。It is a figure which shows the example of the process result of a 1st entry function. 第2のエントリ関数の例を示す図である。It is a figure which shows the example of a 2nd entry function. 第2のエントリ関数の処理結果の例を示す図である。It is a figure which shows the example of the process result of a 2nd entry function. 第3のエントリ関数の例を示す図である。It is a figure which shows the example of a 3rd entry function. 第3のエントリ関数の処理結果の例を示す図である。It is a figure which shows the example of the process result of a 3rd entry function. 検証対象関数選択部の動作を示すフローチャートである。It is a flowchart which shows operation | movement of a verification object function selection part. 検証対象関数選択部による第1のエントリ関数の処理結果の例を示す図である。It is a figure which shows the example of the process result of the 1st entry function by a verification object function selection part. 検証対象関数選択部による第2のエントリ関数の処理結果の例を示す図である。It is a figure which shows the example of the process result of the 2nd entry function by a verification object function selection part. 検証対象関数選択部による第3のエントリ関数の処理結果の例を示す図である。It is a figure which shows the example of the process result of the 3rd entry function by a verification object function selection part.

<本実施形態>
以下に、本発明の実施形態について添付図面を参照して説明する。
図1に示すように、本発明の検証対象関数自動選択装置は、検査仕様1と検査対象コード(検査対象プログラム)2を入力し、検査結果3を出力する。
<This embodiment>
Embodiments of the present invention will be described below with reference to the accompanying drawings.
As shown in FIG. 1, the verification target function automatic selection device of the present invention inputs an inspection specification 1 and an inspection target code (inspection target program) 2 and outputs an inspection result 3.

本発明の検証対象関数自動選択装置は、モデル検査制御部10と、記憶装置20と、検証対象関数選択部30を含む。   The verification target function automatic selection device of the present invention includes a model checking control unit 10, a storage device 20, and a verification target function selection unit 30.

モデル検査制御部10は、CFG(Call Flow Graph:制御流れグラフ)モデル作成部11と、検査モデル作成部12と、モデル検査実行部13と、検査結果出力部14を含む。   The model check control unit 10 includes a CFG (Call Flow Graph: control flow graph) model creation unit 11, a check model creation unit 12, a model check execution unit 13, and a check result output unit 14.

記憶装置20は、変換前CFGモデル記憶部21と、変換後CFGモデル記憶部22と、検査モデル記憶部23を含む。   The storage device 20 includes a pre-conversion CFG model storage unit 21, a post-conversion CFG model storage unit 22, and an inspection model storage unit 23.

検証対象関数選択部30は、呼び出し関数検出部31と、関数評価部32と、検証対象関数追加部33と、CFGモデル変換部34を含む。検証対象関数選択部30は、本特許の特徴的な構成要素である。   The verification target function selection unit 30 includes a calling function detection unit 31, a function evaluation unit 32, a verification target function addition unit 33, and a CFG model conversion unit 34. The verification target function selection unit 30 is a characteristic component of this patent.

CFGモデル作成部11は、検査仕様1と検査対象コード2を読み込み、従来技術のコンパイラ最適化処理を実施した上でCFGモデルを作成し、記憶装置20の変換前CFGモデル記憶部21に出力する。   The CFG model creation unit 11 reads the inspection specification 1 and the inspection target code 2, performs a compiler optimization process of the prior art, creates a CFG model, and outputs the CFG model to the pre-conversion CFG model storage unit 21 of the storage device 20. .

ここで、検査仕様1は、検証対象の起点となる関数(エントリ関数)の名前、検証上限時間、及び検証方法等を指示するオプション類を含んでいる。更に、本発明においては、検査仕様1は、検証を行うモデルのCFG表現における最大ブロック数を含んでいる。   Here, the inspection specification 1 includes options indicating the name of the function (entry function) that is the starting point of the verification target, the verification upper limit time, the verification method, and the like. Further, in the present invention, the inspection specification 1 includes the maximum number of blocks in the CFG representation of the model to be verified.

検査モデル作成部12は、記憶装置20の変換後CFGモデル記憶部21からCFGモデルを読み込み、従来技術である計算機論理(Computation Tree Logic:CTL)を用いた記号モデル検査法に即して検査モデルを作成し、記憶装置20の検査モデル記憶部23に出力する。   The inspection model creation unit 12 reads a CFG model from the converted CFG model storage unit 21 of the storage device 20, and performs an inspection model according to a symbolic model inspection method using computer logic (Computation Tree Logic: CTL) which is a conventional technique. Is generated and output to the inspection model storage unit 23 of the storage device 20.

モデル検査実行部13は、記憶装置20の検査モデル記憶部23から検査モデルを読み込み、上記の従来技術の計算機論理(CTL)を用いた記号モデル検査法に即して検査を実行する。   The model checking execution unit 13 reads the checking model from the checking model storage unit 23 of the storage device 20, and executes checking according to the symbol model checking method using the above-described computer logic (CTL).

検査結果出力部14は、記号モデル検査実行部12が実行した検査の結果を検査結果3として出力する。   The inspection result output unit 14 outputs the result of the inspection performed by the symbol model inspection execution unit 12 as the inspection result 3.

呼び出し関数検出部31は、記憶装置20の変換前CFGモデル記憶部21に保持されたCFGモデルを読み込み、検査仕様1で指定されたエントリ関数から呼び出される関数を検出する。   The calling function detection unit 31 reads the CFG model held in the pre-conversion CFG model storage unit 21 of the storage device 20 and detects a function called from the entry function specified by the inspection specification 1.

関数評価部32は、呼び出し関数検出部31が検出した関数のそれぞれに対し、その関数のブロック数と評価値を算出する。   The function evaluation unit 32 calculates the number of blocks and the evaluation value of each function detected by the calling function detection unit 31.

検証対象関数選択部33は、検査仕様1に指定された最大ブロック数の範囲内で、評価値の高い関数を選択する。   The verification target function selection unit 33 selects a function having a high evaluation value within the range of the maximum number of blocks specified in the inspection specification 1.

CFGモデル変換部34は、検証対象関数選択部33が選択した関数からCFGモデルが構成されるようにCFGモデルを変換し、変換されたCFGモデルを変換後CFGモデル記憶部22に出力する。   The CFG model conversion unit 34 converts the CFG model so that the CFG model is configured from the function selected by the verification target function selection unit 33, and outputs the converted CFG model to the converted CFG model storage unit 22.

<本実施形態の動作の説明>
次に、図2のフローチャートを参照して、本実施形態の動作について詳細に説明する。
<Description of operation of this embodiment>
Next, the operation of this embodiment will be described in detail with reference to the flowchart of FIG.

(1)ステップA1
まず、CFGモデル作成部11は、検査仕様1及び検査対象コード2を参照し、検査対象コード2にコンパイラ最適化処理を施した上で、検査仕様1を踏まえてCFGモデルを作成し、このCFGモデルを変換前CFGモデル記憶部21に記憶する。コンパイラ最適化処理ならびにCFGモデル作成処理は、例えば、“「コンパイラII 原理・技法・ツール」A.V.エイホ、R.セシィ、 J.D.ウルマン著(非特許文献2)”に記載されているような従来技術で行う。
(1) Step A1
First, the CFG model creation unit 11 refers to the inspection specification 1 and the inspection target code 2, performs compiler optimization processing on the inspection target code 2, then generates a CFG model based on the inspection specification 1. The model is stored in the pre-conversion CFG model storage unit 21. The compiler optimization process and CFG model creation process are described in, for example, “Compiler II Principles / Technologies / Tools” A.1. V. Aiho, R.A. Cessie, J. D. The conventional technique as described in “Ullman (Non-Patent Document 2)” is used.

(2)ステップA2
次に、呼び出し関数検出部31は、変換前CFGモデル記憶部21に記憶されたCFGモデルの中から、検査仕様1で指定されたエントリ関数から直接的又は間接的に呼び出される関数全てを検出する。
(2) Step A2
Next, the calling function detection unit 31 detects all the functions that are directly or indirectly called from the entry function specified by the inspection specification 1 from the CFG models stored in the pre-conversion CFG model storage unit 21. .

(3)ステップA3
次に、関数評価部32は、検出された関数のブロック数と評価値を算出する。詳細については後述する。
(3) Step A3
Next, the function evaluation unit 32 calculates the number of blocks of the detected function and the evaluation value. Details will be described later.

(4)ステップA4
次に、検証対象関数選択部33は、算出されたブロック数と評価に基づいて、検出された関数の中から、検証対象に追加する関数を選択する。
(4) Step A4
Next, the verification target function selection unit 33 selects a function to be added to the verification target from the detected functions based on the calculated number of blocks and evaluation.

(5)ステップA5
次に、CFGモデル変換部34は、選択された関数以外の関数をCFGモデルから削除し、選択された関数のみ関数として残されたCFGモデルを、変換後CFGモデル記憶部22に記憶する。
(5) Step A5
Next, the CFG model conversion unit 34 deletes functions other than the selected function from the CFG model, and stores the CFG model remaining as a function only in the selected function in the converted CFG model storage unit 22.

(6)ステップA6
次に、検査モデル作成部12は、変換後CFGモデル記憶部22に記憶されたCFGモデルから検査モデルを作成し、この検査モデルを検査モデル記憶部23に記憶する。検査モデル作成処理は、例えば、“産業技術総合研究所システム検証研究センター、テクニカルレポート「抽象化を用いた検証ツールの調査」田辺良則、高井利憲、高橋孝一(非特許文献3)”に記載されているような従来技術で行う。
(6) Step A6
Next, the inspection model creation unit 12 creates an inspection model from the CFG model stored in the post-conversion CFG model storage unit 22, and stores this inspection model in the inspection model storage unit 23. The inspection model creation process is described in, for example, “National Institute of Advanced Industrial Science and Technology, System Verification Research Center, Technical Report“ Survey of Verification Tools Using Abstraction ”Yoshinori Tanabe, Toshinori Takai, Koichi Takahashi (Non-patent Document 3)”. This is done with conventional technology.

(7)ステップA7
モデル検査実行部13は、検査モデル記憶部23に記憶された検査モデルを読み込み、モデル検査を実施する。
(7) Step A7
The model checking execution unit 13 reads the checking model stored in the checking model storage unit 23 and performs model checking.

(8)ステップA8
最後に、検査結果出力部14は、モデル検査の結果を検査結果3として出力する。
(8) Step A8
Finally, the inspection result output unit 14 outputs the result of the model inspection as the inspection result 3.

ここで、ステップA3に関して、詳細に説明する。
関数評価部32は、検出された関数の、ブロック数と評価値を算出する。このとき、関数のブロック数とは、その関数のCFG表現におけるブロック数とする。
Here, step A3 will be described in detail.
The function evaluation unit 32 calculates the number of blocks and the evaluation value of the detected function. At this time, the number of blocks of the function is the number of blocks in the CFG expression of the function.

また、関数の評価値は、任意値の参照の有無と、下位関数が上位関数に対する検証精度向上への影響度によりランク付けができる指標を設定するが、具体的な指標はモデル検査実行部13の特性により異なるため、ここでは例を用いて説明する。   The function evaluation value is set as an index that can be ranked according to the presence or absence of reference to an arbitrary value and the influence of the lower function on improving the verification accuracy with respect to the upper function. Since this differs depending on the characteristics, an example will be described here.

この例では、評価値(X,Y)は、「X」と「Y」の二つの値から構成されるものとする。   In this example, the evaluation value (X, Y) is assumed to be composed of two values “X” and “Y”.

「X」は、その関数から呼び出される関数(下位関数と呼ぶ)が任意値を返すものとした場合に得られる評価値とする。また、「Y」は、下位関数の評価値を踏まえて得られる評価値とする。   “X” is an evaluation value obtained when a function called from the function (referred to as a lower function) returns an arbitrary value. “Y” is an evaluation value obtained based on the evaluation value of the lower function.

従って、下位関数がない場合、「X」と「Y」は同じ値となる。これにより、下位関数が検証対象関数として選択されなかった場合の評価値が「X」、下位関数が検証対象関数として選択された場合の評価値が「Y」とみなすことができる。   Therefore, when there is no lower function, “X” and “Y” have the same value. As a result, the evaluation value when the lower function is not selected as the verification target function can be regarded as “X”, and the evaluation value when the lower function is selected as the verification target function can be regarded as “Y”.

評価値(X,Y)の算出には、図3の規則を用いる。
図3には、以下の3つの規則が示されている。
The rule of FIG. 3 is used for calculation of the evaluation values (X, Y).
FIG. 3 shows the following three rules.

(1)規則1:関数の戻り値を上位関数で使用している場合
戻り値の計算式の中に直接又は間接に任意値を含む場合、0点加算する(点を加算しない)。
戻り値の計算式の中に直接又は間接に任意値を含まない場合、1点加算する。
(1) Rule 1: When the return value of a function is used in a higher-order function When an arbitrary value is included directly or indirectly in the return value calculation formula, 0 points are added (points are not added).
If an arbitrary value is not included directly or indirectly in the return value calculation formula, one point is added.

(2)規則2:関数の引数がアドレス渡しの場合
関数内でその引数が指す先に代入している計算式の中に直接又は間接に任意値を含む場合、0点加算する(点を加算しない)。
関数内でその引数が指す先に代入している計算式の中に直接又は間接に任意値を含まない場合、引数1つにつき1点加算する。
(2) Rule 2: When a function argument is passed by address If an arbitrary value is included directly or indirectly in a calculation expression assigned to the argument pointed to in the function, 0 points are added (add points) do not do).
If an arbitrary value is not included directly or indirectly in the calculation expression assigned to the destination indicated by the argument in the function, one point is added for each argument.

(3)規則3:関数の大域変数の代入がある場合
その代入する計算式の中に間接的に任意値を含む場合、0点加算する(点を加算しない)。
その代入する計算式の中に間接的に任意値を含まない場合、大域変数1つにつき1点加算する。
(3) Rule 3: When there is an assignment of a global variable of a function If an arbitrary value is indirectly included in the calculation formula to be assigned, 0 points are added (points are not added).
When an arbitrary value is not indirectly included in the calculation formula to be substituted, one point is added for each global variable.

この規則は、アドレス渡し引数及び大域変数の場合は、1つに付き1点加算する点が特徴である。その理由は、上位関数で影響を受ける変数の数が多いほど、検証に与える影響が大きいためである。   This rule is characterized in that one point is added for each address passing argument and global variable. The reason is that the greater the number of variables affected by the upper function, the greater the effect on verification.

次に、図4から図9を参照して、関数評価部32の動作を具体的に説明する。   Next, the operation of the function evaluation unit 32 will be specifically described with reference to FIGS. 4 to 9.

図4を参照して、図3の規則1,規則2,規則3について説明する。   With reference to FIG. 4, rule 1, rule 2, and rule 3 in FIG. 3 will be described.

図4で、「entry1」がエントリ関数とする。「entry1」からは「f1」,「f2」,「f3」の各関数が呼ばれている。   In FIG. 4, “entry1” is an entry function. From “entry1”, “f1”, “f2”, and “f3” functions are called.

「f1」の戻り値は、上位関数で使用されており、戻り値の計算式の中に直接又は間接に任意値を含まないため、図3の規則1により、評価値は「1」となる。   Since the return value of “f1” is used in the upper function and does not include an arbitrary value directly or indirectly in the calculation formula of the return value, the evaluation value is “1” according to rule 1 in FIG. .

「f2」のアドレス渡し引数は、2つとも「f2」内で値が代入されており、2つとも「f2」内でその引数が指す先に代入している計算式の中に直接又は間接に任意値を含まないため、図3の規則2により、評価値は「2」となる。   Both of the address passing arguments of “f2” are assigned values in “f2”, and both of them are directly or indirectly in the calculation formula assigned to the destination indicated by the argument in “f2”. Does not include an arbitrary value, the evaluation value is “2” according to rule 2 in FIG.

また、「f3」の場合は、3つの大域変数に値が代入されており、その代入する計算式の中に直接又は間接に任意値を含まないため、図3の規則3により、評価値は「3」となる。   Further, in the case of “f3”, values are assigned to the three global variables, and the calculation value to be assigned does not include an arbitrary value directly or indirectly. Therefore, according to Rule 3 in FIG. “3”.

また、「f1」,「f2」,「f3」は、下位関数を持たないため、評価値(X,Y)の「X」と「Y」は同じ値となる。   Further, since “f1”, “f2”, and “f3” do not have lower functions, “X” and “Y” of the evaluation values (X, Y) are the same value.

従って、「f1」,「f2」,「f3」の評価値は、それぞれ(1,1),(2,2),(3,3)となる。   Therefore, the evaluation values of “f1”, “f2”, and “f3” are (1, 1), (2, 2), and (3, 3), respectively.

この結果を図示したのが図5である。   This result is shown in FIG.

図5において、“「f1」(1,1):18”は、関数「f1」のブロック数は「18」であり、評価値は(1,1)であることを意味する。同様に、“「f2」(2,2):28”は、関数「f2」のブロック数は「28」であり、評価値は(2,2)であることを意味する。“「f3」(3,3):38”は、関数「f3」のブロック数は「38」であり、評価値は(3,3)であることを意味する。ブロック数は、図6の例では具体的に示していないが、後述する検証対象関数選択部33の動作を説明するために例として付与した値である。   In FIG. 5, ““ f1 ”(1,1): 18” means that the number of blocks of the function “f1” is “18” and the evaluation value is (1,1). Similarly, ““ f2 ”(2, 2): 28” means that the number of blocks of the function “f2” is “28” and the evaluation value is (2, 2). ““ F3 ”(3, 3): 38” means that the number of blocks of the function “f3” is “38” and the evaluation value is (3, 3). Although the number of blocks is not specifically shown in the example of FIG. 6, it is a value given as an example to explain the operation of the verification target function selection unit 33 described later.

次に、図6を参照して、図3の1の規則について説明する。   Next, the rule 1 in FIG. 3 will be described with reference to FIG.

図6で、「entry2」がエントリ関数とする。「entry2」からは「g1」,「g4」,「g6」の各関数が呼ばれている。また、「g1」,「g4」,「g6」の各関数の戻り値は、上位関数「i」,「j」,「k」で使用されている。   In FIG. 6, “entry2” is an entry function. From “entry2”, the functions “g1”, “g4”, and “g6” are called. The return values of the functions “g1”, “g4”, and “g6” are used in the upper functions “i”, “j”, and “k”.

「g1」,「g2」,「g3」,「g4」は、下位関数を持つ。「g5」,「g6」は、下位関数を持たない。   “G1”, “g2”, “g3”, and “g4” have lower functions. “G5” and “g6” have no lower function.

ここで、「g3」から呼ばれている下位関数「undet」は、検証対象コード2に含まれていない関数である。従って、「undet」の戻り値は、任意値である。「g3」は、戻り値の計算式の中に、間接に任意値を含むため、評価値は「0」である。同様に、「g2」、「g1」は、それぞれ戻り値の計算式の中に、間接に任意値を含むことになるため、評価値は「0」である。   Here, the lower function “undet” called from “g3” is a function not included in the verification target code 2. Therefore, the return value of “undet” is an arbitrary value. Since “g3” includes an arbitrary value indirectly in the calculation formula of the return value, the evaluation value is “0”. Similarly, since “g2” and “g1” each include an arbitrary value indirectly in the calculation formula of the return value, the evaluation value is “0”.

これに対し、「g5」,「g6」は、戻り値の計算式の中に、直接又は間接に任意値を含まないため、評価値は「1」である。同様に、「g4」は、それぞれ戻り値の計算式の中に、間接に任意値を含まないことになるため、評価値は「1」である。   On the other hand, since “g5” and “g6” do not include an arbitrary value directly or indirectly in the calculation formula of the return value, the evaluation value is “1”. Similarly, since “g4” does not indirectly include an arbitrary value in the calculation formula of the return value, the evaluation value is “1”.

このとき、「g3」の評価値(X,Y)の「X」は、「g3」から呼び出される下位関数「undet」が任意値を返すため、「0」となる。また、「Y」は、下位関数「undet」の評価値が「0」であるため、「0」となる。   At this time, “X” of the evaluation value (X, Y) of “g3” is “0” because the lower function “undet” called from “g3” returns an arbitrary value. “Y” is “0” because the evaluation value of the lower function “undet” is “0”.

「g2」の評価値(X,Y)の「X」は、「g2」から呼び出される下位関数「g3」が任意値を返すため、「0」となる。また、「Y」は、下位関数「g3」の評価値が「0」であるため、「0」となる。   “X” of the evaluation value (X, Y) of “g2” is “0” because the lower function “g3” called from “g2” returns an arbitrary value. “Y” is “0” because the evaluation value of the lower function “g3” is “0”.

「g1」の評価値(X,Y)の「X」は、「g1」から呼び出される下位関数「g2」が任意値を返すため、「0」となる。また、「Y」は、下位関数「g2」の評価値が「0」であるため、「0」となる。   “X” of the evaluation value (X, Y) of “g1” is “0” because the lower function “g2” called from “g1” returns an arbitrary value. “Y” is “0” because the evaluation value of the lower function “g2” is “0”.

「g5」,「g6」は、下位関数を持たないため、評価値(X,Y)の「X」と「Y」は、同じく「1」となる。   Since “g5” and “g6” have no lower function, “X” and “Y” of the evaluation values (X, Y) are also “1”.

「g4」の評価値(X,Y)の「X」は、「g4」から呼び出される下位関数「g5」が、「g4」から呼び出される時点では任意値であるため、「0」となる。また、「Y」は、下位関数「g5」の評価値が「1」であるため、「1」となる。   “X” of the evaluation value (X, Y) of “g4” is “0” because the lower function “g5” called from “g4” is an arbitrary value when called from “g4”. “Y” is “1” because the evaluation value of the lower function “g5” is “1”.

従って、「g1」,「g2」,「g3」,「g4」,「g5」,「g6」の評価値は、それぞれ(0,0),(0,0),(0,0),(0,1),(1,1),(1,1)となる。   Therefore, the evaluation values of “g1”, “g2”, “g3”, “g4”, “g5”, “g6” are (0, 0), (0, 0), (0, 0), ( 0, 1), (1, 1), (1, 1).

この結果を図示したのが図7である。   This result is shown in FIG.

図7におけるブロック数は、図5と同様に、例として付与した値である。   The number of blocks in FIG. 7 is a value given as an example, as in FIG.

図7において、“「g1」(0,0):18”は、関数「g1」のブロック数は「18」であり、評価値は(0,0)であることを意味する。同様に、“「g2」(0,0):28”は、関数「g2」のブロック数は「28」であり、評価値は(0,0)であることを意味する。“「g3」(0,0):18”は、関数「g3」のブロック数は「18」であり、評価値は(0,0)であることを意味する。“「g4」(0,1):28”は、関数「g4」のブロック数は「28」であり、評価値は(0,1)であることを意味する。“「g5」(1,1):18”は、関数「g5」のブロック数は「18」であり、評価値は(1,1)であることを意味する。“「g6」(1,1):38”は、関数「g6」のブロック数は「38」であり、評価値は(1,1)であることを意味する。   In FIG. 7, ““ g1 ”(0, 0): 18” means that the number of blocks of the function “g1” is “18” and the evaluation value is (0, 0). Similarly, ““ g2 ”(0, 0): 28” means that the number of blocks of the function “g2” is “28” and the evaluation value is (0, 0). ““ G3 ”(0,0): 18” means that the number of blocks of the function “g3” is “18” and the evaluation value is (0,0). ““ G4 ”(0, 1): 28” means that the number of blocks of the function “g4” is “28” and the evaluation value is (0, 1). ““ G5 ”(1,1): 18” means that the number of blocks of the function “g5” is “18” and the evaluation value is (1,1). ““ G6 ”(1, 1): 38” means that the number of blocks of the function “g6” is “38” and the evaluation value is (1, 1).

同様に、図8で「entry3」がエントリ関数とすると、図9に図示した評価値となる。図9においてもブロック数は、後述する検証対象関数選択部33の動作を説明するために付与した例である。   Similarly, when “entry3” in FIG. 8 is an entry function, the evaluation value illustrated in FIG. 9 is obtained. Also in FIG. 9, the number of blocks is an example given for explaining the operation of the verification target function selection unit 33 described later.

図8で、「entry3」がエントリ関数とする。「entry3」からは「h1」,「h4」,「h6」の各関数が呼ばれている。   In FIG. 8, “entry3” is an entry function. From “entry3”, functions “h1”, “h4”, and “h6” are called.

「h1」,「h2」,「h4」は、下位関数を持つ。「h3」,「h5」,「h6」は、下位関数を持たない   “H1”, “h2”, and “h4” have lower functions. “H3”, “h5”, and “h6” have no lower-order function

ここで、「h3」は、2つの大域変数に値が代入されており、その代入する計算式の中に直接又は間接に任意値を含まないため、図3の規則3により、評価値はそれぞれ「2」となる。「h3」は、下位関数を持たないため、評価値(X,Y)の「X」と「Y」は、同じく「2」となる。   Here, since “h3” has values assigned to two global variables, and the calculation formula to be assigned does not include an arbitrary value directly or indirectly, according to rule 3 in FIG. “2”. Since “h3” does not have a lower function, “X” and “Y” of the evaluation values (X, Y) are also “2”.

「h2」の評価値(X,Y)の「X」は、「h2」から呼び出される下位関数「h3」が、「h2」から呼び出される時点では任意値であるため、「0」となる。また、「Y」は、下位関数「h3」の評価値が「2」であるため、「2」となる。   “X” of the evaluation value (X, Y) of “h2” is “0” because the lower function “h3” called from “h2” is an arbitrary value when called from “h2”. “Y” is “2” because the evaluation value of the lower function “h3” is “2”.

「h1」の評価値(X,Y)の「X」は、「h1」から呼び出される下位関数「h2」が、「h1」から呼び出される時点では任意値であるため、「0」となる。また、「Y」は、下位関数「h2」の評価値が「2」であるため、「2」となる。   “X” of the evaluation value (X, Y) of “h1” is “0” because the lower function “h2” called from “h1” is an arbitrary value when called from “h1”. “Y” is “2” because the evaluation value of the lower function “h2” is “2”.

「h5」,「h6」は、1つの大域変数に値が代入されており、その代入する計算式の中に直接又は間接に任意値を含まないため、図3の規則3により、評価値はそれぞれ「1」となる。「h5」,「h6」は、下位関数を持たないため、評価値(X,Y)の「X」と「Y」は、同じく「1」となる。   Since “h5” and “h6” have values assigned to one global variable and do not include any arbitrary value directly or indirectly in the calculation formula to be assigned, the evaluation value is determined according to rule 3 in FIG. Each is “1”. Since “h5” and “h6” do not have lower functions, “X” and “Y” of the evaluation values (X, Y) are also “1”.

「h4」の評価値(X,Y)の「X」は、「h4」から呼び出される下位関数「h5」が、「h4」から呼び出される時点では任意値であるため、「0」となる。また、「Y」は、下位関数「h5」の評価値が「1」であるため、「1」となる。   “X” of the evaluation value (X, Y) of “h4” is “0” because the lower function “h5” called from “h4” is an arbitrary value when called from “h4”. “Y” is “1” because the evaluation value of the lower function “h5” is “1”.

従って、「h1」,「h2」,「h3」,「h4」,「h5」,「h6」の評価値は、それぞれ(0,2),(0,2),(2,2),(0,1),(1,1),(1,1)となる。   Therefore, the evaluation values of “h1”, “h2”, “h3”, “h4”, “h5”, “h6” are (0, 2), (0, 2), (2, 2), ( 0, 1), (1, 1), (1, 1).

この結果を図示したのが図9である。   FIG. 9 shows the result.

図9におけるブロック数は、図5、図7と同様に、例として付与した値である。   The number of blocks in FIG. 9 is a value given as an example, as in FIGS.

図9において、“「h1」(0,2):60”は、関数「h1」のブロック数は「60」であり、評価値は(0,2)であることを意味する。同様に、“「h2」(0,2):28”は、関数「h2」のブロック数は「28」であり、評価値は(0,2)であることを意味する。“「h3」(2,2):18”は、関数「h3」のブロック数は「18」であり、評価値は(2,2)であることを意味する。“「h4」(0,1):28”は、関数「h4」のブロック数は「28」であり、評価値は(0,1)であることを意味する。“「h5」(1,1):18”は、関数「h5」のブロック数は「18」であり、評価値は(1,1)であることを意味する。“「h6」(1,1):38”は、関数「h6」のブロック数は「38」であり、評価値は(1,1)であることを意味する。   In FIG. 9, ““ h1 ”(0, 2): 60” means that the number of blocks of the function “h1” is “60” and the evaluation value is (0, 2). Similarly, ““ h2 ”(0, 2): 28” means that the number of blocks of the function “h2” is “28” and the evaluation value is (0, 2). ““ H3 ”(2, 2): 18” means that the number of blocks of the function “h3” is “18” and the evaluation value is (2, 2). ““ H4 ”(0, 1): 28” means that the number of blocks of the function “h4” is “28” and the evaluation value is (0, 1). ““ H5 ”(1,1): 18” means that the number of blocks of the function “h5” is “18” and the evaluation value is (1,1). ““ H6 ”(1, 1): 38” means that the number of blocks of the function “h6” is “38” and the evaluation value is (1, 1).

<検証対象関数選択部33の動作の説明>
次に、図10のフローチャートを参照して、検証対象関数選択部33が、算出された関数のブロック数と評価値を用いて、検証対象に追加する関数を選択する際の動作(図2のステップA4)に関して、詳細に説明する。
<Description of Operation of Verification Target Function Selection Unit 33>
Next, referring to the flowchart of FIG. 10, the verification target function selection unit 33 uses the calculated number of function blocks and the evaluation value to select a function to be added to the verification target (in FIG. 2). Step A4) will be described in detail.

すなわち、図2のステップA4は、図10のフローチャートのステップA401からA410までの処理を含む。これらのステップに関しては、先に説明した関数の指標値と同様に、モデル検査実行部13の特性により異なるロジックを適用する必要があるため、その特性に合わせて選択方法を定義する。ここでは、図5と図11、図7と図12、及び図9と図13を参照して、選択方法の例を用いて検証対象関数選択部33の動作を具体的に説明する。   That is, step A4 in FIG. 2 includes processing from steps A401 to A410 in the flowchart in FIG. With respect to these steps, similar to the index value of the function described above, it is necessary to apply different logic depending on the characteristics of the model check execution unit 13, and therefore a selection method is defined according to the characteristics. Here, with reference to FIGS. 5 and 11, FIGS. 7 and 12, and FIGS. 9 and 13, the operation of the verification target function selection unit 33 will be specifically described using an example of a selection method.

図10のフローチャートにおいて、判断済マークというのは、CFGにおける各関数のモデルに対して設定されるフラグ情報であり、処理の過程で判断済マークをつけることで、その関数のモデルを検査対象に含める/含めないの判断が既に設定済みであることを示している。   In the flowchart of FIG. 10, the determined mark is flag information set for each function model in the CFG, and the determined function mark is set as an inspection target by attaching the determined mark in the process. This indicates that the determination whether to include or not has already been set.

<(a)図5及び図11の例に対する動作>
まず、図5及び図11の例に対する検証対象関数選択部33の動作を説明する。この例では、評価値が高い、すなわち上位関数に対する影響度が高い順番に、関数が選択されることを説明する。また、検査仕様1で最大ブロック数には「70」が指定されているものとする。
<(A) Operation for the Example of FIGS. 5 and 11>
First, the operation of the verification target function selection unit 33 for the examples of FIGS. 5 and 11 will be described. In this example, it will be described that functions are selected in descending order of evaluation value, that is, the degree of influence on the upper function. Further, it is assumed that “70” is designated as the maximum number of blocks in the inspection specification 1.

(1)ステップA401
検証対象関数選択部33は、判断済マークがついていない関数の中で、エントリ関数からの呼び出し階層の最も低い関数群を選ぶ。この段階では、判断済マークがついている関数はない。検証対象関数選択部33は、エントリ関数からの呼び出し階層が全て同じなので、「f1」,「f2」,「f3」を選ぶ。
(1) Step A401
The verification target function selection unit 33 selects a function group having the lowest calling hierarchy from the entry function among the functions not having the determined mark. At this stage, there is no function with a determined mark. The verification target function selection unit 33 selects “f1”, “f2”, and “f3” because the call layers from the entry functions are all the same.

(2)ステップA402
検証対象関数選択部33は、関数候補があるか確認する。すなわち、検証対象関数選択部33は、選ばれた関数群があるか確認する。ここでは、選ばれた「f1」,「f2」,「f3」が関数候補となる。検証対象関数選択部33は、関数候補(選ばれた関数群)がなければ、ここで処理を終了する。
(2) Step A402
The verification target function selection unit 33 checks whether there is a function candidate. That is, the verification target function selection unit 33 confirms whether there is a selected function group. Here, the selected “f1”, “f2”, and “f3” are function candidates. If there is no function candidate (selected function group), the verification target function selection unit 33 ends the process.

(3)ステップA403
検証対象関数選択部33は、関数候補(選ばれた関数群)があれば、選ばれた関数群のうち呼び出し階層が同位のものの中で、評価値(X,Y)の「X」の値が最大の関数群を選ぶ。ここでは、検証対象関数選択部33は、選ばれた「f1」,「f2」,「f3」の中で、評価値「X」が最大なものは「f3」なので、「f3」を選ぶ。
(3) Step A403
If there is a function candidate (selected function group), the verification target function selecting unit 33 selects an evaluation value (X, Y) of “X” among the selected function groups having the same calling hierarchy. Choose the function group with the largest. Here, the verification target function selection unit 33 selects “f3” because “f3” has the largest evaluation value “X” among the selected “f1”, “f2”, and “f3”.

(4)ステップA404
次に、検証対象関数選択部33は、評価値(X,Y)の「X」の値が同位のものの中で、評価値(X,Y)の「Y」の値が最大の関数群を選ぶ。
(4) Step A404
Next, the verification target function selection unit 33 selects a function group having the highest evaluation value (X, Y) “Y” among the evaluation values (X, Y) of the same value. Choose.

(5)ステップA405
次に、検証対象関数選択部33は、評価値(X,Y)の「Y」の値が同位のものの中で、関数のブロック数が最小の関数群を選ぶ。
(5) Step A405
Next, the verification target function selection unit 33 selects a function group having the smallest number of function blocks among the evaluation values (X, Y) having the same “Y” value.

(6)ステップA406
次に、検証対象関数選択部33は、関数のブロック数が同位のものの中で、CFGモデル上で最左の関数を選ぶ。
(6) Step A406
Next, the verification target function selection unit 33 selects the leftmost function on the CFG model among functions having the same number of function blocks.

この例では、ステップA403の段階で一つの関数「f3」に絞りこまれたので、ステップA404からステップA406を適用しても、「f3」が選ばれることになる。   In this example, since the function “f3” has been narrowed down to step A403, even if the steps A404 to A406 are applied, “f3” is selected.

(7)ステップA407
次に、検証対象関数選択部33は、選択された関数の評価値(X,Y)の「Y」の値が「0」でないか確認する。ここでは、選ばれた「f3」の評価値(X,Y)の「Y」は「0」でないので、次の処理(ステップA408)に移る。
(7) Step A407
Next, the verification target function selection unit 33 checks whether the value “Y” of the evaluation value (X, Y) of the selected function is not “0”. Here, since “Y” of the selected evaluation value (X, Y) of “f3” is not “0”, the process proceeds to the next processing (step A408).

(8)ステップA408
次に、検証対象関数選択部33は、累積ブロック数に関数ブロック数を加算した値が検査仕様1で与えられている最大ブロック数を超えないか確認する。ここでは、この段階での累積ブロック数は「0」であり、この累積ブロック数に「f3」のブロック数「38」を加算した値「38」は、この例で仮定した最大ブロック数「70」を超えないので、次の処理(ステップA409)に移る。
(8) Step A408
Next, the verification target function selection unit 33 confirms whether the value obtained by adding the number of function blocks to the cumulative number of blocks does not exceed the maximum number of blocks given in the inspection specification 1. Here, the cumulative block number at this stage is “0”, and the value “38” obtained by adding the block number “38” of “f3” to this cumulative block number is the maximum block number “70” assumed in this example. ”Does not exceed, the process proceeds to the next process (step A409).

(9)ステップA409
次に、検証対象関数選択部33は、該当関数を検証対象に追加し、判断済マークを付ける。また、検証対象関数選択部33は、累積ブロック数に該当関数のブロック数を加算する。ここでは、検証対象関数選択部33は、ここまでの条件を満たした「f3」を検査対象に追加し、判断済マークを付ける。累積ブロック数は「38」となる。その後、最初の処理(ステップA401)に戻る。
(9) Step A409
Next, the verification target function selection unit 33 adds the corresponding function to the verification target and puts a determination mark. In addition, the verification target function selection unit 33 adds the number of blocks of the corresponding function to the cumulative number of blocks. Here, the verification target function selection unit 33 adds “f3” that satisfies the conditions so far to the inspection target and puts a determined mark. The cumulative number of blocks is “38”. Thereafter, the process returns to the first process (step A401).

検証対象関数選択部33は、再び、ステップA401からステップA407を、この段階で判断済マークがついていない「f1」,「f2」に適用し、「f2」を選択する。この処理の流れを以下に詳述する。   The verification target function selection unit 33 again applies Steps A401 to A407 to “f1” and “f2” that are not marked at this stage, and selects “f2”. The flow of this process will be described in detail below.

(10)ステップA401
検証対象関数選択部33は、判断済マークがついていない関数の中で、エントリ関数からの呼び出し階層の最も低い関数群を選ぶ。検証対象関数選択部33は、この段階で、「f3」に判断済マークがついているので、「f1」,「f2」を選ぶ。
(10) Step A401
The verification target function selection unit 33 selects a function group having the lowest calling hierarchy from the entry function among the functions not having the determined mark. At this stage, the verification target function selection unit 33 selects “f1” and “f2” because “f3” is already marked.

(11)ステップA402
検証対象関数選択部33は、関数候補があるか確認する。すなわち、検証対象関数選択部33は、選ばれた関数群があるか確認する。ここでは、選ばれた「f1」,「f2」が関数候補となる。検証対象関数選択部33は、関数候補(選ばれた関数群)がなければ、ここで処理を終了する。
(11) Step A402
The verification target function selection unit 33 checks whether there is a function candidate. That is, the verification target function selection unit 33 confirms whether there is a selected function group. Here, the selected “f1” and “f2” are function candidates. If there is no function candidate (selected function group), the verification target function selection unit 33 ends the process.

(12)ステップA403
検証対象関数選択部33は、関数候補(選ばれた関数群)があれば、選ばれた関数群のうち呼び出し階層が同位のものの中で、評価値(X,Y)の「X」の値が最大の関数群を選ぶ。ここでは、検証対象関数選択部33は、選ばれた「f1」,「f2」の中で、評価値「X」が最大なものは「f2」なので、「f2」を選ぶ。
(12) Step A403
If there is a function candidate (selected function group), the verification target function selecting unit 33 selects an evaluation value (X, Y) of “X” among the selected function groups having the same calling hierarchy. Choose the function group with the largest. Here, the verification target function selection unit 33 selects “f2” because “f2” has the largest evaluation value “X” among the selected “f1” and “f2”.

(13)ステップA404
次に、検証対象関数選択部33は、評価値(X,Y)の「X」の値が同位のものの中で、評価値(X,Y)の「Y」の値が最大の関数群を選ぶ。
(13) Step A404
Next, the verification target function selection unit 33 selects a function group having the largest evaluation value (X, Y) “Y” among the evaluation values (X, Y) of the same value “X”. Choose.

(14)ステップA405
次に、検証対象関数選択部33は、評価値(X,Y)の「Y」の値が同位のものの中で、関数のブロック数が最小の関数群を選ぶ。
(14) Step A405
Next, the verification target function selection unit 33 selects a function group having the smallest number of function blocks among the evaluation values (X, Y) having the same “Y” value.

(15)ステップA406
次に、検証対象関数選択部33は、関数のブロック数が同位のものの中で、CFGモデル上で最左の関数を選ぶ。
(15) Step A406
Next, the verification target function selection unit 33 selects the leftmost function on the CFG model among functions having the same number of function blocks.

この例では、ステップA403の段階で一つの関数「f2」に絞りこまれたので、ステップA404からステップA406を適用しても、「f2」が選ばれることになる。   In this example, since the function “f2” is narrowed down to the step A403, even if the steps A404 to A406 are applied, “f2” is selected.

(16)ステップA407
次に、検証対象関数選択部33は、選択された関数の評価値(X,Y)の「Y」の値が「0」でないか確認する。ここでは、選ばれた「f2」の評価値(X,Y)の「Y」は「0」でないので、次の処理(ステップA408)に移る。
(16) Step A407
Next, the verification target function selection unit 33 checks whether the value “Y” of the evaluation value (X, Y) of the selected function is not “0”. Here, since “Y” of the evaluation value (X, Y) of the selected “f2” is not “0”, the process proceeds to the next process (step A408).

(17)ステップA408
次に、検証対象関数選択部33は、累積ブロック数に関数ブロック数を加算した値が検査仕様1で与えられている最大ブロック数を超えないか確認する。ここでは、この段階での累積ブロック数は「38」であり、「f2」のブロック数「28」を加算した値「66」は、この例で設定された最大ブロック数「70」を超えないので、次の処理(ステップA409)に移る。
(17) Step A408
Next, the verification target function selection unit 33 confirms whether the value obtained by adding the number of function blocks to the cumulative number of blocks does not exceed the maximum number of blocks given in the inspection specification 1. Here, the cumulative number of blocks at this stage is “38”, and the value “66” obtained by adding the number of blocks “28” of “f2” does not exceed the maximum number of blocks “70” set in this example. Therefore, the process proceeds to the next process (step A409).

(18)ステップA409
次に、検証対象関数選択部33は、該当関数を検証対象に追加し、判断済マークを付ける。また、検証対象関数選択部33は、累積ブロック数に該当関数のブロック数を加算する。ここでは、検証対象関数選択部33は、ここまでの条件を満たした「f2」を検査対象に追加し、判断済マークを付ける。累積ブロック数は「66」となる。その後、最初の処理(ステップA401)に戻る。
(18) Step A409
Next, the verification target function selection unit 33 adds the corresponding function to the verification target and puts a determination mark. In addition, the verification target function selection unit 33 adds the number of blocks of the corresponding function to the cumulative number of blocks. Here, the verification target function selection unit 33 adds “f2” that satisfies the above conditions to the inspection target, and puts a determined mark. The cumulative number of blocks is “66”. Thereafter, the process returns to the first process (step A401).

検証対象関数選択部33は、再び、ステップA401〜A407を、この段階で判断済マークがついていない「f1」に適用することになる。この処理の流れを以下に詳述する。   The verification target function selection unit 33 again applies steps A401 to A407 to “f1” that is not marked at this stage. The flow of this process will be described in detail below.

(19)ステップA401
検証対象関数選択部33は、判断済マークがついていない関数の中で、エントリ関数からの呼び出し階層の最も低い関数群を選ぶ。検証対象関数選択部33は、この段階で、「f2」,「f3」に判断済マークがついているので、「f1」を選ぶ。
(19) Step A401
The verification target function selection unit 33 selects a function group having the lowest calling hierarchy from the entry function among the functions not having the determined mark. At this stage, the verification target function selection unit 33 selects “f1” because “f2” and “f3” are already marked.

(20)ステップA402
検証対象関数選択部33は、関数候補があるか確認する。すなわち、検証対象関数選択部33は、選ばれた関数群があるか確認する。ここでは、選ばれた「f1」が関数候補となる。検証対象関数選択部33は、関数候補(選ばれた関数群)がなければ、ここで処理を終了する。
(20) Step A402
The verification target function selection unit 33 checks whether there is a function candidate. That is, the verification target function selection unit 33 confirms whether there is a selected function group. Here, the selected “f1” is a function candidate. If there is no function candidate (selected function group), the verification target function selection unit 33 ends the process.

(21)ステップA403
検証対象関数選択部33は、関数候補(選ばれた関数群)があれば、選ばれた関数群のうち呼び出し階層が同位のものの中で、評価値(X,Y)の「X」の値が最大の関数群を選ぶ。ここでは、選ばれた関数が「f1」しかないため、「f1」が選ばれることになる。
(21) Step A403
If there is a function candidate (selected function group), the verification target function selecting unit 33 selects an evaluation value (X, Y) of “X” among the selected function groups having the same calling hierarchy. Choose the function group with the largest. Here, since the selected function is only “f1”, “f1” is selected.

(22)ステップA404
次に、検証対象関数選択部33は、評価値(X,Y)の「X」の値が同位のものの中で、評価値(X,Y)の「Y」の値が最大の関数群を選ぶ。
(22) Step A404
Next, the verification target function selection unit 33 selects a function group having the highest evaluation value (X, Y) “Y” among the evaluation values (X, Y) of the same value. Choose.

(23)ステップA405
次に、検証対象関数選択部33は、評価値(X,Y)の「Y」の値が同位のものの中で、関数のブロック数が最小の関数群を選ぶ。
(23) Step A405
Next, the verification target function selection unit 33 selects a function group having the smallest number of function blocks among the evaluation values (X, Y) having the same “Y” value.

(24)ステップA406
次に、検証対象関数選択部33は、関数のブロック数が同位のものの中で、CFGモデル上で最左の関数を選ぶ。
(24) Step A406
Next, the verification target function selection unit 33 selects the leftmost function on the CFG model among functions having the same number of function blocks.

この例では、ステップA403の段階で一つの関数「f1」に絞りこまれたので、ステップA404からステップA406を適用しても、「f1」が選ばれることになる。   In this example, since the function “f1” has been narrowed down at the stage of step A403, “f1” is selected even if steps A404 to A406 are applied.

(25)ステップA407
次に、検証対象関数選択部33は、選択された関数の評価値(X,Y)の「Y」の値が「0」でないか確認する。ここでは、選ばれた「f1」の評価値(X,Y)の「Y」は「0」でないので、次の処理(ステップA408)に移る。
(25) Step A407
Next, the verification target function selection unit 33 checks whether the value “Y” of the evaluation value (X, Y) of the selected function is not “0”. Here, since “Y” of the selected evaluation value (X, Y) of “f1” is not “0”, the process proceeds to the next process (step A408).

(26)ステップA408
次に、検証対象関数選択部33は、累積ブロック数に関数ブロック数を加算した値が検査仕様1で与えられている最大ブロック数を超えないか確認する。ここでは、この段階での累積ブロック数は「66」であり、「f1」のブロック数「18」を加算すると、仮定した最大ブロック数「70」を超えるため、仮定した最大ブロック数を超えない場合とは異なる処理(ステップA410)に移る。
(26) Step A408
Next, the verification target function selection unit 33 confirms whether the value obtained by adding the number of function blocks to the cumulative number of blocks does not exceed the maximum number of blocks given in the inspection specification 1. Here, the cumulative number of blocks at this stage is “66”, and adding the number of blocks “18” of “f1” exceeds the assumed maximum number of blocks “70”, and therefore does not exceed the assumed maximum number of blocks. The process proceeds to processing different from the case (step A410).

(27)ステップA410
次に、検証対象関数選択部33は、該当関数及び下位関数に判断済マークを付ける。ここでは、検証対象関数選択部33は、「f1」に判断済マークを付ける。その後、最初の処理(ステップA401)に戻る。
(27) Step A410
Next, the verification target function selection unit 33 puts a determined mark on the corresponding function and the lower function. Here, the verification target function selection unit 33 puts a determined mark on “f1”. Thereafter, the process returns to the first process (step A401).

検証対象関数選択部33は、再び、ステップA401を適用するが、この段階で判断済マークがついていない関数が存在しないため、ステップA4の処理を終了する。   The verification target function selection unit 33 applies Step A401 again, but since there is no function without a determined mark at this stage, the process of Step A4 ends.

このようにして、「f3」,「f2」の順番に関数が選択される。「f3」が「entry1」に与える影響は「大域変数3個分」であり、「f2」が「entry1」に与える影響は「アドレス渡し引数2個分」であり、影響度の高いものが順番に選択されることがわかる。   In this way, functions are selected in the order of “f3” and “f2”. The effect of “f3” on “entry1” is “three global variables”, the effect of “f2” on “entry1” is “two arguments passed by address”, and the ones with the highest influence are in order. It can be seen that is selected.

これを図示したのが図11である。図11で丸付数字は選択された順番を示し、星印は選択されなかった関数を示す。その他は図5と同じである。   This is illustrated in FIG. In FIG. 11, circled numbers indicate the order of selection, and asterisks indicate functions that were not selected. Others are the same as FIG.

図11において、“「f1」(1,1):18”は、関数「f1」のブロック数は「18」であり、評価値は(1,1)であることを意味する。同様に、“「f2」(2,2):28”は、関数「f2」のブロック数は「28」であり、評価値は(2,2)であることを意味する。“「f3」(3,3):38”は、関数「f3」のブロック数は「38」であり、評価値は(3,3)であることを意味する。   In FIG. 11, ““ f1 ”(1, 1): 18” means that the number of blocks of the function “f1” is “18” and the evaluation value is (1, 1). Similarly, ““ f2 ”(2, 2): 28” means that the number of blocks of the function “f2” is “28” and the evaluation value is (2, 2). ““ F3 ”(3, 3): 38” means that the number of blocks of the function “f3” is “38” and the evaluation value is (3, 3).

<(b)図7及び図12の例に対する動作>
次に、図7及び図12の例に対する検証対象関数選択部33の動作を説明する。この例では、任意値を計算式中に含む関数が選択されないことを説明する。また、検査仕様1で最大ブロック数には「90」が指定されているものとする。
<(B) Operation for the example of FIGS. 7 and 12>
Next, the operation of the verification target function selection unit 33 for the examples of FIGS. 7 and 12 will be described. In this example, it will be described that a function including an arbitrary value in the calculation formula is not selected. In the inspection specification 1, “90” is designated as the maximum number of blocks.

図5に対する処理と同様に、図7に対して、ステップA401〜A409を繰り返し適用することにより、「g1」,「g4」,「g6」の中から、「g6」、「g4」の順に検証対象として選択されるが、その後、「g1」に対してステップA407を適用すると、「g1」の評価値(X,Y)の「Y」が「0」なので、「g1」は検証対象とはみなされない。   Similar to the processing for FIG. 5, by repeatedly applying steps A401 to A409 to FIG. 7, the verification is performed in the order of “g6” and “g4” from “g1”, “g4”, and “g6”. After that, if step A407 is applied to “g1”, since “Y” of the evaluation value (X, Y) of “g1” is “0”, “g1” is the verification target Not considered.

更に、ステップA410によって、「g1」及びその下位関数「g2」,「g3」も同様に検証対象とはみなされないまま、判断済マークが付けられる。その後、ステップA401に戻り、「g5」が検証対象に追加された時点で、ステップA4の処理は終了する。   Further, in step A410, “g1” and its subordinate functions “g2” and “g3” are similarly marked as determined without being regarded as verification targets. Thereafter, the process returns to step A401, and when “g5” is added to the verification target, the process of step A4 ends.

このようにして、「g6」,「g4」,「g5」の順番に関数が選択される。任意値を含む「g1」,「g2」,「g3」が検証対象にならなかったことがわかる。   In this way, functions are selected in the order of “g6”, “g4”, and “g5”. It can be seen that “g1”, “g2”, and “g3” including arbitrary values were not verified.

これを図示したのが図12である。図12で丸付数字は選択された順番を示し、星印は選択されなかった関数を示す。その他は図7と同じである。   This is illustrated in FIG. In FIG. 12, circled numbers indicate the order of selection, and stars indicate functions that are not selected. Others are the same as FIG.

図12において、“「g1」(0,0):18”は、関数「g1」のブロック数は「18」であり、評価値は(0,0)であることを意味する。同様に、“「g2」(0,0):28”は、関数「g2」のブロック数は「28」であり、評価値は(0,0)であることを意味する。“「g3」(0,0):18”は、関数「g3」のブロック数は「18」であり、評価値は(0,0)であることを意味する。“「g4」(0,1):28”は、関数「g4」のブロック数は「28」であり、評価値は(0,1)であることを意味する。“「g5」(1,1):18”は、関数「g5」のブロック数は「18」であり、評価値は(1,1)であることを意味する。“「g6」(1,1):38”は、関数「g6」のブロック数は「38」であり、評価値は(1,1)であることを意味する。   In FIG. 12, ““ g1 ”(0,0): 18” means that the number of blocks of the function “g1” is “18” and the evaluation value is (0,0). Similarly, ““ g2 ”(0, 0): 28” means that the number of blocks of the function “g2” is “28” and the evaluation value is (0, 0). ““ G3 ”(0,0): 18” means that the number of blocks of the function “g3” is “18” and the evaluation value is (0,0). ““ G4 ”(0, 1): 28” means that the number of blocks of the function “g4” is “28” and the evaluation value is (0, 1). ““ G5 ”(1,1): 18” means that the number of blocks of the function “g5” is “18” and the evaluation value is (1,1). ““ G6 ”(1, 1): 38” means that the number of blocks of the function “g6” is “38” and the evaluation value is (1, 1).

<(c)図9及び図13の例に対する動作>
次に、図9及び図13の例に対する検証対象関数選択部33の動作を説明する。この例では、最大ブロック数制限を超える関数が選択されないことを説明する。また、検査仕様1で最大ブロック数には「90」が指定されているものとする。
<(C) Operation for the Example of FIGS. 9 and 13>
Next, the operation of the verification target function selection unit 33 for the examples of FIGS. 9 and 13 will be described. In this example, it will be described that a function exceeding the maximum block number limit is not selected. In the inspection specification 1, “90” is designated as the maximum number of blocks.

この場合も、図5、図7と同様に、図9に対してステップA401〜A409の一連の処理を繰り返し適用する。   Also in this case, as in FIGS. 5 and 7, the series of processes of steps A <b> 401 to A <b> 409 are repeatedly applied to FIG. 9.

まず、「h6」が対象関数として選択された後に、「h1」がステップA404で選ばれるが、この場合は、その後にA408を適用する時点で、この段階での累積ブロック数38に対して、「h1」のブロック数「60」を加算した値は、指定された最大ブロック数「90」を超えるため、検証対象の選択からはずれる。   First, after “h6” is selected as the target function, “h1” is selected in step A404. In this case, when A408 is applied thereafter, the cumulative number of blocks at this stage is 38. Since the value obtained by adding the number of blocks “60” of “h1” exceeds the designated maximum number of blocks “90”, the value is not selected as a verification target.

更に、ステップA410において、その下位関数「h2」、「h3」と共に判断済マークが付けられる。   Further, in step A410, the determined mark is attached together with the lower functions “h2” and “h3”.

この後、残った「h4」、「h5」に対してステップA401〜A409が適用されるが、「h4」、「h5」は最大ブロック数制限を越えることがないので、検証対象に追加され、判断済マークが付く。この時点で関数候補がなくなり、ステップA4の処理は終了する。   After this, steps A401 to A409 are applied to the remaining “h4” and “h5”, but “h4” and “h5” do not exceed the maximum number of blocks, and are added to the verification target. Judgment mark is attached. At this point, there are no function candidates, and the process of step A4 ends.

このようにして、「h6」,「h4」,「h5」の順番に関数が選択される。「h1」は最大ブロック数制限を超えるため、検証対象にならない。   In this way, functions are selected in the order of “h6”, “h4”, and “h5”. Since “h1” exceeds the maximum block number limit, it is not a verification target.

これを図示したのが図13である。図13で丸付数字は選択された順番を示し、星印は選択されなかった関数を示す。その他は図9と同じである。   This is illustrated in FIG. In FIG. 13, circled numbers indicate the order of selection, and stars indicate functions that were not selected. Others are the same as FIG.

図13において、“「h1」(0,2):60”は、関数「h1」のブロック数は「60」であり、評価値は(0,2)であることを意味する。同様に、“「h2」(0,2):28”は、関数「h2」のブロック数は「28」であり、評価値は(0,2)であることを意味する。“「h3」(2,2):18”は、関数「h3」のブロック数は「18」であり、評価値は(2,2)であることを意味する。“「h4」(0,1):28”は、関数「h4」のブロック数は「28」であり、評価値は(0,1)であることを意味する。“「h5」(1,1):18”は、関数「h5」のブロック数は「18」であり、評価値は(1,1)であることを意味する。“「h6」(1,1):38”は、関数「h6」のブロック数は「38」であり、評価値は(1,1)であることを意味する。   In FIG. 13, ““ h1 ”(0, 2): 60” means that the number of blocks of the function “h1” is “60” and the evaluation value is (0, 2). Similarly, ““ h2 ”(0, 2): 28” means that the number of blocks of the function “h2” is “28” and the evaluation value is (0, 2). ““ H3 ”(2, 2): 18” means that the number of blocks of the function “h3” is “18” and the evaluation value is (2, 2). ““ H4 ”(0, 1): 28” means that the number of blocks of the function “h4” is “28” and the evaluation value is (0, 1). ““ H5 ”(1,1): 18” means that the number of blocks of the function “h5” is “18” and the evaluation value is (1,1). ““ H6 ”(1, 1): 38” means that the number of blocks of the function “h6” is “38” and the evaluation value is (1, 1).

本発明の効果は、モデル検査に先立って、検証対象のモデルの再構築を行うことにより、与えられた検証時間内により有効な検証結果が得られることである。その理由は、検証対象関数選択手段により、エントリ関数から呼び出される関数のうち、モデルの状態数が大きいために規定時間内では検証結果が得られない可能性が高い関数をモデル化対象からはずすことで、比較的短い時間で検証が可能なその他の関数の検証に、より多くの検証時間の配分が可能となるためである。   The effect of the present invention is that a more effective verification result can be obtained within a given verification time by reconstructing a model to be verified prior to model checking. The reason is that the function to be verified is selected from the functions to be modeled out of the functions to be called from the entry function by the verification target function selection means because there is a high possibility that the verification result cannot be obtained within the specified time due to the large number of model states. This is because more verification time can be allocated to verification of other functions that can be verified in a relatively short time.

以上のように、本発明は、モデル検査技法を利用してソースコードの検証を行う処理系において、検証対象の起点となる関数及び検証可能な最大ブロック数を指定することにより、検証効果が高くなる関数を自動選択する機構を有する装置及び方法に関する。   As described above, the present invention has a high verification effect by specifying the function that is the starting point of the verification target and the maximum number of blocks that can be verified in the processing system that verifies the source code using the model checking technique. The present invention relates to an apparatus and a method having a mechanism for automatically selecting a function.

本発明では、モデルの状態数を増やす最も大きな要素として、任意値をとる変数や関数の返却値に着目する。   In the present invention, attention is focused on a variable that takes an arbitrary value or a return value of a function as the largest element that increases the number of states of the model.

任意値は、与えられた条件のもとで特定の値あるいはある限られた範囲の値をとることが決定できないことを意味している。   An arbitrary value means that it cannot be determined to take a specific value or a limited range of values under given conditions.

また、任意値とみなされる変数や関数の参照に対しては、あらゆる値を取る可能性があるものとしてモデル化する必要があるため、モデル検査における計算量が非常に大きくなり、上限時間内に検証結果が得られない可能性が非常に高い。   In addition, for variables and functions that are regarded as arbitrary values, it is necessary to model them as possible values, so the amount of calculation in model checking becomes very large and within the upper limit time. The possibility that the verification result is not obtained is very high.

更に、もう一つの着目点として、CFGモデルにおけるブロック数の上限値を考慮する。一般に、検証対象となるモデルのCFG表現を構成する全体ブロック数と検証時間との間には相関があり、ブロック数が多くなればなるほど検証時間が長くなる。   Furthermore, as another point of interest, the upper limit value of the number of blocks in the CFG model is considered. In general, there is a correlation between the total number of blocks constituting the CFG expression of the model to be verified and the verification time, and the verification time becomes longer as the number of blocks increases.

本発明では、モデル検査を実行する前に、上記の2つの要素を利用して、検証対象のモデルの再構築を行うことにより、与えられた検証時間内により有効な検証結果が得られるモデルを出力する。   In the present invention, a model that can obtain a more effective verification result within a given verification time by reconstructing the model to be verified using the above two elements before executing model checking. Output.

まず、与えられたソースコードから変換されたCFGモデルにおいて、任意値を取る変数や関数の参照を含む一連の関数呼び出しフローを検査対象から除外する。   First, in a CFG model converted from a given source code, a series of function call flows including variables and function references that take arbitrary values are excluded from inspection targets.

更に、呼び出し上位の関数に対して、下位の関数がどれだけ多くのコンテキストを与えているか、つまり下位関数をモデル化することで、どれだけ上位関数の検証精度が高くなるかという基準で、ランク付けを行った上で、再構築するモデルの全体ブロック数が、事前に指定された上限の範囲内に収まるように関数の取捨選択を行う。   Furthermore, the rank of the higher-level function is evaluated based on how much context is given by the lower-level function, that is, how much higher-level function verification accuracy is improved by modeling the lower-level function. In addition, the functions are selected so that the total number of blocks of the model to be rebuilt falls within the upper limit specified in advance.

ここで「コンテキスト」とは、上位関数が使用する変数に対して下位関数が値を代入することである。上位関数が使用する変数に対して下位関数が値を代入するには、戻り値を利用する、アドレス渡し引数を利用する、大域変数を利用するの3つの方法がある。   Here, “context” means that a lower function assigns a value to a variable used by the upper function. There are three methods for substituting a value for a variable used by an upper function: using a return value, using an address passing argument, and using a global variable.

このようなモデル再構築手法により、与えられた検証時間を効果的に利用することが可能となり、より多くの検証結果を得ることが可能となる。   Such a model reconstruction technique makes it possible to effectively use a given verification time and obtain more verification results.

本発明の検証対象関数自動選択装置は、検査仕様と、検査対象コードと、検査結果と、モデル検査制御手段と、記憶手段と、検証対象関数選択手段を含む。   The verification target function automatic selection device of the present invention includes a test specification, a test target code, a test result, a model test control unit, a storage unit, and a verification target function selection unit.

ここで、モデル検査制御手段は、コンパイラ最適化処理及び計算木論理(CTL)を用いた記号モデル検査法等の従来技術で構成する。   Here, the model checking control means is configured by conventional techniques such as a symbol model checking method using compiler optimization processing and computation tree logic (CTL).

モデル検査制御手段は、CFGモデル作成手段と、検査モデル作成手段と、モデル検査実行手段と、検査結果出力手段を含む。   The model check control means includes a CFG model creation means, a check model creation means, a model check execution means, and a check result output means.

記憶手段は、変換前CFGモデル記憶手段と、変換後CFGモデル記憶手段と、検査モデル記憶手段を含む。   The storage means includes a pre-conversion CFG model storage means, a post-conversion CFG model storage means, and an inspection model storage means.

検証対象関数選択手段は、呼び出し関数検出手段と、関数評価手段と、検証対象関数追加手段と、CFGモデル変換手段を含む。   The verification target function selection unit includes a calling function detection unit, a function evaluation unit, a verification target function addition unit, and a CFG model conversion unit.

本発明によれば、モデル検査を利用したソースコード検証の検証効果を高める用途に適用できる。   INDUSTRIAL APPLICABILITY According to the present invention, the present invention can be applied to an application for enhancing the verification effect of source code verification using model checking.

以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。   As mentioned above, although embodiment of this invention was explained in full detail, actually, it is not restricted to said embodiment, Even if there is a change of the range which does not deviate from the summary of this invention, it is included in this invention.

1… 検査仕様
2… 検査対象コード
3… 検査結果
10… モデル検査制御部
11… CFGモデル作成部
12… 検査モデル作成部
13… モデル検査実行部
14… 検査結果出力部
20… 記憶装置
21… 変換前CFGモデル記憶部
22… 変換後CFGモデル記憶部
23… 検査モデル記憶部
30… 検証対象関数選択部
31… 呼び出し関数検出部
32… 関数評価部
33… 検証対象関数追加部
34… CFGモデル変換部
DESCRIPTION OF SYMBOLS 1 ... Inspection specification 2 ... Inspection object code 3 ... Inspection result 10 ... Model inspection control part 11 ... CFG model preparation part 12 ... Inspection model preparation part 13 ... Model inspection execution part 14 ... Inspection result output part 20 ... Storage device 21 ... Conversion Pre-CFG model storage unit 22 ... Post-conversion CFG model storage unit 23 ... Inspection model storage unit 30 ... Verification target function selection unit 31 ... Call function detection unit 32 ... Function evaluation unit 33 ... Verification target function addition unit 34 ... CFG model conversion unit

Claims (12)

検査仕様と検査対象コードを読み込み、前記検査対象コードにコンパイラ最適化処理を施した上で、前記検査仕様を踏まえてCFG(Call Flow Graph:制御流れグラフ)モデルを作成するモデル検査制御手段と、
前記CFGモデルを読み込み、前記検査仕様で指定されたエントリ関数から呼び出される関数を検出し、前記検出された関数のブロック数と評価値を算出し、前記算出されたブロック数と評価に基づいて、前記検出された関数の中から、検証対象に追加する関数を選択し、前記選択された関数に基づいて、前記CFGモデルを変換する検証対象関数選択手段と
を含み、
前記モデル検査制御手段は、前記変換されたCFGモデルを読み込み、計算機論理(Computation Tree Logic:CTL)を用いた記号モデル検査法に即して検査モデルを作成し、前記検査モデルに対して、前記計算機論理(CTL)を用いた記号モデル検査法に即して検査を実行し、前記実行された検査の結果を出力する
検証対象関数自動選択装置。
Model inspection control means for reading a test specification and a test target code, performing compiler optimization processing on the test target code, and creating a CFG (Call Flow Graph: control flow graph) model based on the test specification;
Read the CFG model, detect a function called from the entry function specified in the inspection specification, calculate the block number and evaluation value of the detected function, and based on the calculated block number and evaluation, Selecting a function to be added to a verification target from the detected functions, and a verification target function selection means for converting the CFG model based on the selected function;
The model check control means reads the converted CFG model, creates a check model in accordance with a symbol model check method using a computer tree (Computation Tree Logic: CTL), and for the check model, A verification function automatic selection device that executes a check in accordance with a symbolic model check method using computer logic (CTL) and outputs a result of the executed check.
請求項1に記載の検証対象関数自動選択装置であって、
前記モデル検査制御手段は、
前記検査仕様と前記検査対象コードを読み込み、前記検査対象コードにコンパイラ最適化処理を施した上で、前記検査仕様を踏まえてCFGモデルを作成するCFGモデル作成手段と、
前記変換されたCFGモデルを読み込み、計算機論理(CTL)を用いた記号モデル検査法に即して検査モデルを作成する検査モデル作成手段と、
前記検査モデルを読み込み、前記計算機論理(CTL)を用いた記号モデル検査法に即して検査を実行するモデル検査実行手段と、
前記記号モデル検査実行手段が実行した検査の結果を出力する検査結果出力手段と
を含む
検証対象関数自動選択装置。
The verification target function automatic selection device according to claim 1,
The model checking control means includes
CFG model creation means for reading the inspection specification and the inspection target code, performing a compiler optimization process on the inspection target code, and generating a CFG model based on the inspection specification;
An inspection model creation means for reading the converted CFG model and creating an inspection model in accordance with a symbolic model inspection method using computer logic (CTL);
Model checking execution means for reading the checking model and executing checking in accordance with a symbolic model checking method using the computer logic (CTL);
A verification target function automatic selection device comprising: test result output means for outputting a result of the test executed by the symbol model test execution means.
請求項1又は2に記載の検証対象関数自動選択装置であって、
前記検証対象関数選択手段は、
前記CFGモデルを読み込み、前記検査仕様で指定されたエントリ関数から直接的又は間接的に呼び出される関数全てを検出する呼び出し関数検出手段と、
前記呼び出し関数検出手段が検出した関数のそれぞれに対し、当該関数のブロック数と評価値を算出する関数評価手段と、
前記検査仕様に指定された最大ブロック数の範囲内で、評価値の高い関数を選択する検証対象関数選択手段と、
前記検証対象関数選択手段が選択した関数以外の関数を前記CFGモデルから削除し、前記選択された関数が関数として残されたCFGモデルを、前記変換されたCFGモデルとして出力するCFGモデル変換手段と
を含む
検証対象関数自動選択装置。
The verification target function automatic selection device according to claim 1 or 2,
The verification target function selecting means includes:
A call function detection unit that reads the CFG model and detects all functions that are directly or indirectly called from the entry function specified by the inspection specification;
For each of the functions detected by the calling function detection means, function evaluation means for calculating the number of blocks of the function and an evaluation value;
Verification target function selection means for selecting a function having a high evaluation value within the range of the maximum number of blocks specified in the inspection specification;
CFG model conversion means for deleting a function other than the function selected by the verification target function selection means from the CFG model, and outputting the CFG model in which the selected function remains as a function as the converted CFG model; Including automatic verification function selection device.
検査仕様と検査対象コードを読み込み、前記検査対象コードにコンパイラ最適化処理を施した上で、前記検査仕様を踏まえてCFG(Call Flow Graph:制御流れグラフ)モデルを作成するCFGモデル作成手段と、
前記CFGモデルを読み込み、前記検査仕様で指定されたエントリ関数から呼び出される関数を検出する呼び出し関数検出手段と、
前記呼び出し関数検出手段が検出した関数のそれぞれに対し、当該関数のブロック数と評価値を算出する関数評価手段と、
前記検査仕様に指定された最大ブロック数の範囲内で、評価値の高い関数を選択する検証対象関数選択手段と、
前記検証対象関数選択手段が選択した関数に基づいて、前記CFGモデルを変換して前記変換されたCFGモデルを生成するCFGモデル変換手段と、
前記変換されたCFGモデルを読み込み、計算機論理(Computation Tree Logic:CTL)を用いた記号モデル検査法に即して検査モデルを作成する検査モデル作成手段と、
前記検査モデルを読み込み、前記計算機論理(CTL)を用いた記号モデル検査法に即して検査を実行するモデル検査実行手段と、
前記記号モデル検査実行手段が実行した検査の結果を出力する検査結果出力手段と
を含む
検証対象関数自動選択装置。
CFG model creating means for reading a test specification and a test target code, performing compiler optimization processing on the test target code, and generating a CFG (Call Flow Graph: control flow graph) model based on the test specification;
Calling function detection means for reading the CFG model and detecting a function called from an entry function specified by the inspection specification;
For each of the functions detected by the calling function detection means, function evaluation means for calculating the number of blocks of the function and an evaluation value;
Verification target function selection means for selecting a function having a high evaluation value within the range of the maximum number of blocks specified in the inspection specification;
CFG model conversion means for converting the CFG model and generating the converted CFG model based on the function selected by the verification target function selection means;
An inspection model creation means for reading the converted CFG model and creating an inspection model in accordance with a symbolic model inspection method using computer tree logic (CTL);
Model checking execution means for reading the checking model and executing checking in accordance with a symbolic model checking method using the computer logic (CTL);
A verification target function automatic selection device comprising: test result output means for outputting a result of the test executed by the symbol model test execution means.
検査仕様と検査対象コードを読み込み、前記検査対象コードにコンパイラ最適化処理を施した上で、前記検査仕様を踏まえてCFG(Call Flow Graph:制御流れグラフ)モデルを作成し、
前記CFGモデルを参照し、前記検査仕様で指定されたエントリ関数から呼び出される関数を検出し、前記検出された関数のブロック数と評価値を算出し、前記算出されたブロック数と評価に基づいて、前記検出された関数の中から、検証対象に追加する関数を選択し、前記選択された関数に基づいて、前記CFGモデルを変換し、
前記変換されたCFGモデルを参照し、計算機論理(Computation Tree Logic:CTL)を用いた記号モデル検査法に即して検査モデルを作成し、前記検査モデルに対して、前記計算機論理(CTL)を用いた記号モデル検査法に即して検査を実行し、前記実行された検査の結果を出力する
検証対象関数自動選択方法。
After reading the inspection specification and the inspection target code, performing a compiler optimization process on the inspection target code, a CFG (Call Flow Graph: control flow graph) model is created based on the inspection specification,
Referring to the CFG model, a function called from an entry function specified by the inspection specification is detected, a block number and an evaluation value of the detected function are calculated, and based on the calculated block number and evaluation A function to be added to the verification target is selected from the detected functions, and the CFG model is converted based on the selected function.
By referring to the converted CFG model, a check model is created in accordance with a symbolic model check method using computer logic (CTL), and the computer logic (CTL) is set for the check model. A verification target function automatic selection method for executing a check in accordance with the used symbol model checking method and outputting a result of the executed check.
請求項5に記載の検証対象関数自動選択方法であって、
前記検査仕様と前記検査対象コードを読み込み、前記検査対象コードにコンパイラ最適化処理を施した上で、前記検査仕様を踏まえてCFGモデルを作成し、
前記変換されたCFGモデルを読み込み、計算機論理(CTL)を用いた記号モデル検査法に即して検査モデルを作成し、
前記検査モデルを読み込み、前記計算機論理(CTL)を用いた記号モデル検査法に即して検査を実行し、
前記実行された検査の結果を出力する
検証対象関数自動選択方法。
The verification target function automatic selection method according to claim 5,
Read the inspection specification and the inspection target code, and after performing compiler optimization processing on the inspection target code, create a CFG model based on the inspection specification,
Read the converted CFG model, create a check model according to the symbolic model check method using computer logic (CTL),
Read the inspection model, execute the inspection in accordance with the symbolic model inspection method using the computer logic (CTL),
A verification target function automatic selection method for outputting a result of the executed inspection.
請求項5又は6に記載の検証対象関数自動選択方法であって、
前記CFGモデルを読み込み、前記検査仕様で指定されたエントリ関数から直接的又は間接的に呼び出される関数全てを検出し、
前記検出された関数のそれぞれに対し、当該関数のブロック数と評価値を算出し、
前記検査仕様に指定された最大ブロック数の範囲内で、評価値の高い関数を選択し、
前記選択された関数以外の関数を前記CFGモデルから削除し、前記選択された関数が関数として残されたCFGモデルを、前記変換されたCFGモデルとして出力する
検証対象関数自動選択方法。
It is a verification object function automatic selection method according to claim 5 or 6,
Read the CFG model, detect all functions that are called directly or indirectly from the entry function specified in the inspection specification,
For each of the detected functions, calculate the number of blocks and the evaluation value of the function,
Select a function with a high evaluation value within the range of the maximum number of blocks specified in the inspection specification,
A function automatic selection method for deleting a function other than the selected function from the CFG model and outputting a CFG model in which the selected function is left as a function as the converted CFG model.
検査仕様と検査対象コードを読み込み、前記検査対象コードにコンパイラ最適化処理を施した上で、前記検査仕様を踏まえてCFG(Call Flow Graph:制御流れグラフ)モデルを作成し、
前記CFGモデルを読み込み、前記検査仕様で指定されたエントリ関数から呼び出される関数を検出し、
前記検出された関数のそれぞれに対し、当該関数のブロック数と評価値を算出し、
前記検査仕様に指定された最大ブロック数の範囲内で、評価値の高い関数を選択し、
前記選択された関数に基づいて、前記CFGモデルを変換して前記変換されたCFGモデルを生成し、
前記変換されたCFGモデルを読み込み、計算機論理(Computation Tree Logic:CTL)を用いた記号モデル検査法に即して検査モデルを作成し、
前記検査モデルを読み込み、前記計算機論理(CTL)を用いた記号モデル検査法に即して検査を実行し、
前記実行された検査の結果を出力する
検証対象関数自動選択方法。
After reading the inspection specification and the inspection target code, performing a compiler optimization process on the inspection target code, a CFG (Call Flow Graph: control flow graph) model is created based on the inspection specification,
Read the CFG model, detect a function called from the entry function specified in the inspection specification,
For each of the detected functions, calculate the number of blocks and the evaluation value of the function,
Select a function with a high evaluation value within the range of the maximum number of blocks specified in the inspection specification,
Transforming the CFG model based on the selected function to generate the transformed CFG model;
Reading the converted CFG model, creating a check model in accordance with a symbolic model check method using computer tree logic (CTL),
Read the inspection model, execute the inspection in accordance with the symbolic model inspection method using the computer logic (CTL),
A verification target function automatic selection method for outputting a result of the executed inspection.
検査仕様と検査対象コードを読み込み、前記検査対象コードにコンパイラ最適化処理を施した上で、前記検査仕様を踏まえてCFG(Call Flow Graph:制御流れグラフ)モデルを作成するステップと、
前記CFGモデルを参照し、前記検査仕様で指定されたエントリ関数から呼び出される関数を検出し、前記検出された関数のブロック数と評価値を算出し、前記算出されたブロック数と評価に基づいて、前記検出された関数の中から、検証対象に追加する関数を選択し、前記選択された関数に基づいて、前記CFGモデルを変換するステップと、
前記変換されたCFGモデルを参照し、計算機論理(Computation Tree Logic:CTL)を用いた記号モデル検査法に即して検査モデルを作成し、前記検査モデルに対して、前記計算機論理(CTL)を用いた記号モデル検査法に即して検査を実行し、前記実行された検査の結果を出力するステップと
をコンピュータに実行させるための
検証対象関数自動選択用プログラム。
A test specification and a test target code are read, a compiler optimization process is performed on the test target code, and a CFG (Call Flow Graph: control flow graph) model is created based on the test specification;
Referring to the CFG model, a function called from an entry function specified by the inspection specification is detected, a block number and an evaluation value of the detected function are calculated, and based on the calculated block number and evaluation Selecting a function to be added to the verification target from among the detected functions, and converting the CFG model based on the selected function;
By referring to the converted CFG model, a check model is created in accordance with a symbolic model check method using a computer tree logic (CTL), and the computer logic (CTL) is set for the check model. A program for automatic selection of a verification target function for causing a computer to execute a check in accordance with a used symbol model check method and to output a result of the executed check.
請求項9に記載の検証対象関数自動選択用プログラムであって、
前記検査仕様と前記検査対象コードを読み込み、前記検査対象コードにコンパイラ最適化処理を施した上で、前記検査仕様を踏まえてCFGモデルを作成するステップと、
前記変換されたCFGモデルを読み込み、計算機論理(CTL)を用いた記号モデル検査法に即して検査モデルを作成するステップと、
前記検査モデルを読み込み、前記計算機論理(CTL)を用いた記号モデル検査法に即して検査を実行するステップと、
前記実行された検査の結果を出力するステップと
を更にコンピュータに実行させるための
検証対象関数自動選択用プログラム。
It is a program for automatic verification object function selection according to claim 9,
Reading the inspection specification and the inspection target code, performing a compiler optimization process on the inspection target code, and creating a CFG model based on the inspection specification;
Reading the transformed CFG model and creating a check model in accordance with a symbolic model check method using computer logic (CTL);
Reading the check model and performing a check in accordance with a symbolic model check method using the computer logic (CTL);
A program for automatically selecting a verification target function for causing a computer to further execute the step of outputting the result of the executed inspection.
請求項9又は10に記載の検証対象関数自動選択用プログラムであって、
前記CFGモデルを読み込み、前記検査仕様で指定されたエントリ関数から直接的又は間接的に呼び出される関数全てを検出するステップと、
前記検出された関数のそれぞれに対し、当該関数のブロック数と評価値を算出するステップと、
前記検査仕様に指定された最大ブロック数の範囲内で、評価値の高い関数を選択するステップと、
前記選択された関数以外の関数を前記CFGモデルから削除し、前記選択された関数が関数として残されたCFGモデルを、前記変換されたCFGモデルとして出力するステップと
を更にコンピュータに実行させるための
検証対象関数自動選択用プログラム。
A program for automatic verification target function selection according to claim 9 or 10,
Reading the CFG model and detecting all functions that are called directly or indirectly from the entry function specified in the inspection specification;
For each of the detected functions, calculating the number of blocks of the function and an evaluation value;
Selecting a function having a high evaluation value within the range of the maximum number of blocks specified in the inspection specification;
Deleting the functions other than the selected function from the CFG model, and causing the computer to further execute a step of outputting the CFG model in which the selected function remains as a function as the converted CFG model. Program for automatic selection of functions to be verified.
検査仕様と検査対象コードを読み込み、前記検査対象コードにコンパイラ最適化処理を施した上で、前記検査仕様を踏まえてCFG(Call Flow Graph:制御流れグラフ)モデルを作成するステップと、
前記CFGモデルを読み込み、前記検査仕様で指定されたエントリ関数から呼び出される関数を検出するステップと、
前記検出された関数のそれぞれに対し、当該関数のブロック数と評価値を算出するステップと、
前記検査仕様に指定された最大ブロック数の範囲内で、評価値の高い関数を選択するステップと、
前記選択された関数に基づいて、前記CFGモデルを変換して前記変換されたCFGモデルを生成するステップと、
前記変換されたCFGモデルを読み込み、計算機論理(Computation Tree Logic:CTL)を用いた記号モデル検査法に即して検査モデルを作成するステップと、
前記検査モデルを読み込み、前記計算機論理(CTL)を用いた記号モデル検査法に即して検査を実行するステップと、
前記実行された検査の結果を出力するステップと
をコンピュータに実行させるための
検証対象関数自動選択用プログラム。
A test specification and a test target code are read, a compiler optimization process is performed on the test target code, and a CFG (Call Flow Graph: control flow graph) model is created based on the test specification;
Reading the CFG model and detecting a function called from an entry function specified in the inspection specification;
For each of the detected functions, calculating the number of blocks of the function and an evaluation value;
Selecting a function having a high evaluation value within the range of the maximum number of blocks specified in the inspection specification;
Transforming the CFG model based on the selected function to generate the transformed CFG model;
Reading the converted CFG model and creating a check model in accordance with a symbolic model check method using computer tree logic (CTL);
Reading the check model and performing a check in accordance with a symbolic model check method using the computer logic (CTL);
A program for automatically selecting a verification target function for causing a computer to execute the step of outputting the result of the executed inspection.
JP2009057004A 2009-03-10 2009-03-10 Verification target function automatic selection device, verification target function automatic selection method, and verification target function automatic selection program Expired - Fee Related JP5396930B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009057004A JP5396930B2 (en) 2009-03-10 2009-03-10 Verification target function automatic selection device, verification target function automatic selection method, and verification target function automatic selection program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009057004A JP5396930B2 (en) 2009-03-10 2009-03-10 Verification target function automatic selection device, verification target function automatic selection method, and verification target function automatic selection program

Publications (2)

Publication Number Publication Date
JP2010211521A true JP2010211521A (en) 2010-09-24
JP5396930B2 JP5396930B2 (en) 2014-01-22

Family

ID=42971604

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009057004A Expired - Fee Related JP5396930B2 (en) 2009-03-10 2009-03-10 Verification target function automatic selection device, verification target function automatic selection method, and verification target function automatic selection program

Country Status (1)

Country Link
JP (1) JP5396930B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013080842A1 (en) * 2011-12-01 2013-06-06 株式会社日立製作所 Source code conversion method and computer-readable storage medium

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0553782A (en) * 1991-08-29 1993-03-05 Nec Corp System for obtaining dynamic characteristic analysis information of specified part
JPH05274132A (en) * 1992-03-25 1993-10-22 Matsushita Electric Ind Co Ltd Program analyzer
JPH11194935A (en) * 1998-01-05 1999-07-21 Nec Commun Syst Ltd Software structure analysis system
JP2001236243A (en) * 2000-02-22 2001-08-31 Nec Microsystems Ltd Debug method and recording medium with program for debug recorded
WO2006038394A1 (en) * 2004-10-04 2006-04-13 Matsushita Electric Industrial Co., Ltd. Source code inspection device, method, program, and recording medium
JP2008191963A (en) * 2007-02-06 2008-08-21 Nec Corp Source code verification system, source code verification method and source code verification program

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0553782A (en) * 1991-08-29 1993-03-05 Nec Corp System for obtaining dynamic characteristic analysis information of specified part
JPH05274132A (en) * 1992-03-25 1993-10-22 Matsushita Electric Ind Co Ltd Program analyzer
JPH11194935A (en) * 1998-01-05 1999-07-21 Nec Commun Syst Ltd Software structure analysis system
JP2001236243A (en) * 2000-02-22 2001-08-31 Nec Microsystems Ltd Debug method and recording medium with program for debug recorded
WO2006038394A1 (en) * 2004-10-04 2006-04-13 Matsushita Electric Industrial Co., Ltd. Source code inspection device, method, program, and recording medium
JP2008191963A (en) * 2007-02-06 2008-08-21 Nec Corp Source code verification system, source code verification method and source code verification program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013080842A1 (en) * 2011-12-01 2013-06-06 株式会社日立製作所 Source code conversion method and computer-readable storage medium
JP2013117767A (en) * 2011-12-01 2013-06-13 Hitachi Ltd Source code conversion method and source code conversion program

Also Published As

Publication number Publication date
JP5396930B2 (en) 2014-01-22

Similar Documents

Publication Publication Date Title
Bhasin et al. Black box testing based on requirement analysis and design specifications
Ahmed et al. Generating combinatorial test cases using Simplified Swarm Optimization (SSO) algorithm for automated GUI functional testing
JP2016115175A (en) Software test apparatus and software test program
Selvakumar et al. Machining fixture layout optimisation using genetic algorithm and artificial neural network
JP2018060525A (en) Event-driven software test sequence determination
Pahwa et al. UML based test case generation methods: A review
Akin et al. Searching for efficient neural architectures for on-device ML on edge TPUs
JP5396930B2 (en) Verification target function automatic selection device, verification target function automatic selection method, and verification target function automatic selection program
JP2000347900A (en) Input parameter generating device and method, and recording medium
JP5743663B2 (en) Test support system, test support method, and program
JP2017224185A (en) Bug contamination probability calculation program and bug contamination probability calculation method
JP2011100420A (en) Test program creation device
Wuest et al. Applying graph theory and the product state concept in manufacturing
Sabharwal et al. Identifying interactions for combinatorial testing using data flow techniques
CN105389164A (en) COMPUTER-IMPLEMENTED METHOD FOR GENERATING control unit program code and message management environment relating thereto
Salman et al. Test Case Generation Model for UML Diagrams
JP6330490B2 (en) Test case generation program, test case generation apparatus, and test case generation method
Ali et al. Fault Tolerant Sensor Network Using Formal Method Event-B
JP6583033B2 (en) Driver generation program, apparatus, and method
Chhabra et al. An effective implementation of improved halstead metrics for software parameters analysis
JP6369102B2 (en) Software test support system
Srivastava et al. Test case prioritization using cuckoo search
Gupta et al. Test Suites Generation using UML Modelling and Heuristic Techniques: A Systematic Study
Singh Automated expected output generation: Is this a problem that has been solved?
Banitaan et al. Towards test focus selection for integration testing using method level software metrics

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130403

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130514

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130613

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130718

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: 20130924

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131007

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees