JP2012194833A - Test data generating program, device, and method - Google Patents
Test data generating program, device, and method Download PDFInfo
- Publication number
- JP2012194833A JP2012194833A JP2011058920A JP2011058920A JP2012194833A JP 2012194833 A JP2012194833 A JP 2012194833A JP 2011058920 A JP2011058920 A JP 2011058920A JP 2011058920 A JP2011058920 A JP 2011058920A JP 2012194833 A JP2012194833 A JP 2012194833A
- Authority
- JP
- Japan
- Prior art keywords
- logical
- logical expression
- data
- sign
- expression
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Description
開示する技術は、テストデータ生成プログラム、装置、及び方法に関する。 The disclosed technology relates to a test data generation program, apparatus, and method.
業務システムのソフトウェアプログラムの動作をテストするためのテストデータを自動的に生成する従来技術として、テストしたい状況が表現された制約式の充足可能性判定問題を解くことで充足値をテストデータとして用いる技術がある。制約式としては、画面の項目、DBの項目、又はプログラム変数を用いた論理式が使用される。例えば、充足可能性問題を解くSMT(Satisfiability Modulo Theories:充足可能性モジュロ理論)ソルバを利用したホワイトボックステスト用のテストデータ生成技術が知られている(非特許文献1)。このSMTソルバは、入力された制約式毎に、充足可能性をまず判定し、充足可能であると判定した場合に、この制約式を満たす1つの解(充足解)を出力するものである。なお、この「1つ」とは、値を求めるべき項目や変数の各々について1つずつ、という意味である。 As a conventional technology that automatically generates test data for testing the operation of software programs in business systems, the satisfaction value is used as test data by solving the satisfiability determination problem of the constraint expression that expresses the situation to be tested. There is technology. As the constraint expression, a screen item, a DB item, or a logical expression using a program variable is used. For example, a test data generation technique for a white box test using an SMT (Satisfiability Modulo Theories) solver that solves the satisfiability problem is known (Non-Patent Document 1). This SMT solver first determines the satisfiability for each input constraint equation, and outputs one solution (satisfaction solution) that satisfies this constraint equation when it is determined that the constraint is satisfiable. The “one” means that one item is to be obtained for each item or variable.
業務システムのソフトウェアをテストするにあたり、プログラムのエラーはデータの境界で起こりやすいという経験則に鑑みたテストデータを用意する必要がある。この経験則に鑑みたテストを境界値テストと呼ぶ。境界値テストとは、入力を、有効なデータの範囲と無効なデータの範囲に分け、その境界となる値、即ち境界値を用いて行うテストである。 When testing business system software, it is necessary to prepare test data based on the empirical rule that program errors are likely to occur at data boundaries. A test based on this rule of thumb is called a boundary value test. The boundary value test is a test performed by dividing an input into a valid data range and an invalid data range and using a boundary value, that is, a boundary value.
この境界値は、上述の制約式の充足値の範囲に含まれる値であり、完全に同一となる値ではない。 This boundary value is a value included in the range of the sufficiency value of the constraint expression described above, and is not a value that is completely the same.
例えば、項目Aのデータの値の範囲を表わす制約式として、5≦Aという制約式が与えられたとする。
For example, it is assumed that a
上記のSMTソルバは、この制約式について、5以上のいかなる値も充足値として出力し得る。一方、境界値テストとして有意な値は5である。 The SMT solver can output any value of 5 or more as a sufficiency value for this constraint equation. On the other hand, the significant value as the boundary value test is 5.
このように、テストしたい状況として、項目や変数の値の範囲が論理式で表わされた制約式を、SMTソルバを用いて解いても、上記境界値テストの条件を満足する充足解、つまり、境界値となるテストデータが得られる保証はなかった。 As described above, as a situation to be tested, even if a constraint expression in which the range of values of items and variables is expressed by a logical expression is solved using an SMT solver, a satisfactory solution that satisfies the above boundary value test condition, that is, There was no guarantee that test data could be obtained as boundary values.
開示する技術が解決しようとする課題は、論理式に境界値に係る制約が含まれる場合に、この論理式を、SMTソルバが境界値を確実に出力可能な論理式に変換することにある。 The problem to be solved by the disclosed technology is to convert a logical expression into a logical expression that can be output reliably by the SMT solver when the logical expression includes a constraint on the boundary value.
開示する技術は、検査対象のソフトウェアの入力値に関する制約条件を示す論理式のデータが記憶された記憶部を参照して、前記論理式のデータに、等号付き不等号が含まれるか否かを判定する。開示する技術は、前記判定において含まれると判定した場合に、前記記憶部に記憶された前記等号付き不等号を等号に変換する。 The disclosed technique refers to a storage unit in which data of a logical expression indicating a constraint condition related to an input value of software to be examined is stored, and whether or not an inequality sign with an equal sign is included in the data of the logical expression. judge. When it is determined that the disclosed technique is included in the determination, the inequality sign with an equal sign stored in the storage unit is converted into an equal sign.
開示する技術によれば、論理式に境界値に係る制約が含まれる場合に、この論理式を、SMTソルバが境界値を確実に出力可能な論理式に変換することが出来る、という効果が得られる。 According to the disclosed technique, when a constraint relating to a boundary value is included in a logical expression, there is an effect that the logical expression can be converted into a logical expression that allows the SMT solver to reliably output the boundary value. It is done.
以下、実施形態について詳細に説明する。 Hereinafter, embodiments will be described in detail.
図1に示すように、情報処理装置10は、CPU12、ROM14、RAM16、HDD18、通信インタフェース20、及びこれらを相互に接続するためのバス22を備えている。
As shown in FIG. 1, the
CPU12は、各種プログラムを実行する。ROM14には、各種プログラムやパラメータ等が記憶されている。RAM16は、CPU12による各種プログラムの実行時におけるワークエリア等として用いられる。記録媒体としてのHDD18には、後述するテストデータ生成処理ルーチンを実行するためのプログラム及び充足可能性を判定する処理を行うプログラムを含む各種プログラムや各種データが記憶されている。
The
情報処理装置10を、テストデータ生成処理ルーチンを実行するためのプログラム及び充足可能性を判定する処理を行うプログラムに沿って、機能ブロックで表わすと、図2に示すようになる。情報処理装置10は、プロパティ記憶部30、論理式木構造生成部32、否定標準形変換部34、否定付き不等号除去変換部36、及び境界値制約生成部38を備えている。情報処理装置10は、更に、テストデータ生成部40、データ生成用プロパティ記憶部41、及び充足可能性判定部42、及びテストデータ記憶部44を備えている。なお、境界値制約生成部38は、等号付き不等号変換部及び選言標準形変換部の一例である。
When the
プロパティ記憶部30には、情報処理装置10に入力された、検査対象のソフトウェアの論理的仕様を定める情報であるプロパティが記憶されている。
The
検査対象のソフトウェアは、例えば画面とDB(データベース)を有するウェブシステムのためのソフトウェアであり、当該画面には、例えば「ユーザ」、「住所」、「購入個数」及び「合計」などの項目が含まれている。 The software to be inspected is, for example, software for a web system having a screen and a DB (database), and items such as “user”, “address”, “purchased quantity”, and “total” are included in the screen. include.
また、本実施形態において、プロパティには、例えば、"合計が5000円以上かつ購入個数が5個以内で、住所が東京又は神奈川で会った場合、郵送料が無料となる"という業務仕様が設定されている。 Also, in this embodiment, for example, the property has a business specification that “the total is 5000 yen or more and the number of purchased items is 5 or less and the postage is free when the address is met in Tokyo or Kanagawa”. Has been.
また、上記の業務仕様における事前条件として、検証対象のソフトウェアの入力値に関する制約条件を示す論理式データが、プロパティ記憶部30に記憶されている。例えば、以下に示す論理式データが記憶されている。
In addition, as the precondition in the above business specification, logical expression data indicating a constraint condition regarding the input value of the software to be verified is stored in the
事前条件: ((合計≧5000)∧(購入個数≧1)∧(購入個数≦5))∧((住所="東京")∨(住所="神奈川")) Preconditions: ((Total ≧ 5000) 購入 (Purchased ≧ 1) ∧ (Purchased ≦ 5)) ∧ ((Address = “Tokyo”) ∨ (Address = “Kanagawa”))
上記のように、論理式データは、文字列、数値、論理演算子(含意(→)、論理和(∨)、論理積(∧)、否定(¬))、関係演算子(等号(=)、不等号(>、<、≧、≦)、)、及び括弧を用いて記述されている。 As described above, the logical expression data includes a character string, a numerical value, a logical operator (implication (→), logical sum (∨), logical product (∧), negation (¬)), relational operator (equal sign (= ), Inequality signs (>, <, ≧, ≦),), and parentheses.
論理式木構造生成部32は、プロパティ記憶部30から、事前条件を示す論理式データを読み込み、読み込んだ論理式データの論理構造を解析して、図3及び図4に示すような木構造形式のデータを生成して、RAM16に格納する。図3は、木構造形式のデータの模式図である。また、図4は、RAM16に格納された木構造形式のデータの一例を示す図である。論理式木構造生成部32は、図3に円形又は矩形で示す木構造データのノード毎に、図4に示す「No」、「値」、「演算子」、「左ノード」、「右ノード」の各項目値を含むレコードをRAM16に格納する。図3の最上位のノードは、図4の「No」が0の行に相当する。
The logical expression tree
否定標準形変換部34は、木構造形式の論理式データを参照し、入力された論理式を否定標準形に変換する処理を行う。否定標準形とは、部分論理式を持たない論理式である原子論理式にのみ否定が係り、他には論理和と論理積のみが論理演算子として用いられる形の論理式である。入力された論理式に境界値に係る制約を示す等号付き不等号が含まれない場合でも、この処理を行うことにより、原子論理式にのみ否定が係るように変形出来、境界値に係る制約を示す等号付き不等号部分を見出せるようになる。従って、入力された論理式が否定標準形である場合には、否定標準形変換部34によるこの処理は不要である。
The negative standard
否定標準形変換部34は、木構造形式の論理式データに対し、以下に示すような変換法則(1)を適用し、含意演算子(→)を含む部分木を、含意演算子を含まない(含意演算子が除去された)部分木に変換する(図5、図6を参照)。具体的には、否定標準形変換部34は、含意演算子を含む論理式を、含意演算子の前(左辺)に記述されている論理式の否定と、含意演算子の後(右辺)に記述されている論理式との論理和に変換する処理を行う。
The negative normal
なお、入力された論理式に含意演算子が含まれない場合には、この変換法則(1)の適用処理は不要である。 Note that when the implication operator is not included in the input logical expression, the application process of the conversion law (1) is unnecessary.
変換法則(1):「s1→s2」を「¬s1∨s2」に変換 Conversion law (1): Convert “s1 → s2” to “¬s1∨s2”
なお、ここで、s1、s2は部分論理式又は原子論理式を示す。 Here, s1 and s2 represent partial logical expressions or atomic logical expressions.
否定標準形変換部34は、木構造形式の論理式データから、含意演算子がなくなるまで、論理式データに対して上記の変換法則(1)を適用する処理を繰り返すことで、論理式データから含意演算子を除去し、論理式データ内の論理演算子を論理積、論理和、否定の3種類のみとすることが出来る。
The negative standard
また、否定標準形変換部34は、木構造形式の論理式データに対し、以下に示すような変換法則(2)を適用し、二重否定を含む部分木を、二重否定を含まない(二重否定が除去された)部分木に変換する(図7,図8を参照。なお、図7及び図8は、ぞれぞれ、同一の木構造の論理式データを模式的に示す図及び格納例を示す図である)。この処理は、入力された論理式に含意演算子が含まれ、上述の変換法則(1)の適用(含意演算子の除去処理)により否定(¬)が生じ、この否定が、入力された論理式に元から存在した否定(¬)に係るようになった場合又は含意演算子が含まれていなくても二重否定が含まれている場合に必要となる処理である。従って、入力された論理式データに、含意演算子と否定を含む部分木、又は、二重否定を含む部分木のいずれも含まれない場合は、この変換法則(2)の適用処理は不要である。
Further, the negative normal
変換法則(2):(「¬¬s1」を「s1」に変換) Conversion law (2): ("¬¬s1" is converted to "s1")
なお、ここでs1は部分論理式又は原子論理式を示す。 Here, s1 represents a partial logical formula or an atomic logical formula.
否定標準形変換部34は、木構造形式の論理式データから、二重否定がなくなるまで、論理式データに対して上記の変換法則(2)を適用する処理を繰り返すことで、論理式データから二重否定(冗長な否定の部分木)を除去することが出来る。
The negative standard
また、否定標準形変換部34は、木構造形式の論理式データに対し、以下に示すようなド・モルガンの法則として知られている変換法則(3)、(4)を適用する。これによって、否定標準形変換部34は、論理積の否定及び論理和の否定を含む部分木を、論理積の否定及び論理和の否定を含まない(論理積の否定及び論理和の否定が除去された)部分木に変換する(図9、図10、図11、図12を参照。なお、図9及び図11、図10及び図12は、ぞれぞれ、同一の木構造の論理式データを模式的に示す図及び格納例を示す図である)。具体的には、否定標準形変換部34は、論理積の否定を、論理積の前(左辺)に記述されている論理式の否定と、論理積の後(右辺)に記述されている論理式の否定との論理和に、また、論理和の否定を、論理和の前(左辺)に記述されている論理式の否定と、論理和の後(右辺)に記述されている論理式の否定との論理積に変換する処理を行う。
なお、入力された論理式が否定標準形である場合には、この変換法則(3)、(4)の適用処理は不要である。
Further, the negative standard
Note that when the input logical expression is a negative standard form, the application process of the conversion laws (3) and (4) is not necessary.
変換法則(3): 「¬(s1∧s2)」を「¬s1∨¬s2」に変換
変換法則(4): 「¬(s1∨s2)」を「¬s1∧¬s2」に変換
Conversion law (3): “¬ (s1∧s2)” is converted to “¬s1∨¬s2” Conversion law (4): “¬ (s1∨s2)” is converted to “¬s1∧¬s2”
なお、ここで、s1、s2は部分論理式又は原子論理式を示す。 Here, s1 and s2 represent partial logical expressions or atomic logical expressions.
否定標準形変換部34は、例えば、以下に示すように、ド・モルガンの法則に基づく変換法則を適用可能な部分木が表わす論理積の否定(図13、図15参照。なお、図13及び図15は、それぞれ、同一の木構造の論理式データを模式的に示す図及び格納例を示す図である)を、部分木が表わす2つの論理式の各々の否定の論理和(図14、図16参照。なお、図14及び図16はそれぞれ、同一の木構造の論理式データを模式的に示す図及び格納例を示す図である)に変換する。
For example, as shown below, the negative normal
¬(購入個数>5∧購入個数<10)
⇒¬(購入個数>5)∨¬(購入個数<10)
¬ (Purchased quantity> 5∧Purchased quantity <10)
⇒¬ (Purchase quantity> 5) ∨¬ (Purchase quantity <10)
否定標準形変換部34は、木構造形式の論理式データが、否定が原始論理式のみに係る木構造形式の論理式データに変換されるまで、論理式データに対して上記の変換法則(3)、(4)を適用する処理を繰り返すことで、論理積、論理和、否定を含む論理式を否定標準形に変換することが出来る。
The negative standard
このように、否定標準形変換部34は、木構造形式の論理式データに対し、含意演算子(→)を除去するための変換法則(1)、二重否定を除去するための変換法則(2)、及びド・モルガンの法則に基づく変換法則(3)、(4)を適用する。これによって、否定標準形変換部34は、事前条件を示す木構造形式の論理式データを、否定が原子論理式のみに係り、かつ、論理和又は論理積で結合された形式である否定標準形で表わされる木構造形式の論理式データに変換する。
In this way, the negative normal
また、否定付き不等号除去変換部36は、否定標準形の論理式データに変換された木構造形式の論理式データに対し、以下に示すような変換法則(5)〜(8)を適用し、不等号に係る否定の部分木を、不等号に係る否定を含まない(不等号に係る否定が除去された)部分木に変換する(図17〜図24を参照。なお図17及び図21、図118及び図22、図19及び図23、図20及び図24は、それぞれ、ぞれぞれ、同一の木構造の論理式データを模式的に示す図及び格納例を示す図である)。具体的には、否定付き不等号除去変換部36は、各々、不等号に否定が係っている論理式を、当該不等号と背反の不等号を用いた論理式に変換する。
The inequality sign removal conversion unit with
なお、入力された論理式が、連言標準形又は選言標準形であって、且つ、否定を含まない場合には、この変換法則(5)〜(8)の適用処理は不要である。 In addition, when the input logical formula is a conjunction standard form or a disjunctive standard form and does not include negation, the application process of the conversion laws (5) to (8) is not necessary.
変換法則(5):「¬(a1<a2)」を「a1≧a2」に変換
変換法則(6):「¬(a1≦a2)」を「a1>a2」に変換
変換法則(7):「¬(a1>a2)」を「a1≦a2」に変換
変換法則(8):「¬(a1≧a2)」を「a1<a2」に変換
Conversion law (5): “¬ (a1 <a2)” is converted to “a1 ≧ a2” Conversion conversion law (6): “¬ (a1 ≦ a2)” is converted to “a1> a2” Conversion conversion law (7): Conversion rule “¬ (a1> a2)” to “a1 ≦ a2” (8): Convert “¬ (a1 ≧ a2)” to “a1 <a2”
なお、ここで、a1、a2は部分論理式又は原子論理式を示す。 Here, a1 and a2 represent partial logical expressions or atomic logical expressions.
否定付き不等号除去変換部36は、図25、図27に示すような不等号に係る否定を除去するための変換法則を適用可能な部分木(¬(購入個数>5)、¬(購入個数<10))を、図26、図28に示すような部分木(購入個数≦5、購入個数≧10)に変換する。
The inequality sign removal conversion unit with
否定付き不等号除去変換部36は、この処理を実行することにより、入力された論理式を、否定付きの不等号で示される無効な範囲を示す論理式から、否定のない不等号で示される有効な範囲を示す論理式に変換することが出来る。
The negated inequality sign
境界値制約生成部38は、不等号に係る否定が除去された木構造形式の論理式データに対し、以下に示すような変換法則(9)、(10)を適用する。これによって、境界値制約生成部38は、等号付き不等号演算子を用いた論理式を、等号を用いた論理式と等号なし不等号演算子を用いた論理式との論理和を示す論理式に変換する(図29、図30、図31、図32を参照。なお、図29及び図31、図30及び図32は、それぞれ、ぞれぞれ、同一の木構造の論理式データを模式的に示す図及び格納例を示す図である)。 The boundary value constraint generating unit 38 applies the following conversion laws (9) and (10) to the tree-structured logical expression data from which negation related to the inequality sign is removed. Accordingly, the boundary value constraint generation unit 38 converts the logical expression using the inequality operator with an equal sign to the logical expression using the logical expression using the equal sign and the logical expression using the inequality operator without an equal sign. (See FIGS. 29, 30, 31, and 32. Note that FIGS. 29, 31, 30, and 32 respectively represent logical expression data having the same tree structure. It is the figure which shows typically, and the figure which shows the example of storage.
変換規則(9):「a1≧a2」を「(a1=a2)∨(a1>a2)」に変換
変換規則(10):「a1≦a2」を「(a1=a2)∨(a1<a2)」に変換
Conversion rule (9): “a1 ≧ a2” is changed to “(a1 = a2) ∨ (a1> a2)” Conversion rule (10): “a1 ≦ a2” is changed to “(a1 = a2) ∨ (a1 <a2) )"Conversion to
なお、ここで、a1、a2は部分論理式又は原子論理式を示す。 Here, a1 and a2 represent partial logical expressions or atomic logical expressions.
境界値制約生成部38は、木構造形式の論理式データから、等号付き不等号がなくなるまで、論理式データに対して上記の変換法則(9)及び変換法則(10)を適用する処理を繰り返すことにより、論理式データから等号付き不等号演算子を、等号を用いた論理式と、不等号を用いた論理式との論理和を示す論理式に変換する。 The boundary value constraint generation unit 38 repeats the process of applying the above conversion law (9) and conversion law (10) to the logical expression data until the inequalities with equal signs disappear from the logical expression data in the tree structure format. Thus, the inequality operator with an equal sign is converted from the logical expression data into a logical expression indicating a logical sum of the logical expression using the equal sign and the logical expression using the inequality sign.
境界値制約生成部38は、例えば、図33、図35に示す等号付き不等号を用いた論理式を示す部分木(購入個数≦5、購入個数≧10)を、図34、図36に示す部分木((購入個数=5)∨(購入個数<5)、(購入個数=10)∨(購入個数>10))に変換する。 The boundary value constraint generating unit 38 shows, for example, a subtree (purchased number ≦ 5, purchased number ≧ 10) indicating a logical expression using inequalities with equal signs shown in FIGS. 33 and 35, as shown in FIGS. Convert to subtree ((purchased quantity = 5) ∨ (purchased quantity <5), (purchased quantity = 10) ∨ (purchased quantity> 10)).
ここで、等号を用いた論理式は、入力値に関する上限境界値又は下限境界値を表わす。また、不等号を用いた論理式は、入力値の代表値として上限境界値より小さい値又は下限境界値より大きい値を表わす。 Here, a logical expression using an equal sign represents an upper limit boundary value or a lower limit boundary value related to an input value. A logical expression using an inequality sign represents a value smaller than the upper boundary value or a value larger than the lower boundary value as a representative value of the input value.
境界値制約生成部38は、この処理により、境界値を表わす等号付き不等号で示される論理式を、境界値テストの制約を満たす等号で示される論理式と、代表値を表わす不等号で示される論理式とに分解する変換を行うことが出来る。 By this processing, the boundary value constraint generation unit 38 indicates a logical expression represented by an equal sign with an equal sign representing a boundary value as a logical expression represented by an equal sign satisfying the constraint of the boundary value test and an inequality sign representing a representative value. Can be converted into logical expressions.
なお、境界値テストの制約を満たすデータを得るためには、分解した論理式のうち、等号を用いた論理式のみが得られれば良い。従って、境界値制約生成部38は、等号付き不等号を等号のみに変換するようにしても良い。 In order to obtain data satisfying the boundary value test constraints, it is only necessary to obtain logical expressions using equal signs among the decomposed logical expressions. Therefore, the boundary value constraint generation unit 38 may convert an inequality sign with an equal sign into only an equal sign.
テストデータ生成部40は、境界値制約生成部38によって変換された木構造形式の論理式データに対し、以下に示すような分配法則に基づく変換法則(11)〜(12)を適用し、論理積(∧)と論理和(∨)が連続する部分木のない(宣言標準形)で表わされた木構造形式の論理式データに変換する。具体的には、テストデータ生成部40は、論理積(∧)と論理和(∨)が連続する部分木がなくなるまで、木構造の論理式データに含まれる論理積(∧)と論理和(∨)が連続する部分木を論理積(∧)の2つの下位ノードの内、論理和(∨)として注目していない方のノードと、論理和として注目しているノードの更に下位のノード各々の2つの論理積(∧)の論理和で示される部分木に変換する処理を繰り返し実行する。これによって、テストデータ生成部40は、論理和を含まない論理式を1つの節として複数の節が論理和で結合された形式である選言標準形で表わされた木構造形式の論理式データに変換することが出来る。
The test
変換法則(11):「s1∧(s2∨s3)」を「(s1∧s2)∨(s1∧s3)」に変換
変換法則(12):「(s1∨s2)∧s3」を「(s1∧s3)∨(s2∧s3)」に変換
Conversion law (11): “s1∧ (s2∨s3)” is changed to “(s1∧s2) ∨ (s1∧s3)” Conversion law (12): “(s1∨s2) ∧s3” is changed to “(s1 ∧s3) ∨ (s2∧s3) ”
変換法則(11)〜(12)を適用した変換を、図37、図38、図39、図40に示す。なお、図37及び図39、図38及び図40は、ぞれぞれ、同一の木構造の論理式データを模式的に示す図及び格納例を示す図である。 Conversions to which the conversion rules (11) to (12) are applied are shown in FIGS. 37, 38, 39, and 40. FIG. 37, 39, 38, and 40 are a diagram schematically illustrating logical expression data having the same tree structure and a storage example, respectively.
テストデータ生成部40は、例えば、以下に示すように、木構造形式の論理式データ(図41、図43を参照)を、論理和を含まない複数の論理式が論理和で結合された選言標準形で表わされる木構造形式の論理式データに変換する。
For example, as shown below, the test
((購入個数=5)∨(購入個数<5))∧((住所=”東京”)∨(住所=”埼玉”))
⇒
((購入個数=5)∧(住所=”東京”))∨
((購入個数=5)∧(住所=”埼玉”))∨
((購入個数<5)∧(住所=”東京”))∨
((購入個数<5)∧(住所=”埼玉”))∨
((購入個数=10)∧(住所=”東京”))∨
((購入個数=10)∧(住所=”埼玉”))∨
((購入個数>10)∧(住所=”東京”))∨
((購入個数>10)∧(住所=”埼玉”))
((Purchase quantity = 5) ∨ (Purchase quantity <5)) ∧ ((Address = ”Tokyo”) ∨ (Address = “Saitama”))
⇒
((Purchase quantity = 5) ∧ (Address = "Tokyo")) ∨
((Number purchased = 5) = (Address = “Saitama”)) ∨
((Purchased <5) ∧ (Address = “Tokyo”)) ∨
((Purchase quantity <5) ∧ (address = “Saitama”)) ∨
((Purchase quantity = 10) ∧ (Address = "Tokyo")) ∨
((Purchase quantity = 10) ∧ (Address = "Saitama")) ∨
((Purchased quantity> 10) ∧ (address = “Tokyo”)) ∨
((Purchased quantity> 10) ∧ (Address = “Saitama”))
テストデータ生成部40は、変換した選言標準形で表わされる木構造形式の論理式データを、選言標準形の節(論理和を含まず、かつ、論理積で結合された論理式の部分)ごとに部分木データに分解する。これによって、選言標準形で表わされた事前条件式が、真理値の取り方が一意に定まる複数の事前条件式に分割される。テストデータ生成部40は、分解した各節について、当該節の部分木データを文字列で記述される論理式データに変換して、データ生成用プロパティ記憶部41に記憶する。テストデータ生成部40は、データ生成用プロパティ記憶部41に記憶された各節の論理式データを順に、充足可能性判定部42へ出力する。また、テストデータ生成部40は、充足可能性判定部42から各節について出力された充足解データを、検査対象のソフトウェアに対する入力値の一組のテストデータとして、テストデータ記憶部44に記憶されたテストデータテーブルに節毎に格納する。
The test
充足可能性判定部42は、入力された論理式データが示す制約条件の充足可能性を判定すると共に、制約条件が充足可能であると判定されたときに得られる充足解データを、テストデータ生成部40へ出力する。
The
例えば、以下に示す各節の論理式データが、充足可能性判定部42へ入力されると、図45に示すような、充足解データが各々出力され、複数組のテストデータとして、テストデータ記憶部44に記憶されたテストデータテーブルに格納される。
For example, when logical expression data of each section shown below is input to the
論理式データ1:(購入個数=5)∧(住所=”東京”)
論理式データ2:(購入個数=5)∧(住所=”埼玉”)
論理式データ3:(購入個数<5)∧(住所=”東京”)
論理式データ4:(購入個数<5)∧(住所=”埼玉”)
論理式データ5:(購入個数=10)∧(住所=”東京”)
論理式データ6:(購入個数=10)∧(住所=”埼玉”)
論理式データ7:(購入個数>10)∧(住所=”東京”)
論理式データ8:(購入個数>10)∧(住所=”埼玉”)
Formula data 1: (Purchase quantity = 5) ∧ (Address = "Tokyo")
Formula data 2: (Purchase quantity = 5) ∧ (Address = "Saitama")
Formula data 3: (Purchase quantity <5) ∧ (address = “Tokyo”)
Formula data 4: (Purchase quantity <5) ∧ (address = “Saitama”)
Logical data 5: (Purchase quantity = 10) ∧ (Address = “Tokyo”)
Formula data 6: (Purchase quantity = 10) ∧ (Address = “Saitama”)
Formula data 7: (Purchased quantity> 10) ∧ (address = “Tokyo”)
Formula data 8: (Purchased quantity> 10) ∧ (address = “Saitama”)
テストデータ生成部40は、この処理により、入力値に関する境界値のバリエーションと入力値に関する制約条件のバリエーションとの組合せを全て考慮した複数組のテストデータを生成することが出来る。
By this processing, the test
次に、本実施の形態の作用を説明する。 Next, the operation of the present embodiment will be described.
情報処理装置10に、他の装置から通信インタフェース20を介して、検査対象のソフトウェアの論理的仕様を定める情報であるプロパティが入力され、プロパティ記憶部30に記憶される。プロパティ記憶部30に記憶されているプロパティには、業務仕様が設定されており、業務仕様における事前条件として、検証対象のソフトウェアの入力値に関する制約条件を示す論理式データが含まれている。
A property, which is information that defines the logical specification of the software to be inspected, is input to the
そして、オペレータが、情報処理装置10の操作部(図示省略)を操作して、検証対象のソフトウェアの入力値に関するテストデータの生成を指示する。これによって、情報処理装置10のCPU12によって、HDD18に記憶された図46、47に示すテストデータ生成処理ルーチンを実行するためのプログラムが実行される。
Then, the operator operates an operation unit (not shown) of the
まず、S100において、情報処理装置10が、プロパティ記憶部30から、検証対象のソフトウェアのプロパティを読み込み、プロパティに含まれている制約条件を示す論理式データの論理構造を解析して、論理式データを木構造形式の論理式データへ変換する。論理式木構造生成部32は、「No」の項目に、ノードを識別する番号を格納する。本実施形態では、論理式木構造生成部32は、図3に示す最上位のノードの場合は「0」、最上位の左の枝の先のノードの場合は「1」、最上位の右の枝の先のノードの場合は「2」と、最上位のノードから順次昇順となる番号を格納する。論理式木構造生成部32は、「値」の項目に、ノードに入る値を格納する。本実施形態では、論理式木構造生成部32は、リーフ(末端のノード)にのみ値を格納する。論理式木構造生成部32は、「演算子」の項目に、「含意(→))、「論理和(∨)」、「論理積(∧)」、「否定(¬))、「等号(=)」、「不等号(>、<、≧、≦)))のいずれかの演算子を格納する。また、論理式木構造生成部32は、「左ノード」の項目に左の枝の先のノードのNoを、「右ノード」の項目に右の枝の先のノードのNoを、それぞれ格納する。本実施形態では、論理式木構造生成部32は、先のノードが1つしかない場合には、左ノードの項目にこの先のノードのNoを格納する(図4参照)。
First, in S100, the
なお、論理式木構造生成部32はパーサとして知られる任意の公知のプログラムを、テストデータ生成処理ルーチンを実行するためのプログラムに組み込み、このパーサをCPU12が実行することにより実現可能であり、詳細な説明は割愛する。また、この図3Bに示すデータのレイアウトは一例であり、他の公知の木構造形式のデータレイアウトの利用を妨げるものではない。
The logical expression tree
そして、S102において、情報処理装置10が、含意演算子除去の処理を実行する。
In step S102, the
図18は情報処理装置10による含意演算子除去の処理フローチャートを示す。
FIG. 18 shows a processing flowchart of implication operator removal by the
情報処理装置10は、S201で、図3に示す最上位のノード、つまり図4に示す「No」の項目値が「0」のノードから順に「左ノード」項目値及び「右ノード」項目値に格納されたポインタを辿りながら、「演算子」の項目値が「含意(→)」のノードを検索する。
In S201, the
そして、情報処理装置10は、S202で、S201での検索の結果、「演算子」の項目値が「含意(→)」であるノードが検索出来たか否かを判定する。
Then, in S202, the
否定標準形変換部34は、S202で、検索出来たと判定した場合、S203で、「左ノード」の項目の値をRAM16の図示しない左ノード項目値退避領域に記憶する。
If the negative standard
次に、情報処理装置10は、S204で、RAM16に格納された、このノードの「演算子」の項目値を、「含意」から「論理和」に更新する。
Next, in S204, the
そして、情報処理装置10は、S205で、RAM16に格納された、このノードの「左ノード」の項目値を、「新しい番号」に更新する。例えば、情報処理装置10は、この「新しい番号」として、RAM16のNoの項目の最大値に1加算した値を採用する。なお、RAM16のNoの項目値にまだ格納されていない任意の番号を採用するようにしてもよい。
In step S <b> 205, the
そして、情報処理装置10は、S206で、「No」の項目にS208の処理で用いた「新しい番号」、「演算子」の項目に「否定」、「左ノード」の項目に左ノード項目値退避領域の値をそれぞれ格納した新しいノードのデータを生成し、RAM16に追加格納する。
Then, in S206, the
その後、情報処理装置10は、S201の処理に進む。
Thereafter, the
そして、情報処理装置10は、S201での検索の結果、「演算子」の項目値が「含意(→)」であるノードが検索出来なかったと判定した場合には、含意演算子除去の処理を終了する。 このように、情報処理装置10は、処理対象の木構造の論理式データについて、含意演算子が検索出来なくなるまで、含意演算子除去の処理を繰り返し実行することで、木構造形式の論理式データから、含意演算子を除去することが出来る。
When the
なお、この含意演算子除去の処理フローチャートは一例であって、論理式に含まれる全ての含意演算子について、含意演算子の前(左辺)に記述されている論理式の否定と、含意演算子の後(右辺)に記述されている論理式との論理和に変換する他の任意の処理手順の利用を否定するものではない。 The process flowchart for removing the implication operator is an example. For all the implication operators included in the logical expression, negation of the logical expression described in front of the implication operator (left side) and the implication operator The use of any other processing procedure for converting to a logical sum with the logical expression described after (right side) is not denied.
S106では、情報処理装置10が、含意演算子が除去された木構造形式の論理式データについて、二重否定除去処理を実行する。
In S106, the
図49は、情報処理装置10による二重否定除去の処理フローチャートを示す。
FIG. 49 shows a processing flowchart of double negative removal by the
情報処理装置10は、S301で、図3に示す最上位のノード、つまり図4に示す「No」の項目値が「0」のノードから順に「左ノード」項目値及び「右ノード」項目値に格納されたポインタを辿りながら、「演算子」の項目値が「否定(¬)」であるノードが2つ連続する二重否定の部分木を検索する。
In S301, the
次に、情報処理装置10は、S302で、S301での検索の結果、「演算子」の項目値が「否定(¬)」であるノードが2つ連続する二重否定の部分木が検索出来たか否かを判定する。
Next, in S302, as a result of the search in S301, the
情報処理装置10は、S302で、検索出来たと判定した場合、S303で、検索された部分木の下位のノードの更に下位のノードのNo以外の項目値を取得する。なお、検索された部分木の下位のノードの更に下位のノードとは、つまり上位ノードの演算子項目値及び自ノードの演算子項目値が「否定(¬)」であるノードの「左ノード」の項目値をNoとするノードのことである。また、No以外の項目値とは、「値」、「演算子」、「左ノード」及び「右ノード」の各項目値のことである。
If the
次に、情報処理装置10は、S304で、検索された部分木の上位のノードについてRAM16に格納されたNo以外の各項目値を、S303で取得した各項目値にそれぞれ更新する。
Next, in S304, the
その後、情報処理装置10は、S301の処理に進む。
Thereafter, the
そして、情報処理装置10は、S301での検索の結果、「演算子」の項目値が「否定(¬)」であるノードが2つ連続する二重否定の部分木が検索出来なかったと判定した場合には、二重否定除去の処理を終了する。
Then, as a result of the search in S301, the
このように、情報処理装置10は、処理対象の木構造の論理式データについて、二重否定が検索出来なくなるまで、二重否定除去の処理を繰り返し実行することで、木構造形式の論理式データから、二重否定を除去することが出来る。
In this way, the
なお、この二重否定除去の処理フローチャートは一例であって、論理式に含まれる全ての二重否定を除去する他の任意の処理手順の利用を否定するものではない。 Note that this double negation removal process flowchart is an example, and does not deny the use of any other processing procedure that removes all double negations included in the logical expression.
S110では、情報処理装置10が、全ての二重否定が除去された木構造形式の論理式データについて、ド・モルガンの法則に基づく論理式の否定標準形への変換の処理を実行する。
In S110, the
図50は情報処理装置10によるド・モルガンの法則に基づく論理式の否定標準形への変換の処理フローチャートを示す。
FIG. 50 shows a processing flowchart of conversion of a logical expression to a negative standard form based on De Morgan's law by the
情報処理装置10は、S401で、図3、図13に示す最上位のノード、つまり図3Bに示す「No」の項目値が「0」のノードから順に、「左ノード」項目値及び「右ノード」項目値に格納されたポインタを辿りながら、「演算子」の項目値が「否定(→)」のノードと論理演算子(「論理和(∨)」又は「論理積(∧)」)であるノードが連続する部分木を検索する。
In S401, the
次に、情報処理装置10は、S402で、S401での検索の結果、「演算子」の項目値が「否定(→)」のノードと、「演算子」の項目値が論理演算子(「論理和」または「論理積」)であるノードとが連続する部分木が検索出来たか否かを判定する。
Next, in S402, as a result of the search in S401, the
情報処理装置10は、S402で、検索出来たと判定した場合、S403で、演算子項目値は「論理和(∨)」か否かを判定する。
If the
情報処理装置10は、S403で「論理和(∨)」であると判定すると、S404で、検索された部分木の上位のノード、つまり演算子が「否定(¬)」のノードについて、RAM16に格納された「演算子」の項目値を「否定(¬)」から「論理積(∧)」に更新する。
If the
一方、情報処理装置10は、S403で「論理和(∨)」でないと判定すると、S405で、検索された部分木の上位のノード、つまり演算子が「否定(¬)」のノードについて、RAM16に格納された「演算子」の項目値を「否定(¬)」から「論理和(∨)」に更新する。
On the other hand, if the
なお、上記S403の説明では論理和か否かを判定することとしたが、論理積か否かを判定することにしても良い。この場合には、論理積であると判定した場合にS405の処理を行い、論理積でないと判定した場合にS404の処理を行うようにすれば良い。 In the above description of S403, it is determined whether or not a logical sum, but it may be determined whether or not it is a logical product. In this case, the process of S405 may be performed when it is determined that it is a logical product, and the process of S404 may be performed when it is determined that it is not a logical product.
情報処理装置10は、S404又はS405の処理が終わると、S406の処理に進み、S406で、検索された部分木の下位ノード、つまり演算子が論理演算子(「論理和(∨)」又は「論理積(∧)」)のノードの「左ノード」及び「右ノード」の項目値を取得する。
When the processing of S404 or S405 is completed, the
情報処理装置10は、S407で、S404又はS405で処理した上位ノードの「左ノード」及び「右ノード」の項目値をそれぞれ「新しい番号」に更新する。例えば、情報処理装置10は、この「左ノード」の「新しい番号」として、RAM16のNoの項目の最大値に1加算した値、「右ノード」の「新しい番号」として、この「左ノード」の「新しい番号」に更に1加算した値を格納する。なお、RAM16のNoの項目値にまだ格納されていない任意の番号をそれぞれ格納するようにしてもよい。
In S407, the
情報処理装置10は、S408で、「No」の項目にはS407で上位ノードの「左ノード」の項目に格納した「新しい番号」を、「演算子」の項目には「否定」を、「左ノード」の項目にはS406で取得した「左ノード」の項目値を、それぞれ格納した新しいノードのデータを生成し、RAM16に追加格納する。
In S <b> 408, the
また、情報処理装置10は、S409で、「No」の項目にはS406で上位ノードの「右ノード」の項目に格納した「新しい番号」を、「演算子」の項目には「否定」を、「左ノード」の項目にはS406で取得した「右ノード」の項目値を、それぞれ格納した新しいノードのデータを生成し、RAM16に追加格納する。
Further, in S409, the
その後、情報処理装置10は、S401の処理に進む。
Thereafter, the
そして、情報処理装置10は、S401での検索の結果、「演算子」の項目値が「否定(→)」のノードと、「演算子」の項目値が論理演算子(「論理和」または「論理積」)であるノードとが連続する部分木が検索出来なかったと判定した場合には、ド・モルガンの法則に基づく論理式の否定標準形への変換の処理を終了する。
Then, as a result of the search in S401, the
このように、情報処理装置10は、処理対象の木構造の論理式データについて、「演算子」の項目値が「否定(→)」のノードと論理演算子(「論理和(∨)」又は「論理積(∧)」)であるノードが連続する部分木が検索出来なくなるまで、ド・モルガンの法則に基づく論理式の否定標準形への変換の処理を繰り返し実行する。否定標準形変換部34は、この処理を実行することにより、論理積、論理和、否定を含む木構造形式の論理式データを、該論理式データに含まれる否定が原子論理式のみに係る否定標準形の論理式データに変換することが出来る。
In this way, the
なお、このド・モルガンの法則に基づく論理式の否定標準形への変換の処理フローチャートは一例であって、論理積、論理和及び否定以外の論理演算子を含まない論理式を否定標準形に変換可能な他の任意の処理手順の利用を否定するものではない。 Note that the processing flow chart for converting a logical expression to the negative standard form based on De Morgan's law is an example, and a logical expression that does not include logical operators other than logical product, logical sum, and negation is converted to a negative standard form. Use of any other process procedure that can be converted is not denied.
上記のS102〜S110(図48から図50)の処理によって、木構造形式の論理式データが表す論理式が、否定標準形の論理式に変換される。 Through the processes of S102 to S110 (FIGS. 48 to 50), the logical expression represented by the logical structure data in the tree structure format is converted into a negative standard logical expression.
S114では、情報処理装置10が、否定標準形に変換された木構造形式の論理式データについて、不等号に係る否定の除去の処理を実行する。図51は情報処理装置10による不等号に係る否定の除去の処理フローチャートを示す。
In S <b> 114, the
否定付き情報処理装置10は、S501で、図14、図25に示す最上位のノード、つまり図16、図27に示す「No」の項目値が「0」のノードから順に「左ノード」項目値及び「右ノード」項目値に格納されたポインタを辿りながら、「演算子」の項目値が「否定(¬)」であるノードと、「演算子」の項目値が不等号(不等号(<、>)及び等号付き不等号(≦、≧)の内のいずれか)であるノードとが連続する、否定つき不等号の部分木を検索する。
In S501, the
次に、情報処理装置10は、S502で、S501での検索の結果、「演算子」の項目値が「否定(¬)」であるノードと、「演算子」の項目値が不等号(不等号(<、>)及び等号付き不等号(≦、≧)の内のいずれか)であるノードとが連続する、否定つき不等号の部分木が検索出来たか否かを判定する。
Next, in S502, the
情報処理装置10は、S502で、検索出来たと判定した場合、S503で、検索された部分木の下位ノード、つまり演算子が不等号(不等号(<、>)及び等号付き不等号(≦、≧)の内のいずれか)であるノードについて、演算子項目値の「不等号」は「等号付き不等号(≧または≦)」であるか否かを判定する。
If the
情報処理装置10は、S503で「等号付き不等号(≧または≦)」であると判定すると、S504で、検索された部分木の上位ノード、つまり演算子が「否定(¬)」であるノードについて、RAM16に格納された、「演算子」の項目値を、「否定(¬)」から、このノードの下位ノードの「演算子」の項目値である「等号付き不等号(≧または≦)」と背反となる「等号なし且つ逆向きの不等号(<または>)」に更新する。つまり、否定標準形変換部34は、RAM16に格納された下位ノードの「演算子」の項目値が「≧」である場合には上位ノードの「演算子」の項目値を「<」、下位ノードの「演算子」の項目値が「≦」である場合には上位ノードの「演算子」の項目値を「>」にそれぞれ更新する。
If the
一方、情報処理装置10は、S503で「等号付き不等号(≧または≦)」でないと判定すると、S504で、検索された部分木の上位ノード、つまり演算子が「否定(¬)」であるノードについて、RAM16に格納された、「演算子」の項目値を、「否定(¬)」から、このノードの下位ノードの「演算子」の項目値である「等号なし不等号(>または<)」と背反となる「等号なし且つ逆向きの不等号(≦または≧)」に更新する。つまり、否定標準形変換部34は、検索された部分木について、RAM16に格納された、下位ノードの「演算子」の項目値が「>」である場合には上位ノードの「演算子」の項目値を「≦」、下位ノードの「演算子」の項目値が「<」である場合には上位ノードの「演算子」の項目値を「≧」にそれぞれ更新する。
On the other hand, if the
なお、上記S503の説明では等号付き不等号か否かを判定することとしたが、統合なし不等号か否かを判定することにしても良い。この場合には、等号なし不等号であると判定した場合にS505の処理を行い、等号なし不等号でないと判定した場合にS504の処理を行うようにすれば良い。 In the above description of S503, it is determined whether or not it is an inequality sign with an equal sign, but it may be determined whether or not it is an inequality sign without integration. In this case, the process of S505 may be performed when it is determined that the inequality sign has no equal sign, and the process of S504 may be performed when it is determined that the inequality sign has no equal sign.
情報処理装置10は、S504又はS505の処理が終わると、S506の処理に進み、検索された部分木の下位ノードの「左ノード」及び「右ノード」の項目値をそれぞれ取得する。
When the process of S504 or S505 ends, the
そして、情報処理装置10は、S507で、RAM16に格納された、検索された部分木の上位ノードの「左ノード」及び「右ノード」の項目値を、S506で取得した「左ノード」及び「右ノード」の項目値にそれぞれ更新する。
In step S507, the
その後、情報処理装置10は、S501の処理に進む。
Thereafter, the
そして、情報処理装置10は、S501での検索の結果、「演算子」の項目値が「否定(¬)」であるノードと、「演算子」の項目値が不等号(不等号(<、>)及び等号付き不等号(≦、≧)の内のいずれか)であるノードとが連続する、否定つき不等号の部分木が検索出来なかったと判定した場合には、不等号に係る否定の除去の処理を終了する。
Then, as a result of the search in S501, the
このように、情報処理装置10は、処理対象の木構造の論理式データについて、「演算子」の項目値が「否定(¬)」であるノードと、「演算子」の項目値が不等号(不等号(<、>)及び等号付き不等号(≦、≧)の内のいずれか)であるノードとが連続する、否定つき不等号の部分木が検索出来なくなるまで、不等号に係る否定の除去の処理を繰り返し実行することで、木構造形式の論理式データから、不等号に係る否定を除去することが出来る。
In this way, the
なお、この否定付き不等号除去の処理フローチャートは一例であって、論理式に含まれる全ての否定付き不等号を除去する他の任意の処理手順の利用を否定するものではない。 Note that this processing flowchart for removing inequality with negation is an example, and does not deny the use of any other processing procedure that removes all inequality with negation included in a logical expression.
S118では、情報処理装置10が、不等号に係る否定が全て除去された木構造形式の論理式データから、等号付き不等号演算子を除去するための変換法則を適用可能な部分木が存在するか否かを判定する。
In S <b> 118, is there a subtree to which the
図52は境界値制約生成部38による等号付き不等号の変換の処理フローチャートを示す。 FIG. 52 shows a processing flowchart of conversion of an inequality sign with an equal sign by the boundary value constraint generation unit 38.
境界値制約生成部38は、S601で、図26、図33に示す最上位のノード、つまり図28、図35に示す「No」の項目値が「0」のノードから順に「左ノード」項目値及び「右ノード」項目値に格納されたポインタを辿りながら、「演算子」の項目値が「等号付き不等号(≦または≧)」であるノードを検索する。 In step S601, the boundary value constraint generating unit 38 selects “left node” items in order from the highest node shown in FIGS. 26 and 33, that is, the node whose item value “No” is “0” shown in FIGS. The node in which the item value of “operator” is “inequality sign with equal sign (≦ or ≧)” is searched while following the value and the pointer stored in the “right node” item value.
次に、境界値制約生成部38は、S602で、S601での検索の結果、「演算子」の項目値が「等号付き不等号(≦または≧)」であるノードが検索出来たか否かを判定する。 Next, in S602, the boundary value constraint generating unit 38 determines whether or not a node whose item value of “operator” is “equal sign with equal sign (≦ or ≧)” has been searched as a result of the search in S601. judge.
境界値制約生成部38は、S602で、検索出来たと判定した場合、S603で、RAM16に格納された、検索されたノードの演算子の項目値を「等号付き不等号」から「論理和(∨)」に更新する。
If the boundary value constraint generating unit 38 determines in S602 that the search has been completed, in S603, the item value of the operator of the searched node stored in the
次に、境界値制約生成部38は、S604で、検索されたノードの「左ノード」及び「右ノード」の項目値をRAM16の図示しない左ノード項目値退避領域及び右ノード項目値退避領域に格納する。
Next, in S604, the boundary value constraint generating unit 38 sets the item values of the “left node” and “right node” of the searched nodes in the left node item value saving area and the right node item value saving area (not shown) of the
そして、境界値制約生成部38は、S605で、検索されたノードの「左ノード」及び「右ノード」の項目にそれぞれ「新しい番号」を格納する。例えば、境界値制約生成部38は、この「左ノード」の「新しい番号」として、RAM16のNoの項目の最大値に1加算した値、「右ノード」の「新しい番号」として、この「左ノード」の「新しい番号」に更に1加算した値を格納する。なお、RAM16のNoの項目値にまだ格納されていない任意の番号をそれぞれ格納するようにしてもよい。
In step S605, the boundary value constraint generation unit 38 stores “new numbers” in the “left node” and “right node” items of the searched nodes. For example, the boundary value constraint generation unit 38 adds 1 to the maximum value of the No item in the
そして、境界値制約生成部38は、S606で、「No」の項目にはS605で「左ノード」の項目に設定した「新しい番号」を、「演算子」の項目には「等号なし不等号」を、「左ノード」の項目にはRAM16の左ノード項目値退避領域の値を、「右ノード」の項目にはRAM16の右ノード項目値退避領域の値を、それぞれ設定した設定した新しいノードのデータを生成し、RAM16に追加格納する。つまり、境界値制約生成部38は、「演算子」の項目値が「≦」である場合には「<」、「≧」である場合には「>」を格納する。
Then, in S606, the boundary value constraint generating unit 38 sets “new number” set in the “left node” item in S605 for the “No” item and “equal sign without equal sign” for the “operator” item. ”, The left node item value save area value of the
また、境界値制約生成部38は、S607で、「No」の項目にはS605で「右ノード」の項目に設定した「新しい番号」を、「演算子」の項目には「等号」を、「左ノード」の項目にはRAM16の左ノード項目値退避領域の値を、「右ノード」の項目にはRAM16の右ノード項目値退避領域の値を、それぞれ設定した設定した新しいノードのデータを生成し、RAM16に追加格納する。
Further, in S607, the boundary value constraint generating unit 38 sets “No” to the “new number” set in the “right node” item in S605 and “equal sign” to the “operator” item. , The value of the left node item value saving area of the
なお、S606とS607の処理はいずれが先であっても良い。また、この等号付き不等号の変換の処理フローチャートは一例であって、論理式に含まれる全ての等号付き不等号を等号と不等号の論理式の論理和に変換する他の任意の処理手順の利用を否定するものではない。また、境界値制約を満たす解のみが得られれば良い場合には、境界値制約生成部38は、S604からS607の処理に代わり、検索されたノードの「演算子」の項目値を「等号付き不等号(≦または≧)」から「等号(=)」に更新する処理のみを行うようにしても良い。 Note that either of the processes of S606 and S607 may be performed first. The processing flowchart of conversion of inequality signs with equal signs is an example, and any other processing procedure for converting all inequality signs with equal signs contained in a logical expression into a logical sum of logical expressions of equal signs and inequality signs. Use is not denied. If only a solution satisfying the boundary value constraint needs to be obtained, the boundary value constraint generation unit 38 replaces the processing of S604 to S607 with the item value of the “operator” of the searched node as “equal sign”. Only the process of updating from “not equal sign (≦ or ≧)” to “equal sign (=)” may be performed.
その後、境界値制約生成部38は、S601の処理に進む。 Thereafter, the boundary value constraint generating unit 38 proceeds to the process of S601.
そして、否定標準形変換部34は、S601での検索の結果、が検索出来なかったと判定した場合には、等号付き不等号の変換の処理を終了する。
If the negative standard
このように、境界値制約生成部38は、処理対象の論理式データについて、等号付き不等号が検索出来なくなるまで、等号付き不等号の変換の処理を繰り返し実行することで、等号付き不等号演算子を用いた論理式を分解する。境界値制約生成部38は、等号付き不等号演算子を用いた論理式を、等号を用いた論理式と、不等号を用いた論理式とに分解する。ここで、等号を用いた論理式は、入力値に関する上限境界値又は下限境界値を表わす。また、不等号を用いた論理式は、入力値の代表値として上限境界値より小さい値又は下限境界値より大きい値を表わす。つまり、境界値テストの制約を満たすデータを得るためには、分解した論理式のうち、等号を用いた論理式のみが得られれば良い。従って、境界値制約生成部38は、上述の通り、等号付き不等号を等号のみに変換するようにしても良い。 In this way, the boundary value constraint generation unit 38 repeatedly performs the inequality operation with equal sign by repeatedly executing the conversion of the inequality with equal sign until the inequality with equal sign cannot be searched for the logical expression data to be processed. Decompose logical expressions using children. The boundary value constraint generation unit 38 decomposes a logical expression using an inequality operator with an equal sign into a logical expression using an equal sign and a logical expression using an inequality sign. Here, a logical expression using an equal sign represents an upper limit boundary value or a lower limit boundary value related to an input value. A logical expression using an inequality sign represents a value smaller than the upper boundary value or a value larger than the lower boundary value as a representative value of the input value. That is, in order to obtain data satisfying the boundary value test constraints, it is only necessary to obtain logical expressions using equal signs among the decomposed logical expressions. Therefore, the boundary value constraint generating unit 38 may convert an inequality sign with an equal sign to only an equal sign as described above.
S122では、情報処理装置10が、全ての等号付き不等号演算子が除去された木構造形式の論理式データについて、選言標準形への変換の処理を実行する。
図53はテストデータ生成部40による選言標準形への変換の処理フローチャートを示す。
In S122, the
FIG. 53 shows a processing flowchart of the conversion to the disjunctive standard form by the test
テストデータ生成部40は、S701で、図34、図41に示す最上位のノード、つまり図36、図43に示す「No」の項目値が「0」のノードから順に「左ノード」項目値及び「右ノード」項目値に格納されたポインタを辿りながら、「演算子」の項目値が「論理積(∧)」であるノードと、「演算子」の項目値が「論理和(∨)」であるノードが連続する部分木を検索する。
In S701, the test
次に、テストデータ生成部40は、S702で、S701での検索の結果、「演算子」の項目値が「論理積(∧)」であるノードと、「演算子」の項目値が「論理和(∨)」であるノードが連続する部分木が検索出来たか否かを判定する。
Next, in step S <b> 702, the test
テストデータ生成部40は、S702で、検索出来たと判定した場合、S703で、RAM16に格納された、検索された部分木の上位のノードつまり「演算子」の項目値が「論理積(∧)」であるノードの、「演算子」の項目値を、「論理積(∧)」から「論理和(∨)」に更新する。
If the test
次に、テストデータ生成部40は、S704で、検索された部分木の上位のノードの「左ノード」及び「右ノード」の項目値を、RAM16の図示しない左ノード項目値退避領域及び右ノード項目値退避領域にそれぞれ格納する。
Next, in step S704, the test
次に、テストデータ生成部40は、S705で、検索された部分木の上位のノードの「左ノード」及び「右ノード」の項目値を、それぞれ「新しい番号」に更新する。例えば、テストデータ生成部40は、この「左ノード」の「新しい番号」として、RAM16のNoの項目の最大値に1加算した値、「右ノード」の「新しい番号」として、この「左ノード」の「新しい番号」に更に1加算した値を格納する。なお、RAM16のNoの項目値にまだ格納されていない任意の番号をそれぞれ格納するようにしてもよい。
Next, in step S <b> 705, the test
次に、テストデータ生成部40は、S706で、検索された部分木の下位のノード、つまり、「演算子」の項目値が「論理和」のノードの「左ノード」及び「右ノード」の項目値を取得する。
Next, in step S706, the test
そして、テストデータ生成部40は、S707で、検索された部分木の下位ノードのNoの項目値は左ノード項目値退避領域の値と一致するか否かを判定する。
In step S707, the test
テストデータ生成部40は、S707で、一致すると判定した場合、S708で、「No」の項目にはS705で上位ノードの「左ノード」に格納した「新しい番号」を、「演算子」の項目には「論理積(∧)」を、「左ノード」の項目にはS706で取得した下位ノードの「左ノード」の項目値を、「右ノード」の項目にはRAM16の左ノード項目値退避領域の値を、それぞれ格納した新しいノードのデータを生成し、RAM16に追加格納する。
If the test
また、テストデータ生成部40は、S709で、「No」の項目にはS705で上位ノードの「右ノード」に格納した「新しい番号」を、「演算子」の項目には「論理積(∧)」を、「左ノード」の項目にはS706で取得した下位ノードの「右ノード」の項目値を、「右ノード」の項目にはRAM16の左ノード項目値退避領域の値を、それぞれ格納した新しいノードのデータを生成し、RAM16に追加格納する。
Further, in S709, the test
一方、テストデータ生成部40は、S707で、一致しないと判定した場合、S710で、「No」の項目にはS705で上位ノードの「左ノード」に格納した「新しい番号」を、「演算子」の項目には「論理積(∧)」を、「左ノード」の項目にはRAM16の左ノード項目値退避領域の値を、「右ノード」の項目にはS706で取得した下位ノードの「左ノード」の項目値を、それぞれ格納した新しいノードのデータを生成し、RAM16に追加格納する。
On the other hand, if the test
また、テストデータ生成部40は、S711で、「No」の項目にはS705で上位ノードの「右ノード」に格納した「新しい番号」を、「演算子」の項目には「論理積(∧)」を、「左ノード」の項目にはRAM16の左ノード項目値退避領域の値を、「右ノード」の項目にはS706で取得した下位ノードの「右ノード」の項目値を、それぞれ格納した新しいノードのデータを生成し、RAM16に追加格納する。
Further, in S711, the test
その後、否定標準形変換部34は、S701の処理に進む。
Thereafter, the negative standard
そして、否定標準形変換部34は、S701での検索の結果、「演算子」の項目値が「論理積(∧)」であるノードと、「演算子」の項目値が「論理和(∨)」であるノードが連続する部分木が検索出来なかったと判定した場合には、選言標準形への変換の処理を終了し、図47に示すS126の処理に進む。
Then, as a result of the search in S701, the negative standard
上記のS122(図53)の処理によって、木構造形式の論理式データが表す否定標準形の論理式が、選言標準形の論理式に変換される。 Through the processing in S122 (FIG. 53), the negative standard form logical expression represented by the logical structure data in the tree structure format is converted into the disjunctive standard form logical expression.
図41及び図43に示す論理式データについて、S703からS709の処理を1回実行した後の論理式データの例を図42及び図44に示す。この図に示すように、木構造の論理式データに含まれる論理積(∧)と論理和(∨)が連続する部分木を論理積(∧)の2つの下位ノードの内、論理和(∨)として注目していない方のノードと、論理和として注目しているノードの更に下位のノード各々の2つの論理積(∧)の論理和で示される部分木に変換する処理を、この論理式データから論理積(∧)と論理和(∨)が連続する部分木がなくなるまで繰り返すことにより、選言標準形の論理式に変換することが出来る。 42 and 44 show examples of logical formula data after the processing of S703 to S709 is executed once for the logical formula data shown in FIGS. As shown in this figure, a subtree in which a logical product (∧) and a logical sum (∨) included in the logical data of a tree structure are obtained by subtracting a logical sum (∨) from two lower nodes of the logical product (∧). ) And a process of converting into a subtree represented by the logical sum of two logical products (∧) of the node not focused on as a logical sum and the lower-order nodes of the node focused on as a logical sum. By repeating until the subtree in which the logical product (∧) and the logical sum (連 続) are continuous from the data is eliminated, it can be converted into a disjunctive standard logical expression.
図47の説明に戻って、図47のS126では、情報処理装置10が、選言標準形の論理式を表わす木構造形式の論理式データを、選言標準形の節毎の部分木データに分割する。そして、S128において、情報処理装置10が、各節の部分木データを、各節の論理式を示す文字列データに変換してデータ生成用プロパティ記憶部41に記憶する。
Returning to the description of FIG. 47, in S126 of FIG. 47, the
次のS130では、情報処理装置10が、データ生成用プロパティ記憶部41から、1つの節の論理式を示す文字列データを取得し、S132において、情報処理装置10が、取得した1つの節の論理式を示す文字列データを、充足可能性判定部42へ出力する。このとき、充足可能性判定部42は、入力された文字列データが示す論理式(制約条件)の充足可能性を判定すると共に、充足解データを求めて出力する。
In next S130, the
そして、S134において、情報処理装置10が、充足可能性判定部42から出力された充足解データを取得し、充足解データを一組のテストデータとして、テストデータ記憶部44のテストデータテーブルに格納する。
In step S134, the
次のS136では、情報処理装置10が、選言標準形の論理式の全ての節について、上記S130〜S134の処理が実行されたか否かを判定する。上記S130〜S134の処理が実行されていない節が存在すると判定された場合には、情報処理装置10は、上記S130へ戻り、未処理の節について、上記S130〜S134の処理を実行する。一方、全ての節について、上記S130〜S134の処理が実行されたと判定された場合には、情報処理装置10が、テストデータ生成処理ルーチンを終了する。
In next step S136, the
そして、オペレータが、テストデータ記憶部44に記憶されたテストデータテーブルを用いて、情報処理装置10又は他の装置に、検査対象のソフトウェアの検査プログラムを実行させて、検査対象のソフトウェアの検査処理を行わせる。
Then, using the test data table stored in the test
以上説明したように、本実施の形態に係る情報処理装置10は、検査対象のソフトウェアの入力値に関する制約条件を示す論理式データにおいて、等号付き不等号の論理式を、等号を用いた論理式に変換する。そしてこの論理式を選言標準形となるように変換して、選言標準形に変換した論理式の各節をそれぞれSMTソルバに入力する論理式として出力する。そして、情報処理装置10は、各節の論理式の充足解データを得ることにより、入力値に関する境界値テストを考慮したテストデータを生成することが出来る。
As described above, the
また、本実施の形態に係る情報処理装置10は、業務仕様を満たし、且つ、境界値テストが可能なテストデータを自動的に生成することが出来る。
In addition, the
本実施の形態に係る情報処理装置10は、入力値に関する境界値のバリエーションと入力値に関する制約条件のバリエーションとの組合せを全て考慮した複数組のテストデータを生成することが出来る。また、情報処理装置10は、テストを意識しない業務仕様記述から、より現実的なテストデータを生成することが出来る。
The
また、境界値制約生成部38は、等号付き不等号演算子を、入力値に関する制約条件を示す論理式内に発見した場合、当該論理式を、ソフトウェアテストにおける経験則的な境界値テストのための論理式と入力値の代表値に関するテストのための論理式とに分解する。これによって、情報処理装置10は、代表値をテストするためのテストデータを生成すると共に、上界境界値又は下界境界値をテストするためのテストデータを生成することが出来る。
In addition, when the boundary value constraint generating unit 38 finds an inequality operator with an equal sign in a logical expression indicating a constraint condition related to an input value, the boundary value constraint generation unit 38 uses the logical expression for an empirical boundary value test in a software test. And a logical expression for testing a representative value of the input value. Thereby, the
なお、上記の実施の形態では、1つの情報処理装置で、テストデータを生成する処理と、充足可能性の判定処理とを行う場合を例に説明したが、これに限定されるものではない。例えば、テストデータを生成する処理を行う情報処理装置10とは別の情報処理装置が、充足可能性の判定処理を行うようにしてもよい。この場合には、情報処理装置10は、変換した選言標準形の論理式データの各節について、当該節の論理式を示す文字列データを、充足可能性の判定処理を行う他の情報処理装置へ出力し、当該他の情報処理装置から、充足解データを取得する。
In the above-described embodiment, the case where the process of generating test data and the determination process of satisfiability are performed by one information processing apparatus is described as an example, but the present invention is not limited to this. For example, an information processing apparatus different from the
また、情報処理装置10は、テストデータ生成処理ルーチンを実行するためのプログラムとは別のプログラムによって、充足可能性の判定処理を実行する場合を例に説明したが、これに限定されるものではない。情報処理装置10は、テストデータ生成処理ルーチンを実行するためのプログラムにより、テストデータを生成する処理と、充足可能性の判定処理とを行うようにしてもよい。
Further, although the
また、情報処理装置10は、含意演算子除去のための変換法則、二重否定除去のための変換法則、及びド・モルガンの法則に基づく変換法則を順に論理式データに適用する場合を例に説明したが、これに限定されるものではない。情報処理装置10は、論理式データに対して、他の順序(例えば、二重否定除去のための変換法則、含意演算子除去のための変換法則、及びド・モルガンの法則に基づく変換法則の順)で、上記の変換法則を適用してもよい。この場合には、情報処理装置10は、論理式データが、否定標準形の論理式データに変換されるまで、上記の変換法則を繰り返し適用すればよい。
In addition, the
また、情報処理装置10は、検査対象のソフトウェアの入力値に関する制約条件を示す論理式データに基づいて、テストデータを生成する場合を例に説明したが、これに限定されるものではない。例えば、情報処理装置10は、ソフトウェアのモジュール部分を、検査対象として、検査対象のモジュール部分の入力値に関する制約条件を示す論理式データに基づいて、モジュール部分の入力値に関するテストデータを生成するようにしてもよい。
Further, although the
また、情報処理装置10は、ハードウェアの機構に関して、特に限定されない。上記では、テストデータ生成処理ルーチンを実行するためのプログラムが、HDD18に記憶されている態様を説明したが、当該プログラムは、CD−ROMやDVD−ROM、USBメモリ等の可搬型の記録媒体に記憶されている形態で提供することも可能である。例えば、図54に示すように、テストデータ生成処理ルーチンを実行するためのプログラムを記憶した、CD−ROMやDVD−ROM、USBメモリ等の記録媒体52が、情報処理装置10のドライブ装置50にセットされる。そして、テストデータ生成処理ルーチンを実行するためのプログラムが、記録媒体52からドライブ装置50を介して、HDD18にインストールされる。
The
10 情報処理装置
12 CPU
14 ROM
16 RAM
18 HDD
30 プロパティ記憶部
32 論理式木構造生成部
34 否定標準形変換部
36 不等号除去変換部
38 境界値制約生成部
40 テストデータ生成部
41 データ生成用プロパティ記憶部
42 充足可能性判定部
44 テストデータ記憶部
10
14 ROM
16 RAM
18 HDD
30
Claims (10)
検査対象のソフトウェアの入力値に関する制約条件を示す論理式のデータが記憶された記憶部を参照して、前記論理式のデータに、等号付き不等号が含まれるか否かを判定し、
前記判定において含まれると判定した場合に、前記記憶部に記憶された前記等号付き不等号を等号に変換する
処理を実行させることを特徴とする論理式変換プログラム。 On the computer,
With reference to the storage unit in which the data of the logical expression indicating the constraint condition regarding the input value of the software to be inspected is stored, it is determined whether the logical expression data includes an inequality sign with an equal sign,
A logical expression conversion program that causes a process of converting the inequalities with an equal sign stored in the storage unit into equal signs when it is determined to be included in the determination.
前記判定において含まれると判定した場合に、前記記憶部に記憶された前記等号付き不等号で示される論理式を、前記等号付き不等号を等号に変換した論理式と、前記等号付き不等号を不等号に変換した論理式との論理和で示される論理式のデータに変換する
処理を実行させることを特徴とする請求項1記載の論理式変換プログラム。 When it is determined that the computer is included in the determination, the logical expression indicated by the inequality with equal sign stored in the storage unit, the logical expression obtained by converting the inequality with equal sign to the equal sign, and the like The logical expression conversion program according to claim 1, wherein the logical expression conversion program executes a process of converting an inequality with a sign into data of a logical expression represented by a logical sum with a logical expression converted to an inequality sign.
前記判定において前記否定が係る不等号が含まれると判定した場合に、前記記憶部に記憶された前記否定が係る不等号で示される論理式を、前記不等号と背反となる不等号で示される論理式のデータに変換する
処理を前記コンピュータに実行させることを特徴とする請求項1又は2記載の論理式変換プログラム。 Further determine whether the logical expression includes an inequality sign that negates,
When it is determined in the determination that the inequality sign that the negation is included is included, the logical expression indicated by the inequality sign that is negative and stored in the storage unit is the data of the logical expression indicated by the inequality sign contrary to the inequality sign The logical expression conversion program according to claim 1, wherein the computer is caused to execute a process of converting into a logical expression.
前記判定において前記否定が係る論理積が含まれると判定した場合に、前記記憶部に記憶された前記否定が係る論理積で示される論理式のデータを、前記論理積の左辺及び右辺の論理式に各々否定が係る論理式及び該否定が係る論理式のうちの一方を左辺、他方を右辺とする論理和で示される論理式のデータに変換する
処理を前記コンピュータに実行させることを特徴とする請求項1から3のいずれかに記載の論理式変換プログラム。 Determine whether the logical expression includes a logical product related to negation,
When it is determined that the logical product related to the negation is included in the determination, the logical formula data indicated by the logical product related to the negation stored in the storage unit is expressed by logical formulas on the left side and the right side of the logical product. Each of which is converted into data of a logical expression represented by a logical sum having one of the logical expressions related to negation and the logical expression related to the negation as the left side and the other as the right side. The logical expression conversion program according to claim 1.
前記判定において前記否定が係る論理和が含まれると判定した場合に、前記記憶部に記憶された前記否定が係る論理和で示される論理式のデータを、前記論理和演算子の左辺及び右辺の論理式の各々に否定が係り、該否定が係る論理式のうちの一方を左辺、他方を右辺とする論理積で示される論理式のデータに変換する
処理を前記コンピュータに実行させることを特徴とする請求項1から4のいずれかに記載の論理式変換プログラム。 Determining whether the logical expression includes a logical sum related to negation;
When it is determined in the determination that the logical sum related to the negation is included, the data of the logical expression indicated by the logical sum related to the negation stored in the storage unit is stored in the left side and the right side of the logical sum operator. Each of the logical expressions is negated, and the computer is caused to execute a process of converting into data of a logical expression represented by a logical product having one of the logical expressions related to the negation as the left side and the other as the right side. The logical expression conversion program according to any one of claims 1 to 4.
前記判定において前記含意が含まれると判定した場合に、前記記憶部に記憶された前記含意で示される論理式のデータを、前記含意の左辺の論理式に否定が付いた第1の論理式と、前記第1の論理式と、前記含意の右辺のうち、一方を左辺、他方を右辺とする論理積で示される論理式とに変換する
処理を前記コンピュータに実行させることを特徴とする請求項1から5のいずれかに記載の論理式変換プログラム。 Determining whether an implication is included in the logical expression;
When it is determined that the implication is included in the determination, the logical expression data indicated by the implication stored in the storage unit is a first logical expression in which the logical expression on the left side of the implication is negated. And causing the computer to execute a process of converting the first logical expression and a logical expression represented by a logical product having one of the right sides of the implication as a left side and the other as a right side. The logical expression conversion program according to any one of 1 to 5.
前記判定において前記論理積が係る論理和が含まれると判定した場合に、前記記憶部に記憶された前記論理積が係る論理和で示される論理式のデータを、前記論理積の左辺を第1の辺とし前記論理和の前記論理積が係らない辺である他方の辺を第2の辺とする第1の論理和と、前記論理積の右辺を第1の辺とし前記他方の辺を第2の辺とする第2の論理和と、前記第1の論理和を第1の辺とし前記第2の論理和を第2の辺とする論理積とで示される論理式のデータに変換する
処理を前記コンピュータに実行させることを特徴とする請求項1から6のいずれかに記載の論理式変換プログラム。 Determining whether the logical expression includes a logical sum related to the logical product;
When it is determined that the logical product related to the logical product is included in the determination, the logical expression data indicated by the logical product related to the logical product stored in the storage unit is set to the left side of the logical product. A first logical sum having a second side as the second side that is a side that is not related to the logical product of the logical sum and the second side, and a right side of the logical product as the first side. The data is converted into data of a logical expression represented by a second logical sum of two sides and a logical product of the first logical sum as the first side and the second logical sum as the second side. The logical expression conversion program according to claim 1, which causes the computer to execute processing.
前記分割した各々の部分論理式のデータを、充足可能性の判定対象の論理式のデータとして前記記憶部に記憶する
処理を前記コンピュータに実行させることを特徴とする請求項7に記載の論理式変換プログラム。 If it is determined in the determination that the logical product does not include the logical sum, the logical expression data stored in the storage unit does not include the logical sum and is combined with the logical product. Divide each sub-expression of the expression,
The logical expression according to claim 7, further comprising: causing the computer to execute a process of storing the data of each of the divided partial logical expressions in the storage unit as logical expression data to be determined for satisfiability. Conversion program.
前記記憶部に記憶された論理式に、等号付き不等号が含まれるか否かを判定する判定部と、
前記判定部が含まれると判定した場合に、前記記憶部に記憶された前記等号付き不等号を等号に変換する論理式変換部と、
を備える論理式変換装置。 A storage unit that stores data of logical expressions indicating constraints on input values of software to be inspected;
A determination unit that determines whether or not an inequality sign with an equal sign is included in the logical expression stored in the storage unit;
When it is determined that the determination unit is included, a logical expression conversion unit that converts the inequalities with equal sign stored in the storage unit into equal signs,
A logical expression conversion device comprising:
検査対象のソフトウェアの入力値に関する制約条件を示す論理式データが記憶された記憶部を参照して、前記論理式に、等号付き不等号が含まれるか否かを判定し、
前記判定において含まれると判定した場合に、前記記憶部に記憶された前記等号付き不等号を等号に変換する
処理を実行することを特徴とする論理式変換方法。 Computer
With reference to the storage unit in which the logical expression data indicating the constraint condition regarding the input value of the software to be inspected is stored, it is determined whether or not the logical expression includes an inequality sign with an equal sign,
A logical expression conversion method, comprising: executing a process of converting the inequalities with equal signs stored in the storage unit into equal signs when it is determined that they are included in the determination.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011058920A JP5655650B2 (en) | 2011-03-17 | 2011-03-17 | Test data generation program, apparatus, and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011058920A JP5655650B2 (en) | 2011-03-17 | 2011-03-17 | Test data generation program, apparatus, and method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012194833A true JP2012194833A (en) | 2012-10-11 |
JP5655650B2 JP5655650B2 (en) | 2015-01-21 |
Family
ID=47086650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011058920A Active JP5655650B2 (en) | 2011-03-17 | 2011-03-17 | Test data generation program, apparatus, and method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5655650B2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0629764A (en) * | 1991-07-16 | 1994-02-04 | Nec Ic Microcomput Syst Ltd | Wind noise reduction microphone amplifier |
JP2013210997A (en) * | 2012-03-16 | 2013-10-10 | Boeing Co:The | System and method for rapid management of logic formulas |
JP2015187756A (en) * | 2014-03-26 | 2015-10-29 | 富士通株式会社 | Test case generation program, test case generation device, and test case generation method |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1063538A (en) * | 1996-08-26 | 1998-03-06 | Nec Corp | Limit value comprehensiveness measuring system |
JP2012181665A (en) * | 2011-03-01 | 2012-09-20 | Nec Corp | Information processing device, information processing method, and information processing program |
-
2011
- 2011-03-17 JP JP2011058920A patent/JP5655650B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1063538A (en) * | 1996-08-26 | 1998-03-06 | Nec Corp | Limit value comprehensiveness measuring system |
JP2012181665A (en) * | 2011-03-01 | 2012-09-20 | Nec Corp | Information processing device, information processing method, and information processing program |
Non-Patent Citations (4)
Title |
---|
CSNG200801122005; 梅村 晃広: '語単一化にもとづく文字列テストデータ生成' ソフトウェアエンジニアリング最前線2007 初版, 20070930, p.79-88, 株式会社近代科学社 * |
CSNJ201010047138; 藤原翔一朗 外6名: 'SMT Solverを利用したWebアプリケーション用テストデータの生成' 第72回(平成22年)全国大会講演論文集(1) , 20100308, p.1-281〜1-282, 社団法人情報処理学会 * |
JPN6013064884; 藤原翔一朗 外6名: 'SMT Solverを利用したWebアプリケーション用テストデータの生成' 第72回(平成22年)全国大会講演論文集(1) , 20100308, p.1-281〜1-282, 社団法人情報処理学会 * |
JPN6014024053; 梅村 晃広: '語単一化にもとづく文字列テストデータ生成' ソフトウェアエンジニアリング最前線2007 初版, 20070930, p.79-88, 株式会社近代科学社 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0629764A (en) * | 1991-07-16 | 1994-02-04 | Nec Ic Microcomput Syst Ltd | Wind noise reduction microphone amplifier |
JP2013210997A (en) * | 2012-03-16 | 2013-10-10 | Boeing Co:The | System and method for rapid management of logic formulas |
JP2015187756A (en) * | 2014-03-26 | 2015-10-29 | 富士通株式会社 | Test case generation program, test case generation device, and test case generation method |
Also Published As
Publication number | Publication date |
---|---|
JP5655650B2 (en) | 2015-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102792298B (en) | Metadata sources are matched using the rule of characterization matches | |
Chen et al. | Persistent homology computation with a twist | |
Dey et al. | An efficient computation of handle and tunnel loops via Reeb graphs | |
Tanaka et al. | Fracture mechanics analysis using the wavelet Galerkin method and extended finite element method | |
Behr | Simplex space–time meshes in finite element simulations | |
CA3137475A1 (en) | Quantum information processing method, classical computer, quantum computer, hybrid system, quantum information processing program, and data structure for finding a differential of energy | |
Trautner | Systematic construction of basis invariants in the 2HDM | |
US20190303266A1 (en) | String transformation based trace classification and analysis | |
CN108984155A (en) | Flow chart of data processing setting method and device | |
CN104346383A (en) | Data access control method and system | |
Collier et al. | On the computational efficiency of isogeometric methods for smooth elliptic problems using direct solvers | |
US11074276B2 (en) | Methods and systems for optimized visual summarization for sequences of temporal event data | |
JP5655650B2 (en) | Test data generation program, apparatus, and method | |
Jafarian et al. | A numerical scheme to solve fuzzy linear volterra integral equations system | |
CN113792155B (en) | Text verification method and device based on knowledge graph, electronic equipment and medium | |
Auricchio et al. | Well‐posedness for a diffusion–reaction compartmental model simulating the spread of COVID‐19 | |
Mednis et al. | Application of string similarity ratio and edit distance in automatic metabolite reconciliation comparing reconstructions and models | |
Costas-Santos et al. | q-Classical orthogonal polynomials: A general difference calculus approach | |
JP5936135B2 (en) | Information processing apparatus, information processing method, and program | |
US8813004B1 (en) | Analog fault visualization system and method for circuit designs | |
Srinivasan et al. | Application of graph sparsification in developing parallel algorithms for updating connected components | |
Ioualalen et al. | Synthesizing accurate floating-point formulas | |
Witte et al. | Singular values of products of Ginibre random matrices | |
Yin et al. | Exemplar or matching: modeling DCJ problems with unequal content genome data | |
Apel et al. | Stabilized finite element methods with anisotropic mesh refinement for the Oseen problem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20131129 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140605 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140610 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140724 |
|
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: 20141028 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141110 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5655650 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |