JP2012194833A - Test data generating program, device, and method - Google Patents

Test data generating program, device, and method Download PDF

Info

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
Application number
JP2011058920A
Other languages
Japanese (ja)
Other versions
JP5655650B2 (en
Inventor
Kazuki Munakata
一樹 宗像
Shoichiro Fujiwara
翔一朗 藤原
Tadahiro Uehara
忠弘 上原
Yoshiharu Maeda
芳晴 前田
Asako Katayama
朝子 片山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011058920A priority Critical patent/JP5655650B2/en
Publication of JP2012194833A publication Critical patent/JP2012194833A/en
Application granted granted Critical
Publication of JP5655650B2 publication Critical patent/JP5655650B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide an information processing device for generating test data taking account of a boundary value test.SOLUTION: A property storage unit 30 stores data of a logical formula representing restriction conditions related to an input value of software subject to an examination. A boundary value restriction generating unit 38 determines whether or not the logical formula stored in the property storage unit 30 includes an inequality sign with an equality sign. When it is determined to include the inequality sign with the equality sign, a boundary value restriction generating unit 38 converts the logical formula represented by the inequality sign with the equality sign into data of a logical formula represented by a logical sum between a logical formula formed by converting the inequality sign with equality sign into an equality sign and a logical formula formed by converting the inequality sign with the equality sign into an inequality sign.

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.

Nikolai Tillmann and Jonathan de Halleux, "Pex-White Box Test Generation for .NET", TAP 2008, LNCS 4966, pp.134-153, 2008.Nikolai Tillmann and Jonathan de Halleux, "Pex-White Box Test Generation for .NET", TAP 2008, LNCS 4966, pp.134-153, 2008.

業務システムのソフトウェアをテストするにあたり、プログラムのエラーはデータの境界で起こりやすいという経験則に鑑みたテストデータを用意する必要がある。この経験則に鑑みたテストを境界値テストと呼ぶ。境界値テストとは、入力を、有効なデータの範囲と無効なデータの範囲に分け、その境界となる値、即ち境界値を用いて行うテストである。   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 constraint equation 5 ≦ A is given as a constraint equation representing the range of the data value of item 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.

本実施の形態に係る情報処理装置の構成を示す概略図である。It is the schematic which shows the structure of the information processing apparatus which concerns on this Embodiment. 本実施の形態に係る情報処理装置の機能ブロック図である。It is a functional block diagram of the information processing apparatus concerning this Embodiment. 木構造形式の論理式データを模式的に示す図である。It is a figure which shows the logic formula data of a tree structure format typically. 木構造形式の論理式データの格納例を示す図である。It is a figure which shows the example of storage of the logic formula data of a tree structure form. 含意演算子を除去するための変換法則を説明するための図である。It is a figure for demonstrating the conversion law for removing an implication operator. 含意演算子を除去するための変換法則を説明するための図である。It is a figure for demonstrating the conversion law for removing an implication operator. 二重否定を除去するための変換法則を説明するための図である。It is a figure for demonstrating the conversion law for removing double negation. 二重否定を除去するための変換法則を説明するための図である。It is a figure for demonstrating the conversion law for removing double negation. ド・モルガンの法則に基づく変換法則を説明するための図である。It is a figure for demonstrating the conversion law based on De Morgan's law. ド・モルガンの法則に基づく変換法則を説明するための図である。It is a figure for demonstrating the conversion law based on De Morgan's law. ド・モルガンの法則に基づく変換法則を説明するための図である。It is a figure for demonstrating the conversion law based on De Morgan's law. ド・モルガンの法則に基づく変換法則を説明するための図である。It is a figure for demonstrating the conversion law based on De Morgan's law. ド・モルガンの法則に基づく変換法則が適用される前の、木構造形式の論理式データを模式的に示す図である。It is a figure which shows typically the logical formula data of a tree structure format before the conversion law based on De Morgan's law is applied. ド・モルガンの法則に基づく変換法則が適用されて変換された、木構造形式の論理式データを模式的に示す図である。It is a figure which shows typically the logic formula data of the tree structure format converted by applying the conversion law based on De Morgan's law. ド・モルガンの法則に基づく変換法則が適用される前の、木構造形式の論理式データの格納例を示す図である。It is a figure which shows the example of a storage of the logical formula data of a tree structure format before the conversion rule based on a De Morgan's law is applied. ド・モルガンの法則に基づく変換法則が適用されて変換された、木構造形式の論理式データの格納例を示す図である。It is a figure which shows the example of a storage of the logical formula data of the tree structure format converted by applying the conversion law based on De Morgan's law. 不等号演算子に係る否定を除去するための変換法則を説明するための図である。It is a figure for demonstrating the conversion law for removing negation concerning an inequality operator. 不等号演算子に係る否定を除去するための変換法則を説明するための図である。It is a figure for demonstrating the conversion law for removing negation concerning an inequality operator. 不等号演算子に係る否定を除去するための変換法則を説明するための図である。It is a figure for demonstrating the conversion law for removing negation concerning an inequality operator. 不等号演算子に係る否定を除去するための変換法則を説明するための図である。It is a figure for demonstrating the conversion law for removing negation concerning an inequality operator. 不等号演算子に係る否定を除去するための変換法則を説明するための図である。It is a figure for demonstrating the conversion law for removing negation concerning an inequality operator. 不等号演算子に係る否定を除去するための変換法則を説明するための図である。It is a figure for demonstrating the conversion law for removing negation concerning an inequality operator. 不等号演算子に係る否定を除去するための変換法則を説明するための図である。It is a figure for demonstrating the conversion law for removing negation concerning an inequality operator. 不等号演算子に係る否定を除去するための変換法則を説明するための図である。It is a figure for demonstrating the conversion law for removing negation concerning an inequality operator. 不等号演算子に係る否定を除去するための変換法則が適用される前の、木構造形式の論理式データを模式的に示す図である。It is a figure which shows typically the logic formula data of a tree structure format before the conversion rule for removing negation concerning an inequality operator is applied. 不等号演算子に係る否定を除去するための変換法則が適用されて変換された、木構造形式の論理式データを模式的に示す図である。It is a figure which shows typically the logic formula data of a tree structure format converted by applying the conversion rule for removing negation concerning an inequality operator. 不等号演算子に係る否定を除去するための変換法則が適用される前の、木構造形式の論理式データの格納例を示す図である。It is a figure which shows the example of a storage of the logic formula data of a tree structure format before the conversion rule for removing negation concerning an inequality operator is applied. 不等号演算子に係る否定を除去するための変換法則が適用されて変換された、木構造形式の論理式データの格納例を示す図である。It is a figure which shows the example of storage of the logic formula data of a tree structure format converted by applying the conversion law for removing negation concerning an inequality operator. 等号付き不等号演算子を除去するための変換法則を説明するための図である。It is a figure for demonstrating the conversion law for removing the inequality operator with an equal sign. 等号付き不等号演算子を除去するための変換法則を説明するための図である。It is a figure for demonstrating the conversion law for removing the inequality operator with an equal sign. 等号付き不等号演算子を除去するための変換法則を説明するための図である。It is a figure for demonstrating the conversion law for removing the inequality operator with an equal sign. 等号付き不等号演算子を除去するための変換法則を説明するための図である。It is a figure for demonstrating the conversion law for removing the inequality operator with an equal sign. 等号付き不等号演算子を除去するための変換法則が適用される前の、木構造形式の論理式データを模式的に示す図である。It is a figure which shows typically the logic formula data of a tree structure format before the conversion law for removing the inequality operator with an equal sign is applied. 等号付き不等号演算子を除去するための変換法則が適用されて変換された、木構造形式の論理式データを模式的に示す図である。It is a figure which shows typically the logic formula data of the tree structure format converted by applying the conversion law for removing the inequality operator with an equal sign. 等号付き不等号演算子を除去するための変換法則が適用される前の、木構造形式の論理式データの格納例を示す図である。It is a figure which shows the example of storage of the logical formula data of a tree structure format before the conversion law for removing the inequality operator with an equal sign is applied. 等号付き不等号演算子を除去するための変換法則が適用されて変換された、木構造形式の論理式データの格納例を示す図である。It is a figure which shows the example of a storage of the logical formula data of the tree structure format converted by applying the conversion law for removing the inequality operator with an equal sign. 分配法則に基づく変換法則を説明するための図である。It is a figure for demonstrating the conversion law based on a distribution law. 分配法則に基づく変換法則を説明するための図である。It is a figure for demonstrating the conversion law based on a distribution law. 分配法則に基づく変換法則を説明するための図である。It is a figure for demonstrating the conversion law based on a distribution law. 分配法則に基づく変換法則を説明するための図である。It is a figure for demonstrating the conversion law based on a distribution law. 分配法則に基づく変換法則が適用される前の、木構造形式の論理式データを示す図である。It is a figure which shows the logical formula data of a tree structure format before the conversion rule based on a distribution rule is applied. 分配法則に基づく変換法則が適用されて変換された、木構造形式の論理式データを模式的に示す図である。It is a figure which shows typically the logic formula data of the tree structure format converted by applying the conversion law based on a distribution law. 分配法則に基づく変換法則が適用される前の、木構造形式の論理式データの格納例を示す図である。It is a figure which shows the example of a storage of the logical formula data of a tree structure format before the conversion rule based on a distribution rule is applied. 分配法則に基づく変換法則が適用されて変換された、木構造形式の論理式データの格納例を示す図である。It is a figure which shows the example of a storage of the logical formula data of the tree structure format converted by applying the conversion law based on a distribution law. テストデータテーブルの例を示す図である。It is a figure which shows the example of a test data table. 本実施の形態に係る情報処理装置のテストデータ生成処理ルーチンの内容を示すフローチャートである。It is a flowchart which shows the content of the test data generation process routine of the information processing apparatus which concerns on this Embodiment. 本実施の形態に係る情報処理装置のテストデータ生成処理ルーチンの内容を示すフローチャートである。It is a flowchart which shows the content of the test data generation process routine of the information processing apparatus which concerns on this Embodiment. 本実施の形態に係る情報処理装置の含意除去処理ルーチンの内容を示すフローチャートである。It is a flowchart which shows the content of the implication removal process routine of the information processing apparatus which concerns on this Embodiment. 本実施の形態に係る情報処理装置の二重否定除去処理ルーチンの内容を示すフローチャートである。It is a flowchart which shows the content of the double negation removal process routine of the information processing apparatus which concerns on this Embodiment. 本実施の形態に係る情報処理装置のド・モルガンの法則による否定標準形への変換の処理ルーチンの内容を示すフローチャートである。It is a flowchart which shows the content of the processing routine of conversion to the negative standard form by De Morgan's law of the information processing apparatus which concerns on this Embodiment. 本実施の形態に係る情報処理装置の不等号の否定除去処理ルーチンの内容を示すフローチャートである。It is a flowchart which shows the content of the negative removal process routine of the inequality sign of the information processing apparatus which concerns on this Embodiment. 本実施の形態に係る情報処理装置の等号付き不等号の変換処理ルーチンの内容を示すフローチャートである。It is a flowchart which shows the content of the conversion process routine of the inequality sign with an equal sign of the information processing apparatus which concerns on this Embodiment. 本実施の形態に係る情報処理装置の選言標準形への変換処理ルーチンの内容を示すフローチャートである。It is a flowchart which shows the content of the conversion process routine to the disjunctive standard form of the information processing apparatus which concerns on this Embodiment. 記録媒体に記憶されたプログラムが、HDDにインストールされる様子を示す図である。It is a figure which shows a mode that the program memorize | stored in the recording medium is installed in HDD.

以下、実施形態について詳細に説明する。   Hereinafter, embodiments will be described in detail.

図1に示すように、情報処理装置10は、CPU12、ROM14、RAM16、HDD18、通信インタフェース20、及びこれらを相互に接続するためのバス22を備えている。   As shown in FIG. 1, the information processing apparatus 10 includes a CPU 12, a ROM 14, a RAM 16, an HDD 18, a communication interface 20, and a bus 22 for connecting them together.

CPU12は、各種プログラムを実行する。ROM14には、各種プログラムやパラメータ等が記憶されている。RAM16は、CPU12による各種プログラムの実行時におけるワークエリア等として用いられる。記録媒体としてのHDD18には、後述するテストデータ生成処理ルーチンを実行するためのプログラム及び充足可能性を判定する処理を行うプログラムを含む各種プログラムや各種データが記憶されている。   The CPU 12 executes various programs. The ROM 14 stores various programs, parameters, and the like. The RAM 16 is used as a work area when the CPU 12 executes various programs. The HDD 18 serving as a recording medium stores various programs and various data including a program for executing a test data generation processing routine, which will be described later, and a program for performing satisfiability determination processing.

情報処理装置10を、テストデータ生成処理ルーチンを実行するためのプログラム及び充足可能性を判定する処理を行うプログラムに沿って、機能ブロックで表わすと、図2に示すようになる。情報処理装置10は、プロパティ記憶部30、論理式木構造生成部32、否定標準形変換部34、否定付き不等号除去変換部36、及び境界値制約生成部38を備えている。情報処理装置10は、更に、テストデータ生成部40、データ生成用プロパティ記憶部41、及び充足可能性判定部42、及びテストデータ記憶部44を備えている。なお、境界値制約生成部38は、等号付き不等号変換部及び選言標準形変換部の一例である。   When the information processing apparatus 10 is represented by functional blocks in accordance with a program for executing a test data generation processing routine and a program for performing a process for determining satisfiability, it is as shown in FIG. The information processing apparatus 10 includes a property storage unit 30, a logical expression tree structure generation unit 32, a negative normal form conversion unit 34, a negated inequality sign removal conversion unit 36, and a boundary value constraint generation unit 38. The information processing apparatus 10 further includes a test data generation unit 40, a data generation property storage unit 41, a satisfiability determination unit 42, and a test data storage unit 44. The boundary value constraint generation unit 38 is an example of an inequality sign conversion unit with an equal sign and a disjunctive standard form conversion unit.

プロパティ記憶部30には、情報処理装置10に入力された、検査対象のソフトウェアの論理的仕様を定める情報であるプロパティが記憶されている。   The property storage unit 30 stores properties that are information that is input to the information processing apparatus 10 and determines the logical specifications of the software to be inspected.

検査対象のソフトウェアは、例えば画面と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 property storage unit 30. For example, the following logical formula data is stored.

事前条件: ((合計≧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 structure generation unit 32 reads logical expression data indicating a precondition from the property storage unit 30, analyzes the logical structure of the read logical expression data, and displays a tree structure format as shown in FIGS. Is generated and stored in the RAM 16. FIG. 3 is a schematic diagram of data in a tree structure format. FIG. 4 is a diagram illustrating an example of tree-structured data stored in the RAM 16. The logical expression tree structure generation unit 32 performs “No”, “Value”, “Operator”, “Left Node”, “Right Node” shown in FIG. 4 for each node of the tree structure data shown in FIG. ] Are stored in the RAM 16. The uppermost node in FIG. 3 corresponds to a row in which “No” in FIG. 4 is 0.

否定標準形変換部34は、木構造形式の論理式データを参照し、入力された論理式を否定標準形に変換する処理を行う。否定標準形とは、部分論理式を持たない論理式である原子論理式にのみ否定が係り、他には論理和と論理積のみが論理演算子として用いられる形の論理式である。入力された論理式に境界値に係る制約を示す等号付き不等号が含まれない場合でも、この処理を行うことにより、原子論理式にのみ否定が係るように変形出来、境界値に係る制約を示す等号付き不等号部分を見出せるようになる。従って、入力された論理式が否定標準形である場合には、否定標準形変換部34によるこの処理は不要である。   The negative standard form conversion unit 34 refers to the logical expression data in the tree structure format, and performs a process of converting the input logical expression into the negative standard form. The negation standard form is a logical expression in which negation is related only to an atomic logical expression that is a logical expression having no partial logical expression, and only logical sum and logical product are used as logical operators. Even if the input logical expression does not include an inequality sign with an equal sign indicating the constraint on the boundary value, by performing this process, it can be modified so that only the atomic logical expression is negated, and the constraint on the boundary value is reduced. It becomes possible to find the inequality part with the equal sign shown. Therefore, when the input logical expression is negative standard form, this processing by the negative standard form conversion unit 34 is not necessary.

否定標準形変換部34は、木構造形式の論理式データに対し、以下に示すような変換法則(1)を適用し、含意演算子(→)を含む部分木を、含意演算子を含まない(含意演算子が除去された)部分木に変換する(図5、図6を参照)。具体的には、否定標準形変換部34は、含意演算子を含む論理式を、含意演算子の前(左辺)に記述されている論理式の否定と、含意演算子の後(右辺)に記述されている論理式との論理和に変換する処理を行う。   The negative normal form conversion unit 34 applies the conversion rule (1) as shown below to the logical structure data in the tree structure format, and does not include the implication operator for the subtree including the implication operator (→). Convert to a subtree (with the implication operator removed) (see FIGS. 5 and 6). Specifically, the negative standard form conversion unit 34 converts a logical expression including an implication operator into a negation of a logical expression described before the implication operator (left side) and after the implication operator (right side). Performs processing to convert to logical OR with the described logical expression.

なお、入力された論理式に含意演算子が含まれない場合には、この変換法則(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 form conversion unit 34 repeats the process of applying the above conversion law (1) to the logical expression data until there is no implication operator from the logical expression data in the tree structure format. The implication operator can be removed, and the logical operators in the logical expression data can be only three types of logical product, logical sum, and negation.

また、否定標準形変換部34は、木構造形式の論理式データに対し、以下に示すような変換法則(2)を適用し、二重否定を含む部分木を、二重否定を含まない(二重否定が除去された)部分木に変換する(図7,図8を参照。なお、図7及び図8は、ぞれぞれ、同一の木構造の論理式データを模式的に示す図及び格納例を示す図である)。この処理は、入力された論理式に含意演算子が含まれ、上述の変換法則(1)の適用(含意演算子の除去処理)により否定(¬)が生じ、この否定が、入力された論理式に元から存在した否定(¬)に係るようになった場合又は含意演算子が含まれていなくても二重否定が含まれている場合に必要となる処理である。従って、入力された論理式データに、含意演算子と否定を含む部分木、又は、二重否定を含む部分木のいずれも含まれない場合は、この変換法則(2)の適用処理は不要である。   Further, the negative normal form conversion unit 34 applies the conversion rule (2) as shown below to the logical expression data in the tree structure format, and does not include the double negation for the subtree including the double negation ( (Refer to Fig. 7 and Fig. 8. Fig. 7 and Fig. 8 are diagrams each schematically showing logical expression data having the same tree structure.) And a storage example). In this process, an implication operator is included in the input logical expression, and negation (¬) occurs due to the application of the above conversion law (1) (removal processing of the implication operator). This is a process that is necessary when the expression is related to the negative (¬) that originally existed or when double negation is included even if the implication operator is not included. Therefore, when the input logical expression data does not include any subtree including an implication operator and negation, or a subtree including double negation, the application process of the conversion law (2) is unnecessary. is there.

変換法則(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 form conversion unit 34 repeats the process of applying the above conversion law (2) to the logical expression data from the logical expression data in the tree structure until the double negation disappears, thereby obtaining the logical expression data from the logical expression data. Double negation (redundant negation subtree) can be removed.

また、否定標準形変換部34は、木構造形式の論理式データに対し、以下に示すようなド・モルガンの法則として知られている変換法則(3)、(4)を適用する。これによって、否定標準形変換部34は、論理積の否定及び論理和の否定を含む部分木を、論理積の否定及び論理和の否定を含まない(論理積の否定及び論理和の否定が除去された)部分木に変換する(図9、図10、図11、図12を参照。なお、図9及び図11、図10及び図12は、ぞれぞれ、同一の木構造の論理式データを模式的に示す図及び格納例を示す図である)。具体的には、否定標準形変換部34は、論理積の否定を、論理積の前(左辺)に記述されている論理式の否定と、論理積の後(右辺)に記述されている論理式の否定との論理和に、また、論理和の否定を、論理和の前(左辺)に記述されている論理式の否定と、論理和の後(右辺)に記述されている論理式の否定との論理積に変換する処理を行う。
なお、入力された論理式が否定標準形である場合には、この変換法則(3)、(4)の適用処理は不要である。
Further, the negative standard form conversion unit 34 applies conversion laws (3) and (4) known as De Morgan's law as shown below to logical expression data in a tree structure format. As a result, the negative standard form conversion unit 34 does not include the logical AND and the logical negation for the subtree including the logical AND and the logical negation (the logical AND negation and the logical negation are removed). (See FIGS. 9, 10, 11, and 12. Note that FIGS. 9, 11, 10, and 12 are respectively logical expressions of the same tree structure.) It is the figure which shows data, and the figure which shows the example of storage. Specifically, the negation standard form conversion unit 34 negates the logical product by negating the logical expression described before the logical product (left side) and the logical product described after the logical product (right side). The logical sum of the logical expression described in the logical sum with the negation of the expression, the negation of the logical sum, the negation of the logical expression described before the logical sum (the left side), and the logical expression described after the logical sum (the right side). Performs conversion to the logical product of negation.
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 form conversion unit 34 negates a logical product represented by a subtree to which a conversion law based on De Morgan's law can be applied (see FIGS. 13 and 15. FIG. 15 is a diagram schematically showing logical expression data having the same tree structure and a storage example, respectively. The logical OR of each of the two logical expressions represented by the subtree is shown in FIG. Refer to Fig. 16. Note that Fig. 14 and Fig. 16 are respectively a diagram schematically showing logical expression data having the same tree structure and a diagram showing a storage example.

¬(購入個数>5∧購入個数<10)
⇒¬(購入個数>5)∨¬(購入個数<10)
¬ (Purchased quantity> 5∧Purchased quantity <10)
⇒¬ (Purchase quantity> 5) ∨¬ (Purchase quantity <10)

否定標準形変換部34は、木構造形式の論理式データが、否定が原始論理式のみに係る木構造形式の論理式データに変換されるまで、論理式データに対して上記の変換法則(3)、(4)を適用する処理を繰り返すことで、論理積、論理和、否定を含む論理式を否定標準形に変換することが出来る。   The negative standard form conversion unit 34 applies the above conversion rule (3) to the logical expression data until the logical expression data in the tree structure format is converted into the logical expression data in the tree structure format in which negation is related only to the primitive logical expression. ) And (4) can be repeated to convert a logical expression including logical product, logical sum, and negation into a negative standard form.

このように、否定標準形変換部34は、木構造形式の論理式データに対し、含意演算子(→)を除去するための変換法則(1)、二重否定を除去するための変換法則(2)、及びド・モルガンの法則に基づく変換法則(3)、(4)を適用する。これによって、否定標準形変換部34は、事前条件を示す木構造形式の論理式データを、否定が原子論理式のみに係り、かつ、論理和又は論理積で結合された形式である否定標準形で表わされる木構造形式の論理式データに変換する。   In this way, the negative normal form conversion unit 34 converts the conversion law (1) for removing the implication operator (→) and the conversion law (for removing double negation ( 2), and conversion laws (3) and (4) based on De Morgan's law. In this way, the negative standard form conversion unit 34 converts the logical structure data in the tree structure format indicating the precondition into a negative standard form in which negation is related only to the atomic logical expression and is combined with logical sum or logical product. Is converted into logical expression data in a tree structure format represented by

また、否定付き不等号除去変換部36は、否定標準形の論理式データに変換された木構造形式の論理式データに対し、以下に示すような変換法則(5)〜(8)を適用し、不等号に係る否定の部分木を、不等号に係る否定を含まない(不等号に係る否定が除去された)部分木に変換する(図17〜図24を参照。なお図17及び図21、図118及び図22、図19及び図23、図20及び図24は、それぞれ、ぞれぞれ、同一の木構造の論理式データを模式的に示す図及び格納例を示す図である)。具体的には、否定付き不等号除去変換部36は、各々、不等号に否定が係っている論理式を、当該不等号と背反の不等号を用いた論理式に変換する。   The inequality sign removal conversion unit with negation 36 applies the conversion rules (5) to (8) as shown below to the tree-form logical expression data converted into the negative normal form logical expression data: Convert the negative subtree related to the inequality sign to a subtree that does not include the negation related to the inequality sign (the negation related to the inequality sign has been removed) (see FIGS. 17 to 24. Note that FIG. 17, FIG. 21, FIG. 118 and FIG. FIG. 22, FIG. 19, FIG. 23, FIG. 20 and FIG. 24 are a diagram schematically showing logical formula data having the same tree structure and a storage example, respectively. Specifically, the inequality sign removal conversion unit 36 with negation converts each logical expression in which negation is involved in the inequality sign into a logical expression using the inequality sign and the contradictory inequality sign.

なお、入力された論理式が、連言標準形又は選言標準形であって、且つ、否定を含まない場合には、この変換法則(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 negation 36 is a subtree (¬ (purchase quantity> 5), ¬ (purchase quantity <10) to which a conversion law for removing negation related to the inequality sign as shown in FIGS. )) Is converted into a partial tree (purchased quantity ≦ 5, purchased quantity ≧ 10) as shown in FIGS.

否定付き不等号除去変換部36は、この処理を実行することにより、入力された論理式を、否定付きの不等号で示される無効な範囲を示す論理式から、否定のない不等号で示される有効な範囲を示す論理式に変換することが出来る。   The negated inequality sign removal conversion unit 36 executes this process to convert the input logical expression from a logical expression indicating an invalid range indicated by a negated inequality sign to an effective range indicated by an inequality sign without negation. Can be converted into a logical expression indicating

境界値制約生成部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 data generation unit 40 applies the conversion rules (11) to (12) based on the distribution rules shown below to the logical structure data in the tree structure format converted by the boundary value constraint generation unit 38, The product (∧) and the logical sum (∨) are converted into logical expression data in a tree structure format represented by a continuous subtree (declared standard form). Specifically, the test data generation unit 40 performs logical product (∧) and logical sum (() included in the logical expression data of the tree structure until there is no subtree in which the logical product (∧) and logical sum (∨) continue. Of the two subordinate nodes of the logical product (∧), the node that is not focused on as the logical sum (∨) and the lower-order nodes of the node that is focused on as the logical sum The process of converting into a subtree represented by the logical sum of two logical products (∧) is repeatedly executed. Accordingly, the test data generation unit 40 uses a logical expression that does not include a logical sum as one clause, and a logical expression in a tree structure format expressed in a disjunctive standard form in which a plurality of clauses are combined with a logical sum. Can be converted to data.

変換法則(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 data generation unit 40 selects logical expression data in a tree structure format (see FIGS. 41 and 43) by combining a plurality of logical expressions not including logical sums. It is converted into logical formula data in a tree structure format expressed in the standard form.

((購入個数=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 data generation unit 40 converts the logical expression data in the tree structure format expressed in the converted disjunctive standard form into the disjunctive standard form clauses (parts of logical expressions that do not include logical sums and are combined with logical products). ) For each subtree data. As a result, the preconditional expression expressed in the disjunctive standard form is divided into a plurality of preconditional expressions in which the truth value is uniquely determined. The test data generation unit 40 converts the subtree data of the section into logical expression data described by a character string, and stores the data in the data generation property storage unit 41 for each section. The test data generation unit 40 sequentially outputs the logical expression data of each clause stored in the data generation property storage unit 41 to the satisfiability determination unit 42. In addition, the test data generation unit 40 stores the satisfiability solution data output for each section from the satisfiability determination unit 42 as a set of test data input to the inspection target software in the test data storage unit 44. Stored in the test data table for each section.

充足可能性判定部42は、入力された論理式データが示す制約条件の充足可能性を判定すると共に、制約条件が充足可能であると判定されたときに得られる充足解データを、テストデータ生成部40へ出力する。   The satisfiability determination unit 42 determines the satisfiability of the constraint condition indicated by the input logical formula data, and generates satisfiability solution data obtained when it is determined that the constraint condition is satisfiable. To the unit 40.

例えば、以下に示す各節の論理式データが、充足可能性判定部42へ入力されると、図45に示すような、充足解データが各々出力され、複数組のテストデータとして、テストデータ記憶部44に記憶されたテストデータテーブルに格納される。   For example, when logical expression data of each section shown below is input to the satisfiability determination unit 42, satisfaction solution data as shown in FIG. 45 is output, and test data is stored as a plurality of sets of test data. It is stored in the test data table stored in the unit 44.

論理式データ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 data generation unit 40 can generate a plurality of sets of test data in consideration of all combinations of variations of boundary values related to input values and variations of constraint conditions related to input values.

次に、本実施の形態の作用を説明する。   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 information processing apparatus 10 from another apparatus via the communication interface 20 and stored in the property storage unit 30. The property stored in the property storage unit 30 has a business specification set therein, and includes logical formula data indicating a constraint condition regarding the input value of the verification target software as a precondition in the business specification.

そして、オペレータが、情報処理装置10の操作部(図示省略)を操作して、検証対象のソフトウェアの入力値に関するテストデータの生成を指示する。これによって、情報処理装置10のCPU12によって、HDD18に記憶された図46、47に示すテストデータ生成処理ルーチンを実行するためのプログラムが実行される。   Then, the operator operates an operation unit (not shown) of the information processing apparatus 10 to instruct generation of test data related to the input value of the verification target software. As a result, the CPU 12 of the information processing apparatus 10 executes a program for executing the test data generation processing routine shown in FIGS. 46 and 47 stored in the HDD 18.

まず、S100において、情報処理装置10が、プロパティ記憶部30から、検証対象のソフトウェアのプロパティを読み込み、プロパティに含まれている制約条件を示す論理式データの論理構造を解析して、論理式データを木構造形式の論理式データへ変換する。論理式木構造生成部32は、「No」の項目に、ノードを識別する番号を格納する。本実施形態では、論理式木構造生成部32は、図3に示す最上位のノードの場合は「0」、最上位の左の枝の先のノードの場合は「1」、最上位の右の枝の先のノードの場合は「2」と、最上位のノードから順次昇順となる番号を格納する。論理式木構造生成部32は、「値」の項目に、ノードに入る値を格納する。本実施形態では、論理式木構造生成部32は、リーフ(末端のノード)にのみ値を格納する。論理式木構造生成部32は、「演算子」の項目に、「含意(→))、「論理和(∨)」、「論理積(∧)」、「否定(¬))、「等号(=)」、「不等号(>、<、≧、≦)))のいずれかの演算子を格納する。また、論理式木構造生成部32は、「左ノード」の項目に左の枝の先のノードのNoを、「右ノード」の項目に右の枝の先のノードのNoを、それぞれ格納する。本実施形態では、論理式木構造生成部32は、先のノードが1つしかない場合には、左ノードの項目にこの先のノードのNoを格納する(図4参照)。   First, in S100, the information processing apparatus 10 reads the property of the software to be verified from the property storage unit 30, analyzes the logical structure of logical expression data indicating the constraint condition included in the property, and generates logical expression data. Is converted into logical expression data in a tree structure format. The logical expression tree structure generation unit 32 stores a number for identifying the node in the item “No”. In the present embodiment, the logical expression tree structure generation unit 32 is “0” in the case of the highest node shown in FIG. 3, “1” in the case of the node ahead of the highest left branch, and the highest right. In the case of the node at the end of the branch, “2” is stored and the numbers in ascending order from the highest node are stored. The logical expression tree structure generation unit 32 stores the value that enters the node in the “value” item. In the present embodiment, the logical expression tree structure generation unit 32 stores a value only in a leaf (terminal node). The logical expression tree structure generation unit 32 adds “entailment (→)”, “logical sum (∨)”, “logical product (∧)”, “negative (¬)),“ equal sign ”to the items of“ operator ”. (=) ”Or“ inequality sign (>, <, ≧, ≦))) ”is stored.The logical expression tree structure generation unit 32 stores the left branch in the item“ left node ”. The No. of the previous node is stored, and the No. of the node ahead of the right branch is stored in the item “Right Node”. In the present embodiment, when there is only one previous node, the logical expression tree structure generation unit 32 stores the No of the previous node in the item of the left node (see FIG. 4).

なお、論理式木構造生成部32はパーサとして知られる任意の公知のプログラムを、テストデータ生成処理ルーチンを実行するためのプログラムに組み込み、このパーサをCPU12が実行することにより実現可能であり、詳細な説明は割愛する。また、この図3Bに示すデータのレイアウトは一例であり、他の公知の木構造形式のデータレイアウトの利用を妨げるものではない。   The logical expression tree structure generation unit 32 can be realized by incorporating an arbitrary known program known as a parser into a program for executing a test data generation processing routine, and the CPU 12 executing the parser. I will omit the explanation. Further, the data layout shown in FIG. 3B is an example, and does not preclude the use of other known tree structure format data layouts.

そして、S102において、情報処理装置10が、含意演算子除去の処理を実行する。   In step S102, the information processing apparatus 10 executes implication operator removal processing.

図18は情報処理装置10による含意演算子除去の処理フローチャートを示す。   FIG. 18 shows a processing flowchart of implication operator removal by the information processing apparatus 10.

情報処理装置10は、S201で、図3に示す最上位のノード、つまり図4に示す「No」の項目値が「0」のノードから順に「左ノード」項目値及び「右ノード」項目値に格納されたポインタを辿りながら、「演算子」の項目値が「含意(→)」のノードを検索する。   In S201, the information processing apparatus 10 sequentially selects the “left node” item value and the “right node” item value from the highest node shown in FIG. 3, that is, the node whose “No” item value is “0” shown in FIG. Are searched for a node whose item value of “operator” is “entailment (→)”.

そして、情報処理装置10は、S202で、S201での検索の結果、「演算子」の項目値が「含意(→)」であるノードが検索出来たか否かを判定する。   Then, in S202, the information processing apparatus 10 determines whether or not a node whose item value “operator” is “entailment (→)” has been searched as a result of the search in S201.

否定標準形変換部34は、S202で、検索出来たと判定した場合、S203で、「左ノード」の項目の値をRAM16の図示しない左ノード項目値退避領域に記憶する。   If the negative standard form conversion unit 34 determines in S202 that the search was successful, the value of the item “left node” is stored in a left node item value save area (not shown) of the RAM 16 in S203.

次に、情報処理装置10は、S204で、RAM16に格納された、このノードの「演算子」の項目値を、「含意」から「論理和」に更新する。   Next, in S204, the information processing apparatus 10 updates the item value of the “operator” of this node stored in the RAM 16 from “entailment” to “logical sum”.

そして、情報処理装置10は、S205で、RAM16に格納された、このノードの「左ノード」の項目値を、「新しい番号」に更新する。例えば、情報処理装置10は、この「新しい番号」として、RAM16のNoの項目の最大値に1加算した値を採用する。なお、RAM16のNoの項目値にまだ格納されていない任意の番号を採用するようにしてもよい。   In step S <b> 205, the information processing apparatus 10 updates the item value of “left node” of this node stored in the RAM 16 to “new number”. For example, the information processing apparatus 10 employs a value obtained by adding 1 to the maximum value of the No item in the RAM 16 as the “new number”. Note that any number that is not yet stored in the No item value of the RAM 16 may be adopted.

そして、情報処理装置10は、S206で、「No」の項目にS208の処理で用いた「新しい番号」、「演算子」の項目に「否定」、「左ノード」の項目に左ノード項目値退避領域の値をそれぞれ格納した新しいノードのデータを生成し、RAM16に追加格納する。   Then, in S206, the information processing apparatus 10 uses “No” in the “No” item, “Negative” in the “Operator” item, and “Left node” item value in the “Left node” item. New node data each storing the value of the save area is generated and additionally stored in the RAM 16.

その後、情報処理装置10は、S201の処理に進む。   Thereafter, the information processing apparatus 10 proceeds to the process of S201.

そして、情報処理装置10は、S201での検索の結果、「演算子」の項目値が「含意(→)」であるノードが検索出来なかったと判定した場合には、含意演算子除去の処理を終了する。 このように、情報処理装置10は、処理対象の木構造の論理式データについて、含意演算子が検索出来なくなるまで、含意演算子除去の処理を繰り返し実行することで、木構造形式の論理式データから、含意演算子を除去することが出来る。   When the information processing apparatus 10 determines that the node having the item value “operator” of “implicit (→)” cannot be searched as a result of the search in S201, the information processing apparatus 10 performs the process of removing the implication operator. finish. As described above, the information processing apparatus 10 repeatedly executes the implication operator removal process on the tree-structured logical expression data to be processed until the implication operator cannot be searched, thereby generating the logical structure data in the tree structure format. From this, the implication operator can be removed.

なお、この含意演算子除去の処理フローチャートは一例であって、論理式に含まれる全ての含意演算子について、含意演算子の前(左辺)に記述されている論理式の否定と、含意演算子の後(右辺)に記述されている論理式との論理和に変換する他の任意の処理手順の利用を否定するものではない。   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 information processing apparatus 10 executes a double negation removal process on the logical structure data in the tree structure format from which the implication operator is removed.

図49は、情報処理装置10による二重否定除去の処理フローチャートを示す。   FIG. 49 shows a processing flowchart of double negative removal by the information processing apparatus 10.

情報処理装置10は、S301で、図3に示す最上位のノード、つまり図4に示す「No」の項目値が「0」のノードから順に「左ノード」項目値及び「右ノード」項目値に格納されたポインタを辿りながら、「演算子」の項目値が「否定(¬)」であるノードが2つ連続する二重否定の部分木を検索する。   In S301, the information processing apparatus 10 sequentially selects the “left node” item value and the “right node” item value from the highest node shown in FIG. 3, that is, the node whose “No” item value is “0” shown in FIG. 2 is searched for a double negation subtree in which two nodes whose item value of “operator” is “negation (¬)” are consecutive.

次に、情報処理装置10は、S302で、S301での検索の結果、「演算子」の項目値が「否定(¬)」であるノードが2つ連続する二重否定の部分木が検索出来たか否かを判定する。   Next, in S302, as a result of the search in S301, the information processing apparatus 10 can search for a double negation subtree in which two nodes whose item value of “operator” is “negative (¬)” are continuous. It is determined whether or not.

情報処理装置10は、S302で、検索出来たと判定した場合、S303で、検索された部分木の下位のノードの更に下位のノードのNo以外の項目値を取得する。なお、検索された部分木の下位のノードの更に下位のノードとは、つまり上位ノードの演算子項目値及び自ノードの演算子項目値が「否定(¬)」であるノードの「左ノード」の項目値をNoとするノードのことである。また、No以外の項目値とは、「値」、「演算子」、「左ノード」及び「右ノード」の各項目値のことである。   If the information processing apparatus 10 determines in S302 that the search has been completed, in S303, the information processing apparatus 10 acquires an item value other than No in the lower node of the lower node of the searched subtree. It should be noted that the lower nodes of the lower nodes of the searched subtree are the “left node” of the node whose operator item value of the upper node and the operator item value of its own node are “negation (¬)”. It is a node whose item value is No. The item values other than No are item values of “value”, “operator”, “left node”, and “right node”.

次に、情報処理装置10は、S304で、検索された部分木の上位のノードについてRAM16に格納されたNo以外の各項目値を、S303で取得した各項目値にそれぞれ更新する。   Next, in S304, the information processing apparatus 10 updates the item values other than No stored in the RAM 16 for the upper nodes of the retrieved subtree to the item values acquired in S303, respectively.

その後、情報処理装置10は、S301の処理に進む。   Thereafter, the information processing apparatus 10 proceeds to the process of S301.

そして、情報処理装置10は、S301での検索の結果、「演算子」の項目値が「否定(¬)」であるノードが2つ連続する二重否定の部分木が検索出来なかったと判定した場合には、二重否定除去の処理を終了する。   Then, as a result of the search in S301, the information processing apparatus 10 determines that a double-negative subtree in which two nodes whose item value of “operator” is “negative (¬)” is consecutive cannot be searched. In this case, the double negative removal process is terminated.

このように、情報処理装置10は、処理対象の木構造の論理式データについて、二重否定が検索出来なくなるまで、二重否定除去の処理を繰り返し実行することで、木構造形式の論理式データから、二重否定を除去することが出来る。   In this way, the information processing apparatus 10 repeatedly executes the double negation removal processing until the double negation cannot be searched for the tree-structured logical formula data to be processed, thereby obtaining the logical data in the tree structure format. From this, double negation can be removed.

なお、この二重否定除去の処理フローチャートは一例であって、論理式に含まれる全ての二重否定を除去する他の任意の処理手順の利用を否定するものではない。   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 information processing apparatus 10 executes a process of converting the logical expression data in the tree structure format from which all double negations are removed into a negative normal form of the logical expression based on De Morgan's law.

図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 information processing apparatus 10.

情報処理装置10は、S401で、図3、図13に示す最上位のノード、つまり図3Bに示す「No」の項目値が「0」のノードから順に、「左ノード」項目値及び「右ノード」項目値に格納されたポインタを辿りながら、「演算子」の項目値が「否定(→)」のノードと論理演算子(「論理和(∨)」又は「論理積(∧)」)であるノードが連続する部分木を検索する。   In S401, the information processing apparatus 10, in order from the highest node shown in FIGS. 3 and 13, that is, the node whose “No” item value is “0” shown in FIG. While following the pointer stored in the “Node” item value, the node whose “Operator” item value is “Negation (→)” and the logical operator (“logical sum (∨)” or “logical product (∧)”) Search for subtrees with consecutive nodes.

次に、情報処理装置10は、S402で、S401での検索の結果、「演算子」の項目値が「否定(→)」のノードと、「演算子」の項目値が論理演算子(「論理和」または「論理積」)であるノードとが連続する部分木が検索出来たか否かを判定する。   Next, in S402, as a result of the search in S401, the information processing apparatus 10 determines that the item value of “operator” is “negative (→)” and the item value of “operator” is a logical operator (“ It is determined whether or not a subtree in which a node that is “logical sum” or “logical product”) continues can be searched.

情報処理装置10は、S402で、検索出来たと判定した場合、S403で、演算子項目値は「論理和(∨)」か否かを判定する。   If the information processing apparatus 10 determines in S402 that the search was successful, it determines in S403 whether the operator item value is “logical sum (∨)”.

情報処理装置10は、S403で「論理和(∨)」であると判定すると、S404で、検索された部分木の上位のノード、つまり演算子が「否定(¬)」のノードについて、RAM16に格納された「演算子」の項目値を「否定(¬)」から「論理積(∧)」に更新する。   If the information processing apparatus 10 determines in S403 that it is “logical sum (∨)”, in S404, the upper node of the searched subtree, that is, the node whose operator is “negative (¬)” is stored in the RAM 16. The stored item value of “operator” is updated from “negation (¬)” to “logical product (∧)”.

一方、情報処理装置10は、S403で「論理和(∨)」でないと判定すると、S405で、検索された部分木の上位のノード、つまり演算子が「否定(¬)」のノードについて、RAM16に格納された「演算子」の項目値を「否定(¬)」から「論理和(∨)」に更新する。   On the other hand, if the information processing apparatus 10 determines in S403 that it is not “logical sum (∨)”, in S405, the RAM 16 for the upper node of the retrieved subtree, that is, the node whose operator is “Negative (¬)”. The item value of “operator” stored in is updated from “negation (¬)” to “logical sum (」) ”.

なお、上記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 information processing apparatus 10 proceeds to the processing of S406. In S406, the lower node of the searched subtree, that is, the operator is a logical operator (“logical sum (∨)” or “logical The item values of “left node” and “right node” of the node of product (∧) ”) are acquired.

情報処理装置10は、S407で、S404又はS405で処理した上位ノードの「左ノード」及び「右ノード」の項目値をそれぞれ「新しい番号」に更新する。例えば、情報処理装置10は、この「左ノード」の「新しい番号」として、RAM16のNoの項目の最大値に1加算した値、「右ノード」の「新しい番号」として、この「左ノード」の「新しい番号」に更に1加算した値を格納する。なお、RAM16のNoの項目値にまだ格納されていない任意の番号をそれぞれ格納するようにしてもよい。   In S407, the information processing apparatus 10 updates the item values of the “left node” and “right node” of the upper node processed in S404 or S405 to “new numbers”, respectively. For example, the information processing apparatus 10 adds 1 to the maximum value of the No item in the RAM 16 as the “new number” of the “left node”, and sets the “left node” as the “new number” of the “right node”. A value obtained by adding 1 to “new number” is stored. In addition, you may make it store the arbitrary numbers which are not yet stored in the item value of No of RAM16, respectively.

情報処理装置10は、S408で、「No」の項目にはS407で上位ノードの「左ノード」の項目に格納した「新しい番号」を、「演算子」の項目には「否定」を、「左ノード」の項目にはS406で取得した「左ノード」の項目値を、それぞれ格納した新しいノードのデータを生成し、RAM16に追加格納する。   In S <b> 408, the information processing apparatus 10 stores “New Number” stored in the “Left Node” item of the upper node in S <b> 407 in the “No” item, “Negative” in the “Operator” item, “ In the “left node” item, data of a new node storing the item value of “left node” acquired in S 406 is generated and additionally stored in the RAM 16.

また、情報処理装置10は、S409で、「No」の項目にはS406で上位ノードの「右ノード」の項目に格納した「新しい番号」を、「演算子」の項目には「否定」を、「左ノード」の項目にはS406で取得した「右ノード」の項目値を、それぞれ格納した新しいノードのデータを生成し、RAM16に追加格納する。   Further, in S409, the information processing apparatus 10 sets “No” to the “new number” stored in the “right node” item of the upper node in S406 and “No” to the “operator” item. For the item “left node”, data of a new node storing the item value of “right node” acquired in S 406 is generated and stored in the RAM 16.

その後、情報処理装置10は、S401の処理に進む。   Thereafter, the information processing apparatus 10 proceeds to the process of S401.

そして、情報処理装置10は、S401での検索の結果、「演算子」の項目値が「否定(→)」のノードと、「演算子」の項目値が論理演算子(「論理和」または「論理積」)であるノードとが連続する部分木が検索出来なかったと判定した場合には、ド・モルガンの法則に基づく論理式の否定標準形への変換の処理を終了する。   Then, as a result of the search in S401, the information processing apparatus 10 determines that the item value of “operator” is “negative (→)” and the item value of “operator” is a logical operator (“logical sum” or If it is determined that a subtree continuous with a node that is “logical product” cannot be searched, the process of converting the logical expression to the negative normal form based on De Morgan's law is terminated.

このように、情報処理装置10は、処理対象の木構造の論理式データについて、「演算子」の項目値が「否定(→)」のノードと論理演算子(「論理和(∨)」又は「論理積(∧)」)であるノードが連続する部分木が検索出来なくなるまで、ド・モルガンの法則に基づく論理式の否定標準形への変換の処理を繰り返し実行する。否定標準形変換部34は、この処理を実行することにより、論理積、論理和、否定を含む木構造形式の論理式データを、該論理式データに含まれる否定が原子論理式のみに係る否定標準形の論理式データに変換することが出来る。   In this way, the information processing apparatus 10 has a node with the item value of “operator” “negative (→)” and a logical operator (“logical sum (∨)” or The process of converting the logical expression to the negative canonical form based on De Morgan's law is repeatedly executed until the subtree in which the node which is “logical product (∧)” cannot be searched is found. By executing this process, the negative standard form conversion unit 34 converts the logical formula data including the logical product, logical sum, and negation, and the negation included in the logical formula data only relates to the atomic logical formula. It can be converted into standard formula data.

なお、このド・モルガンの法則に基づく論理式の否定標準形への変換の処理フローチャートは一例であって、論理積、論理和及び否定以外の論理演算子を含まない論理式を否定標準形に変換可能な他の任意の処理手順の利用を否定するものではない。   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 information processing apparatus 10 executes a process of removing the negation related to the inequality sign for the logical structure data in the tree structure format converted into the negative standard form. FIG. 51 shows a processing flowchart of the removal of negation related to an inequality sign by the information processing apparatus 10.

否定付き情報処理装置10は、S501で、図14、図25に示す最上位のノード、つまり図16、図27に示す「No」の項目値が「0」のノードから順に「左ノード」項目値及び「右ノード」項目値に格納されたポインタを辿りながら、「演算子」の項目値が「否定(¬)」であるノードと、「演算子」の項目値が不等号(不等号(<、>)及び等号付き不等号(≦、≧)の内のいずれか)であるノードとが連続する、否定つき不等号の部分木を検索する。   In S501, the information processing apparatus 10 with negation is the “left node” item in order from the highest node shown in FIGS. 14 and 25, that is, the node whose item value “No” is “0” shown in FIGS. While following the pointer stored in the value and the “right node” item value, the item value of the “operator” is “negation (¬)” and the item value of the “operator” is an inequality sign (an inequality sign (<, >) And an inequality sign with negation (any one of ≦ and ≧) is searched for a subtree of inequality with negation.

次に、情報処理装置10は、S502で、S501での検索の結果、「演算子」の項目値が「否定(¬)」であるノードと、「演算子」の項目値が不等号(不等号(<、>)及び等号付き不等号(≦、≧)の内のいずれか)であるノードとが連続する、否定つき不等号の部分木が検索出来たか否かを判定する。   Next, in S502, the information processing apparatus 10 determines that the node value of the “operator” is “Negative (¬)” and the item value of the “operator” are inequality signs (inequalities ( It is determined whether or not a subtree with inequality with negation, which is continuous with nodes that are <,>) and inequality with equality (any one of ≦, ≧), can be searched.

情報処理装置10は、S502で、検索出来たと判定した場合、S503で、検索された部分木の下位ノード、つまり演算子が不等号(不等号(<、>)及び等号付き不等号(≦、≧)の内のいずれか)であるノードについて、演算子項目値の「不等号」は「等号付き不等号(≧または≦)」であるか否かを判定する。   If the information processing apparatus 10 determines in S502 that the search has been completed, in S503, the subnode of the searched subtree, that is, the operator is an inequality sign (an inequality sign (<,>) and an inequality sign with an equal sign (≦, ≧). It is determined whether the operator item value “inequality sign” is “equal sign with equal sign (≧ or ≦)”.

情報処理装置10は、S503で「等号付き不等号(≧または≦)」であると判定すると、S504で、検索された部分木の上位ノード、つまり演算子が「否定(¬)」であるノードについて、RAM16に格納された、「演算子」の項目値を、「否定(¬)」から、このノードの下位ノードの「演算子」の項目値である「等号付き不等号(≧または≦)」と背反となる「等号なし且つ逆向きの不等号(<または>)」に更新する。つまり、否定標準形変換部34は、RAM16に格納された下位ノードの「演算子」の項目値が「≧」である場合には上位ノードの「演算子」の項目値を「<」、下位ノードの「演算子」の項目値が「≦」である場合には上位ノードの「演算子」の項目値を「>」にそれぞれ更新する。   If the information processing apparatus 10 determines in S503 that it is an “inequality sign with equal sign (≧ or ≦)”, in S504, the upper node of the searched subtree, that is, a node whose operator is “Negative (¬)” The item value of “operator” stored in the RAM 16 is changed from “Negation (¬)” to “Inequality sign with equal sign (≧ or ≦)” which is the item value of “operator” of the lower node of this node. To "No equal sign in the opposite direction (<or>)". That is, when the item value of the “operator” of the lower node stored in the RAM 16 is “≧”, the negative standard form conversion unit 34 sets the item value of the “operator” of the upper node to “<”, When the item value of the “operator” of the node is “≦”, the item value of the “operator” of the upper node is updated to “>”.

一方、情報処理装置10は、S503で「等号付き不等号(≧または≦)」でないと判定すると、S504で、検索された部分木の上位ノード、つまり演算子が「否定(¬)」であるノードについて、RAM16に格納された、「演算子」の項目値を、「否定(¬)」から、このノードの下位ノードの「演算子」の項目値である「等号なし不等号(>または<)」と背反となる「等号なし且つ逆向きの不等号(≦または≧)」に更新する。つまり、否定標準形変換部34は、検索された部分木について、RAM16に格納された、下位ノードの「演算子」の項目値が「>」である場合には上位ノードの「演算子」の項目値を「≦」、下位ノードの「演算子」の項目値が「<」である場合には上位ノードの「演算子」の項目値を「≧」にそれぞれ更新する。   On the other hand, if the information processing apparatus 10 determines in S503 that it is not “an inequality sign with an equal sign (≧ or ≦)”, in S504, the upper node of the searched subtree, that is, the operator is “negative (¬)”. For the node, the item value of “operator” stored in the RAM 16 is changed from “negation (¬)” to “equal sign without equal sign” (> or < ) ", Which is contradictory to" No equal sign and reverse inequality sign (≤ or ≥) ". That is, when the item value of the “operator” of the lower node stored in the RAM 16 is “>” for the retrieved subtree, the negative standard form conversion unit 34 sets the “operator” of the upper node. When the item value is “≦” and the item value of the “operator” of the lower node is “<”, the item value of the “operator” of the upper node is updated to “≧”.

なお、上記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 information processing apparatus 10 proceeds to the process of S506, and acquires the item values of “left node” and “right node” of the lower nodes of the searched subtree, respectively.

そして、情報処理装置10は、S507で、RAM16に格納された、検索された部分木の上位ノードの「左ノード」及び「右ノード」の項目値を、S506で取得した「左ノード」及び「右ノード」の項目値にそれぞれ更新する。   In step S507, the information processing apparatus 10 stores the item values of the “left node” and “right node” of the upper nodes of the searched subtree stored in the RAM 16 in step S506. Update to the item value of “right node”.

その後、情報処理装置10は、S501の処理に進む。   Thereafter, the information processing apparatus 10 proceeds to the process of S501.

そして、情報処理装置10は、S501での検索の結果、「演算子」の項目値が「否定(¬)」であるノードと、「演算子」の項目値が不等号(不等号(<、>)及び等号付き不等号(≦、≧)の内のいずれか)であるノードとが連続する、否定つき不等号の部分木が検索出来なかったと判定した場合には、不等号に係る否定の除去の処理を終了する。   Then, as a result of the search in S501, the information processing apparatus 10 has a node whose item value of “operator” is “Negative (¬)” and an item value of “operator” is an inequality sign (an inequality sign (<,>)). And if it is determined that the subtree of the inequality with negation that is consecutive with the node that is an inequality with equality (any one of ≦, ≧) cannot be searched, the process of removing the negation related to the inequality is performed. finish.

このように、情報処理装置10は、処理対象の木構造の論理式データについて、「演算子」の項目値が「否定(¬)」であるノードと、「演算子」の項目値が不等号(不等号(<、>)及び等号付き不等号(≦、≧)の内のいずれか)であるノードとが連続する、否定つき不等号の部分木が検索出来なくなるまで、不等号に係る否定の除去の処理を繰り返し実行することで、木構造形式の論理式データから、不等号に係る否定を除去することが出来る。   In this way, the information processing apparatus 10 has a node whose “operator” item value is “negation (¬)” and an “operator” item value that is inequality ( Processing of removal of negation related to inequality until no subtrees with inequality with negation can be searched that are consecutive with nodes that are inequality (<,>) and inequality with equality (any of ≦, ≧). Is repeatedly executed, the negation related to the inequality sign can be removed from the logical formula data in the tree structure format.

なお、この否定付き不等号除去の処理フローチャートは一例であって、論理式に含まれる全ての否定付き不等号を除去する他の任意の処理手順の利用を否定するものではない。   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 information processing apparatus 10 can apply the conversion rule for removing the inequality operator with an equal sign from the logical structure data in the tree structure format from which all negations related to the inequality are removed. Determine whether or not.

図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 RAM 16 is changed from “inequality sign with equal sign” to “logical sum (∨ ) ".

次に、境界値制約生成部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 RAM 16. Store.

そして、境界値制約生成部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 RAM 16 as the “new number” of the “left node”, and sets the “left number” as the “new number”. A value obtained by adding 1 to “new number” of “node” is stored. In addition, you may make it store the arbitrary numbers which are not yet stored in the item value of No of RAM16, respectively.

そして、境界値制約生成部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 RAM 16 in the“ left node ”item, and the right node item value save area value in the RAM 16 in the“ right node ”item. And are additionally stored in the RAM 16. That is, the boundary value constraint generation unit 38 stores “<” when the item value of “operator” is “≦”, and stores “>” when it is “≧”.

また、境界値制約生成部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 RAM 16 is stored in the “left node” item, and the value of the right node item value saving area of the RAM 16 is set in the “right node” item. And is additionally stored in the RAM 16.

なお、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 form conversion unit 34 determines that the result of the search in S601 could not be searched, the negative standard form conversion unit 34 ends the process of conversion of an inequality sign with an equal sign.

このように、境界値制約生成部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 information processing apparatus 10 executes a conversion process to the disjunctive standard form for the tree-structured logical expression data from which all inequality operators with equal signs are removed.
FIG. 53 shows a processing flowchart of the conversion to the disjunctive standard form by the test data generating unit 40.

テストデータ生成部40は、S701で、図34、図41に示す最上位のノード、つまり図36、図43に示す「No」の項目値が「0」のノードから順に「左ノード」項目値及び「右ノード」項目値に格納されたポインタを辿りながら、「演算子」の項目値が「論理積(∧)」であるノードと、「演算子」の項目値が「論理和(∨)」であるノードが連続する部分木を検索する。   In S701, the test data generation unit 40 sets the “left node” item value in order from the highest node shown in FIGS. 34 and 41, that is, the node whose “No” item value is “0” shown in FIGS. And while tracing the pointer stored in the item value of “right node”, the item value of “operator” is “logical product (∧)” and the item value of “operator” is “logical sum (∨)”. ”Is searched for subtrees in which the node“ ”is continuous.

次に、テストデータ生成部40は、S702で、S701での検索の結果、「演算子」の項目値が「論理積(∧)」であるノードと、「演算子」の項目値が「論理和(∨)」であるノードが連続する部分木が検索出来たか否かを判定する。   Next, in step S <b> 702, the test data generation unit 40 obtains a node whose item value of “operator” is “logical product (∧)” as a result of the search in step S <b> 701, and the item value of “operator” is “logical”. It is determined whether or not a subtree in which nodes that are “sum (∨)” are continuous can be searched.

テストデータ生成部40は、S702で、検索出来たと判定した場合、S703で、RAM16に格納された、検索された部分木の上位のノードつまり「演算子」の項目値が「論理積(∧)」であるノードの、「演算子」の項目値を、「論理積(∧)」から「論理和(∨)」に更新する。   If the test data generation unit 40 determines in S702 that the search has been completed, the item value of the upper node of the searched subtree, that is, the “operator” stored in the RAM 16 in S703 is “logical product (70)”. The item value of “operator” of the node “” is updated from “logical product (∧)” to “logical sum (∨)”.

次に、テストデータ生成部40は、S704で、検索された部分木の上位のノードの「左ノード」及び「右ノード」の項目値を、RAM16の図示しない左ノード項目値退避領域及び右ノード項目値退避領域にそれぞれ格納する。   Next, in step S704, the test data generation unit 40 uses the left node item value save area and the right node (not shown) of the RAM 16 as the item values of the “left node” and “right node” of the upper nodes of the searched subtree. Store in the item value save area.

次に、テストデータ生成部40は、S705で、検索された部分木の上位のノードの「左ノード」及び「右ノード」の項目値を、それぞれ「新しい番号」に更新する。例えば、テストデータ生成部40は、この「左ノード」の「新しい番号」として、RAM16のNoの項目の最大値に1加算した値、「右ノード」の「新しい番号」として、この「左ノード」の「新しい番号」に更に1加算した値を格納する。なお、RAM16のNoの項目値にまだ格納されていない任意の番号をそれぞれ格納するようにしてもよい。   Next, in step S <b> 705, the test data generation unit 40 updates the item values of “left node” and “right node” of the upper nodes of the searched subtree to “new numbers”, respectively. For example, the test data generation unit 40 adds 1 to the maximum value of the No item in the RAM 16 as the “new number” of the “left node”, and sets the “left node” as the “new number” of the “right node”. The value obtained by adding 1 to the “new number” of “” is stored. In addition, you may make it store the arbitrary numbers which are not yet stored in the item value of No of RAM16, respectively.

次に、テストデータ生成部40は、S706で、検索された部分木の下位のノード、つまり、「演算子」の項目値が「論理和」のノードの「左ノード」及び「右ノード」の項目値を取得する。   Next, in step S706, the test data generation unit 40 selects the “left node” and “right node” items of the nodes under the searched subtree, that is, the nodes whose “operator” item value is “logical sum”. Get the value.

そして、テストデータ生成部40は、S707で、検索された部分木の下位ノードのNoの項目値は左ノード項目値退避領域の値と一致するか否かを判定する。   In step S707, the test data generation unit 40 determines whether the No item value of the lower node of the retrieved subtree matches the value of the left node item value save area.

テストデータ生成部40は、S707で、一致すると判定した場合、S708で、「No」の項目にはS705で上位ノードの「左ノード」に格納した「新しい番号」を、「演算子」の項目には「論理積(∧)」を、「左ノード」の項目にはS706で取得した下位ノードの「左ノード」の項目値を、「右ノード」の項目にはRAM16の左ノード項目値退避領域の値を、それぞれ格納した新しいノードのデータを生成し、RAM16に追加格納する。   If the test data generation unit 40 determines in S707 that they match, the item “No” stored in the “left node” of the upper node in S705 is replaced with the item “Operator” in S708. Is “logical product (∧)”, the item “left node” is the item value of “left node” of the lower node acquired in S706, and the item “right node” is the left node item value saved in the RAM 16. Data of new nodes storing the values of the areas is generated and additionally stored in the RAM 16.

また、テストデータ生成部40は、S709で、「No」の項目にはS705で上位ノードの「右ノード」に格納した「新しい番号」を、「演算子」の項目には「論理積(∧)」を、「左ノード」の項目にはS706で取得した下位ノードの「右ノード」の項目値を、「右ノード」の項目にはRAM16の左ノード項目値退避領域の値を、それぞれ格納した新しいノードのデータを生成し、RAM16に追加格納する。   Further, in S709, the test data generation unit 40 stores “new number” stored in the “right node” of the upper node in S705 for the “No” item, and “logical product (∧) for the“ operator ”item. ””, The “left node” item value of the “right node” of the subordinate node acquired in S706, and the “right node” item store the value of the left node item value save area of the RAM 16, respectively. The new node data is generated and additionally stored in the RAM 16.

一方、テストデータ生成部40は、S707で、一致しないと判定した場合、S710で、「No」の項目にはS705で上位ノードの「左ノード」に格納した「新しい番号」を、「演算子」の項目には「論理積(∧)」を、「左ノード」の項目にはRAM16の左ノード項目値退避領域の値を、「右ノード」の項目にはS706で取得した下位ノードの「左ノード」の項目値を、それぞれ格納した新しいノードのデータを生成し、RAM16に追加格納する。   On the other hand, if the test data generation unit 40 determines in S707 that they do not match, in S710, the item “No” is replaced with the “new number” stored in the “left node” of the upper node in S705 as the “operator”. "Logical product (∧)" for the item "", the value of the left node item value saving area of the RAM 16 for the item "left node", and "lower node" obtained in S706 for the item "right node". Data of new nodes each storing the item value of “left node” are generated and additionally stored in the RAM 16.

また、テストデータ生成部40は、S711で、「No」の項目にはS705で上位ノードの「右ノード」に格納した「新しい番号」を、「演算子」の項目には「論理積(∧)」を、「左ノード」の項目にはRAM16の左ノード項目値退避領域の値を、「右ノード」の項目にはS706で取得した下位ノードの「右ノード」の項目値を、それぞれ格納した新しいノードのデータを生成し、RAM16に追加格納する。   Further, in S711, the test data generation unit 40 stores “new number” stored in the “right node” of the upper node in S705 for the “No” item, and “logical product (∧) for the“ operator ”item. ) ", The value of the left node item value saving area of the RAM 16 is stored in the item of" left node ", and the item value of" right node "of the lower node acquired in S706 is stored in the item of" right node ", respectively. The new node data is generated and additionally stored in the RAM 16.

その後、否定標準形変換部34は、S701の処理に進む。   Thereafter, the negative standard form conversion unit 34 proceeds to the process of S701.

そして、否定標準形変換部34は、S701での検索の結果、「演算子」の項目値が「論理積(∧)」であるノードと、「演算子」の項目値が「論理和(∨)」であるノードが連続する部分木が検索出来なかったと判定した場合には、選言標準形への変換の処理を終了し、図47に示すS126の処理に進む。   Then, as a result of the search in S701, the negative standard form conversion unit 34 determines that the item value of the “operator” is “logical product (∧)” and the item value of the “operator” is “logical sum (∨ When it is determined that the subtrees in which the node “)” is continuous cannot be searched, the conversion to the disjunctive standard form is terminated, and the process proceeds to S126 shown in FIG.

上記の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 information processing apparatus 10 converts the logical expression data in the tree structure format representing the logical expression of the disjunctive standard form into the partial tree data for each clause of the disjunctive normal form. To divide. In step S128, the information processing apparatus 10 converts the partial tree data of each section into character string data indicating the logical expression of each section, and stores the character string data in the data generation property storage unit 41.

次のS130では、情報処理装置10が、データ生成用プロパティ記憶部41から、1つの節の論理式を示す文字列データを取得し、S132において、情報処理装置10が、取得した1つの節の論理式を示す文字列データを、充足可能性判定部42へ出力する。このとき、充足可能性判定部42は、入力された文字列データが示す論理式(制約条件)の充足可能性を判定すると共に、充足解データを求めて出力する。   In next S130, the information processing apparatus 10 acquires character string data indicating a logical expression of one section from the data generation property storage unit 41. In S132, the information processing apparatus 10 acquires the acquired one section. Character string data indicating a logical expression is output to the satisfiability determination unit 42. At this time, the satisfiability determination unit 42 determines the satisfiability of the logical expression (constraint condition) indicated by the input character string data, and obtains and outputs satisfaction solution data.

そして、S134において、情報処理装置10が、充足可能性判定部42から出力された充足解データを取得し、充足解データを一組のテストデータとして、テストデータ記憶部44のテストデータテーブルに格納する。   In step S134, the information processing apparatus 10 acquires the satisfaction solution data output from the satisfaction possibility determination unit 42, and stores the satisfaction solution data in the test data table of the test data storage unit 44 as a set of test data. To do.

次のS136では、情報処理装置10が、選言標準形の論理式の全ての節について、上記S130〜S134の処理が実行されたか否かを判定する。上記S130〜S134の処理が実行されていない節が存在すると判定された場合には、情報処理装置10は、上記S130へ戻り、未処理の節について、上記S130〜S134の処理を実行する。一方、全ての節について、上記S130〜S134の処理が実行されたと判定された場合には、情報処理装置10が、テストデータ生成処理ルーチンを終了する。   In next step S136, the information processing apparatus 10 determines whether or not the processing of S130 to S134 has been executed for all clauses of the disjunctive standard logical expression. If it is determined that there is a clause for which the processing of S130 to S134 has not been performed, the information processing apparatus 10 returns to S130 and executes the processing of S130 to S134 for the unprocessed clause. On the other hand, when it is determined that the processing of S130 to S134 has been executed for all the sections, the information processing apparatus 10 ends the test data generation processing routine.

そして、オペレータが、テストデータ記憶部44に記憶されたテストデータテーブルを用いて、情報処理装置10又は他の装置に、検査対象のソフトウェアの検査プログラムを実行させて、検査対象のソフトウェアの検査処理を行わせる。   Then, using the test data table stored in the test data storage unit 44, the operator causes the information processing apparatus 10 or another apparatus to execute an inspection program for the inspection target software, thereby inspecting the inspection target software. To do.

以上説明したように、本実施の形態に係る情報処理装置10は、検査対象のソフトウェアの入力値に関する制約条件を示す論理式データにおいて、等号付き不等号の論理式を、等号を用いた論理式に変換する。そしてこの論理式を選言標準形となるように変換して、選言標準形に変換した論理式の各節をそれぞれSMTソルバに入力する論理式として出力する。そして、情報処理装置10は、各節の論理式の充足解データを得ることにより、入力値に関する境界値テストを考慮したテストデータを生成することが出来る。   As described above, the information processing apparatus 10 according to the present embodiment uses a logical expression of equality with an equal sign as a logical expression using an equal sign in the logical expression data indicating the constraint condition regarding the input value of the software to be inspected. Convert to an expression. Then, this logical expression is converted into the disjunctive standard form, and each clause of the logical expression converted into the disjunctive standard form is output as a logical expression that is input to the SMT solver. Then, the information processing apparatus 10 can generate test data in consideration of the boundary value test regarding the input value by obtaining the satisfiability solution data of the logical expression of each clause.

また、本実施の形態に係る情報処理装置10は、業務仕様を満たし、且つ、境界値テストが可能なテストデータを自動的に生成することが出来る。   In addition, the information processing apparatus 10 according to the present embodiment can automatically generate test data that satisfies business specifications and can be subjected to a boundary value test.

本実施の形態に係る情報処理装置10は、入力値に関する境界値のバリエーションと入力値に関する制約条件のバリエーションとの組合せを全て考慮した複数組のテストデータを生成することが出来る。また、情報処理装置10は、テストを意識しない業務仕様記述から、より現実的なテストデータを生成することが出来る。   The information processing apparatus 10 according to the present embodiment can generate a plurality of sets of test data in consideration of all combinations of variations of boundary values related to input values and variations of constraint conditions related to input values. Further, the information processing apparatus 10 can generate more realistic test data from a business specification description that is not conscious of the test.

また、境界値制約生成部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 information processing apparatus 10 can generate test data for testing the representative value and also generate test data for testing the upper boundary value or the lower boundary value.

なお、上記の実施の形態では、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 information processing apparatus 10 that performs the process of generating test data may perform the satisfiability determination process. In this case, the information processing apparatus 10 performs, for each section of the converted disjunctive standard form logical expression data, other information processing that performs a sufficiency determination process on character string data indicating the logical expression of the section. It outputs to an apparatus and acquires sufficiency solution data from the said other information processing apparatus.

また、情報処理装置10は、テストデータ生成処理ルーチンを実行するためのプログラムとは別のプログラムによって、充足可能性の判定処理を実行する場合を例に説明したが、これに限定されるものではない。情報処理装置10は、テストデータ生成処理ルーチンを実行するためのプログラムにより、テストデータを生成する処理と、充足可能性の判定処理とを行うようにしてもよい。   Further, although the information processing apparatus 10 has been described with respect to an example in which the satisfiability determination process is executed by a program different from the program for executing the test data generation process routine, the information processing apparatus 10 is not limited thereto. Absent. The information processing apparatus 10 may be configured to perform test data generation processing and satisfiability determination processing by a program for executing a test data generation processing routine.

また、情報処理装置10は、含意演算子除去のための変換法則、二重否定除去のための変換法則、及びド・モルガンの法則に基づく変換法則を順に論理式データに適用する場合を例に説明したが、これに限定されるものではない。情報処理装置10は、論理式データに対して、他の順序(例えば、二重否定除去のための変換法則、含意演算子除去のための変換法則、及びド・モルガンの法則に基づく変換法則の順)で、上記の変換法則を適用してもよい。この場合には、情報処理装置10は、論理式データが、否定標準形の論理式データに変換されるまで、上記の変換法則を繰り返し適用すればよい。   In addition, the information processing apparatus 10 exemplifies a case where a conversion law for removing an implication operator, a conversion law for removing double negation, and a conversion law based on De Morgan's law are sequentially applied to logical formula data. Although described, the present invention is not limited to this. The information processing apparatus 10 performs other orders on the logical formula data (for example, a conversion law for removing double negation, a conversion law for removing implication operators, and a conversion law based on De Morgan's law). In order), the above conversion law may be applied. In this case, the information processing apparatus 10 may apply the above conversion rule repeatedly until the logical formula data is converted into negative standard logical formula data.

また、情報処理装置10は、検査対象のソフトウェアの入力値に関する制約条件を示す論理式データに基づいて、テストデータを生成する場合を例に説明したが、これに限定されるものではない。例えば、情報処理装置10は、ソフトウェアのモジュール部分を、検査対象として、検査対象のモジュール部分の入力値に関する制約条件を示す論理式データに基づいて、モジュール部分の入力値に関するテストデータを生成するようにしてもよい。   Further, although the information processing apparatus 10 has been described by way of example of generating test data based on logical expression data indicating the constraint condition regarding the input value of the software to be inspected, the present invention is not limited to this. For example, the information processing apparatus 10 sets the module part of the software as the inspection target, and generates test data related to the input value of the module part based on the logical expression data indicating the constraint condition regarding the input value of the module part to be inspected. It may be.

また、情報処理装置10は、ハードウェアの機構に関して、特に限定されない。上記では、テストデータ生成処理ルーチンを実行するためのプログラムが、HDD18に記憶されている態様を説明したが、当該プログラムは、CD−ROMやDVD−ROM、USBメモリ等の可搬型の記録媒体に記憶されている形態で提供することも可能である。例えば、図54に示すように、テストデータ生成処理ルーチンを実行するためのプログラムを記憶した、CD−ROMやDVD−ROM、USBメモリ等の記録媒体52が、情報処理装置10のドライブ装置50にセットされる。そして、テストデータ生成処理ルーチンを実行するためのプログラムが、記録媒体52からドライブ装置50を介して、HDD18にインストールされる。   The information processing apparatus 10 is not particularly limited with respect to the hardware mechanism. In the above description, the mode in which the program for executing the test data generation processing routine is stored in the HDD 18 has been described. However, the program is stored in a portable recording medium such as a CD-ROM, a DVD-ROM, or a USB memory. It is also possible to provide it in a stored form. For example, as shown in FIG. 54, a recording medium 52 such as a CD-ROM, DVD-ROM, or USB memory storing a program for executing a test data generation processing routine is stored in the drive device 50 of the information processing apparatus 10. Set. Then, a program for executing the test data generation processing routine is installed in the HDD 18 from the recording medium 52 via the drive device 50.

10 情報処理装置
12 CPU
14 ROM
16 RAM
18 HDD
30 プロパティ記憶部
32 論理式木構造生成部
34 否定標準形変換部
36 不等号除去変換部
38 境界値制約生成部
40 テストデータ生成部
41 データ生成用プロパティ記憶部
42 充足可能性判定部
44 テストデータ記憶部
10 Information processing device 12 CPU
14 ROM
16 RAM
18 HDD
30 Property storage unit 32 Logical expression tree structure generation unit 34 Negative normal form conversion unit 36 Inequality sign removal conversion unit 38 Boundary value constraint generation unit 40 Test data generation unit 41 Data generation property storage unit 42 Satisfiability determination unit 44 Test data storage Part

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.
JP2011058920A 2011-03-17 2011-03-17 Test data generation program, apparatus, and method Active JP5655650B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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