JP2016115287A - Test case generation program, test case generation method and test case generator - Google Patents

Test case generation program, test case generation method and test case generator Download PDF

Info

Publication number
JP2016115287A
JP2016115287A JP2014255605A JP2014255605A JP2016115287A JP 2016115287 A JP2016115287 A JP 2016115287A JP 2014255605 A JP2014255605 A JP 2014255605A JP 2014255605 A JP2014255605 A JP 2014255605A JP 2016115287 A JP2016115287 A JP 2016115287A
Authority
JP
Japan
Prior art keywords
true
conditional expression
false
value
rule
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
JP2014255605A
Other languages
Japanese (ja)
Other versions
JP6511793B2 (en
Inventor
一樹 宗像
Kazuki Munakata
一樹 宗像
忠弘 上原
Tadahiro Uehara
忠弘 上原
晋 徳本
Susumu Tokumoto
晋 徳本
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 JP2014255605A priority Critical patent/JP6511793B2/en
Publication of JP2016115287A publication Critical patent/JP2016115287A/en
Application granted granted Critical
Publication of JP6511793B2 publication Critical patent/JP6511793B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a technique for generating a test case which satisfies coverage regulations in test comprehensiveness of MC/DC (modified condition/decision coverage) with enhanced satisfiability while eliminating redundancy.SOLUTION: The test case generation program causes a computer to execute an analysis steps of identifying a calculation object formula in which a truth value of a calculation result made by a calculation element and a truth value of a calculation object formula as an object of calculation by the calculation element satisfy a predetermined relationship, when plural calculation object formulae in the predetermined relationship are identified, to hold identified plural calculation object formulae, and to acquire a truth value of the calculation object formulae; and a selecting step of determining the satisfiability of the calculation object formula with respect to the plural calculation object formulae in a predetermined relationship to select a calculation object formula which is determined as certifiable.SELECTED DRAWING: Figure 9B

Description

本発明は、テストケース生成プログラム、テストケース生成方法及びテストケース生成装置に関する。   The present invention relates to a test case generation program, a test case generation method, and a test case generation apparatus.

ソフトウェアのテストの品質基準を定義する指標の一つとして、MC/DC(Modified
Condition/Decision Coverage)によるテスト網羅度が知られている。MC/DCは、テスト対象となるソフトウェアのプログラムコード(内部ロジック)に対して実行されたテストの網羅度を示すコードカバレッジの一種であり、航空機ソフトウェアのテスト時に使用されるカバレッジとして米国の航空機産業団体によって開発された。なお、他のコードカバレッジとして、例えば、テスト対象となるソフトウェアのプログラムコード内の全ての条件判定、判定結果としての分岐を全て確認可能なC/DC(Condition/Decision Coverage)が例示できる。また、テスト対象となるソフトウェアのプログラムコードの判定
に含まれる条件値の全組合せを2のn乗個(nは条件数)のテストケースで確認可能なMCC(Multiple Condition Coverage)等が例示できる。
MC / DC (Modified) is one of the indicators that define software testing quality standards.
Test coverage by Condition / Decision Coverage) is known. MC / DC is a kind of code coverage indicating the degree of coverage of tests executed on program code (internal logic) of software to be tested, and is used in the aircraft industry in the United States as coverage used when testing aircraft software. Developed by an organization. As another code coverage, for example, C / DC (Condition / Decision Coverage) that can confirm all the condition determinations in the program code of the software to be tested and all the branches as the determination results can be exemplified. Further, there can be exemplified MCC (Multiple Condition Coverage) or the like in which all combinations of the condition values included in the determination of the program code of the software to be tested can be confirmed with 2 n test cases (where n is the number of conditions).

MC/DCは、例えば、C/DCにおいて検出不能な、判定式内の“and”と“or”の
誤記を検出可能とし、n個の条件数に対してn+1個以上のテストケースでプログラムコードの判定に含まれる条件値の全組合せを確認可能なコードカバレッジである。なお、本明細書においては、“真”、“偽”を得る式を条件と呼び、プログラムの判定文の判定対象の式を判定、或いは、判定式と呼ぶことにする。判定式は、“and”、“or”等の論理
演算子によって複数の条件を組合せることができる。MC/DCによるテスト網羅度は、以下の網羅規則を満たす。
・網羅規則1:プログラムの全入り口/出口は少なくとも一回はテストすること。
・網羅規則2:プログラムの判定に含まれる全条件は可能な値を少なくとも一回はテストすること。
・網羅規則3:プログラムの全判定は可能な値を少なくとも一回はテストすること。
・網羅規則4:プログラムの判定の全条件は、判定の出力に独立に影響することを示すこと。
MC / DC, for example, makes it possible to detect errors in “and” and “or” in judgment formulas that cannot be detected in C / DC, and program code in n + 1 or more test cases for n condition numbers. This is code coverage capable of confirming all combinations of condition values included in the determination. In this specification, expressions that obtain “true” and “false” are referred to as conditions, and expressions to be determined in a determination sentence of a program are referred to as determinations or determination expressions. The judgment formula can combine a plurality of conditions by logical operators such as “and” and “or”. The test coverage by MC / DC satisfies the following coverage rules.
• Coverage Rule 1: Test all entrances / exits of the program at least once.
• Coverage rule 2: All conditions included in the judgment of the program must be tested at least once for possible values.
-Coverage rule 3: All judgments of the program should test the possible values at least once.
• Coverage rule 4: Show that all conditions for judging a program affect the output of the judgment independently.

なお、本明細書で説明する技術に関連する技術が記載されている先行技術文献としては、以下の特許文献が存在している。   In addition, the following patent documents exist as prior art documents in which technologies related to the technologies described in this specification are described.

特開2011−198034号公報JP 2011-198034 A 特開2013−143067号公報JP 2013-143067 A 特開2009−181292号公報JP 2009-181292 A

網羅規則1−4のテスト網羅度を満たす、MC/DCのテストケースは、次の(1)−(4)の手順に沿って求めることができる。
(1)テスト対象のプログラム中の各判定式において、各条件の真偽値の全組合せを生成する。
(2)各真偽値の組合せに対応する判定式の真偽値を求める。
(3)各条件について、他方の条件を固定して、一方の条件の真偽値を変更した時、判定式の真偽値も変更するようなテストケースの組を求める。
(4)各条件の組の(最小となるような)和集合がMC/DCのテスト網羅度の網羅規則を満たすテストケースとなる。
MC / DC test cases satisfying the test coverage of Coverage Rules 1-4 can be obtained according to the following procedures (1) to (4).
(1) Generate all combinations of true / false values for each condition in each judgment formula in the program to be tested.
(2) The true / false value of the determination formula corresponding to each true / false value combination is obtained.
(3) For each condition, the other condition is fixed, and when the truth value of one condition is changed, a set of test cases is obtained that also changes the truth value of the determination formula.
(4) A union set (which is the smallest) of each set of conditions becomes a test case that satisfies the coverage rule of the MC / DC test coverage.

しかしながら、(1)−(4)の手順に沿ってテストケースを生成する場合、(1)の各条件の真偽値の全組合せを生成する際に、2のn乗個の組合せ(nは条件数)が生ずる。このため、条件数nが増加すると真偽値の組合せについて組合せ爆発を起こす虞が生ずることとなる。   However, when generating a test case according to the procedure of (1)-(4), when generating all combinations of true / false values of each condition in (1), 2 n combinations (n is Condition number). For this reason, when the condition number n increases, there is a risk of causing a combination explosion for a combination of truth values.

また、(3)の手順では、各条件の真偽値の組合せによっては、真偽値を反映させた条件の間に矛盾が生じる虞がある。矛盾が含まれる場合、真偽値を反映した各条件の組合せでは、MC/DCのテスト網羅度を充足するテストケースを求めることが困難となる。   In the procedure (3), depending on the combination of the true / false values of the conditions, there is a possibility that a contradiction occurs between the conditions reflecting the true / false values. When a contradiction is included, it is difficult to obtain a test case that satisfies the test coverage of MC / DC with a combination of conditions reflecting true / false values.

1つの側面では、本発明は、充足可能性を向上させた、冗長性を排除可能なMC/DCテスト網羅度の網羅規則を満たすテストケースを生成する技術を提供する。   In one aspect, the present invention provides a technique for generating a test case that satisfies a coverage rule for MC / DC test coverage that can improve redundancy and eliminate redundancy.

上記技術は、次のテストケース生成プログラムの構成によって例示できる。すなわち、テストケース生成プログラムは、コンピュータに、演算子による演算結果の真偽値と演算子によって演算の対象となる演算対象式の真偽値とが所定関係を満たす演算対象式を特定し、所定関係にある演算対象式が複数特定される場合に、特定される複数の演算対象式を保持して、演算対象式の真偽値を求める解析ステップと、所定関係にある複数の演算対象式について演算対象式の充足可能性を判定し、充足可能と判定された演算対象式を選択する選択ステップと、を実行させる。   The above technique can be exemplified by the configuration of the following test case generation program. In other words, the test case generation program identifies a calculation target expression that satisfies a predetermined relationship between a true / false value of a calculation result obtained by an operator and a true / false value of a calculation target expression calculated by the operator. When a plurality of calculation target expressions in relation are specified, an analysis step for obtaining a truth value of the calculation target expression by holding the plurality of specified calculation target expressions and a plurality of calculation target expressions in a predetermined relationship A selection step of determining the satisfiability of the calculation target expression and selecting the calculation target expression determined to be satisfiable is executed.

上記のテストケース生成プログラムによれば、充足可能性を向上させた、冗長性を排除可能な、MC/DCのテスト網羅度の網羅規則を満たすテストケースを生成する技術が提供できる。   According to the test case generation program described above, it is possible to provide a technique for generating a test case that satisfies the coverage rule of the MC / DC test coverage degree with improved satisfiability and capable of eliminating redundancy.

比較例の、MC/DCのテスト網羅度を満たすテストケースの生成についての説明図である。It is explanatory drawing about the production | generation of the test case which satisfy | fills the test coverage of MC / DC of a comparative example. 比較例の、MC/DCのテスト網羅度を満たすテストケースの生成についての説明図である。It is explanatory drawing about the production | generation of the test case which satisfy | fills the test coverage of MC / DC of a comparative example. 論理積、論理和についての真偽値関係を説明する説明図である。It is explanatory drawing explaining the truth value relationship about a logical product and a logical sum. 論理積、論理和についてのMC/DCのテスト網羅度を満たす3通りの真偽値関係を説明する説明図である。It is explanatory drawing explaining 3 types of true / false value relations which satisfy | fill the test coverage of MC / DC about a logical product and a logical sum. 組合せルールの適用を説明する説明図である。It is explanatory drawing explaining application of a combination rule. 矛盾が生じる場合の、各条件式についての真偽値の組合せを説明する説明図である。It is explanatory drawing explaining the combination of the truth value about each conditional expression in case of contradiction. 実施例2の下位の処理プロセスからの各条件の真偽値の組合せの抽出処理を説明する説明図である。FIG. 10 is an explanatory diagram illustrating a process of extracting a combination of true / false values of each condition from a lower-level processing process according to the second embodiment. 本実施形態の情報処理装置のハードウェア構成例を示す図である。It is a figure which shows the hardware structural example of the information processing apparatus of this embodiment. 本実施形態の情報処理装置の処理ブロック構成を説明する図である。It is a figure explaining the processing block structure of the information processing apparatus of this embodiment. 二分木変換処理を説明する説明図である。It is explanatory drawing explaining a binary tree conversion process. 木構造についての条件式マップ、条件式マップ集合の生成処理を説明する説明図である。It is explanatory drawing explaining the production | generation process of the conditional expression map about a tree structure, and a conditional expression map set. ノードの処理プロセスについての真偽値を反映した条件式マップ集合の生成処理を説明する説明図である。It is explanatory drawing explaining the production | generation process of the conditional expression map set reflecting the truth value about the processing process of a node. 第2の真偽値ルール適用処理に係る、木構造についての条件式マップ、条件式マップ集合の生成処理を説明する説明図である。It is explanatory drawing explaining the production | generation process of the conditional expression map about a tree structure, and a conditional expression map set concerning the 2nd truth value rule application process. ノードの処理プロセスについての真偽値を反映した条件式マップ集合の生成処理を説明する説明図である。It is explanatory drawing explaining the production | generation process of the conditional expression map set reflecting the truth value about the processing process of a node. 第3の真偽値ルール適用処理に係る、木構造についての条件式マップ、条件式マップ集合の生成処理を説明する説明図である。It is explanatory drawing explaining the production | generation process of the conditional expression map about a tree structure, and a conditional expression map set concerning the 3rd truth value rule application process. 第4の真偽値ルール適用処理に係る、木構造についての条件式マップ、条件式マップ集合の生成処理を説明する説明図である。It is explanatory drawing explaining the production | generation process of the conditional expression map about a tree structure, and a conditional expression map set concerning the 4th truth value rule application process. ノードの処理プロセスについての真偽値を反映した条件式マップ集合の生成処理を説明する説明図である。It is explanatory drawing explaining the production | generation process of the conditional expression map set reflecting the truth value about the processing process of a node. テストケース条件式テーブル例を示す図である。It is a figure which shows the example of a test case conditional expression table. 選択分析処理を説明する説明図である。It is explanatory drawing explaining a selection analysis process. 更新前後のテストケース条件式テーブル例を示す図である。It is a figure which shows the example of a test case conditional expression table before and behind an update. テストケース生成処理を説明する説明図である。It is explanatory drawing explaining a test case production | generation process. テストケース生成処理の全体処理を例示するフローチャートである。It is a flowchart which illustrates the whole process of a test case production | generation process. テストケース生成処理の全体処理を例示するフローチャートである。It is a flowchart which illustrates the whole process of a test case production | generation process. 図9Aに例示のS2の真偽値ルール適用処理を例示するフローチャートである。It is a flowchart which illustrates the truth value rule application process of S2 illustrated in FIG. 9A. 図9Cに例示のS23のAND演算子処理を例示するフローチャートである。9C is a flowchart illustrating the AND operator processing in S23 illustrated in FIG. 9C. 図9Cに例示のS23のAND演算子処理を例示するフローチャートである。9C is a flowchart illustrating the AND operator processing in S23 illustrated in FIG. 9C. 図9Cに例示のS24のOR演算子処理を例示するフローチャートである。9C is a flowchart illustrating the OR operator processing in S24 illustrated in FIG. 9C. 図9Cに例示のS24のOR演算子処理を例示するフローチャートである。9C is a flowchart illustrating the OR operator processing in S24 illustrated in FIG. 9C. 図9Bに例示のS7のテストケース選択処理を例示するフローチャートである。It is a flowchart which illustrates the test case selection process of S7 illustrated in FIG. 9B.

以下、図面を参照して、一実施形態に係るテストケース生成プログラムが実行される情報処理装置について説明する。以下の実施形態の構成は例示であり、情報処理装置は実施形態の構成には限定されない。   Hereinafter, an information processing apparatus that executes a test case generation program according to an embodiment will be described with reference to the drawings. The configuration of the following embodiment is an exemplification, and the information processing apparatus is not limited to the configuration of the embodiment.

以下、図1から図9の図面に基づいて、テストケース生成プログラムが実行される情報処理装置を説明する。
<比較例>
図1A、1Bに、比較例としての、MC/DCのテスト網羅度を満たすテストケースの生成についての説明図を例示する。図1Aは、複数の処理プロセスが記述されたテスト対象となるプログラムの例である。
Hereinafter, an information processing apparatus in which a test case generation program is executed will be described with reference to the drawings of FIGS.
<Comparative example>
FIGS. 1A and 1B exemplify a diagram illustrating generation of a test case that satisfies the MC / DC test coverage as a comparative example. FIG. 1A is an example of a test target program in which a plurality of processing processes are described.

図1AのブロックP1に示すプログラム例では、第1ステップには、“if (x>2) and (y==5) then return”との、変数x,yのそれぞれについての条件成立の可否を“and”と
の論理演算子で結合した論理積による処理が記述されている。第2ステップには、“if (x==3) or (y>2) then z=2 * Z”との、変数x,yのそれぞれに対する条件成立の可否を
“or”との論理演算子で結合して変数zを導出する論理和による処理が記述されている。
In the program example shown in block P1 of FIG. 1A, in the first step, whether or not the condition for each of the variables x and y such as “if (x> 2) and (y == 5) then return” is satisfied is satisfied. Describes processing by logical product connected by a logical operator with “and”. In the second step, “if (x == 3) or (y> 2) then z = 2 * Z” is a logical operator with “or” indicating whether the condition for each of the variables x and y is satisfied. Describes a logical OR process for deriving a variable z.

MC/DCのテスト網羅度を満たすテストケースは、例えば、図1Aの各ステップのプログラムに対し、以下の網羅規則1−4を満たすよう生成される。
・網羅規則1:プログラムの全入り口/出口は少なくとも一回はテストすること。
・網羅規則2:プログラムの判定に含まれる全条件は可能な値を少なくとも一回はテストすること。
・網羅規則3:プログラムの全判定は可能な値を少なくとも一回はテストすること。
・網羅規則4:プログラムの判定の全条件は、判定の出力に独立に影響することを示すこと。(他方の条件の値を固定し、一方の条件の値を変更することで、判定の真偽値の出力値を変更すること)
Test cases satisfying the MC / DC test coverage are generated, for example, so as to satisfy the following coverage rules 1-4 for the program at each step in FIG. 1A.
• Coverage Rule 1: Test all entrances / exits of the program at least once.
• Coverage rule 2: All conditions included in the judgment of the program must be tested at least once for possible values.
-Coverage rule 3: All judgments of the program should test the possible values at least once.
• Coverage rule 4: Show that all conditions for judging a program affect the output of the judgment independently. (The value of the other condition is fixed, and the value of one condition is changed to change the output value of the true / false value of the judgment)

図1AのブロックP1のプログラムでは、ブロックP2に示すように、網羅規則1の“プログラムの入り口”とは、例えば、第1ステップを指し、網羅規則1の“プログラムの出口”とは、第1ステップ、第2ステップを指す。また、網羅規則2−4の“判定(判定式とも称す)”とは、例えば、第1ステップの“(x>2) and (y==5)”、第2ステップの“(x==3) or (y>2)”を指し、“条件”とは、第1ステップの“(x>2)”,“(y==5)”、第2ステップの“(x==3)”,“(y>2)”を指す。   In the program of the block P1 in FIG. 1A, as shown in the block P2, the “entrance of the program” of the coverage rule 1 indicates, for example, the first step, and the “exit of the program” of the coverage rule 1 is the first Step, refers to the second step. Further, “judgment (also referred to as a judgment formula)” in the coverage rule 2-4 includes, for example, “(x> 2) and (y == 5)” in the first step, “(x == 3) or (y> 2) ”,“ condition ”means“ (x> 2) ”,“ (y == 5) ”in the first step,“ (x == 3) in the second step "," (Y> 2) ".

なお、図1Aに例示のプログラムに対し、MC/DCのテスト網羅度を満たすテストケースとは、例えば、第1、2ステップの処理プロセスを判定する、“(x=3,y=3)”、“
(x=0,y=3)”といった変数x,yについての数値の組合せが例示できる。なお、以下の
説明では、図1AのブロックP1に例示の第2ステップのプログラムを対象例として、MC/DCのテスト網羅度を満たすテストケースを説明する。
Note that the test case satisfying the MC / DC test coverage for the program illustrated in FIG. 1A is, for example, “(x = 3, y = 3)” for determining the processing process of the first and second steps. , “
A combination of numerical values for variables x and y such as (x = 0, y = 3) "can be exemplified. In the following description, the program of the second step illustrated in block P1 of FIG. A test case satisfying the / DC test coverage will be described.

第2ステップの判定式は、ブロックP4に示すように、変数xについての条件“(x==3)”と変数yについての条件“(y>2)”の条件成立の可否を論理和演算子“or”で結合した
、“(x==3) or (y>2)”である。このため、各条件に含まれる変数x,yについての変数
値の組合せ(x,y)は、網羅規則1を満たすテストケースとなる。
As shown in block P4, the determination formula of the second step is an OR operation to determine whether the condition “(x == 3)” for the variable x and the condition “(y> 2)” for the variable y are satisfied. It is “(x == 3) or (y> 2)” connected by the child “or”. Therefore, the combination (x, y) of the variable values for the variables x and y included in each condition is a test case that satisfies the coverage rule 1.

例えば、変数xについての条件“(x==3)”を成立させる変数値は“3”であり、変数値“3”を除く他の変数値は、条件“(x==3)”を不成立させる変数値となる。また、変数yについての条件“(y>2)”を成立させる変数値は“2”を超える範囲の変数値であり、変
数値“2”以下の範囲の変数値は、条件“(y>2)”を不成立させる変数値となる。
For example, the variable value that satisfies the condition “(x == 3)” for the variable x is “3”, and other variable values other than the variable value “3” have the condition “(x == 3)”. This is the variable value that is not satisfied. Further, the variable value that satisfies the condition “(y> 2)” for the variable y is a variable value in a range exceeding “2”, and the variable value in the range of the variable value “2” or less is the condition “(y> 2) Variable value that makes "" not true.

従って、条件“(x==3)”を成立させる変数値“3”、及び、条件“(x==3)”を不成立させる変数値、例えば、“1”を用いたテストは、第2ステップの判定式に含まれる変数xについての条件“(x==3)”の可能な値を少なくとも一回はテストすることとなる。このため、変数xに対する変数値“1”,“3”は、MC/DCの網羅規則2を満たすテストケースに含まれる。   Therefore, the test using the variable value “3” that satisfies the condition “(x == 3)” and the variable value that does not satisfy the condition “(x == 3)”, for example, “1” The possible values of the condition “(x == 3)” for the variable x included in the step judgment formula will be tested at least once. For this reason, the variable values “1” and “3” for the variable x are included in the test case that satisfies the coverage rule 2 of MC / DC.

変数yについても同様にして、条件“(y>2)”を成立させる変数値、例えば、“3”、
及び、条件“(y>2)”を不成立させる変数値、例えば、“1” を用いたテストは、第2ステップの判定式に含まれる変数yについての条件“(y>2)”の可能な値を少なくとも一回
はテストすることとなる。このため、変数yに対する変数値“1”,“3”は、MC/DCの網羅規則2を満たすテストケースに含まれる。
Similarly for the variable y, a variable value that satisfies the condition “(y> 2)”, for example, “3”,
In addition, a test using a variable value that fails to satisfy the condition “(y> 2)”, for example, “1” is possible for the condition “(y> 2)” for the variable y included in the determination formula of the second step. The correct value will be tested at least once. For this reason, the variable values “1” and “3” for the variable y are included in the test case that satisfies the coverage rule 2 of MC / DC.

第2ステップの判定式の条件“(x==3)”,“(y>2)”に対し、変数x,yについての変
数値の組合せであるテストケース(x=1,y=1)、(x=1,y=3)、(x=3,y=1)は、MC/D
Cの網羅規則2を満たすこととなる。
A test case (x = 1, y = 1) that is a combination of variable values for variables x and y with respect to the conditions “(x == 3)” and “(y> 2)” of the determination formula of the second step , (X = 1, y = 3), (x = 3, y = 1) are MC / D
C coverage rule 2 is satisfied.

なお、変数x、yについての(x=3,y=3)との組合せも、MC/DCの網羅規則2を満
たすテストケースとして存在し得る。しかしながら、第2ステップの判定式に含まれる“(x==3)”との条件についての条件成立テストは、(x=3,y=1)により少なくとも1回は実
行され、同様に、“(y>2)”との条件について条件成立テストは、(x=1,y=3)により少なくとも1回は実行される。MC/DCの網羅規則2では、条件“(x==3)”、“(y>2)”に
ついて、可能な変数値を少なくとも1回、テストすればよいので、(x=3,y=3)との組合
せは、他のテストケースによる条件成立の可否と重複するため、余剰なテストケースとなる。
A combination of variables x and y with (x = 3, y = 3) may also exist as a test case that satisfies the coverage rule 2 of MC / DC. However, the condition establishment test for the condition “(x == 3)” included in the determination formula of the second step is executed at least once by (x = 3, y = 1). The condition satisfaction test for the condition (y> 2) ”is executed at least once by (x = 1, y = 3). In MC / DC Coverage Rule 2, the possible variable values have to be tested at least once for the conditions “(x == 3)” and “(y> 2)”, so (x = 3, y = Since the combination with 3) overlaps with whether or not the condition is satisfied by another test case, it becomes an extra test case.

MC/DCの網羅規則2を満たすテストケース(x=1,y=1)、(x=1,y=3)、(x=3,y=1
)において、(x=1,y=1)との組合せは、第2ステップの判定式“(x==3) or (y>2)”を不成立させるテストケースである。また、(x=1,y=3)との組合せは、第2ステップの判定
式“(X==3) or (y>2)”を成立させるテストケースである。このため、例えば、MC/D
Cの網羅規則2を満たすテストケースにおいて、変数x,yについての(x=1,y=1)、(x=1,y=3)の組合せは、第2ステップのプログラムの判定式の可能な値を少なくとも1回はテストするテストケースとなる。変数x,yについての(x=1,y=1)、(x=1,y=3)の組合せによるテストケースは、MC/DCの網羅規則3を満たすこととなる。
Test cases satisfying MC / DC Coverage Rule 2 (x = 1, y = 1), (x = 1, y = 3), (x = 3, y = 1
), The combination with (x = 1, y = 1) is a test case that does not hold the determination formula “(x == 3) or (y> 2)” in the second step. The combination with (x = 1, y = 3) is a test case that establishes the determination formula “(X == 3) or (y> 2)” in the second step. For this reason, for example, MC / D
In a test case that satisfies C Coverage Rule 2, the combination of (x = 1, y = 1) and (x = 1, y = 3) for variables x and y can be a judgment formula for the program in the second step. This is a test case for testing the correct value at least once. A test case with a combination of (x = 1, y = 1) and (x = 1, y = 3) for the variables x and y satisfies the coverage rule 3 of MC / DC.

ここで、第2ステップのプログラムの判定式に含まれる条件“(x==3)”について、該条件を成立させる変数xの値“3”は“真(true)”の変数値と言え、該条件を不成立させる値“1”は“偽(false)”の変数値と言うことができる。同様にして、条件“(y>2)”について、該条件を成立させる変数yの値“3”は“真(true)”の変数値と言え、該条件を不成立させる値“1”は“偽(false)”の変数値と言うことができる。   Here, regarding the condition “(x == 3)” included in the determination formula of the program in the second step, the value “3” of the variable x that satisfies the condition can be said to be a variable value of “true”. The value “1” that does not satisfy the condition can be said to be a “false” variable value. Similarly, for the condition “(y> 2)”, the value “3” of the variable y that satisfies the condition can be said to be a variable value of “true”, and the value “1” that does not satisfy the condition is “ It can be said that the variable value is “false”.

例えば、変数x,yについての(x=1,y=1)の組合せは、条件“(x==3)”について“偽
(false)”、条件“(y>2)”について“偽(false)”とし、プログラムの判定式“(x==3) or (y>2)”を不成立(偽(false))させるテストケースである。また、例えば、変数
x,yについての(x=3,y=1)は、条件“(x==3)”について“真(true)”、条件“(y>2)”について“偽(false)”とし、プログラムの判定式“(x==3) or (y>2)”を成立(真(true))させるテストケースである。
For example, the combination of (x = 1, y = 1) for the variables x and y is “false” for the condition “(x == 3)” and “false (for the condition“ (y> 2) ”. false) ”, which is a test case in which the judgment formula“ (x == 3) or (y> 2) ”of the program is not established (false). Further, for example, (x = 3, y = 1) for the variables x and y is “true” for the condition “(x == 3)” and “false (for the condition“ (y> 2) ”. false) ”, and this is a test case that satisfies (true) the determination formula“ (x == 3) or (y> 2) ”of the program.

テストケース(x=1,y=1)と(x=3,y=1)との関係は、条件“(y>2)”に対する真偽値を
“偽(false)”に固定し、条件“(x==3)”に対する真偽値を変更する関係にあり、プロ
グラムの判定式“(x==3) or (y>2)”の真偽値を変更する関係にある。つまり、テストケ
ース(x=1,y=1)と(x=3,y=1)との関係は、第2ステップのプログラムの判定式“(x==3)
or (y>2)”の真偽値の出力に独立に影響することとなる。
The relationship between the test case (x = 1, y = 1) and (x = 3, y = 1) is as follows: the truth value for the condition “(y> 2)” is fixed to “false”. There is a relationship of changing the truth value for “(x == 3)”, and a relationship of changing the truth value of the judgment formula “(x == 3) or (y> 2)” of the program. In other words, the relationship between the test case (x = 1, y = 1) and (x = 3, y = 1) is determined by the determination formula “(x == 3) of the program in the second step.
or (y> 2) ”will affect the truth value output independently.

また、例えば、変数x,yについての(x=1,y=3)の組合せは、条件“(x==3)”につい
て“偽(false)”、条件“(y>2)”について“真(true)”とし、プログラムの判定式“(x==3) or (y>2)”を成立(真(true))させるテストケースである。従って、テストケ
ース(x=1,y=1)と(x=1,y=3)との関係は、条件“(x==3)”に対する真偽値を“偽(false)”に固定し、条件“(y>2)”に対する真偽値を変更する関係にあり、プログラムの判定式“(x==3) or (y>2)”の真偽値を変更する関係にある。テストケース(x=1,y=1)と(x=1,y=3)との関係は、第2ステップのプログラムの判定式“(x==3) or (y>2)”の真偽値の出力に独立に影響することとなる。
For example, the combination of (x = 1, y = 3) for the variables x and y is “false” for the condition “(x == 3)” and “false” for the condition “(y> 2)”. This is a test case where “true” is satisfied and the judgment formula “(x == 3) or (y> 2)” of the program is satisfied (true). Therefore, the relationship between the test case (x = 1, y = 1) and (x = 1, y = 3) is fixed to “false” for the condition “(x == 3)” In addition, there is a relationship in which the truth value for the condition “(y> 2)” is changed, and there is a relationship in which the truth value of the program judgment expression “(x == 3) or (y> 2)” is changed. The relationship between the test case (x = 1, y = 1) and (x = 1, y = 3) is true of the judgment formula “(x == 3) or (y> 2)” in the second step program. It will affect the output of false values independently.

第2ステップのプログラムに対しては、(x=1,y=1)と(x=3,y=1)とのテストケースの組合せ、及び、(x=1,y=1)と(x=1,y=3)のテストケースの組合せが、MC/DCの網羅規則4を満たすテストケースの和集合となる。従って、判定式に含まれる条件数が2個の第2ステップのプログラムでは、MC/DCの網羅規則1−4を満たす、3個のテストケース“(x=1,y=1)、(x=1,y=3)、(x=3,y=1)”が生成されることとなる。テスト対象
となるプログラムの判定式に係る条件数がn個の場合、n+1個を最小としてn+1通り以上の、MC/DCのテスト網羅度を満たすテストケースが生成される。
For the second step program, a combination of test cases (x = 1, y = 1) and (x = 3, y = 1), and (x = 1, y = 1) and (x = 1, y = 3) is the union of test cases satisfying MC / DC coverage rule 4. Therefore, in the second step program in which the number of conditions included in the determination formula is 2, three test cases “(x = 1, y = 1), (x = 1, y = 3), (x = 3, y = 1) ". When the number of conditions related to the judgment formula of the program to be tested is n, n + 1 or more test cases satisfying the MC / DC test coverage are generated with n + 1 as a minimum.

なお、MC/DCのテスト網羅度を満たすテストケースは、テスト対象となるプログラムの判定式に係る各条件の真偽値がテストできるものであり、且つ、プログラムの判定式の真偽値をテストできるものであればよい。例えば、第2ステップのプログラムに対しては、変数x、yの変数値の組合せとして、“(x=2,y=2)、(x=2,y=4)、(x=3,y=2)”
といったテストケースであってもよい。
Note that the test cases satisfying the MC / DC test coverage can test the true / false values of each condition related to the judgment formula of the program to be tested, and test the true / false values of the judgment formula of the program. Anything is possible. For example, for the second step program, combinations of variable values of variables x and y are “(x = 2, y = 2), (x = 2, y = 4), (x = 3, y = 2) ”
Such a test case may be used.

次に、網羅規則1−4のテスト網羅度を満たすMC/DCのテストケースの求め方(手順)について、図1Bを参照し説明する。図1Bは、網羅規則1−4のテスト網羅度を満たすMC/DCのテストケースの求め方(手順)を説明する説明図である。但し、説明例としてのプログラムは、“if (A or B) and C then z=2 * Z”とする。以下の説明では、“(A or B) and C”が判定式となり、“A”、“B”、“C”が判定に係る条件となる。判
定に係る各条件には、それぞれに真偽値が存在し、条件毎の真偽値の組合せにより、プログラムとしての判定式の真偽値が決定される。
Next, a method (procedure) for obtaining an MC / DC test case satisfying the test coverage of the coverage rule 1-4 will be described with reference to FIG. 1B. FIG. 1B is an explanatory diagram illustrating a method (procedure) for obtaining an MC / DC test case that satisfies the test coverage of the coverage rule 1-4. However, the program as an explanatory example is “if (A or B) and C then z = 2 * Z”. In the following description, “(A or B) and C” is a determination formula, and “A”, “B”, and “C” are conditions for determination. Each condition relating to the determination has a true / false value, and the true / false value of the determination formula as a program is determined by a combination of the true / false values for each condition.

“if (A or B) and C then z=2 * Z”をテスト対象とした、MC/DCのテスト網羅度を満たすテストケースは、以下の(1)−(4)の手順に沿って求めることができる。   A test case satisfying MC / DC test coverage with “if (A or B) and C then z = 2 * Z” as a test target is obtained according to the following procedures (1) to (4). be able to.

(1)各条件の真偽値の全組合せを生成する。
図1Bの、破線で囲まれた領域Z1に例示のように、判定に係る条件“A”、“B”、“C”について、それぞれの真偽値の全組合せを生成する。図1Bの例では、判定に係る条
件数が3個であるため、2の3乗個である8通りの真偽値の組合せ(識別番号1−8)が生成される。
(1) Generate all combinations of true / false values for each condition.
As illustrated in a region Z1 surrounded by a broken line in FIG. 1B, all combinations of true / false values are generated for the determination conditions “A”, “B”, and “C”. In the example of FIG. 1B, since the number of conditions related to the determination is 3, eight combinations of true / false values (identification numbers 1-8), which are 2 to the cube, are generated.

(2)各真偽値の組合せに対応する判定式の真偽値を求める。
図1Bの、破線で囲まれた領域Z2に例示するように、判定に係る条件“A”、“B”、“C”について生成された真偽値の全組合せに対する、判定式の真偽値を生成する。ここ
で、プログラムの判定式は“(A or B) and C”である。
(2) The true / false value of the determination formula corresponding to each true / false value combination is obtained.
As illustrated in the region Z2 surrounded by the broken line in FIG. 1B, the truth value of the judgment expression for all combinations of the truth values generated for the conditions “A”, “B”, and “C” relating to judgment. Is generated. Here, the judgment formula of the program is “(A or B) and C”.

論理積(and)で結ばれた判定式の左項(A or B)は、条件“A”、“B”の論理和である
ため、少なくとも一方の条件が“真(true)”であれば、左項(A or B)は“真”となる。条件“A”、“B”の真偽値の組合せとして(A,B)=(真、真)、(真、偽)、(偽、真
)の3通りが、論理和(or)で結ばれた左項(A or B)を“真”とする。
The left term (A or B) of the judgment expression connected by logical product (and) is the logical sum of the conditions “A” and “B”, so if at least one of the conditions is “true” The left term (A or B) is “true”. Three combinations of (A, B) = (true, true), (true, false), (false, true) as a combination of the truth values of the conditions "A" and "B" are connected by a logical sum (or). The left term (A or B) is “true”.

そして、論理積で結ばれた判定式(A or B) and C”では、左項“(A or B)”と右項“C
”とが“真”である場合に、判定式としての真偽値が“真”となる。従って、条件“A”
、“B”、“C”の真偽値の組合せとして(A,B,C)=(真、真、真)、(真、偽、真)、
(偽、真、真)の3通りが、判定式“(A or B) and C”を“真”とする(他の組合せでは、判定式は“偽”となる)。図1Bの例では、識別番号1,3,5の各条件の組合せが、判定式“(A or B) and C”を“真”とする。
And in the judgment formula (A or B) and C ”connected by logical product, the left term“ (A or B) ”and the right term“ C ”
"" Is "true", the true / false value as the judgment formula is "true", so the condition "A"
, “B”, “C” boolean combinations (A, B, C) = (true, true, true), (true, false, true),
(False, true, true) makes the judgment formula “(A or B) and C” “true” (in other combinations, the judgment formula is “false”). In the example of FIG. 1B, the combination of the conditions of identification numbers 1, 3, and 5 makes the determination expression “(A or B) and C” “true”.

(3)各条件について、他方の条件を固定して、一方の条件の真偽値を変更した時、判定式の真偽値も変更するようなテストケースの組を求める。
図1Bの、破線で囲まれた領域Z3に例示するように、判定に係る条件“A”、“B”、“C”のそれぞれについて、MC/DCの網羅規則4を満たすための真偽値の組合せを求
める。例えば、条件“A”の場合では、条件“B”、“C”の真偽値を固定し、条件“A”の真偽値を“真(true)”、“偽(false)”と変更した場合に、領域Z2の真偽値が変更
になる組合せを求める。同様にして、条件“B”の場合では、条件“A”、“C”の真偽値
を固定し、条件“B”の真偽値を“真(true)”、“偽(false)”と変更した場合に、領域Z2の真偽値が変更になる組合せを求める。条件“C”の場合では、条件“A”、“B”
の真偽値を固定し、条件“C”の真偽値を“真(true)”、“偽(false)”と変更した場合に、領域Z2の真偽値が変更になる組合せを求める。
(3) For each condition, the other condition is fixed, and when the truth value of one condition is changed, a set of test cases is obtained that also changes the truth value of the determination formula.
As illustrated in a region Z3 surrounded by a broken line in FIG. 1B, a truth value for satisfying the MC / DC coverage rule 4 for each of the conditions “A”, “B”, and “C” relating to determination. Find a combination of For example, in the case of the condition “A”, the truth values of the conditions “B” and “C” are fixed, and the truth value of the condition “A” is changed to “true” and “false”. In such a case, a combination in which the true / false value of the region Z2 is changed is obtained. Similarly, in the case of the condition “B”, the true / false values of the conditions “A” and “C” are fixed, and the true / false values of the condition “B” are set to “true” and “false”. When a change is made, a combination in which the true / false value of the region Z2 is changed is obtained. In the case of condition “C”, conditions “A” and “B”
When the truth value of the condition “C” is changed to “true” and “false”, a combination that changes the truth value of the region Z2 is obtained.

図1Bにおいて、条件“A”については、識別番号1、5の条件“B”、“C”を(真(true)、真(true))に固定した場合、識別番号2、6の(真(true)、偽(false))に固定した場合では、条件“A”の真偽値の変更に関らず、判定式の真偽値は変わらない。
また、条件“B”、“C”を(偽(false)、偽(false))に固定した識別番号4、8の場合でも条件“A”の真偽値の変更に関らず、判定式の真偽値は変わらない。
In FIG. 1B, for the condition “A”, when the conditions “B” and “C” of the identification numbers 1 and 5 are fixed to (true) and (true), the identification numbers 2 and 6 (true When fixed to (true) or false (false)), the truth value of the judgment expression does not change regardless of the change of the truth value of the condition “A”.
In addition, even in the case of identification numbers 4 and 8 in which the conditions “B” and “C” are fixed to (false) and false (false), regardless of the change of the truth value of the condition “A”, the judgment formula The truth value of does not change.

一方、条件“A”について、識別番号3、7の条件“B”、“C”を(偽(false)、真(true))に固定した場合では、条件“A”の真偽値の変更に伴い、判定式の真偽値が変更
されることとなる。従って、条件“A”、“B”、“C”について、識別番号3の(真(true)、偽(false)、真(true))の真偽値の組合せ、識別番号7の(偽(false)、偽(false)、真(true))の真偽値の組合せは、MC/DCの網羅規則4を満たす真偽関係となる。
On the other hand, for the condition “A”, when the conditions “B” and “C” of the identification numbers 3 and 7 are fixed to (false, true), the truth value of the condition “A” is changed. As a result, the true / false value of the determination formula is changed. Therefore, for the conditions “A”, “B”, and “C”, the combination of the true / false values of identification number 3 (true, false, true) and identification number 7 (false ( A combination of false values of “false”, “false”, and “true” is a true / false relationship satisfying the coverage rule 4 of MC / DC.

条件“B”についても同様にして、識別番号1、3の条件“A”、“C”を(真(true)
、真(true))に固定した場合、識別番号2、6の(真(true)、偽(false))に固定
した場合では、条件“B”の真偽値の変更に関らず、判定式の真偽値は変わらない。また
、条件“A”、“C”を(偽(false)、偽(false))に固定した識別番号6、8の場合でも条件“B”の真偽値の変更に関らず、判定式の真偽値は変わらない。
Similarly for the condition “B”, the conditions “A” and “C” of the identification numbers 1 and 3 are set to “true”.
, True), or fixed to (true) or false (false) for identification numbers 2 and 6, regardless of changes in the true / false value of condition “B” The truth value of the expression does not change. In addition, even in the case of identification numbers 6 and 8 in which the conditions “A” and “C” are fixed to (false) and false (false), regardless of the change of the truth value of the condition “B”, the judgment formula The truth value of does not change.

一方、条件“B”について、識別番号5、7の条件“A”、“C”を(偽(false)、真(true))に固定した場合では、条件“B”の真偽値の変更に伴い、判定式の真偽値が変更
されることとなる。従って、条件“A”、“B”、“C”について、識別番号5の(偽(false)、真(true)、真(true))の真偽値の組合せ、識別番号7の(偽(false)、偽(false)、真(true))の真偽値の組合せは、MC/DCの網羅規則4を満たす真偽関係となる。
On the other hand, for the condition “B”, when the conditions “A” and “C” of the identification numbers 5 and 7 are fixed to (false), true (true), the truth value of the condition “B” is changed. As a result, the true / false value of the determination formula is changed. Therefore, for the conditions “A”, “B”, and “C”, a combination of a false value of (false), true (true), and identification number 7 (false ( A combination of false values of “false”, “false”, and “true” is a true / false relationship satisfying the coverage rule 4 of MC / DC.

条件“C”については、識別番号7、8の条件“A”、“B”を(偽(false)、偽(false))に固定した場合に、条件“C”の真偽値の変更に関らず、判定式の真偽値は変わらない。他の、識別番号1、2の条件“A”、“B”を(真(true)、真(true))に固定した場合、識別番号3、4の(真(true)、偽(false))に固定した場合では、条件“C”の真偽値の変更に応じて判定式の真偽値が変更されることとなる。また、識別番号5、6の(偽(false)、真(true))に固定した場合でも、条件“C”の真偽値の変更に応じて判定式の真偽値が変更される。
従って、条件“C”について、識別番号1と2、3と4、5と6の真偽値の組合せは、
MC/DCの網羅規則4を満たす真偽関係となる。
For the condition “C”, when the conditions “A” and “B” of the identification numbers 7 and 8 are fixed to (false, false), the truth value of the condition “C” is changed. Regardless, the truth value of the judgment formula does not change. When the other conditions “A” and “B” of the identification numbers 1 and 2 are fixed to (true) and “true”, the identification numbers 3 and 4 (true) and false (false) ) Is fixed, the true / false value of the determination formula is changed according to the change of the true / false value of the condition “C”. Even when the identification numbers 5 and 6 are fixed to (false, true), the truth value of the determination formula is changed according to the change of the truth value of the condition “C”.
Therefore, for the condition “C”, the combination of the truth values of the identification numbers 1 and 2, 3 and 4, 5 and 6 is
The true / false relationship satisfies the MC / DC coverage rule 4.

(4)各条件の組の(最小となるような)和集合がMC/DCのテスト網羅度の網羅規則1−4を満たすテストケースとなる。
図1Bの説明例では、条件“A”に対する真偽値の組合せは、識別番号3と7の1組で
あり、条件“B”に対する真偽値の組合せは、識別番号5と7の1組である。また、条件
“C”に対する真偽値の組合せは、識別番号1と2,3と4,5と6の3組である。それ
ぞれの条件に対する真偽値の組合せの中から、少なくとも条件毎に1組の真偽値の組合せをテストケースとして持つことにより、対象となるプログラムについての最小となるテストケースの和集合を求めることができる。
(4) A union set (which is the smallest) of each set of conditions becomes a test case that satisfies the coverage rule 1-4 of the test coverage of MC / DC.
In the example of FIG. 1B, the combination of true / false values for the condition “A” is one set of identification numbers 3 and 7, and the combination of true / false values for the condition “B” is one set of identification numbers 5 and 7. It is. Further, there are three combinations of truth values for the condition “C”: identification numbers 1, 2, 3, 4, 5, and 6. Finding the minimum union of test cases for the target program by having at least one set of true / false values as test cases for each condition from among the combinations of true / false values for each condition Can do.

ここで、条件“C”に対する3組の真偽値の組合せの内、識別番号1と2の1組を選択
した場合、条件“A”、“B”と合わせて、テストケースとなる真偽値の組合せの総数は識
別番号1、2、3、5、7の5通りとなる。また、識別番号3と4の1組を選択した場合では、識別番号3が条件“A”のテストケースとなる組合せと重複するため、テストケー
スとなる真偽値の組合せの総数は識別番号3、4、5、7の4通りとなる。同様に、識別番号5と6の1組を選択した場合では、識別番号5が条件“B”のテストケースとなる組
合せと重複するため、テストケースとなる真偽値の組合せの総数は識別番号3、5、6、7の4通りとなる。
Here, when one set of identification numbers 1 and 2 is selected from the three combinations of true / false values for the condition “C”, the true / false as a test case is combined with the conditions “A” and “B”. The total number of combinations of values is five, identification numbers 1, 2, 3, 5, and 7. When one set of identification numbers 3 and 4 is selected, the identification number 3 overlaps with the combination that becomes the test case of the condition “A”. There are four ways of 4, 5, and 7. Similarly, when one set of identification numbers 5 and 6 is selected, since the identification number 5 overlaps with the combination that becomes the test case of the condition “B”, the total number of combinations of the truth values that become the test cases is the identification number. There are four types of 3, 5, 6, and 7.

従って、条件“A”、“B”、“C”に対する真偽値の組合せについて、テストケースと
なる真偽値の組合せの総数が最小となる和集合は、識別番号3、4、5、7によるテストケース、或いは、識別番号3、5、6、7によるテストケースとなる。
Therefore, for the combination of truth values for the conditions “A”, “B”, and “C”, the union that minimizes the total number of truth value combinations as test cases is the identification number 3, 4, 5, 7 Or a test case with identification numbers 3, 5, 6, and 7.

このように、テスト対象となるプログラムの判定式、判定式に含まれる条件について、上述の手順(1)−(4)を適用し、条件数nに対してn+1個を最小値とするn+1通り以上のMC/DCのテスト網羅度を満たすテストケースを生成することができる。しかし、手順(1)において、判定式に含まれる各条件の真偽値の全組合せを生成するため、条件数nに対し2のn乗個の真偽値の組合せが発生することとなる。テスト対象のプログラムに含まれる条件数が相対的に多い場合には、条件数nの増加に比例して真偽値の組合せが増加するため、所謂、組合せ爆発を起こす虞がある。組合せ爆発が生じた場合には、MC/DCのテスト網羅度を満たすテストケースの生成処理が収束しない虞がある。   In this way, the above-described procedures (1) to (4) are applied to the judgment formulas of the program to be tested and the conditions included in the judgment formulas, and n + 1 ways in which n + 1 is the minimum value for the condition number n. Test cases satisfying the above MC / DC test coverage can be generated. However, in the procedure (1), since all combinations of the true / false values of the conditions included in the determination formula are generated, 2 n combinations of true / false values are generated for the condition number n. When the number of conditions included in the program to be tested is relatively large, the combination of true / false values increases in proportion to the increase in the condition number n, which may cause a so-called combination explosion. When a combination explosion occurs, the test case generation process that satisfies the MC / DC test coverage may not converge.

<実施例1>
図1Bで説明したように、テスト対象となるプログラムの判定式に含まれる各条件についての真偽値の組合せの内(図1Bでは8通り)、MC/DCのテスト網羅度の網羅規則を満たす最小数の組合せ以外の、真偽値の組合せ(図1Bでは4通り)は余剰となる。
<Example 1>
As described with reference to FIG. 1B, among the combinations of true / false values for each condition included in the judgment formula of the program to be tested (eight in FIG. 1B), the coverage rule for MC / DC test coverage is satisfied. A combination of truth values other than the minimum number of combinations (four patterns in FIG. 1B) is redundant.

MC/DCのテスト網羅度を満たすテストケースは、テスト対象となる判定式に対して、網羅規則2の「プログラムの判定に含まれる全条件は可能な値を少なくとも一回はテストすること。」といった真偽値関係を満たすことが求められる。また、同様に、MC/DCのテスト網羅度を満たすテストケースは、テスト対象となる判定式に対して、網羅規則3の「プログラムの全判定は可能な値を少なくとも一回はテストすること。」といった真偽値関係を満たすことが求められる。   A test case that satisfies the test coverage of MC / DC is defined as “test all possible conditions included in the program judgment at least once for the judgment rule to be tested” for the judgment formula to be tested. It is required to satisfy the truth value relationship. Similarly, a test case satisfying the MC / DC test coverage level must be tested at least once with respect to the judgment formula to be tested, which is “a value that can be used for all judgments of the program”. It is required to satisfy a true / false relationship such as

ここで、テスト対象となるプログラムの判定式に対する真偽値は、各条件を結合する“and”,“or”といった論理演算子に基づいて決定される。実施例1では、各条件を結合
する論理演算子の論理関係に基づいて、上述の網羅規則2、3を満たすよう判定式としての真偽値と条件毎の真偽関係の組合せとを求めることにより、各条件についての余剰な真偽値の組合せを排除する。
Here, the truth value for the judgment formula of the program to be tested is determined based on logical operators such as “and” and “or” that combine the conditions. In the first embodiment, a true / false value as a determination expression and a combination of true / false relations for each condition are satisfied so as to satisfy the above-described coverage rules 2 and 3 based on the logical relationship of logical operators that combine the conditions. Thus, an excessive combination of true and false values for each condition is excluded.

(基本ルール)
図2A(1)、(2)に、テスト対象となる判定式に含まれる論理積(and)、論理和
(or)についての真偽値関係の説明図を例示する。図2A(1)は、論理積についての真偽値関係の説明図であり、図2A(2)は論理和についての真偽値関係の説明図である。なお、説明例の判定式は、“(A or B) and (C)”とする。
(basic rule)
FIGS. 2A (1) and 2 (2) illustrate explanatory views of the true / false relationship regarding the logical product (and) and the logical sum (or) included in the determination formula to be tested. FIG. 2A (1) is an explanatory diagram of a true / false value relationship for logical product, and FIG. 2A (2) is an explanatory diagram of a true / false value relationship for logical sum. Note that the determination formula in the explanation example is “(A or B) and (C)”.

図2A(1)の、論理積:(A and B)の関係では、例えば、条件“A”、“B”の真偽
値の組合せとして(A,B)=(真(true)、真(true))、(真(true)、偽(false))、(偽(false)、真(true))、(偽(false)、偽(false))の4つの組合せが存在
する。そして、各条件の4通りの真偽値の組合せに対し、MC/DCのテスト網羅度の網羅規則3を満たすように、論理積の判定結果を“真(true)”、“偽(false)”とする
条件の組合せを抽出する。
In the relationship of logical product: (A and B) in FIG. 2A (1), for example, (A, B) = (true), true ( (true)), (true), false (false)), (false), true (true)), (false (false), false (false)), there are four combinations. Then, for the four combinations of true / false values for each condition, the logical product judgment results are “true” and “false” so as to satisfy the coverage rule 3 of the MC / DC test coverage. A combination of the conditions “is extracted.

先ず、論理積の判定結果を“真(true)”とする条件は、各条件の4通りの真偽値の組合せの中の、(A,B)=(真(true)、真(true))の1通りである。他の、(A,B)=(真(true)、偽(false))、(偽(false)、真(true))、(偽(false)、偽(false)の組合せは、論理積の判定結果を“偽(false)”とする条件の組合せである。MC/
DCのテスト網羅度の網羅規則3を満たすためには、論理積の判定結果を“偽(false)
”とする各条件の3通りの真偽値の組合せから、少なくとも1通り以上を抽出すればよい。
First, the condition for setting the logical product determination result to “true” is (A, B) = (true), true among the four combinations of true / false values of each condition. ). Other combinations of (A, B) = (true, false), (false), true (true), (false), false This is a combination of conditions in which the determination result is “false.” MC /
In order to satisfy the coverage rule 3 of DC test coverage, the logical product judgment result is “false”.
It is only necessary to extract at least one or more from three combinations of true / false values for each condition.

次に、論理積の判定結果を“真(true)”とする条件(A,B)の真偽値の組合せに対し
、MC/DCのテスト網羅度の網羅規則2を満たすように、論理積の判定結果を“偽(false)”とする各条件の3通りの真偽値の組合せの中から所定の組合せを抽出する。
Next, for the combination of the truth values of the condition (A, B) that makes the logical product determination result “true”, the logical product is satisfied so that the coverage rule 2 of the test coverage of MC / DC is satisfied. A predetermined combination is extracted from three combinations of true / false values under each condition where the determination result is “false”.

ここで、条件“A”、“B”のそれぞれについて、論理積の判定結果が“真(true)”となる真偽値の組合せは既に確定している。従って、MC/DCのテスト網羅度の網羅規則2を満たすためには、条件“A”を“偽(false)”としてテスト可能な条件“A”、“B”の組合せがあればよい。また、同様にして、条件“B”を“偽(false)”としてテスト可能な条件“A”、“B”の組合せがあればよい。   Here, for each of the conditions “A” and “B”, a combination of true / false values for which the logical product determination result is “true” has already been determined. Therefore, in order to satisfy the coverage rule 2 of the MC / DC test coverage, it is only necessary to have a combination of conditions “A” and “B” that can be tested with the condition “A” as “false”. Similarly, there may be a combination of conditions “A” and “B” that can be tested with the condition “B” set to “false”.

この結果、論理積で結ばれた条件の真偽関係では、条件“A”を“偽(false)”とする(A,B)=(偽(false)、真(true))の組合せ、条件“B”を“偽(false)”とする(A,B)=(真(true)、偽(false))の組合せが、網羅規則2の関係を満たすこととなる。なお、各条件の4通りの真偽値の組合せの中で、(A,B)=(偽(false)、偽(false
))との組合せは、論理積の判定結果を“偽(false)”とする他の2通りの組合せで真
偽値のテストが網羅されるため、余剰な組合せとなる。
As a result, in the true / false relation of the conditions connected by AND, the condition “A” is set to “false” (A, B) = (false (true), true) combination, condition A combination of “A” and “B” = “false” (A, B) = (true, false) satisfies the relationship of the coverage rule 2. Of the four combinations of true / false values for each condition, (A, B) = (false (false), false (false
)) Is a surplus combination because the test of true / false values is covered by the other two combinations in which the logical product determination result is “false”.

論理積:(A and B)で結ばれた各条件の真偽関係では、図2A(1)に例示する、条
件“A”、“B”についての3通りの真偽値の組合せが、MC/DCのテスト網羅度の網羅規則2,3を満たす組合せとして提示できる。論理積:(A and B)では、条件“A”、“B”の真偽値の組合せとして(A,B)=(真(true)、真(true))、(真(true)、偽(false))、(偽(false)、真(true))の3通りの組合せがMC/DCのテスト網羅度を満たす組合せとして抽出される。
In the true / false relation of the conditions connected by the logical product: (A and B), three combinations of true / false values for the conditions “A” and “B” illustrated in FIG. / DC can be presented as a combination that satisfies the coverage rules 2 and 3 of the test coverage. Logical product: In (A and B), the combination of the truth values of the conditions "A" and "B" is (A, B) = (true, true), (true), false (False)), (false), and true (true) are extracted as combinations that satisfy the test coverage of MC / DC.

図2A(2)の、論理和:(A or B)についても、同様の関係が抽出できる。すなわち、論理和についても、条件“A”、“B”の真偽値の組合せとして(A,B)=(真(true)
、真(true))、(真(true)、偽(false))、(偽(false)、真(true))、(偽(false)、偽(false))の4通りの組合せが存在する。そして、各条件の4通りの真偽値の組合せに対し、MC/DCのテスト網羅度の網羅規則3を満たすように、論理和の判定結果を“真(true)”、“偽(false)”とする条件の組合せを抽出する。
A similar relationship can be extracted for the logical sum (A or B) in FIG. 2A (2). That is, for logical sum, the combination of the truth values of the conditions “A” and “B” is (A, B) = (true)
, True), (true), false (true), (false), true (true), (false), false (false)), there are four combinations . Then, for the four combinations of true / false values of each condition, the logical OR determination result is “true” and “false” so as to satisfy the coverage rule 3 of the MC / DC test coverage. A combination of the conditions “is extracted.

先ず、論理和の判定結果を“偽(false)”とする条件は、各条件の4通りの真偽値の
組合せの中の、(A,B)=(偽(false)、偽(false))の1通りである。他の、(A,B)=(真(true)、真(true))、(真(true)、偽(false))、(偽(false)、真(true))の組合せは、論理和の判定結果を“真(true)”とする条件の組合せである。MC/DCのテスト網羅度の網羅規則3を満たすためには、論理和の判定結果を“真(true)”とする各条件の3通りの真偽値の組合せから、少なくとも1通り以上を抽出すればよい。
First, the condition that the logical OR determination result is “false” is (A, B) = (false) or false (false) among the four combinations of true / false values of each condition. ). Other combinations of (A, B) = (true, true), (true), false (false), (false, true) This is a combination of conditions that makes the determination result “true”. In order to satisfy the coverage rule 3 of the MC / DC test coverage, at least one or more types are extracted from combinations of three true / false values for each condition with the result of logical sum being “true”. do it.

次に、論理和の判定結果を“偽(false)”とする条件(A,B)の真偽値の組合せに対し、MC/DCのテスト網羅度の網羅規則2を満たすように、論理和の判定結果を“真(tr
ue)”とする各条件の3通りの真偽値の組合せの中から所定の組合せを抽出する。
Next, for the combination of the true / false values of the condition (A, B) with the determination result of the logical sum being “false”, the logical sum is satisfied so as to satisfy the coverage rule 2 of the test coverage of MC / DC. The judgment result of “true (tr
ue) ”, a predetermined combination is extracted from three combinations of true / false values of each condition.

ここで、条件“A”、“B”のそれぞれについて、論理和の判定結果が“偽(false)”
となる真偽値の組合せは既に確定している。従って、MC/DCのテスト網羅度の網羅規則2を満たすためには、条件“A”を“真(true)”としてテスト可能な条件“A”、“B
”の組合せがあればよい。また、同様にして、条件“B”を“真(true)”としてテスト
可能な条件“A”、“B”の組合せがあればよい。
Here, for each of the conditions “A” and “B”, the logical OR determination result is “false”.
The combination of true / false values is already fixed. Therefore, in order to satisfy the coverage rule 2 for the MC / DC test coverage, the conditions “A”, “B” that can be tested with the condition “A” as “true”.
Similarly, there may be a combination of conditions “A” and “B” that can be tested with the condition “B” as “true”.

この結果、論理和で結ばれた条件の真偽関係では、条件“A”を“真(true)”とする
(A,B)=(真(true)、偽(false))の組合せ、条件“B”を“真(true)”とする(A,B)=(偽(false)、真(true))の組合せが、網羅規則2の関係を満たすこととなる
。なお、各条件の4通りの真偽値の組合せの中で、(A,B)=(真(true)、真(true)
)との組合せは、論理和の判定結果を“真(true)”とする他の2通りの組合せで真偽値のテストが網羅されるため、余剰な組合せとなる。
As a result, in the true / false relationship of the conditions connected by the logical sum, the condition “A” is set to “true” (A, B) = (true, false), a combination of the conditions A combination of (A, B) = (false, true) where “B” is “true” satisfies the relationship of the coverage rule 2. Of the four combinations of truth values for each condition, (A, B) = (true), true (true)
)) Is a surplus combination because the true / false test is covered by the other two combinations in which the logical sum determination result is “true”.

論理和:(A or B)で結ばれた各条件の真偽関係では、図2A(2)に例示する、条件“A”、“B”についての3通りの真偽値の組合せが、MC/DCのテスト網羅度の網羅規則2,3を満たす組合せとして提示できる。論理和:(A or B)の関係では、条件“A”
、“B”の真偽値の組合せとして(A,B)=(真(true)、偽(false))、(偽(false)、真(true))、(偽(false)、偽(false))の3通りの組合せがMC/DCのテスト網羅度を満たす組合せとして抽出される。
In the true / false relationship of the conditions connected by the logical sum: (A or B), the combination of three true / false values for the conditions “A” and “B” illustrated in FIG. / DC can be presented as a combination that satisfies the coverage rules 2 and 3 of the test coverage. For logical OR: (A or B), the condition “A”
, (A, B) = (true, false), (false, true), (false), false (false) )) Are extracted as combinations satisfying the MC / DC test coverage.

このように、判定式の各条件を結合する論理演算子の論理種別に応じて、条件毎の真偽値を演算順に階層的(再帰的)に適用すれば、条件数nに対し2のn乗個の真偽値の組合せを生じることなくMC/DCのテスト網羅度を満たす真偽値の組合せが生成できる。   In this way, if the true / false values for each condition are applied hierarchically (recursively) in the order of operation in accordance with the logical type of the logical operator that combines the conditions of the judgment expression, n equal to 2 for the condition number n A combination of true / false values that satisfies the test coverage of MC / DC can be generated without generating a combination of true / false values.

例えば、判定式“(A or B)and (C)”では、条件“A”、“B”についての論理和が下
位の処理プロセスであり、条件“A”、“B”の論理和(A or B)と条件(C)との論理積
が上位の処理プロセスとなる。
For example, in the judgment expression “(A or B) and (C)”, the logical sum of the conditions “A” and “B” is a lower processing process, and the logical sum of the conditions “A” and “B” (A or B) and the condition (C) are the upper processing processes.

例えば、論理演算子“and”で結ばれる条件(A or B)と条件(C)に対して、上述した論理積の真偽値関係により、((A or B),(C))=(真(true),真(true))、(真(true),偽(false))、(偽(false),真(true))の3通りの組合せを生成する。そして、生成された真偽値の各組合せに対し、例えば、論理演算子“or”で結ばれる条件(A or B)についての論理和の真偽関係を適用するとすればよい。つまり、条件(A or B)について、論理和を“真(true)”とする条件“A”、“B”の真偽値の組合せ、論理和を“偽(false)”とする条件“A”、“B”の真偽値の組合せを、論理演算子“and”で得られた3通りの真偽値の組合せに適用する。   For example, for the condition (A or B) and the condition (C) connected by the logical operator “and”, ((A or B), (C)) = ( Three combinations of “true”, “true”, “true”, “false”, and “false” are generated. Then, for example, the true / false relationship of the logical sum regarding the condition (A or B) connected by the logical operator “or” may be applied to each combination of the generated true / false values. In other words, for the condition (A or B), the condition “A” that makes the logical sum “true”, the combination of the truth values of “B”, the condition “A” that makes the logical sum “false” The combination of true / false values of “B” is applied to the three combinations of true / false values obtained by the logical operator “and”.

例えば、論理和の条件(A or B)を“真(true)”とする条件“A”、“B”の真偽値の組合せは、図2A(2)より、(A,B)=(真(true)、偽(false))、(偽(false)
、真(true))の2通りとなる。また、論理和の条件(A or B)を“偽(false)”とす
る条件“A”、“B”の真偽値の組合せは、図2A(2)より、(A,B)=(偽(false)、偽(false))の1通りとなる。
For example, the combination of the conditions “A” and “B” for which the condition of logical sum (A or B) is “true” is “(A, B) = ( True, false), (false)
, True). Further, the combination of the conditions “A” and “B” for which the condition of logical sum (A or B) is “false” is as follows: (A, B) = ( It becomes one of false (false) and false (false).

従って、論理和の条件(A or B)を“真(true)”とする条件“A”、“B”の真偽値の組合せを適用することで、(A,B,C)=(真(true)、偽(false)、真(true))、(偽(false)、真(true)、真(true))の2通りの真偽値の組合せが生成される。同様に
して、(A,B,C)=(真(true)、偽(false)、偽(false))、(偽(false)、真(true)、偽(false))の2通りの真偽値の組合せが生成される。
Therefore, by applying the combination of the conditions “A” and “B” that make the condition of logical sum (A or B) “true” (A, B, C) = (true Two combinations of true / false values are generated: (true), false (true), true (false), true (true), true (true). Similarly, (A, B, C) = (true, false, false), (false, true, false) A combination of false values is generated.

また、論理和の条件(A or B)を“偽(false)”とする条件“A”、“B”の真偽値の
組合せを適用することで、(A,B,C)=(偽(false)、偽(false)、真(true))の1
通りの真偽値の組合せが生成される。判定式の各条件を結合する論理演算子の論理種別に応じて、図2A(1)、(2)に例示の論理積、論理和による基本ルールとしての真偽値を、各条件に対して階層的に適用することにより、冗長性を排除した5通りの真偽値の組合せを得ることができる。
In addition, by applying a combination of the conditions “A” and “B” that are “false” as the logical sum condition (A or B), (A, B, C) = (false (False), false (false), true (true) 1
A combination of street truth values is generated. Depending on the logical type of the logical operator that combines the conditions of the judgment expression, the truth value as a basic rule based on the logical product and logical sum illustrated in FIGS. 2A (1) and (2) is set for each condition. By applying it hierarchically, it is possible to obtain five combinations of truth values excluding redundancy.

なお、論理積、論理和による基本ルールを適用した場合、判定式“(A or B) and (C)”の3個の条件数(A,B,C)に対して5通りの真偽値の組合せを得ることができる。しか
し、条件数が3個の場合では、最小限となる各条件の真偽値の組合せは4通りであるため、未だ1個の余剰な真偽値の組合せ存在することとなる。次に、論理積、論理和による基本ルールを適用した場合に残された余剰な真偽値の組合せを排除可能な、MC/DCのテスト網羅度の網羅規則4を考慮した、各条件に対する真偽値の組合せルールを説明する。
In addition, when the basic rule by logical product or logical sum is applied, there are five true / false values for the three condition numbers (A, B, C) of the judgment expression “(A or B) and (C)”. Can be obtained. However, when the number of conditions is three, there are four combinations of the true / false values of the minimum conditions, so there is still one surplus of true / false combinations. Next, the truth for each condition in consideration of the coverage rule 4 of the MC / DC test coverage that can eliminate the combination of surplus truth values left when the basic rules based on logical product and logical sum are applied. A false value combination rule will be described.

(組合せルール)
図2B(1)、(2)に、論理積(and)、論理和(or)についてのMC/DCのテス
ト網羅度を満たす3通りの真偽値関係の説明図を例示する。図2B(1)は、論理積についての真偽値関係の説明図であり、図2B(2)は論理和についての真偽値関係の説明図である。
(Combination rule)
FIGS. 2B (1) and 2 (2) illustrate three true / false relational relationships that satisfy the MC / DC test coverage for logical product (and) and logical sum (or). FIG. 2B (1) is an explanatory diagram of the true / false value relationship for the logical product, and FIG. 2B (2) is an explanatory diagram of the true / false value relationship for the logical sum.

図2B(1)、(2)の右上がり斜線でハッチングされた領域に示されるように、論理積(and)、論理和(or)のそれぞれに、判定結果に独立に影響を及ぼす各条件の真偽値
の組合せが存在する。ここで、判定結果に独立に影響を及ぼす各条件の真偽値の組合せとは、各条件についての真偽値を反転させた場合に、判定結果としての真偽値が変更される各条件の真偽値の組合せをいう。
As shown in the hatched area in FIG. 2B (1) and (2), the conditions of each of the conditions that affect the determination result independently in the logical product (and) and logical sum (or). There are boolean combinations. Here, the combination of true / false values of each condition that affects the determination result independently means that the true / false value as the determination result is changed when the true / false value for each condition is inverted. A combination of boolean values.

例えば、論理積の判定式“A and B”を想定すると、図2B(1)のID=1のレコー
ドに示すように、条件“A”が“真(true)”、条件“B”が“偽(false)”の真偽値の
組み合わせでは、判定結果(A and B)は“偽(false)”となる。ID=1のレコードの真偽値の組合せにおいて、例えば、条件“A”を“真(true)”→“偽(false)”に変更した場合、判定結果は“偽(false)”となり、変更の前後では真偽値は変化しない。
For example, assuming the logical product judgment expression “A and B”, as shown in the record of ID = 1 in FIG. 2B (1), the condition “A” is “true” and the condition “B” is “ In the combination of true / false values of “false”, the determination result (A and B) is “false”. For example, when the condition “A” is changed from “true” to “false” in the combination of true / false values of the record with ID = 1, the determination result becomes “false” and the change is made. The truth value does not change before and after.

一方、ID=1のレコードの真偽値の組合せにおいて、例えば、条件“B”を“偽(false)”→“真(true)”に変更した場合には、判定結果は“真(true)”となり、条件“B”の真偽値の変更の前後で真偽値が変化することとなる。つまり、図2B(1)のID
=1のレコードの真偽値の組合せでは、条件“B”の真偽値は、判定結果の真偽値に独立
に影響を及ぼすということができる。
On the other hand, when the condition “B” is changed from “false” to “true” in the combination of the truth values of the record of ID = 1, the determination result is “true”. ", And the true / false value changes before and after the change of the true / false value of the condition" B ". That is, the ID of FIG. 2B (1)
In the combination of the true / false values of the record = 1, the true / false value of the condition “B” can independently affect the true / false value of the determination result.

図2B(1)のID=2のレコードの、条件“A”が“真(true)”,条件“B”が“偽(false)”の組み合わせにおける、条件“A”の真偽値についても、判定結果の真偽値に独立に影響を及ぼすということができる。ID=2のレコードの条件“A”、“B”の真偽値の組合せでは、条件“A”を“偽(false)”→“真(true)”に変更した場合には、判定結果(A and B)の真偽値が“偽(false)”→“真(true)”に変更されるからである。   In the record of ID = 2 in FIG. 2B (1), the truth value of the condition “A” in the combination of the condition “A” is “true” and the condition “B” is “false”. It can be said that the truth value of the determination result is influenced independently. In the combination of the conditions “A” and “B” for the record of ID = 2, if the condition “A” is changed from “false” to “true”, the determination result ( This is because the truth value of A and B) is changed from “false” to “true”.

図2B(1)のID=3のレコードの、条件“A”が“真(true)”、条件“B”が“真(true)”の真偽値の組み合わせでは、条件“A”、条件“B”の真偽値がそれぞれに、判定結果の真偽値に独立に影響を及ぼすということができる。例えば、ID=3のレコードの条件“A”、“B”の真偽値の組合せでは、条件“A”を“真(true)”→“偽(false)
”に変更した場合には、判定結果(A and B)の真偽値が“真(true)”→“偽(false)”に変更されるからである。同様に、例えば、条件“B”を“真(true)”→“偽(false)”に変更した場合にも、判定結果(A and B)の真偽値が“真(true)”→“偽(false)”に変更されるからである。
In the combination of the record of ID = 3 in FIG. 2B (1) where the condition “A” is “true” and the condition “B” is “true”, the condition “A”, the condition It can be said that the truth value of “B” independently affects the truth value of the determination result. For example, the condition “A” is changed from “true” to “false” in the case of a combination of the conditions “A” and “B” of the record of ID = 3.
This is because the true / false value of the determination result (A and B) is changed from “true” to “false”. Similarly, for example, the condition “B” Even if the value is changed from “true” to “false”, the truth value of the judgment result (A and B) is changed from “true” to “false” Because.

図2B(2)の論理和の判定式(A or B)では、例えば、ID=1のレコードに示すように、条件“A”が“真(true)”、条件“B”が“偽(false)”の真偽値の組み合わせ
では、判定結果(A or B)は“真(true)”となる。ID=1のレコードの真偽値の組合せにおいて、例えば、条件“A”を“真(true)”→“偽(false)”に変更した場合には、判定結果は“偽(false)”となり、条件“A”の真偽値の変更の前後で真偽値が変化することとなる。ID=1のレコードの真偽値の組合せにおいて、条件“A”の真偽値は、
判定結果の真偽値に独立に影響を及ぼすということができる。
In the logical sum judgment formula (A or B) in FIG. 2B (2), for example, as shown in the record of ID = 1, the condition “A” is “true” and the condition “B” is “false ( false) ”, the determination result (A or B) is“ true ”. For example, when the condition “A” is changed from “true” to “false” in the combination of the truth value of the record with ID = 1, the determination result is “false”. The true / false value changes before and after the change of the true / false value of the condition “A”. In the combination of the truth values of the record with ID = 1, the truth value of the condition “A” is
It can be said that the truth value of the determination result is influenced independently.

図2B(2)のID=2のレコードの、条件“A”が“偽(false)”、条件“B”が“
真(true)”の組み合わせにおける、条件“B”の真偽値についても、判定結果の真偽値
に独立に影響を及ぼすということができる。ID=2のレコードの条件“A”、“B”の真偽値の組合せでは、条件“B”を“真(true)”→“偽(false)”に変更した場合には、判定結果(A or B)の真偽値が“真(true)”→“偽(false)”に変更されるからであ
る。
In the record of ID = 2 in FIG. 2B (2), the condition “A” is “false” and the condition “B” is “
It can be said that the true / false value of the condition “B” in the combination of “true” also affects the true / false value of the determination result independently. The conditions “A” and “B” of the record with ID = 2 When the condition “B” is changed from “true” to “false”, the truth value of the judgment result (A or B) is “true”. ) ”→“ false ”.

図2B(2)のID=3のレコードの、条件“A”が“偽(false)”、条件“B”が“
偽(false)”の真偽値の組み合わせでは、条件“A”、条件“B”の真偽値がそれぞれに
、判定結果の真偽値に独立に影響を及ぼすということができる。例えば、ID=3のレコードの条件“A”、“B”の真偽値の組合せでは、条件“A”を“偽(false)”→“真(true)”に変更した場合には、判定結果(A or B)の真偽値が“偽(false)”→“真(true)”に変更されるからである。同様に、例えば、条件“B”を“偽(false)”→“真(true)”に変更した場合にも、判定結果(A or B)の真偽値が“偽(false)”→“真(true)”に変更されるからである。
In the record with ID = 3 in FIG. 2B (2), the condition “A” is “false” and the condition “B” is “
In the combination of “false” values, it can be said that the truth values of the condition “A” and the condition “B” each independently affect the truth value of the determination result. For the combination of true / false values of record conditions “A” and “B” = 3, if the condition “A” is changed from “false” to “true”, the determination result (A or B) is changed from “false” to “true.” Similarly, for example, the condition “B” is changed from “false” to “true”. This is because the true / false value of the determination result (A or B) is also changed from “false” to “true” even when it is changed to “)”.

図2B(1)、(2)に例示にように、基本ルールとしての論理積(and)、論理和(or)による真偽値の組合せには、それぞれに判定結果の真偽値に独立に影響を及ぼす組合
せが存在する。従って、例えば、基本ルールの階層的(再帰的)な各条件の真偽値の組合せに対し、以下に定義する組合せルール1、2を適用することにより、網羅規則1−4を満たす各条件の真偽値関係を得ることが可能となる。
・組合せルール1:判定結果としての真偽値に独立に影響しない(対象となる条件の真偽値を反転しても判定結果が変わらない)場合には、判定結果の真偽値が共通する条件の組合せから1つの組合せを抽出し、適用する。
・組合せルール2:判定結果としての真偽値に独立に影響する(対象となる条件の真偽値を反転すると判定結果が変わる)場合には、判定結果の真偽値が共通する条件の組合せを全て抽出し、適用する。
As illustrated in FIGS. 2B (1) and 2 (2), the combination of truth values by logical product (and) and logical sum (or) as basic rules is independent of the truth value of the determination result. There are combinations that affect it. Therefore, for example, by applying the combination rules 1 and 2 defined below to the combination of the truth values of the hierarchical (recursive) conditions of the basic rule, It is possible to obtain a truth value relationship.
Combination rule 1: When the true / false value as the determination result is not affected independently (the determination result does not change even if the true / false value of the target condition is inverted), the true / false value of the determination result is common. One combination is extracted from the combination of conditions and applied.
Combination rule 2: a combination of conditions in which the true / false value of the determination result is common when the true / false value as the determination result is influenced independently (if the true / false value of the target condition is inverted, the determination result changes) Are extracted and applied.

なお、上述の組合せルール1,2は、例えば、基本ルールとなる論理積(and)、論理
和(or)の真偽値表に、予め対応付けておくことができる。例えば、図2B(1)、(2)の例では、右上がり斜線でハッチングされた領域の真偽値に対し、組合せルール2が適用されることを対応付けておけばよい。また、図2B(1)、(2)の例において、組合せルール2が適用される領域以外の真偽値に対しては、例えば、組合せルール1が適用されることを対応付けるとしてもよい。
The combination rules 1 and 2 described above can be associated in advance with, for example, a truth table of logical products (and) and logical sums (or) as basic rules. For example, in the example of FIGS. 2B (1) and (2), it is only necessary to associate that the combination rule 2 is applied to the true / false value of the area hatched with the upward-sloping diagonal line. In the example of FIGS. 2B (1) and (2), for example, the combination rule 1 may be associated with a true / false value other than the region to which the combination rule 2 is applied.

次に、上述の組合せルール1,2を反映させた場合の、各条件に対する真偽値の組合せの適用について説明する。図2C(1)、(2)に、上述の組合せルールを反映させた基
本ルールの階層的(再帰的)な適用についての説明図を例示する。なお、図2C(1)、(2)における、判定式は“(A or B) and C”とする。
Next, application of a combination of true / false values for each condition when the above-described combination rules 1 and 2 are reflected will be described. FIGS. 2C (1) and 2 (2) illustrate explanatory diagrams about hierarchical (recursive) application of the basic rule reflecting the above combination rule. In FIG. 2C (1) and (2), the determination formula is “(A or B) and C”.

図2C(1)に例示の真偽値表テーブルは、例えば、判定式“(A or B) and C”に対して、図2A(1)の論理積の基本ルールを適用した場合の、条件“(A or B)”と条件“C”の真偽値関係を示すものである。図2A(1)で説明したように、判定式“(A or B) and C”に対して、論理積の基本ルールを適用することにより、条件“(A or B)”
、“C”についての、MC/DCのテスト網羅度を満たす3通りの真偽値の組合せが生成
される。
The truth table table illustrated in FIG. 2C (1) is, for example, a condition when the basic rule of the logical product of FIG. 2A (1) is applied to the determination expression “(A or B) and C”. It shows the truth value relationship between “(A or B)” and condition “C”. As described with reference to FIG. 2A (1), the condition “(A or B)” is obtained by applying a logical AND basic rule to the judgment expression “(A or B) and C”.
, Three combinations of true / false values that satisfy the MC / DC test coverage for “C” are generated.

図2C(1)に例示のように、条件“(A or B)”、“C”についての、((A or B),C)=(真(true),偽(false))、(偽(false),真(true))、(真(true),真
(true))の3通りの真偽値の組合せが生成される。そして、3通りの真偽値の各組合せについて、条件“(A or B)”に対し、図2A(2)に例示の論理和の真偽値の組合せを適用することで、基本ルールの階層的(再帰的)な真偽値の組合せを反映したテストケースが生成される。
As illustrated in FIG. 2C (1), for the conditions “(A or B)” and “C”, ((A or B), C) = (true (true), false (false)), (false Three combinations of true / false values are generated: (false), true (true), and (true), true. Then, for each combination of the three true / false values, by applying the combination of the true / false values illustrated in FIG. 2A (2) to the condition “(A or B)”, the hierarchy of the basic rules A test case that reflects a combination of true (recursive) truth values is generated.

つまり、条件“(A or B)”、“C”について生成された3通りの真偽値の組合せに対
し、条件(A or B)を“真(true)”とする場合では、論理和“A or B”が“真(true)”となる、図2A(2)に例示の条件“A”、“B”の組合せを適用すればよい。同様にして、条件“(A or B)”、“C”について生成された3通りの真偽値の組合せに対し、条
件(A or B)を“偽(false)”とする場合では、論理和“A or B”が“偽(false)”となる、図2A(2)に例示の条件“A”、“B”の組合せを適用すればよい。
That is, when the condition (A or B) is set to “true” with respect to the three combinations of true / false values generated for the conditions “(A or B)” and “C”, the logical sum “ A combination of the conditions “A” and “B” illustrated in FIG. 2A (2) in which “A or B” is “true” may be applied. Similarly, if the condition (A or B) is “false” for the three combinations of true / false values generated for the conditions “(A or B)” and “C”, the logic The combination of the conditions “A” and “B” illustrated in FIG. 2A (2) in which the sum “A or B” becomes “false” may be applied.

論理積で結合される条件“(A or B)”、“C”について生成された3通りの真偽値の
組合せに対し、論理和で結合された条件“A”、“B”の真偽値の組合せを適用することで、基本ルールの階層的(再帰的)な真偽値の組合せに基づくテストケースが生成できる。
Conditions of “A” and “B” combined by logical sum for the combination of three true / false values generated for conditions “(A or B)” and “C” combined by logical product By applying the combination of values, a test case based on a hierarchical (recursive) combination of truth values of the basic rule can be generated.

図2C(1)に例示の各条件の組合せにおいて、ID=1のレコードの、条件“(A or
B)”の真偽値である“真(true)”は、図2B(1)で説明したように、論理積の判定結果の真偽値に独立に影響しない。従って、条件“(A or B)”について、論理和の基本ルールを階層的(再帰的)適用する際には、組合せルール1を採用すればよい。つまり、図2A(2)に例示の、ID=1、或いは、ID=2のどちらか一方の、論理和“A or B”の真偽値が“真(true)”となる、条件“A”、“B”についての真偽値の組合せを適用すればよい。
In the combination of the conditions illustrated in FIG. 2C (1), the condition “(A or or
2) “true”, which is the true / false value of “B”, does not independently affect the true / false value of the logical product determination result, as described in FIG. For B) ", when the basic rule of logical sum is applied hierarchically (recursively), the combination rule 1 may be adopted. That is, ID = 1 or ID illustrated in FIG. 2A (2) A combination of true / false values for the conditions “A” and “B” where the true / false value of the logical sum “A or B” is “true” may be applied.

次に、図2C(1)に例示の各条件の組合せにおいて、ID=2のレコードの、条件“(A or B)”の真偽値である“偽(false)”は、図2B(1)で説明したように、論理
積の判定結果の真偽値に独立に影響する。このため、条件“(A or B)”について、論理和の基本ルールを階層的(再帰的)に適用する際には、組合せルール2を採用すればよい。つまり、図2A(2)に例示のID=3の、論理和“A or B”の真偽値が“偽(false
)”となる、条件“A”、“B”についての真偽値の組合せを全て適用すればよい。
Next, in each combination of conditions illustrated in FIG. 2C (1), “false”, which is the truth value of the condition “(A or B)”, of the record with ID = 2 is shown in FIG. As described in (3), the truth value of the logical product determination result is influenced independently. Therefore, for the condition “(A or B)”, the combination rule 2 may be adopted when applying the basic rule of logical sum hierarchically (recursively). That is, the truth value of the logical sum “A or B” with ID = 3 illustrated in FIG. 2A (2) is “false”.
All combinations of true / false values for the conditions “A” and “B” that are “)” may be applied.

なお、図2A(2)の例では、論理和“A or B”の真偽値が“偽(false)”となる条
件“A”、“B”の真偽値の組合せはID=3に例示の1通りである。従って、図2C(1)のID=2のレコードの、条件“(A or B)”の“偽(false)”に対する、論理和の
基本ルールの階層的(再帰的)な適用では、図2A(2)のID=3に例示の1通りの条件“A”、“B”についての真偽値の組合せが採用される。
In the example of FIG. 2A (2), the combination of the conditions “A” and “B” where the truth value of the logical sum “A or B” is “false” is ID = 3. This is one example. Therefore, in the hierarchical (recursive) application of the basic rule of logical sum to “false” of the condition “(A or B)” of the record of ID = 2 in FIG. 2C (1), FIG. A combination of true and false values for one condition “A” and “B” illustrated in ID = 3 in (2) is employed.

次に、図2C(1)に例示の各条件の組合せにおいて、ID=3のレコードの、条件“
(A or B)”の真偽値である“真(true)”は、図2B(1)で説明したように、論理積の判定結果の真偽値に独立に影響する。このため、ID=3のレコードの条件“(A or B)”に対し、論理和の基本ルールを階層的(再帰的)に適用する際には、組合せルール2を採用すればよい。例えば、図2A(2)に例示のID=1、2の、論理和“A or B”の真偽値が“真(true)”となる、条件“A”、“B”についての真偽値の組合せを全て適用すればよい。
Next, in the combinations of the conditions illustrated in FIG. 2C (1), the condition “
“True”, which is a true / false value of “(A or B)”, independently affects the true / false value of the logical product determination result, as described with reference to FIG. When the basic rule of logical sum is applied hierarchically (recursively) to the record condition “(A or B)” = 3, the combination rule 2 may be adopted, for example, FIG. All the combinations of truth values for the conditions “A” and “B” in which the truth value of the logical sum “A or B” is “true” with the ID = 1, 2 shown in FIG. do it.

図2A(2)では、論理和“A or B”の真偽値が“真(true)”となる条件“A”、“B”の真偽値の組合せは、ID=1に例示の(真(true)、偽(false))、及び、ID=
2に例示の(偽(false)、真(true))の2通りである。従って、図2C(1)のID
=3のレコードの、条件“(A or B)”の“真(true)”に対する、論理和の基本ルールの階層的(再帰的)な適用では、図2A(2)のID=1、2に例示の2通りの条件“A
”、“B”についての真偽値の組合せが採用される。
In FIG. 2A (2), the combination of the truth values of the conditions “A” and “B” where the truth value of the logical sum “A or B” is “true” is exemplified by ID = 1 ( True, false), and ID =
There are two examples (false (false) and true (true)). Therefore, the ID of FIG. 2C (1)
= 3, in the hierarchical (recursive) application of the basic rule of logical sum to “true” of the condition “(A or B)”, ID = 1, 2 in FIG. 2A (2) Two conditions “A” illustrated in
A combination of true / false values for “B” is adopted.

図2C(2)は、図2C(1)に例示の論理積の各レコードに対し、組合せルールを反映し、論理和“(A or B)”についての真偽値を階層的(再帰的)に適用して生成されたテストケースの真偽値表テーブル例である。図2C(2)に例示の真偽値表テーブルでは、判定式“(A or B) and C”に含まれる各条件“A”、“B”、“C”についてのカラム
を有する。
FIG. 2C (2) reflects the combination rule for each record of the logical product illustrated in FIG. 2C (1) and hierarchically (recursively) sets the truth value for the logical sum “(A or B)”. It is an example of a truth table of a test case generated by applying to. The truth table table illustrated in FIG. 2C (2) has columns for the conditions “A”, “B”, and “C” included in the determination formulas “(A or B) and C”.

図2C(2)のID=1のレコードは、図2C(1)のID=1のレコードに対応する。図2C(2)のID=1のレコードには、条件“(A or B)”の真偽値を“真(true)”とする条件“A”、“B”の2通りの真偽値の組合せから抽出された、(A,B)=(真(true)、偽(false))が格納されている。なお、組合せルール1で説明したように、図2C(2)のID=1のレコードに格納される条件“A”、“B”の真偽値の組合せは、例えば、もう一方の真偽値の組合せである、(A,B)=(偽(false)、真(true))であってもよい。   The record with ID = 1 in FIG. 2C (2) corresponds to the record with ID = 1 in FIG. 2C (1). In the record of ID = 1 in FIG. 2C (2), there are two kinds of truth values “A” and “B” that make the truth value of the condition “(A or B)” “true”. (A, B) = (true, false) extracted from the combination is stored. As described in the combination rule 1, the combination of the true / false values of the conditions “A” and “B” stored in the record with ID = 1 in FIG. 2C (2) is, for example, the other true / false value. (A, B) = (false, true).

図2C(2)のID=2のレコードは、図2C(1)のID=2のレコードに対応する。図2C(2)のID=2のレコードには、条件“(A or B)”の真偽値を“偽(false
)”とする条件“A”、“B”の1通りの真偽値の組合せである、(A,B)=(偽(false)、偽(false))が格納されている。
The record with ID = 2 in FIG. 2C (2) corresponds to the record with ID = 2 in FIG. 2C (1). In the record of ID = 2 in FIG. 2C (2), the true / false value of the condition “(A or B)” is set to “false”.
(A, B) = (false, false), which is a combination of one true / false value of conditions “A” and “B”.

図2C(2)のID=3_1、3_2のレコードは、図2C(1)のID=3のレコードに対応する。図2C(2)のID=3_1のレコードには、条件“(A or B)”の真偽値
を“真(true)”とする条件“A”、“B”の2通りの真偽値の組合せの内、(A,B)=(
真(true)、偽(false))が格納されている。また、図2C(2)のID=3_2のレコードには、条件“(A or B)”の真偽値を“真(true)”とする条件“A”、“B”の2通りの真偽値の組合せの内、(A,B)=(偽(false)、真(true))が格納されている。
The records with ID = 3_1 and 3_2 in FIG. 2C (2) correspond to the records with ID = 3 in FIG. 2C (1). In the record of ID = 3_1 in FIG. 2C (2), there are two true / false values of conditions “A” and “B” in which the true / false value of the condition “(A or B)” is “true”. (A, B) = (
True (false)) is stored. In addition, the record with ID = 3_2 in FIG. 2C (2) has two true conditions “A” and “B” that set the true value of the condition “(A or B)” to “true”. Among the combinations of false values, (A, B) = (false, true) is stored.

以上、説明したように、実施例1では、テスト対象となる判定式に含まれる各条件の真偽値の組合せに対し、組合せルールを反映した論理積、論理和の基本ルールを階層的(再帰的)に適用することで、網羅規則1−4を満たす最小数のテストケースが生成される。実施例1では、例えば、論理積、論理和の基本ルールの階層的(再帰的)な真偽値の組合せで残されていた、各条件の余剰な真偽値の組合せを排除することが可能となる。   As described above, in the first embodiment, the basic rule of logical product and logical sum reflecting the combination rule is hierarchically (recursively) for the combination of the true / false values of each condition included in the determination formula to be tested. The minimum number of test cases satisfying the coverage rule 1-4 is generated. In the first embodiment, for example, it is possible to eliminate a combination of surplus / false values of each condition, which is left as a combination of hierarchical (recursive) truth values of basic rules of logical product and logical sum. It becomes.

例えば、図2A(2)に例示の論理和の基本ルールでは、論理和(A or B)の真偽値を“真(true)”とする条件“A”、“B”の真偽値の組合せは、(A,B)=(真(true)、
偽(false))、(偽(false)、真(true))の2通りである。ここで、図2C(1)に例示のように、論理和(A or B)を条件とする論理積の基本ルールでは、論理和(A or B
)の真偽値を組合せる相手側の条件の真偽値が“偽(false)”である場合には、論理和
(A or B)の真偽値は判定結果の真偽値に独立に影響しない。このため、論理和(A or B)の真偽値を“真(true)”とする条件“A”、“B”の真偽値の組合せに対し、組合せルール1が適用されることとなる。
For example, in the basic rule of the logical sum illustrated in FIG. 2A (2), the truth values of the conditions “A” and “B” where the true value of the logical sum (A or B) is “true” are set. The combination is (A, B) = (true)
There are two types: false (false) and (false), true. Here, as illustrated in FIG. 2C (1), in the basic rule of the logical product on the condition of the logical sum (A or B), the logical sum (A or B)
) If the truth value of the other party's condition that combines the truth value of “) is“ false ”, the truth value of the logical sum (A or B) is independent of the truth value of the judgment result. It does not affect. For this reason, the combination rule 1 is applied to the combination of the conditions “A” and “B” with the truth value of the logical sum (A or B) being “true”. .

組合せルール1が適用される場合には、判定結果の真偽値が共通する条件の組合せから1つの組合せが抽出されるため、条件“(A or B)”の真偽値を“真(true)”とする条件“A”、“B”の2通りの真偽値の組合せの内の1つの組合せが抽出される。この結果、例えば、図2C(2)のID=1のレコードに例示のように、条件“A”、“B”の真偽値の組合せとして、(A,B)=(真(true),偽(false))が抽出され、他方の(A,B)=
(偽(false)、真(true))の真偽値の組合せを排除することが可能となる。なお、条
件“A”、“B”の真偽値の組合せとして、(A,B)=(偽(false)、真(true))が抽出された場合には、(A,B)=(真(true),偽(false))が余剰な真偽値の組合せとして排除されることとなる。
When combination rule 1 is applied, one combination is extracted from a combination of conditions with the same true / false value of the determination result, so the true / false value of condition “(A or B)” is set to “true” ) "Is extracted from one of the two combinations of true / false values of conditions" A "and" B ". As a result, for example, as illustrated in the record of ID = 1 in FIG. 2C (2), as a combination of the truth values of the conditions “A” and “B”, (A, B) = (true), False) is extracted and the other (A, B) =
It becomes possible to exclude a combination of true / false values (false, true). When (A, B) = (false (true), true) is extracted as a combination of truth values of the conditions “A” and “B”, (A, B) = ( True (false)) will be excluded as a combination of surplus boolean values.

実施例1では、論理積、論理和の基本ルールを階層的(再帰的)に適用する際に、組合せルールを反映することで、判定式に含まれる各条件についての網羅規則1−4を満たす最小数の真偽値の組合せを求めることが可能となる。しかし、例えば、組合せルール1の反映の時に、判定結果の真偽値が共通する各条件の組合せから1つの組合せを抽出する場合、抽出した各条件についての真偽値の組合せによっては、矛盾を含む虞がある。   In the first embodiment, when the basic rules of logical product and logical sum are applied hierarchically (recursively), the combination rules are reflected to satisfy the coverage rule 1-4 for each condition included in the determination formula. It becomes possible to obtain a combination of the minimum number of true / false values. However, for example, when a combination rule 1 is reflected, when one combination is extracted from a combination of conditions with the same truth value of the determination result, a contradiction may occur depending on the combination of the truth values for each extracted condition. May contain.

図3に、組合せルール1を説明例とした、矛盾が生じる場合の、各条件についての真偽値の組合せの説明図を例示する。なお、説明例での判定式は、“((x>10) or (y==0)) and
(x>0)”とする。判定式“((x>10) or (y==0)) and (x>0)”では、条件“(x>10)”、“(y==0)”についての論理和が下位の処理プロセスであり、条件“(x>10)”、“(y==0)”の論理和“((x>10) or (y==0))”と条件“(x>0)”との論理積が上位の処理プロセスとなる。
FIG. 3 illustrates an explanatory diagram of a combination of true and false values for each condition when a contradiction occurs, taking the combination rule 1 as an explanatory example. The judgment formula in the explanation example is “((x> 10) or (y == 0)) and
(x> 0) ”. In the judgment formulas“ ((x> 10) or (y == 0)) and (x> 0) ”, the conditions“ (x> 10) ”,“ (y == 0 ) ”Is a lower-level processing process, and the condition“ (x> 10) ”,“ (y == 0) ”or“ ((x> 10) or (y == 0)) ” AND of the condition “(x> 0)” is the upper processing process.

図3のID=1−3のレコードに例示のように、“(y==0)”の論理和“((x>10) or (y==0))”と条件“(x>0)”との論理積について、基本ルールを適用し、各条件についての3
通りの真偽値の組合せが求められる。
As illustrated in the record of ID = 1-3 in FIG. 3, the logical sum “((x> 10) or (y == 0))” and the condition “(x> 0) of“ (y == 0) ”. ) ”And apply the basic rule to the logical AND and 3 for each condition
A combination of street truth values is determined.

ID=1のレコードにおいて、論理和“((x>10) or (y==0))”と条件“(x>0)”との真
偽値の組合せにおいて、論理和“((x>10) or (y==0))”を“真(true)”とする条件“(x>10)”、“(y==0)”の真偽値の組合せには組合せルール1が適用される。従って、例えば、図2B(2)に例示の基本ルールとなる論理和の真偽値の組合せから、ID=1、或いは、ID=2のどちらか一方の組合せを、論理和“((x>10) or (y==0))” を“真(true
)”とする条件“(x>10)”、“(y==0)”の真偽値の組合せに適用すればよい。
In the record of ID = 1, the logical sum “((x> 10) or (y == 0))” and the condition “(x> 0)” and the condition “(x> 0)” are combined. 10) or (y == 0)) ”is set to“ true ”, the combination rule 1 applies to the combination of the truth values“ (x> 10) ”and“ (y == 0) ” Is done. Therefore, for example, from the combination of truth values of the logical sum as the basic rule illustrated in FIG. 2B (2), either one of ID = 1 or ID = 2 is changed to the logical sum “((x> 10) or (y == 0)) ”to“ true
) ”May be applied to a combination of truth values of“ (x> 10) ”and“ (y == 0) ”.

図2B(2)のID=1の論理和の基本ルールを条件“(x>10)”、“(y==0)”の真偽値の組合せとして採用した場合、条件“(x>10)”の真偽値は“真(true)”となり、条件“(y==0)”の真偽値は“偽(false)”となる。ここで、真偽値が“偽(false)”となる条件を、論理否定を示す“not”を該当する条件に付加して表すとする。   When the basic rule of the logical sum of ID = 1 in FIG. 2B (2) is adopted as a combination of the truth values of the conditions “(x> 10)” and “(y == 0)”, the condition “(x> 10 ) ”Is“ true ”, and the truth value of the condition“ (y == 0) ”is“ false ”. Here, it is assumed that a condition in which the true / false value is “false” is represented by adding “not” indicating logical negation to the corresponding condition.

図2B(2)のID=1の論理和の基本ルールを条件“(x>10)”、“(y==0)”の真偽値の組合せとして採用した場合、条件“(x>10)”、“(y==0)”の組合せは、結合式“(x>10)
and not(y==0)”で表すことができる。
When the basic rule of the logical sum of ID = 1 in FIG. 2B (2) is adopted as a combination of the truth values of the conditions “(x> 10)” and “(y == 0)”, the condition “(x> 10 ) ”,“ (Y == 0) ”is a combination expression“ (x> 10)
and not (y == 0) ”.

図3のID=1のレコードにおける条件“(x>0)”に対する真偽値は“偽(false)”であるため、条件“(x>0)”に論理否定を示す“not”を付加し、条件“not(x>0)”として表すことができる。従って、図3のID=1に例示の真偽値に対して組合せルール1を反映
した条件“(x>10)”、“(y==0)”、“(x>0)”の組合せは、以下の結合式(A1)として
表すことができる。
・結合式:(x>10) and not(y==0) and not(x>0) …結合式(A1)
結合式(A1)では、条件“(x>10)”、“not(x>0)”を同時に含むため、条件“(x>10)”、“not(x>0)”に共通する変数xについて矛盾が生じることとなる。このため、MC/DCのテスト網羅度を満たすテストケースとして生成された真偽値の組合せを反映した結合式(A1)を充足する、テストセット(各条件を充足する変数値の組合せ)を求めることが不能となってしまう。
Since the truth value for the condition “(x> 0)” in the record of ID = 1 in FIG. 3 is “false”, “not” indicating logical negation is added to the condition “(x> 0)”. It can be expressed as the condition “not (x> 0)”. Therefore, the combination of the conditions “(x> 10)”, “(y == 0)”, “(x> 0)” reflecting the combination rule 1 for the example true / false value of ID = 1 in FIG. Can be expressed as the following bond formula (A1).
-Joining formula: (x> 10) and not (y == 0) and not (x> 0) ... Joining formula (A1)
Since the join expression (A1) includes the conditions “(x> 10)” and “not (x> 0)” at the same time, the variables common to the conditions “(x> 10)” and “not (x> 0)” There will be a contradiction for x. Therefore, a test set (a combination of variable values that satisfies each condition) that satisfies the combination formula (A1) that reflects a combination of true and false values generated as a test case that satisfies the test coverage of MC / DC is obtained. It becomes impossible.

一方、図2B(2)のID=2の論理和の基本ルールを条件“(x>10)”、“(y==0)”の真偽値の組合せとして採用した場合、条件“(x>10)”の真偽値は“偽(false)”となり
、条件“(y==0)”の真偽値は“真(true)”となる。従って、真偽値が“偽(false)”
となる条件に、論理否定を示す“not”を付加し、図2B(2)のID=2の論理和の条
件“(x>10)”、“(y==0)”の組合せを表すと、結合式“not(x>10) and (y==0)”となる。
On the other hand, when the basic rule of the logical sum of ID = 2 in FIG. 2B (2) is adopted as a combination of the truth values of the conditions “(x> 10)” and “(y == 0)”, the condition “(x > 10) ”is“ false ”, and the truth value of the condition“ (y == 0) ”is“ true ”. Therefore, the truth value is “false”
In addition, “not” indicating logical negation is added to the condition, and the combination of the conditions “(x> 10)” and “(y == 0)” of ID = 2 in FIG. Then, the combined expression “not (x> 10) and (y == 0)”.

図2B(2)のID=2の論理和を採用した場合、図3のID=1に例示の真偽値に対して組合せルール1を反映した条件“(x>10)”、“(y==0)”、“(x>0)”の組合せは、以
下の結合式(A2)として表すことができる。
・結合式:not(x>10) and (y==0) and not(x>0) …結合式(A2)
結合式(A2)では、条件“not(x>10)”、“not(x>0)”を同時に含むこととなるが、
条件“not(x>10)”、“not(x>0)”に共通する変数xについて矛盾は生じない。このため
、MC/DCのテスト網羅度を満たすテストケースとして生成された真偽値の組合せを反映した結合式(A2)を充足する、テストセットを求めることが可能となる。
When the logical sum of ID = 2 in FIG. 2B (2) is adopted, the conditions “(x> 10)”, “(y) reflecting the combination rule 1 with respect to the true / false value illustrated as ID = 1 in FIG. == 0) ”and“ (x> 0) ”can be expressed as the following coupling equation (A2).
・ Combination formula: not (x> 10) and (y == 0) and not (x> 0) ... coupling formula (A2)
In the combination formula (A2), the conditions “not (x> 10)” and “not (x> 0)” are included at the same time.
There is no contradiction in the variable x common to the conditions “not (x> 10)” and “not (x> 0)”. For this reason, it becomes possible to obtain a test set that satisfies the combined equation (A2) reflecting the combination of true / false values generated as test cases satisfying the test coverage of MC / DC.

このように、テスト対象となる判定式に、変数を共通とする条件が複数に含まれる場合には、組合せルール、基本ルールの論理積、論理和の真偽値が適用された各条件の組合せに対し、真偽値を充足する変数値の組合せに矛盾が生じる虞がある。MC/DCのテスト網羅度を満たすテストケースとして生成された真偽値であっても、真偽値を各条件に反映した場合には、各条件を充足する変数値を求めることが不能となってしまう場合がある。   In this way, if the judgment formula to be tested includes multiple conditions that share a variable, the combination of the conditions to which the combination rule, the logical product of the basic rules, and the truth value of the logical sum are applied On the other hand, there is a possibility that a contradiction arises in the combination of the variable values satisfying the truth value. Even if it is a true / false value generated as a test case that satisfies the test coverage of MC / DC, if the true / false value is reflected in each condition, it is impossible to obtain a variable value that satisfies each condition. May end up.

例えば、組合せルール1の適用の際に、図2B(2)に例示のID=1の論理和の真偽値の組合せを抽出した場合では、MC/DCのテスト網羅度の網羅規則1−4の真偽値関係を反映した各条件についての充足解をテストセットとして求めることが不能となる。一方、組合せルール1の適用の際に、図2B(2)に例示のID=2の論理和の真偽値の組合せを抽出した場合では、MC/DCのテスト網羅度の網羅規則1−4の真偽値関係を反映した各条件についての充足解をテストセットとして求めることが可能となる。   For example, when the combination rule 1 is applied and a combination of true and false values of the logical sum of ID = 1 illustrated in FIG. 2B (2) is extracted, the coverage rule 1-4 of the MC / DC test coverage is used. It is impossible to obtain a satisfactory solution for each condition reflecting the true / false relation of as a test set. On the other hand, when a combination of true / false values of the logical sum of ID = 2 illustrated in FIG. 2B (2) is extracted when the combination rule 1 is applied, the coverage rule 1-4 of the MC / DC test coverage is obtained. It is possible to obtain a satisfactory solution for each condition reflecting the true / false relation of as a test set.

<実施例2>
実施例1では、情報処理装置は、組み合わせルール1において、判定結果としての真偽値に独立に影響しない(対象となる条件の真偽値を反転しても判定結果が変わらない)場合には、判定結果の真偽値が共通する条件の組合せから1つの組合せを抽出し、適用した。今、例えば、真偽値に独立に影響しない、判定結果の真偽値が共通する条件の組合せが、組み合わせAと、組み合わせBであるとする。
<Example 2>
In the first embodiment, in the combination rule 1, the information processing apparatus does not affect the truth value as the determination result independently (the determination result does not change even if the truth value of the target condition is inverted). Then, one combination was extracted from the combination of conditions having the same true / false value of the determination result and applied. Now, for example, it is assumed that a combination of conditions that do not affect the true / false values independently and share the true / false values of the determination results is the combination A and the combination B.

実施例2の情報処理装置での処理は、例えば、組合せルール1が適用される場合、組合せルール1で、判定結果の真偽値が共通する条件の組合せ(組合せA、組合せB)を保持するための選択演算子を導入する。   For example, when the combination rule 1 is applied, the processing in the information processing apparatus according to the second embodiment holds a combination of conditions (combination A and combination B) in which the truth value of the determination result is common in the combination rule 1. Introducing a selection operator for

実施例2の情報処理装置は、選択演算子を用いることにより、判定結果の真偽値が共通する各条件の真偽値の組合せを選択演算子で結合した状態で保持し、抽出することが可能
となる。そして、実施例2での情報処理装置の処理は、最上位の処理プロセスの論理演算子に基づく各条件の真偽値の組合せに基づいて、選択演算子で結合された状態で抽出された下位の処理プロセスでの各条件の真偽値の組合せについての、各変数に対する充足可能性を判定する。選択演算子を用いること以外の実施例2の処理は実施例1と同様である。
By using a selection operator, the information processing apparatus according to the second embodiment can hold and extract a combination of true / false values of each condition having the same true / false value as a determination result in a combined state by the selection operator. It becomes possible. Then, the processing of the information processing apparatus according to the second embodiment is based on the combination of true / false values of the conditions based on the logical operator of the highest level processing process, and is extracted in a state of being combined with the selection operator. The satisfiability with respect to each variable is determined for the combination of the true and false values of each condition in the process. The processing of the second embodiment other than using the selection operator is the same as that of the first embodiment.

図4に、組合せルール1を説明例とした、実施例2の下位の処理プロセスからの各条件の真偽値の組合せの抽出についての説明図を例示する。なお、説明例での判定式は、図3の説明例と同じ、判定式“((x>10) or (y==0)) and (x>0)”とする。判定式“((x>10) or
(y==0)) and (x>0)”では、条件“(x>10)”、“(y==0)”についての論理和が下位の処理プロセスであり、条件“(x>10)”、“(y==0)”の論理和“((x>10) or (y==0))”と条件“(x>0)”との論理積が上位の処理プロセスである。
FIG. 4 illustrates an explanatory diagram for extracting a combination of true / false values of each condition from a lower-level processing process of the second embodiment using the combination rule 1 as an explanatory example. Note that the determination formulas in the explanation example are the same as those in the explanation example of FIG. 3, that is, “((x> 10) or (y == 0)) and (x> 0)”. Judgment formula “((x> 10) or
In (y == 0)) and (x> 0) ”, the logical sum of the conditions“ (x> 10) ”and“ (y == 0) ”is a lower processing process, and the condition“ (x> 10) ”,“ (y == 0) ”or“ ((x> 10) or (y == 0)) ”and the condition“ (x> 0) ” is there.

図4のブロックP5に示すID=1のレコードにおいて、論理和“((x>10) or (y==0))”と条件“(x>0)”との真偽値の組合せにおいて、論理和“((x>10) or (y==0))”を“真
(true)”とする条件“(x>10)”、“(y==0)”の真偽値の組合せには組合せルール1が適用される。
In the record of ID = 1 shown in the block P5 of FIG. 4, in the combination of the truth value of the logical sum “((x> 10) or (y == 0))” and the condition “(x> 0)”, Combination of the truth values "(x>10)" and "(y == 0)" that make the logical sum "((x> 10) or (y == 0))""true" Combination rule 1 is applied to.

実施例1では、例えば、図2B(2)に例示の基本ルールとなる論理和の真偽値の組合せから、ID=1、或いは、ID=2のどちらか一方の真偽値の組合せが抽出される。このため、抽出される条件“(x>10)”、“(y==0)”の真偽値の組合せによっては、網羅規則1−4を満たすにも関らず、テストセット(各条件を充足する変数値の組合せ)を求めることが不能となる虞が生じていた。   In the first embodiment, for example, the combination of the truth value of either ID = 1 or ID = 2 is extracted from the combination of the truth values of the logical sum as the basic rule illustrated in FIG. 2B (2). Is done. For this reason, depending on the combination of the truth values of the extracted conditions “(x> 10)” and “(y == 0)”, the test set (each condition There is a possibility that it may become impossible to obtain a combination of variable values satisfying the above.

実施例2での処理は、例えば、図2B(2)に例示の論理和の真偽値の組合せから、論理和“((x>10) or (y==0))”を“真(true)”とする条件“(x>10)”、“(y==0)”の、ID=1、2の真偽値の組合せを選択演算子“||”で結合し、抽出する。例えば、真偽値が“偽(false)”となる条件に対しては、論理否定を示す“not”を付加することで真偽値を反映し、真偽値が反映されたID=1、2の各条件の組合せを選択演算子“||”で結合して部分式を生成する。実施例2では、図4のブロックP6に示すように、ID=1、2の真偽値の組合せを選択演算子“||”で結合して生成された部分式が抽出される。   In the processing in the second embodiment, for example, the logical sum “((x> 10) or (y == 0))” is changed to “true” from the combination of the logical values of the logical sum illustrated in FIG. The combination of the true / false values of ID = 1 and 2 under the conditions “(x> 10)” and “(y == 0)” are combined with the selection operator “||” and extracted. For example, for a condition where the true / false value is “false”, adding “not” indicating logical negation reflects the true / false value, and ID = 1 in which the true / false value is reflected, A combination of the two conditions is combined with a selection operator “||” to generate a subexpression. In the second embodiment, as shown in a block P6 in FIG. 4, a partial expression generated by combining a combination of true / false values of ID = 1, 2 with a selection operator “||” is extracted.

例えば、図3で説明したように、ID=1の真偽値の組合せからは“(x>10) and not(y==0)”が生成され、ID=2の真偽値の組合せからは“not(x>10) and (y==0)”が生成される。実施例2では、例えば、ID=1の真偽値を反映した各条件の組合せと、ID=1の真偽値を反映した各条件の組合せとを、選択演算子“||”を用いて結合した部分式(A3)が生成される。
・部分式:((x>10) and not(y==0)) || ((not(x>10) and (y==0)) …部分式(A3)
部分式(A3)では、論理和“((x>10) or (y==0))”を“真(true)”とする条件“(x>10)”、“(y==0)”の真偽値の全ての組合せが、“((x>10) and not(y==0))か((not(x>10) and (y==0))”といった選択関係で表すことができる。
For example, as described with reference to FIG. 3, “(x> 10) and not (y == 0)” is generated from the combination of the truth values of ID = 1, and from the combination of the truth values of ID = 2. Produces “not (x> 10) and (y == 0)”. In the second embodiment, for example, a combination of conditions reflecting a true / false value of ID = 1 and a combination of conditions reflecting a true / false value of ID = 1 are selected using a selection operator “||”. The combined subexpression (A3) is generated.
Sub-expression: ((x> 10) and not (y == 0)) || ((not (x> 10) and (y == 0)) ... sub-expression (A3)
In the sub-expression (A3), the conditions “(x> 10)”, “(y == 0) where the logical sum“ ((x> 10) or (y == 0)) ”is“ true ”are set. All combinations of Boolean values of “” are expressed as selection relationships such as “((x> 10) and not (y == 0)) or ((not (x> 10) and (y == 0))” be able to.

実施例2での処理は、生成された部分式(A3)に、上位の処理プロセスにおける真偽値を反映させた条件“(x>0)”を結合させ、上位の処理プロセスについての真偽値に基づ
く結合式(A4)を生成する。なお、図4のブロックP5に示すID=1のレコードでは、条件“(x>0)”に対する真偽値は“偽(false)”であるため、真偽値を反映させた条件は“not(X>0)”となる。
・結合式:(((x>10) and not(y==0)) || ((not(x>10) and (y==0))) and not(X>0) …結合式(A4)
結合式(A4)には、図4のブロックP5に示すID=1のレコードの、論理和“((x>10) or (y==0))”を“真(true)”、条件“(X>0)”を“偽(false)”とする真偽値を反
映した条件“(x>10)”、“(y==0)”、“(X>0)”の組合せが含まれる。
In the processing in the second embodiment, the generated sub-expression (A3) is combined with the condition “(x> 0)” reflecting the true / false value in the upper processing process, and the upper / lower processing process is verified. A join expression (A4) based on the values is generated. In the record of ID = 1 shown in the block P5 of FIG. 4, the true / false value for the condition “(x> 0)” is “false”, so the condition reflecting the true / false value is “not” (X> 0) ”.
・ Combined expression: (((x> 10) and not (y == 0)) || ((not (x> 10) and (y == 0))) and not (X> 0) ... A4)
In the join expression (A4), the logical sum “((x> 10) or (y == 0))” of the record with ID = 1 shown in the block P5 of FIG. 4 is set to “true” and the condition “ Includes a combination of conditions “(x> 10)”, “(y == 0)”, “(X> 0)” reflecting a true / false value with “X> 0)” as “false” It is.

そして、実施例2での処理は、図4のブロックP7に示すように、生成された結合式(A4)を選択演算子について展開し、該選択演算子により結合された、下位の処理プロセスにおける各条件の真偽値を反映させた部分式(A5)、(A6)を生成する。なお、図4のブロックP7では、部分式(A5)は“ケース1選択時の判定論理式”として表され、部分式(A6)は“ケース2選択時の判定論理式”として表されている。
・部分式:((x>10) and not(y==0)) and not(X>0) …部分式(A5)
・部分式:((not(x>10) and (y==0)) and not(X>0) …部分式(A6)
部分式(A5)には、図2B(2)のID=1に例示の真偽値を反映した条件“(x>10)”、“(y==0)”、“(X>0)”の組合せが含まれる。また、部分式(A6)では、図2B(
2)のID=2に例示の真偽値を反映した条件“(x>10)”、“(y==0)”、“(X>0)”の組
合せが含まれる。
Then, in the processing in the second embodiment, as shown in block P7 of FIG. 4, the generated combination formula (A4) is expanded with respect to the selection operator, and the processing is performed in a lower level processing process combined by the selection operator. Sub-expressions (A5) and (A6) reflecting the true / false values of each condition are generated. In the block P7 of FIG. 4, the subexpression (A5) is expressed as “determination logical expression when case 1 is selected”, and the subexpression (A6) is expressed as “determination logical expression when case 2 is selected”. .
Sub-expression: ((x> 10) and not (y == 0)) and not (X> 0) ... sub-expression (A5)
Sub-expression: ((not (x> 10) and (y == 0)) and not (X> 0) ... sub-expression (A6)
In the sub-expression (A5), conditions “(x> 10)”, “(y == 0)”, “(X> 0) reflecting ID = 1 in ID = 1 in FIG. 2B (2) ”Is included. Further, in the partial expression (A6), FIG.
2) includes a combination of conditions “(x> 10)”, “(y == 0)”, and “(X> 0)” reflecting an example true / false value in ID = 2.

実施例2では、例えば、選択演算子を展開して生成された部分式(A5)、(A6)について、真偽値が反映された各条件の組合せを充足可能な変数値の有無が判定される。そして、図4のブロックP8に示すように、真偽値を反映した各条件の組合せを充足する変数値が得られる部分式が選択される。実施例2では、選択した部分式に基づいて、MC/DCのテスト網羅度の網羅規則1−4を充足するテストセットが求められる。   In the second embodiment, for example, with respect to the sub-expressions (A5) and (A6) generated by expanding the selection operator, it is determined whether or not there is a variable value that can satisfy the combination of the conditions reflecting the true / false values. The Then, as shown in a block P8 in FIG. 4, a partial expression is selected from which a variable value satisfying a combination of conditions reflecting the true / false values is obtained. In the second embodiment, a test set that satisfies the coverage rule 1-4 for the MC / DC test coverage is obtained based on the selected sub-expression.

例えば、部分式(A5)では、変数xについての範囲関係に矛盾を含むため、真偽値を反映した各条件の組合せを充足する変数値が得られない(充足不能)と判定される。一方、部分式(A6)では、変数x、yについての範囲関係に矛盾を含まないため、真偽値を反映した各条件の組合せを充足する変数値が得られる(充足可能)と判定される。実施例2の処理では、例えば、充足可能と判定された部分式(A6)が選択され、選択された部分式(A6)の各条件の組合せに基づいて、MC/DCのテスト網羅度の網羅規則1−4を充足するテストセットが求められる。   For example, in the sub-expression (A5), since the range relation about the variable x includes a contradiction, it is determined that a variable value that satisfies each combination of conditions that reflects a true / false value cannot be obtained (unsatisfiable). On the other hand, in the sub-expression (A6), since the range relation regarding the variables x and y does not include any contradiction, it is determined that a variable value satisfying the combination of the conditions reflecting the true / false values can be obtained (satisfiable). . In the processing of the second embodiment, for example, the subexpression (A6) determined to be satisfiable is selected, and the coverage of the MC / DC test coverage is based on the combination of the conditions of the selected subexpression (A6). A test set that satisfies Rule 1-4 is required.

なお、選択演算子を展開して生成された各部分式について、それぞれが充足可能と判定される場合には、例えば、選択演算子によって結合された最左側の各条件の組合せに基づく部分式を選択するとしてもよい。充足可能と判定される部分式が複数に存在する場合では、選択する部分式の選択方法を予め定めておけばよい。   When it is determined that each sub-expression generated by expanding the selection operator is satisfiable, for example, a sub-expression based on the combination of the leftmost conditions combined by the selection operator is You may choose. When there are a plurality of sub-expressions that are determined to be satisfiable, a method for selecting a sub-expression to be selected may be determined in advance.

実施例2では、選択演算子で結合された状態で下位の処理プロセスから抽出される各条件の真偽値の組合せに対する充足可能性が、最上位の処理プロセスにおける各条件の真偽値の組合せに基づいて判定できる。このため、例えば、組合せルール1が適用される下位の処理プロセスにおける各条件の真偽値の組合せの中から、矛盾が生じない各条件の真偽値の組合せを選択することができる。この結果、実施例2では、充足可能性を向上させた、冗長性を排除可能なMC/DCテスト網羅度の網羅規則を満たすテストケースを生成する技術が提供できる。   In the second embodiment, the satisfiability with respect to the combination of the truth values of the conditions extracted from the lower-level processing processes in the state of being connected by the selection operator is the combination of the truth values of the conditions in the highest-level processing process. Can be determined based on Therefore, for example, a combination of true / false values of each condition that does not cause a contradiction can be selected from combinations of true / false values of each condition in a lower processing process to which the combination rule 1 is applied. As a result, the second embodiment can provide a technique for generating a test case that satisfies the coverage rule of the MC / DC test coverage that improves the satisfiability and can eliminate redundancy.

〔装置構成〕
図5に、実施例2(以下、本実施形態と称す)の情報処理装置のハードウェアの構成を例示する。図5に例示の情報処理装置10は、例えば、PC(Personal Computer)、サ
ーバ等のコンピュータである。情報処理装置10は、接続バスB1によって相互に接続されたCPU(Central Processing Unit)11、主記憶部12、補助記憶部13、入力部
14、出力部15、通信部16を有する。主記憶部12及び補助記憶部13は、情報処理装置10が読み取り可能な記録媒体である。
〔Device configuration〕
FIG. 5 illustrates a hardware configuration of the information processing apparatus according to the second embodiment (hereinafter referred to as the present embodiment). The information processing apparatus 10 illustrated in FIG. 5 is a computer such as a PC (Personal Computer) or a server, for example. The information processing apparatus 10 includes a central processing unit (CPU) 11, a main storage unit 12, an auxiliary storage unit 13, an input unit 14, an output unit 15, and a communication unit 16 that are connected to each other via a connection bus B <b> 1. The main storage unit 12 and the auxiliary storage unit 13 are recording media that can be read by the information processing apparatus 10.

情報処理装置10は、CPU11が補助記憶部13に記憶されたプログラムを主記憶部
12の作業領域に実行可能に展開し、プログラムの実行を通じて周辺機器の制御を行う。これにより、情報処理装置10は、所定の目的に合致した機能を実現することができる。
In the information processing apparatus 10, the CPU 11 develops a program stored in the auxiliary storage unit 13 so as to be executable in the work area of the main storage unit 12, and controls peripheral devices through the execution of the program. Thereby, the information processing apparatus 10 can implement a function that matches a predetermined purpose.

図5に例示の情報処理装置10において、CPU11は、情報処理装置10全体の制御を行う中央処理演算装置である。CPU11は、補助記憶部13に格納されたプログラムに従って処理を行う。主記憶部12は、CPU11がプログラムやデータをキャッシュしたり、作業領域を展開したりする記憶媒体である。主記憶部12は、例えば、RAM(Random Access Memory)やROM(Read Only Memory)を含む。   In the information processing apparatus 10 illustrated in FIG. 5, the CPU 11 is a central processing unit that controls the entire information processing apparatus 10. The CPU 11 performs processing according to a program stored in the auxiliary storage unit 13. The main storage unit 12 is a storage medium in which the CPU 11 caches programs and data and expands a work area. The main storage unit 12 includes, for example, a RAM (Random Access Memory) and a ROM (Read Only Memory).

補助記憶部13は、各種のプログラム及び各種のデータを読み書き自在に記録媒体に格納する。補助記憶部13は、外部記憶装置とも呼ばれる。補助記憶部13には、オペレーティングシステム(Operating System :OS)、各種プログラム、各種テーブル等が格納される。OSは、通信部16を介して接続される外部装置等とのデータの受け渡しを行う通信インターフェースプログラムを含む。外部装置等には、例えば、通信部16を介して接続されたネットワーク上の、他のサーバ等の情報処理装置、外部記憶装置、通信機能を有する装置等が含まれる。   The auxiliary storage unit 13 stores various programs and various data in a recording medium in a readable and writable manner. The auxiliary storage unit 13 is also called an external storage device. The auxiliary storage unit 13 stores an operating system (OS), various programs, various tables, and the like. The OS includes a communication interface program that exchanges data with an external device or the like connected via the communication unit 16. Examples of the external device include an information processing device such as another server, an external storage device, and a device having a communication function on a network connected via the communication unit 16.

補助記憶部13は、例えば、EPROM(Erasable Programmable ROM)、ソリッドス
テートドライブ装置、ハードディスクドライブ(HDD、Hard Disk Drive)装置等であ
る。また、補助記憶部13としては、例えば、CDドライブ装置、DVDドライブ装置、BD(Blu-ray(登録商標) Disc)ドライブ装置等が提示できる。記録媒体としては、例えば、不揮発性半導体メモリ(フラッシュメモリ)を含むシリコンディスク、ハードディスク、CD、DVD、BD、USB(Universal Serial Bus)メモリ、メモリカード等がある。
The auxiliary storage unit 13 is, for example, an EPROM (Erasable Programmable ROM), a solid state drive device, a hard disk drive (HDD, Hard Disk Drive) device, or the like. Further, as the auxiliary storage unit 13, for example, a CD drive device, a DVD drive device, a BD (Blu-ray (registered trademark) Disc) drive device, or the like can be presented. Examples of the recording medium include a silicon disk including a nonvolatile semiconductor memory (flash memory), a hard disk, a CD, a DVD, a BD, a USB (Universal Serial Bus) memory, and a memory card.

入力部14は、ユーザ等からの操作指示等を受け付ける。入力部14は、入力ボタン、キーボード、タッチパネル等のポインティングデバイス、ワイヤレスリモコン、マイクロフォン、カメラ等の入力デバイスである。入力部14から入力された情報は、接続バスB1を介してCPU11に通知される。   The input unit 14 receives an operation instruction or the like from a user or the like. The input unit 14 is an input device such as an input button, a pointing device such as a keyboard and a touch panel, a wireless remote controller, a microphone, and a camera. Information input from the input unit 14 is notified to the CPU 11 via the connection bus B1.

出力部15は、CPU11で処理されるデータや主記憶部12に記憶されるデータを出力する。出力部15は、CRT(Cathode Ray Tube)ディスプレイ、LCD(Liquid Crystal Display)、PDP(Plasma Display Panel)、EL(Electroluminescence)パネ
ル、有機ELパネル、プリンタ、スピーカ等の出力デバイスである。通信部16は、例えば、ネットワーク等とのインターフェースである。情報処理装置10が接続するネットワークには、例えば、LAN(Local Area Network)、インターネット(Internet)等の公衆ネットワーク、通信基地局を含む携帯電話網等の無線ネットワーク等が含まれる。
The output unit 15 outputs data processed by the CPU 11 and data stored in the main storage unit 12. The output unit 15 is an output device such as a CRT (Cathode Ray Tube) display, an LCD (Liquid Crystal Display), a PDP (Plasma Display Panel), an EL (Electroluminescence) panel, an organic EL panel, a printer, or a speaker. The communication unit 16 is an interface with a network or the like, for example. The network to which the information processing apparatus 10 is connected includes, for example, a public network such as a LAN (Local Area Network) and the Internet, and a wireless network such as a mobile phone network including a communication base station.

情報処理装置10は、例えば、CPU11が補助記憶部13に記憶されているOS、各種プログラムや各種データを主記憶部12に読み出して実行することにより、対象プログラムの実行と共に、図5に例示の各処理手段を実現する。情報処理装置10は、対象プログラムの実行と共に、図5に例示の判定式解析部101、真偽値ルール適用部102、テストケース生成部103、充足可能性判定部104を実現する。判定式解析部101は、二分木変換部101aを含み、テストケース生成部103は、選択分析部103aを含む。但し、図5に例示の各処理手段のいずれか、あるいは、これらの一部がハードウェア回路によって動作するものであってもよい。   In the information processing apparatus 10, for example, the CPU 11 reads out the OS, various programs, and various data stored in the auxiliary storage unit 13 to the main storage unit 12 and executes them. Each processing means is realized. The information processing apparatus 10 implements the determination formula analysis unit 101, the true / false value rule application unit 102, the test case generation unit 103, and the satisfiability determination unit 104 illustrated in FIG. 5 together with the execution of the target program. The judgment formula analysis unit 101 includes a binary tree conversion unit 101a, and the test case generation unit 103 includes a selection analysis unit 103a. However, any of the processing means illustrated in FIG. 5 or a part of them may be operated by a hardware circuit.

また、情報処理装置10は、以上の各処理手段が参照し、或いは、管理するデータの格納先として、例えば、真偽値ルールDB201、判定式二分木DB202、条件式マップ集合DB203を補助記憶部13に備える。また、情報処理装置10は、補助記憶部13
に、テストケース条件式DB204、テストケースDB205を備える。
Further, the information processing apparatus 10 includes, for example, a truth value rule DB 201, a judgment expression binary tree DB 202, and a conditional expression map set DB 203 as auxiliary storage units as storage destinations of data to be referred to or managed by the above processing units. 13 ready. In addition, the information processing apparatus 10 includes the auxiliary storage unit 13.
In addition, a test case conditional expression DB 204 and a test case DB 205 are provided.

なお、各処理手段のうち、いずれかが、他の情報処理装置等に含まれてもよい。例えば、判定式解析部101を含む情報処理装置と、真偽値ルール適用部102を含む情報処理装置と、テストケース生成部103を含む情報処理装置と、充足可能性判定部104を含む情報処理装置とがネットワーク等を介して接続する。そしてネットワークを介して接続された各情報処理装置が、情報処理装置10として機能するとしてもよい。同様に、情報処理装置10の真偽値ルールDB201、判定式二分木DB202、条件式マップ集合DB203、テストケース条件式DB204、テストケースDB205は、複数の外部記憶装置に分散されて格納し、ネットワーク等を介して接続されるとしてもよい。情報処理装置10は、例えば、ネットワーク上のコンピュータ群であるクラウドとして実現できるため、各処理手段の処理負荷を軽減できる。   Any one of the processing means may be included in another information processing apparatus or the like. For example, the information processing apparatus including the determination formula analysis unit 101, the information processing apparatus including the truth value rule application unit 102, the information processing apparatus including the test case generation unit 103, and the information processing including the satisfiability determination unit 104 The device is connected via a network or the like. Each information processing apparatus connected via the network may function as the information processing apparatus 10. Similarly, the truth value rule DB 201, the judgment expression binary tree DB 202, the conditional expression map set DB 203, the test case conditional expression DB 204, and the test case DB 205 of the information processing apparatus 10 are distributed and stored in a plurality of external storage devices. Or the like. Since the information processing apparatus 10 can be realized as, for example, a cloud that is a group of computers on a network, the processing load of each processing unit can be reduced.

〔処理ブロック構成〕
図6に、本実施形態の情報処理装置10における、処理ブロックの説明図を例示する。図6に例示の説明図において、情報処理装置10は、判定式解析部101、真偽値ルール適用部102、テストケース生成部103、充足可能性判定部104の各処理手段を有する。判定式解析部101には、2分木変換部101aの処理手段が含まれる。テストケース生成部103には、選択分析部103aの処理手段が含まれる。
[Process block configuration]
FIG. 6 illustrates an explanatory diagram of processing blocks in the information processing apparatus 10 of the present embodiment. In the explanatory diagram illustrated in FIG. 6, the information processing apparatus 10 includes processing units of a determination formula analysis unit 101, a truth value rule application unit 102, a test case generation unit 103, and a satisfiability determination unit 104. The judgment formula analysis unit 101 includes processing means of the binary tree conversion unit 101a. The test case generation unit 103 includes processing means of the selection analysis unit 103a.

また、図6に例示の説明図において、情報処理装置10は、以上の各機能手段が参照し、或いは、管理するデータの格納先として、例えば、真偽値ルールDB201、判定式二分木DB202、条件式マップ集合DB203を補助記憶部13に備える。また、情報処理装置10は、補助記憶部13に、テストケース条件式DB204、テストケースDB205を備える。   In addition, in the explanatory diagram illustrated in FIG. 6, the information processing apparatus 10 refers to, for example, a truth value rule DB 201, a judgment expression binary tree DB 202, as a storage destination of data to be referred to or managed by the above functional units. The conditional expression map set DB 203 is provided in the auxiliary storage unit 13. In addition, the information processing apparatus 10 includes a test case conditional expression DB 204 and a test case DB 205 in the auxiliary storage unit 13.

図6に例示の、判定式解析部101は、例えば、テスト対象となるプログラムの判定式(論理式)C1を受け付ける。判定式解析部101は、例えば、補助記憶部13を介して、CD、USBメモリ等の記録媒体に格納された、テスト対象となるプログラムを読み込むことで、該プログラムの判定式C1を受け付けることができる。また、判定式解析部101は、例えば、情報処理装置10が接続するネットワーク等を介して、他の情報処理装置、或いは、外部記憶装置等に格納されたテスト対象のプログラムを読み込むことで、該プログラムに記述された判定式C1を受け付けるとしてもよい。判定式解析部101は、例えば、情報処理装置10で受け付けた判定式C1を主記憶部12の所定の領域に一時的に記憶する。テスト対象のプログラムはソースプログラムであってもよいし、バイナリプログラムであってもよい。また、判定式C1は、テキスト形式の論理式であってもよいし、バイナリコードであってもよい。   The determination formula analysis unit 101 illustrated in FIG. 6 receives, for example, a determination formula (logical formula) C1 of a program to be tested. For example, the determination formula analysis unit 101 reads the test target program stored in a recording medium such as a CD or a USB memory via the auxiliary storage unit 13 to receive the determination formula C1 of the program. it can. In addition, the determination formula analysis unit 101 reads the test target program stored in another information processing apparatus, an external storage device, or the like via, for example, a network to which the information processing apparatus 10 is connected. The determination formula C1 described in the program may be accepted. For example, the determination formula analysis unit 101 temporarily stores the determination formula C1 received by the information processing apparatus 10 in a predetermined area of the main storage unit 12. The program to be tested may be a source program or a binary program. The determination formula C1 may be a logical expression in text format or a binary code.

判定式解析部101は、受け付けたプログラムの判定式C1を解析し、判定式C1に含まれる論理演算子、論理演算子によって結び付けられる各条件、論理演算子による各条件の処理プロセスの階層関係を特定する。なお、以下の説明では、判定式に含まれる条件を“条件式”とも称する。   The judgment formula analysis unit 101 analyzes the judgment formula C1 of the received program, and determines the logical operator included in the judgment formula C1, each condition linked by the logical operator, and the hierarchical relationship of the processing processes of each condition by the logical operator. Identify. In the following description, the conditions included in the determination formula are also referred to as “conditional formulas”.

判定式解析部101は、特定した論理演算子、各条件式、処理プロセスの階層関係に基づいて、テスト対象となるプログラムの判定式についての、木構造(判定式二分木)を生成する。なお、判定式に含まれる論理演算子、論理演算子で結合される各条件式、論理演算子による各条件式の処理プロセスの階層関係の特定処理は、例えば、判定式解析部101の二分木変換部101aにより行われる。判定式解析部101で生成された判定式の木構造(判定式二分木)は、例えば、判定式二分木DB202に格納される。   The determination expression analysis unit 101 generates a tree structure (determination expression binary tree) for the determination expression of the program to be tested based on the identified logical operator, each conditional expression, and the hierarchical relationship of the processing processes. Note that the logical operator included in the judgment expression, each conditional expression combined by the logical operator, and the processing for specifying the hierarchical relationship of the processing process of each conditional expression by the logical operator are performed by, for example, the binary tree of the judgment expression analysis unit 101 This is performed by the conversion unit 101a. The tree structure (judgment binary tree) of the judgment formula generated by the judgment formula analysis unit 101 is stored in the judgment formula binary tree DB 202, for example.

[二分木変換処理]
判定式解析部101の二分木変換部101aは、受け付けた判定式C1を解析し、判定式B1に含まれる論理演算子、論理演算子で結合される各条件式、論理演算子による各条件式についての処理プロセスの階層関係を特定する。そして、二分木変換部101aは、特定した論理演算子、各条件式、処理プロセスの階層関係に基づいて、受け付けた判定式C1の判定に係る各条件の階層的な論理演算関係を木構造に変換する。
[Binary tree conversion processing]
The binary tree conversion unit 101a of the determination expression analysis unit 101 analyzes the received determination expression C1, and includes logical operators included in the determination expression B1, conditional expressions combined by logical operators, and conditional expressions based on logical operators. Identify the hierarchical relationship of the processing processes for. Then, the binary tree conversion unit 101a converts the hierarchical logical operation relationship of each condition related to the determination of the received determination expression C1 into a tree structure based on the identified logical operator, each conditional expression, and the hierarchical relationship of the processing processes. Convert.

図7Aに、二分木変換処理の説明図を例示する。なお、図7Aに例示の説明図の、二分木処理に係る判定式C1は、図6に例示の、“(((x>0) and (z==5)) or ((y==1) and (z>1))) and (y>0)”とする。   FIG. 7A illustrates an explanatory diagram of binary tree conversion processing. In addition, the determination formula C1 related to the binary tree processing in the explanatory diagram illustrated in FIG. 7A is “(((x> 0) and (z == 5)) or ((y == 1) illustrated in FIG. ) and (z> 1))) and (y> 0) ”.

二分木変換部101aは、例えば、言語解析、字句解析、構文解析等を行うことにより、判定式C1に含まれる“(”、“)”等の括弧記号、或いは、スペース等の領域の区切りを検出する。そして、二分木変換部101aは、区切られた領域範囲に含まれる論理演算子の文字列、及び、変数の条件式を特定する。   The binary tree conversion unit 101a performs, for example, linguistic analysis, lexical analysis, syntax analysis, and the like to delimit parentheses such as “(”, “)” included in the determination formula C1 or an area such as a space. To detect. Then, the binary tree conversion unit 101a identifies the character string of the logical operator and the variable conditional expression included in the partitioned area range.

二分木変換部101aは、判定式C1について、例えば、“(”、“)”等の括弧記号により区切られた領域範囲から変数に対する“x>0”、“z==5”、“y==1”、“z>1”、“y>0”といった条件式を特定する。また、例えば、二分木変換部101aは、“)”、“(”
等の括弧記号の配列やスペース等により区切られた領域範囲から“or”、“and”等の論
理演算子の文字列を特定する。
For example, the binary tree conversion unit 101a sets “x> 0”, “z == 5”, “y =” for a variable from an area range delimited by parentheses such as “(”, “)”. = 1 ”,“ z> 1 ”,“ y> 0 ”are specified. In addition, for example, the binary tree conversion unit 101a performs “)”, “(”
A character string of a logical operator such as “or” or “and” is specified from an area range delimited by an array of parenthesis symbols such as.

また、二分木変換部101aは、例えば、“(”、“)”等の括弧記号の配置関係から、判定に係る論理演算の優先順位を特定し、優先順位の高い論理演算子を下位の処理プロセスとする、論理演算子間の階層関係を特定する。そして、二分木変換部101aは、論理演算子間の階層関係と、論理演算子で結び付けられる条件式との対応関係から、判定式C1の、各条件式の階層的な論理関係を木構造に変換する。   Further, the binary tree conversion unit 101a specifies the priority of the logical operation related to the determination based on the arrangement relationship of the parenthesis symbols such as “(”, “)”, and processes the logical operator having the higher priority to the lower level processing. Identify the hierarchical relationship between logical operators as a process. Then, the binary tree conversion unit 101a converts the hierarchical logical relationship of each conditional expression into a tree structure from the correspondence relationship between the logical relationship between the logical operators and the conditional expression linked by the logical operator. Convert.

但し、“(”、“)”等が省略され、同一の優先度の論理演算子が複数個配置された判定式については、二分木変換部101aは、例えば、プログラムを記述するプログラミング言語と同じ優先度の解釈をするとすればよい。二分木変換部101aは、“(”、“)”等が省略され、同一の優先度の論理演算子が複数個配置された判定式については、例えば、左側優先とすることができる。   However, with respect to a determination expression in which “(”, “)”, etc. are omitted and a plurality of logical operators having the same priority are arranged, the binary tree conversion unit 101a is, for example, the same as a programming language that describes a program. What is necessary is to interpret the priority. In the binary tree conversion unit 101a, for example, “(”, “)” or the like is omitted, and a determination expression in which a plurality of logical operators having the same priority is arranged can be given priority to the left side, for example.

図7Aの例では、条件式“x>0”、“z==5”、“y==1”、“z>1”が木構造の最下層に配置されている。そして、条件式“x>0”、“z==5”を結び付ける論理演算子“and”と、条件式“y==1”、“z>1”を結び付ける論理演算子“and”とは、同じ階層に配置されている。   In the example of FIG. 7A, the conditional expressions “x> 0”, “z == 5”, “y == 1”, “z> 1” are arranged in the lowest layer of the tree structure. And the logical operator “and” that connects the conditional expressions “x> 0” and “z == 5” and the logical operator “and” that connects the conditional expressions “y == 1” and “z> 1” Are arranged in the same hierarchy.

なお、図7Aの同じ階層に配置された2つの“and”のうち、左側の論理演算子“and”は、条件式“x>0”、“z==5”と対応付けられている。同様にして、右側の論理演算子“and”は、条件式“y==1”、“z>1”と対応付けられている。   Of the two “ands” arranged in the same hierarchy in FIG. 7A, the left logical operator “and” is associated with the conditional expressions “x> 0” and “z == 5”. Similarly, the logical operator “and” on the right side is associated with the conditional expressions “y == 1” and “z> 1”.

また、条件式“y>0”と、条件式“x>0”、“z==5”を含む処理プロセス、及び、条件式“y==1”、“z>0”を含む処理プロセスを結び付ける論理演算子“or”とは、同じ階層に
配置されている。そして、論理演算子“or”による処理プロセスと条件式“y>0”とは、
木構造の最上位の論理演算子“and”により結び付けられている。
In addition, a processing process including conditional expression “y> 0”, conditional expression “x> 0”, “z == 5”, and a processing process including conditional expressions “y == 1”, “z> 0” The logical operator “or” that ties is arranged in the same hierarchy. And the processing process by the logical operator “or” and the conditional expression “y> 0”
It is linked by the top logical operator “and” in the tree structure.

なお、論理演算子“or”は、条件式“x>0”、“z==5”を含む処理プロセスの論理演算
子“and”、及び、条件式“y==1”、“z>1”を含む処理プロセスの論理演算子“and”に
対応付けられている。また、最上位の論理演算子“and”には、論理演算子“or”,条件
式“y>0”に対応付けられている。
The logical operator “or” includes the conditional operator “x> 0”, the logical operator “and” of the processing process including “z == 5”, and the conditional expressions “y == 1”, “z> It is associated with the logical operator “and” of the processing process including “1”. Further, the highest logical operator “and” is associated with the logical operator “or” and the conditional expression “y> 0”.

図7Aに例示のように、木構造に変換された判定式は、論理演算子間の階層関係と、論理演算子で結び付けられる各条件式の対応関係とを表すことができる。図7Aの木構造の例では、判定式に含まれる論理演算子、各条件が左側から順に配置されていることが判る。また、図7Aの木構造生成処理では、記号“()”で括られたより内側の優先度の高い処理プロセスが下位層に配置されていることが判る。また、論理式に記述された左側の論理演算関係が、木構造の左側に配置されていることが判る。ここで、木構造で表された条件式を“リーフ”とも称し、各“リーフ”を結び付ける論理演算子を“ノード”とも称する。   As illustrated in FIG. 7A, the determination formula converted into a tree structure can represent a hierarchical relationship between logical operators and a correspondence relationship between the conditional expressions linked by the logical operators. In the example of the tree structure in FIG. 7A, it can be seen that the logical operators and the conditions included in the determination formula are arranged in order from the left side. Further, in the tree structure generation process of FIG. 7A, it can be seen that a process process with a higher priority on the inner side surrounded by the symbol “()” is arranged in the lower layer. It can also be seen that the left logical operation relationship described in the logical expression is arranged on the left side of the tree structure. Here, a conditional expression represented by a tree structure is also referred to as a “leaf”, and a logical operator that connects each “leaf” is also referred to as a “node”.

二分木変換部101aは、木構造に変換された判定式の、論理演算子間の階層関係と、論理演算子で結び付けられる各条件式の対応関係とを、例えば、処理対象の判定式を一意に識別する識別番号と対応付けて、判定式二分木DB202に格納する。   The binary tree conversion unit 101a uniquely identifies the hierarchical relationship between logical operators and the correspondence relationship of each conditional expression linked by the logical operator in the determination equation converted into a tree structure. The identification number is stored in the determination formula binary tree DB 202 in association with the identification number.

[真偽値ルール適用処理]
真偽値ルール適用部102は、例えば、判定式解析部101により生成された判定式の木構造(判定式二分木)に基づいて、組合せルールが適用された論理積、論理和の真偽値を反映した各条件式(リーフ)の組合せを生成する。なお、真偽値ルール適用部102は、例えば、組合せルール1が適用される論理積、論理和の真偽値の組合せでは、上位の処理プロセスにおける真偽値を共通とする全ての各条件式(リーフ)の真偽値の組合せを、選択演算子“||”で結合して抽出する。
[Boolean value rule application processing]
The truth value rule application unit 102 is, for example, a logical product or a logical sum of logical sums to which the combination rule is applied based on the tree structure (judgment binary tree) of the judgment formula generated by the judgment formula analysis unit 101. A combination of conditional expressions (leafs) reflecting the above is generated. Note that the truth value rule application unit 102, for example, in the combination of the logical product and the logical value of the logical sum to which the combination rule 1 is applied, all the conditional expressions that share the truth value in the upper processing process. Combinations of (leaf) boolean values are extracted by combining with the selection operator “||”.

真偽値ルール適用部102では、例えば、処理プロセスの階層毎にノードの論理関係に基づく組合せルール、論理積、論理和の真偽値を反映した各条件式(リーフ)の組合せが生成される。そして、真偽値ルール適用部102は、例えば、処理プロセスの階層毎に真偽値が反映された各条件式(リーフ)の組合せに基づいて、図4Bに例示のように、最上位の処理プロセスに対応する真偽値を反映した各条件式(リーフ)の結合式(A4)を生成する。   In the truth value rule application unit 102, for example, a combination rule based on the logical relationship between nodes, a combination of conditional expressions (leafs) reflecting the truth values of logical products and logical sums is generated for each hierarchy of processing processes. . Then, the truth value rule application unit 102, for example, based on the combination of conditional expressions (leafs) reflecting the truth value for each level of the processing process, as illustrated in FIG. A combined expression (A4) of each conditional expression (leaf) reflecting the true / false value corresponding to the process is generated.

真偽値ルール適用部102は、最上位の処理プロセスの真偽値を反映して生成された結合式を、例えば、処理対象の判定式の識別番号と対応付けて、条件式マップ集合DB203に格納する。   The truth value rule application unit 102 associates the combined expression generated by reflecting the truth value of the highest-level processing process with, for example, the identification number of the determination target judgment expression in the conditional expression map set DB 203. Store.

以下、図7B−7Hに例示の図面を参照し、本実施形態の真偽値ルール適用処理の説明を行う。なお、本実施形態の真偽値ルール適用処理では、真偽値ルール適用部102は、リーフ毎に条件式と真偽値とを対応付けた“条件式マップ”、及び、“条件式マップ集合”を生成する。   Hereinafter, the truth value rule application processing of this embodiment will be described with reference to the drawings illustrated in FIGS. 7B-7H. In the truth value rule application process of the present embodiment, the truth value rule application unit 102 includes a “conditional expression map” in which a conditional expression and a truth value are associated with each leaf, and a “conditional expression map set”. Is generated.

ここで、“条件式マップ”とは、例えば、(条件式,真偽値)との組合せを表す。また、“条件式マップ集合”とは、例えば、{(条件式1,真偽値1),(条件式2,真偽値2)}として表される“条件式マップ”の集合である。   Here, the “conditional expression map” represents, for example, a combination with (conditional expression, true / false value). The “conditional expression map set” is a set of “conditional expression maps” expressed as {(conditional expression 1, truth value 1), (conditional expression 2, truth value 2)}, for example.

“条件式マップ”では、組となる真偽値を反映したリーフが“条件式”として組合せられる。例えば、組となる真偽値が“真(true)”の場合では、“(リーフ,true)”といった組合せが条件式マップとして生成される。また、例えば、組となる真偽値が“偽(false)”の場合では、否定論理(not)を表す記号“¬”がリーフに反映され、“(¬(リーフ),false)”といった組合せが条件式マップとして生成される。リーフに対して真
偽値関係が反映された“条件式”は、“リーフ”、“¬リーフ”の2通りとなる。
In the “conditional expression map”, leaves reflecting the paired true / false values are combined as a “conditional expression”. For example, when the true / false value of the pair is “true”, a combination such as “(leaf, true)” is generated as the conditional expression map. Further, for example, when the true / false value to be paired is “false”, the symbol “¬” representing negative logic (not) is reflected in the leaf, and the combination “(¬ (leaf), false)” Is generated as a conditional expression map. There are two types of “conditional expressions” in which the true / false relations are reflected on the leaves: “leaf” and “¬ leaf”.

真偽値ルール適用部102は、各リーフに対し、真偽値の“真(true)”、“偽(false)”のそれぞれを反映させた条件式と、反映された真偽値とを組合せ、各真偽値につい
ての条件式マップを生成する。そして、真偽値ルール適用部102は、例えば、生成した各条件式マップを組合せ、{(リーフ,true),(¬(リーフ),false)}といったリ
ーフ毎の“条件式マップ集合”を生成する。
The truth value rule application unit 102 combines, for each leaf, a conditional expression that reflects each of the true / false values “true” and “false”, and the reflected true / false value. Then, a conditional expression map for each truth value is generated. Then, the truth value rule application unit 102 generates, for example, a “conditional expression map set” for each leaf such as {(leaf, true), (¬ (leaf), false)} by combining the generated conditional expression maps. To do.

真偽値ルール適用部102は、例えば、リーフ毎に生成された“条件式マップ集合”の中から、各リーフを結び付けるノードの、組合せルールを反映した論理積、論理和の基本ルールの真偽値に対応する“条件式マップ”を抽出する。そして、真偽値ルール適用部102は、例えば、リーフ毎に抽出された“条件式マップ”を結合し、結合した“条件式マップ”とノードの処理プロセスでの真偽値とを組合せ、ノード毎の“条件式マップ集合”を生成する。   The truth value rule application unit 102, for example, from the “conditional expression map set” generated for each leaf, the truth of the basic rule of the logical product or logical sum reflecting the combination rule of the nodes linking each leaf A “conditional expression map” corresponding to the value is extracted. Then, the truth value rule application unit 102 combines, for example, the “conditional expression map” extracted for each leaf, and combines the combined “conditional expression map” with the true / false value in the node processing process. Each “conditional expression map set” is generated.

本実施形態の真偽値ルール適用処理では、真偽値ルール適用部102は、上述の処理プロセスの真偽値を反映した“条件式マップ集合”の生成を、処理プロセスの階層毎に実行し、最上位の処理プロセスに対応する真偽値を反映した“条件式マップ集合”を生成する。なお、最上位の処理プロセスに対応する真偽値を反映して生成された“条件式マップ集合”は、例えば、組合せルールが適用された論理積、論理和の真偽値を反映した各条件式(リーフ)の組合せであり、図4で説明した結合式(A4)である。   In the truth value rule application processing of the present embodiment, the truth value rule application unit 102 generates a “conditional expression map set” that reflects the truth value of the processing process described above for each layer of the processing process. Then, a “conditional expression map set” reflecting the truth value corresponding to the highest processing process is generated. Note that the “conditional expression map set” generated by reflecting the true / false value corresponding to the highest level processing process is, for example, each condition that reflects the true / false value of the logical product or logical sum to which the combination rule is applied. This is a combination of formulas (leafs), and is the coupling formula (A4) described in FIG.

(第1の真偽値ルール適用処理)
図7Bに、判定式C1より生成された木構造についての条件式マップ、条件式マップ集合の生成処理の説明図を例示する。なお、実施例2では、各リーフについての条件式マップ、条件式マップ集合の生成は、例えば、木構造の左側に配置されたノードの処理プロセスから行われるとして説明を行う。同一の階層にノード(論理演算子)が複数個配置された場合では、例えば、左側に配置された処理プロセスを優先とすることができるためである。ただし、本情報処理装置の処理が、左側に配置された処理プロセスを優先とするものに限定される訳ではなく、右側に配置された処理プロセスを優先ものであってもよい。
(First Boolean value rule application process)
FIG. 7B illustrates an explanatory diagram of processing for generating a conditional expression map and a conditional expression map set for the tree structure generated from the determination expression C1. In the second embodiment, description will be made assuming that the generation of the conditional expression map and the conditional expression map set for each leaf is performed, for example, from the processing process of the node arranged on the left side of the tree structure. This is because when a plurality of nodes (logical operators) are arranged on the same hierarchy, for example, the processing process arranged on the left side can be given priority. However, the processing of the information processing apparatus is not limited to processing with priority given to the processing process arranged on the left side, and processing processing arranged on the right side may be given priority.

第1の真偽値ルール適用処理では、真偽値ルール適用部102は、例えば、木構造の同一の階層の左側に配置されたノード(論理演算子)処理についての、条件式マップ、及び、条件式マップ集合を生成する。   In the first truth value rule application process, the truth value rule application unit 102, for example, a conditional expression map for node (logical operator) processing arranged on the left side of the same hierarchy of the tree structure, and Create a set of conditional expression maps.

真偽値ルール適用部102は、例えば、判定式二分木DB202を参照し、処理対象の判定式について生成された木構造(判定式二分木)を取得する。そして、真偽値ルール適用部102は、例えば、木構造の下位層の左側に配置されたノードの処理プロセスについて、リーフ毎に“条件式マップ”、及び、“条件式マップ集合”を生成する。   The truth value rule application unit 102 refers to, for example, the determination expression binary tree DB 202 and acquires a tree structure (determination expression binary tree) generated for the determination expression to be processed. Then, the truth value rule application unit 102 generates, for example, a “conditional expression map” and a “conditional expression map set” for each leaf for the processing process of the node arranged on the left side of the lower layer of the tree structure. .

図7Bに例示の木構造において、破線で囲まれた矩形領域に示すように、下位層の左側に配置されたノードの処理プロセスに係る各リーフは、リーフ“x>0”、“z==5”である
In the tree structure illustrated in FIG. 7B, each leaf related to the processing process of the node arranged on the left side of the lower layer is represented by a leaf “x> 0”, “z ==”, as indicated by a rectangular region surrounded by a broken line. 5 ”.

真偽値ルール適用部102は、例えば、リーフ“x>0”について、“真(true)”の真
偽値との組合せの条件式マップ((x>0),true)を生成し、“偽(false)の真偽値との組合せの条件式マップ(¬(x>0),false)を生成する。そして、真偽値ルール適用部102は、例えば、リーフ“x>0”について生成した各条件式マップを組合せ、ブロックD1に
示す条件式マップ集合{((x>0),true),(¬(x>0),false)}を生成する。
For example, for the leaf “x> 0”, the truth value rule application unit 102 generates a conditional expression map ((x> 0), true) in combination with the truth value of “true”. A conditional expression map (¬ (x> 0), false) of a combination with a false value is generated, and the truth value rule application unit 102 generates, for example, a leaf “x> 0”. Each conditional expression map is combined to generate a conditional expression map set {((x> 0), true), (¬ (x> 0), false)} shown in the block D1.

また、真偽値ルール適用部102は、例えば、リーフ“z==5”について、“真(true)
”の真偽値との組合せの条件式マップ((z==5),true)を生成し、“偽(false)の真偽
値との組合せの条件式マップ(¬(z==5),false)を生成する。真偽値ルール適用部10
2は、例えば、リーフ“z==5”について生成した各条件式マップを組合せ、ブロックD1に示す条件式マップ集合{((z==5),true),(¬(z==5),false)}を生成する。
Further, the truth value rule application unit 102, for example, for the leaf “z == 5”, “true”
Generate a conditional expression map (“(z == 5), true) with a true / false value of“ ”, and create a conditional expression map (¬ (z == 5) with a“ false ”true / false value. , False). Boolean value rule application unit 10
2 is a combination of the conditional expression maps generated for the leaf “z == 5”, for example, and the conditional expression map set {((z == 5), true), (¬ (z == 5)) shown in the block D1. , False)}.

真偽値ルール適用部102は、リーフ“x>0”、“z==5”のそれぞれについて生成され
た条件式マップ集合を、例えば、主記憶部12の所定の領域に一時的に記憶する。
The truth value rule application unit 102 temporarily stores the conditional expression map set generated for each of the leaves “x> 0” and “z == 5”, for example, in a predetermined area of the main storage unit 12. .

次に、真偽値ルール適用部102は、リーフ毎に生成した条件式マップ集合に基づいて、リーフ“x>0”、“z==5”を結び付けるノードの処理プロセスについての真偽値を反映
した条件式マップ集合を生成する。
Next, the Boolean value rule application unit 102 calculates the Boolean value for the processing process of the node linking the leaves “x> 0” and “z == 5” based on the conditional expression map set generated for each leaf. Generate the reflected conditional expression map set.

図7Cに、リーフ“x>0”、“z==5”に係る処理プロセスについての真偽値を反映した
条件式マップ集合の生成処理の説明図を例示する。なお、図7Cの説明図において、リーフ“x>0”について生成された条件式マップ集合は、ブロックD1に示すように、“左辺
の条件式マップ集合”とも称し、リーフ“z==5”について生成された条件式マップ集合は、“右辺の条件式マップ集合”とも称する。また、生成処理の対象となるノード及びリーフを、破線で囲まれた矩形領域に示す。
FIG. 7C illustrates an explanatory diagram of the generation process of the conditional expression map set reflecting the true / false values for the processing processes related to the leaves “x> 0” and “z == 5”. In the explanatory diagram of FIG. 7C, the conditional expression map set generated for the leaf “x> 0” is also referred to as a “left-side conditional expression map set” as shown in the block D1, and the leaf “z == 5”. The conditional expression map set generated for is also referred to as a “right-side conditional expression map set”. In addition, the nodes and leaves that are the targets of the generation process are shown in a rectangular area surrounded by a broken line.

また、図7Cの説明図において、論理積ルールTb1は、組合せルールが適用された論理積の真偽値表を表す。論理積ルールTb1において、例えば、「左辺」カラム、「右辺」カラムには、“(true,0)”、“(false,1)”といった真偽値情報が格納されて
いる。ここで、例えば、真偽値情報“(true,0)”、“(false,1)”等において、
真偽値“true”、“false”と組合せられた“0”、“1”といった数値は、適用される
組合せルールを指定する識別子である。
In the explanatory diagram of FIG. 7C, the logical product rule Tb1 represents a truth table of the logical product to which the combination rule is applied. In the logical product rule Tb1, for example, in the “left side” column and the “right side” column, truth value information such as “(true, 0)” and “(false, 1)” is stored. Here, for example, in the truth value information “(true, 0)”, “(false, 1)”, etc.
Numeric values such as “0” and “1” combined with true / false values “true” and “false” are identifiers that specify the combination rule to be applied.

図7Cの論理積ルールTb1の例では、識別子“0”が組合せられた真偽値では、論理積、論理和の基本ルールの組合せの際に、組合せルール1が適用され、識別子“1”が組合せられた真偽値では、組合せルール2が適用される。   In the example of the logical product rule Tb1 in FIG. 7C, in the case of a truth value in which the identifier “0” is combined, the combination rule 1 is applied when combining the basic rules of logical product and logical sum, and the identifier “1” is For the combined truth value, the combination rule 2 is applied.

言い換えれば、識別子“0”が組合せられた場合には、真偽値ルール適用部102は、例えば、識別子“0”が組合せられた真偽値に共通する、下位の条件式の真偽値の組合せを選択演算子“||”を用いて結合し、抽出する。また、識別子“1”が組合せられた場合には、真偽値ルール適用部102は、例えば、識別子“1”が組合せられた真偽値に共通する条件式の真偽値の組合せを全て抽出する。   In other words, when the identifier “0” is combined, the truth value rule application unit 102, for example, sets the truth value of the lower-level conditional expression common to the truth value combined with the identifier “0”. Combinations are combined and extracted using the selection operator “||”. Further, when the identifier “1” is combined, the truth value rule application unit 102 extracts all the combinations of the truth values of the conditional expressions common to the truth values combined with the identifier “1”, for example. To do.

なお、以下の説明では、図7Cに例示の論理積ルールTb1において、「No」カラムに「1」が格納されたレコードを“ID=1のレコード”とも称する。「No」カラムに「2」、「3」が格納されたレコードについても、同様に、“ID=2のレコード”、“ID=3のレコード”とも称する。   In the following description, in the logical product rule Tb1 illustrated in FIG. 7C, a record in which “1” is stored in the “No” column is also referred to as “record with ID = 1”. Similarly, records in which “2” and “3” are stored in the “No” column are also referred to as “records with ID = 2” and “records with ID = 3”.

真偽値ルール適用部102は、例えば、真偽値ルールDB201を参照し、処理対象となるノードに対応した真偽値表を取得する。図7Cの例では、リーフ“x>0”、“z==5”
を結び付けるノードは論理積“and”である。真偽値ルール適用部102は、例えば、論
理積ルールTb1を真偽値ルールDB201から取得し、取得した論理積ルールTb1を主記憶部12の所定の領域に一時的に記憶する。
For example, the truth value rule application unit 102 refers to the truth value rule DB 201 and acquires a truth value table corresponding to the node to be processed. In the example of FIG. 7C, leaf “x> 0”, “z == 5”
The node linking is the logical product “and”. For example, the truth value rule application unit 102 acquires the logical product rule Tb1 from the true value rule DB 201 and temporarily stores the acquired logical product rule Tb1 in a predetermined area of the main storage unit 12.

真偽値ルール適用部102は、例えば、ノードに対応した真偽値表に基づいて、ノード毎の条件式マップ集合を生成する。ノード毎の条件式マップ集合は、例えば、真偽値表のレコード毎に生成された条件式マップから生成される。真偽値ルール適用部102は、例
えば、真偽値表の「全体」カラムに格納された真偽値と、「左辺」カラム、「右辺」カラムの真偽値情報を反映させた条件式の結合式とを組合せ、レコード毎の条件式マップを生成する。ノードに対応した真偽値表に基づいて生成されたノード毎の生成された条件式マップ集合は、例えば、主記憶部12の所定の領域に一時的に記憶される。
The truth value rule application unit 102 generates a conditional expression map set for each node based on a truth value table corresponding to the node, for example. The conditional expression map set for each node is generated from, for example, a conditional expression map generated for each record of the truth table. For example, the truth value rule application unit 102 is a conditional expression that reflects the truth value stored in the “whole” column of the truth value table and the truth value information of the “left side” column and the “right side” column. Combine with the join formula to generate a conditional formula map for each record. The generated conditional expression map set for each node generated based on the truth table corresponding to the node is temporarily stored in a predetermined area of the main storage unit 12, for example.

・論理積ルール1
図7Cの論理積ルールTb1において、ID=1のレコードの「左辺」カラムには真偽値情報(true,0)が格納され、「右辺」カラムには真偽値情報(false,1)が格納さ
れている。「左辺」カラムは、例えば、ノードによって結び付けられるリーフ“x>0”に
対応し、「右辺」カラムは、ノードによって結び付けられるリーフ“z==5”に対応する。また、「左辺」カラムに対応するリーフの真偽値には組合せルール1が適用され、「右辺」カラムに対応するリーフの真偽値には組合せルール2が適用される。
-Logical product rule 1
In the logical product rule Tb1 in FIG. 7C, truth value information (true, 0) is stored in the “left side” column of the record with ID = 1, and truth value information (false, 1) is stored in the “right side” column. Stored. The “left side” column corresponds to, for example, the leaf “x> 0” connected by the node, and the “right side” column corresponds to the leaf “z == 5” connected by the node. The combination rule 1 is applied to the true / false value of the leaf corresponding to the “left side” column, and the combination rule 2 is applied to the true / false value of the leaf corresponding to the “right side” column.

真偽値ルール適用部102は、例えば、論理積ルールTb1のID=1のレコードの「右辺」カラムに格納された真偽値情報に基づいて、リーフ“z==5”の条件式マップ集合から、真偽値“false”となる条件式を全て抽出する。ここで、リーフ“z==5”の条件式マ
ップ集合は、{((z==5),true),(¬(z==5),false)}であり、真偽値“false”と組合せられた条件式は単一の“¬(z==5)”である。
For example, the truth value rule application unit 102 sets the conditional expression map set of leaf “z == 5” based on the truth value information stored in the “right side” column of the record of ID = 1 of the logical product rule Tb1. From this, all conditional expressions having a true / false value “false” are extracted. Here, the conditional expression map set of the leaf “z == 5” is {((z == 5), true), (¬ (z == 5), false)}, and the truth value “false” The conditional expression combined with is a single “¬ (z == 5)”.

真偽値ルール適用部102は、例えば、論理積ルールTb1のID=1のレコードの「右辺」カラムに対応する条件式として、リーフ“z==5”の条件式マップ集合から、条件式“¬(z==5)”を抽出する。   The truth value rule application unit 102, for example, from the conditional expression map set of leaf “z == 5” as the conditional expression corresponding to the “right side” column of the record of ID = 1 of the logical product rule Tb1, the conditional expression “ ¬ (z == 5) "is extracted.

次に、真偽値ルール適用部102は、例えば、論理積ルールTb1のID=1のレコードの「左辺」カラムに格納された真偽値情報に基づいて、リーフ“x>0”の条件式マップ
集合から、真偽値“true”となる条件式を選択演算子を用いて結合し、抽出する。
Next, the truth value rule application unit 102, for example, the conditional expression of leaf “x> 0” based on the truth value information stored in the “left side” column of the ID = 1 record of the logical product rule Tb1. From the map set, a conditional expression having a true / false value “true” is combined and extracted using a selection operator.

ここで、リーフ“x>0”の条件式マップ集合は、{((x>0),true),(¬(x>0),false)}であり、真偽値“true”と組合せられた条件式は単一の“(x>0)”である。リーフ“x>0”についての真偽値“true”となる条件式は複数に存在しないため、選択演算子は使用されずに、真偽値“true”と組合せられた条件式“(x>0)”が抽出されることとなる。   Here, the conditional expression map set of leaf “x> 0” is {((x> 0), true), (¬ (x> 0), false)}, and is combined with the truth value “true”. The conditional expression is a single “(x> 0)”. Since there are not a plurality of conditional expressions for the true value “true” for the leaf “x> 0”, the selection operator is not used and the conditional expression “(x> combined with the true value“ true ”is not used. 0) "will be extracted.

真偽値ルール適用部102は、例えば、論理積ルールTb1のID=1のレコードの「左辺」カラムに対応する条件式として、リーフ“x>0”の条件式マップ集合から、条件式
“(x>0)”を抽出する。
For example, the truth value rule application unit 102 uses the conditional expression “(” from the conditional expression map set of leaf “x> 0” as the conditional expression corresponding to the “left side” column of the ID = 1 record of the logical product rule Tb1. x> 0) ”is extracted.

そして、真偽値ルール適用部102は、論理積ルールTb1のID=1のレコードについての、「全体」カラムに格納された真偽値“false”と組となる条件式マップを生成す
る。条件式マップは、例えば、リーフ“x>0”の条件式マップ集合から抽出された条件式(x>0)、及び、リーフ“z==5”の条件式マップ集合から抽出された条件式(¬(z==5))に基づいて生成される。
Then, the truth value rule application unit 102 generates a conditional expression map that is paired with the truth value “false” stored in the “whole” column for the record of ID = 1 of the logical product rule Tb1. The conditional expression map is, for example, a conditional expression (x> 0) extracted from the conditional expression map set of leaf “x> 0” and a conditional expression extracted from the conditional expression map set of leaf “z == 5”. It is generated based on (¬ (z == 5)).

真偽値ルール適用部102は、例えば、各リーフの条件式マップ集合から抽出された条件式(x>0)と条件式(¬(z==5))とを、合接を表す記号“∧”を用いて結合した、“((x>0) ∧ ¬(z==5))”を生成する。そして、真偽値ルール適用部102は、例えば、論理積ルールTb1のID=1のレコードの「全体」カラムに格納された真偽値“false”と組合せ
、ID=1のレコードの真偽値に対応する条件式マップ“((x>0) ∧ ¬(z==5),false)”を生成する。生成された条件式マップ“((x>0) ∧ ¬(z==5),false)”は、例えば、論理積ルールTb1のIDに対応付けられて、主記憶部12の所定の領域に一時的に記憶される。
The truth value rule application unit 102, for example, combines the conditional expression (x> 0) and the conditional expression (¬ (z == 5)) extracted from the conditional expression map set of each leaf with the symbol “ “((X> 0) ∧¬ (z == 5))” is generated by combining using “∧”. Then, the truth value rule application unit 102 combines the truth value “false” stored in the “whole” column of the ID = 1 record of the logical product rule Tb1, for example, and the truth value of the record ID = 1 A conditional expression map “((x> 0) ∧ ¬ (z == 5), false)” corresponding to is generated. The generated conditional expression map “((x> 0) ∧¬ (z == 5), false)” is associated with the ID of the logical product rule Tb1, for example, in a predetermined area of the main storage unit 12. Temporarily stored.

・論理積ルール2
図7Cの論理積ルールTb1において、ID=2のレコードについてもID=1と同様にして、条件式マップが生成される。例えば、論理積ルールTb1の、ID=2のレコードの「左辺」カラムには真偽値情報(false,1)が格納され、「右辺」カラムには真偽
値情報(true,0)が格納されている。「左辺」カラムに対応するリーフの真偽値には組合せルール2が適用され、「右辺」カラムに対応するリーフの真偽値には組合せルール1が適用される。
-Logical product rule 2
In the logical product rule Tb1 of FIG. 7C, the conditional expression map is generated for the record with ID = 2 in the same manner as with ID = 1. For example, truth value information (false, 1) is stored in the “left side” column of the record of ID = 2 of the logical product rule Tb1, and truth value information (true, 0) is stored in the “right side” column. Has been. The combination rule 2 is applied to the true / false value of the leaf corresponding to the “left side” column, and the combination rule 1 is applied to the true / false value of the leaf corresponding to the “right side” column.

真偽値ルール適用部102は、例えば、論理積ルールTb1のID=2のレコードの「左辺」カラムに格納された真偽値情報に基づいて、リーフ“x>0”の条件式マップ集合か
ら、真偽値“false”となる条件式を全て抽出する。リーフ“x>0”の条件式マップ集合は、{((x>0),true),(¬(x>0),false)}であり、真偽値“false”と組合せられた条件式は単一の“¬(x>0)”である。
The truth value rule application unit 102, for example, from the conditional expression map set of leaf “x> 0” based on the truth value information stored in the “left side” column of the record of ID = 2 of the logical product rule Tb1. , All the conditional expressions having the true / false value “false” are extracted. The conditional expression map set of leaf “x> 0” is {((x> 0), true), (¬ (x> 0), false)}, and the conditional expression combined with the truth value “false” Is a single “¬ (x> 0)”.

真偽値ルール適用部102は、例えば、論理積ルールTb1のID=2のレコードの「左辺」カラムに対応する条件式として、リーフ“x>0”の条件式マップ集合から、条件式
“¬(x>0)”を抽出する。
For example, the truth value rule application unit 102 uses the conditional expression “¬” from the conditional expression map set of leaf “x> 0” as the conditional expression corresponding to the “left side” column of the record of ID = 2 of the logical product rule Tb1. (x> 0) ”is extracted.

次に、真偽値ルール適用部102は、例えば、論理積ルールTb1のID=2のレコードの「右辺」カラムに格納された真偽値情報に基づいて、リーフ“z==5”の条件式マップ集合から、真偽値“true”となる条件式を選択演算子を用いて結合し、抽出する。   Next, the truth value rule application unit 102, for example, the condition of the leaf “z == 5” based on the truth value information stored in the “right side” column of the record of ID = 2 of the logical product rule Tb1. From the expression map set, a conditional expression having a truth value “true” is combined and extracted using a selection operator.

ここで、リーフ“z==5”の条件式マップ集合は、{((z==5),true),(¬(z==5),false)}であり、真偽値“true”と組合せられた条件式は単一の“(z==5)”である。リー
フ“(z==5)”についての真偽値“true”となる条件式は複数に存在しないため、選択演算子は使用されずに、真偽値“true”と組合せられた条件式“(z==5)”が抽出されることとなる。
Here, the conditional expression map set of the leaf “z == 5” is {((z == 5), true), (¬ (z == 5), false)}, and the truth value “true” The conditional expression combined with is a single “(z == 5)”. Since there are no multiple conditional expressions for the leaf “(z == 5)” that are true and false “true”, the selection operator is not used and the conditional expression “true” is combined with the true value “true”. (z == 5) ”is extracted.

真偽値ルール適用部102は、例えば、論理積ルールTb1のID=2のレコードの「右辺」カラムに対応する条件式として、リーフ“z==5”の条件式マップ集合から、条件式“(z==5)”を抽出する。   The truth value rule application unit 102, for example, from the conditional expression map set of leaf “z == 5” as the conditional expression corresponding to the “right side” column of the record of ID = 2 of the logical product rule Tb1, the conditional expression “ (z == 5) ”is extracted.

そして、真偽値ルール適用部102は、論理積ルールTb1のID=2のレコードの「全体」カラムに格納された真偽値“false”と組となる条件式マップを生成する。条件式
マップは、例えば、リーフ“x>0”の条件式マップ集合から抽出された条件式(¬(x>0))、及び、リーフ“z==5”の条件式マップ集合から抽出された条件式(z==5)に基づいて生成される。
Then, the truth value rule application unit 102 generates a conditional expression map paired with the truth value “false” stored in the “whole” column of the record of ID = 2 of the logical product rule Tb1. The conditional expression map is extracted from, for example, a conditional expression (¬ (x> 0)) extracted from a conditional expression map set of leaf “x> 0” and a conditional expression map set of leaf “z == 5”. Is generated based on the conditional expression (z == 5).

真偽値ルール適用部102は、例えば、各リーフの条件式マップ集合から抽出された条件式(¬(x>0))と条件式(z==5)とを、合接を表す記号“∧”を用いて結合した、“(¬(x>0) ∧ (z==5))”を生成する。そして、真偽値ルール適用部102は、例えば、論理積ルールTb1のID=2のレコードの「全体」カラムに格納された真偽値“false”と組合せ
、ID=2のレコードの真偽値に対応する条件式マップ“(¬(x>0) ∧ (z==5),false)”を生成する。生成された条件式マップ“(¬(x>0) ∧ (z==5),false)”は、例えば、論理積ルールTb1のIDに対応付けられて、主記憶部12の所定の領域に一時的に記憶される。
The truth value rule application unit 102, for example, combines the conditional expression (¬ (x> 0)) and the conditional expression (z == 5) extracted from the conditional expression map set of each leaf with the symbol “ “(¬ (x> 0)) (z == 5))” is generated by combining using “∧”. Then, the truth value rule application unit 102 combines the truth value “false” stored in the “whole” column of the ID = 2 record of the logical product rule Tb1, for example, and the truth value of the record ID = 2 A conditional expression map “(¬ (x> 0) ∧ (z == 5), false)” corresponding to is generated. The generated conditional expression map “(¬ (x> 0) ∧ (z == 5), false)” is associated with the ID of the logical product rule Tb1, for example, in a predetermined area of the main storage unit 12. Temporarily stored.

・論理積ルール3
図7Cの論理積ルールTb1のID=3のレコードについてもID=1と同様にして、
条件式マップが生成される。例えば、論理積ルールTb1のID=3のレコードの「左辺」カラムには真偽値情報(true,1)が格納され、「右辺」カラムには真偽値情報(true,1)が格納されている。「左辺」カラム、「右辺」カラムのそれぞれに対応するリーフの真偽値には組合せルール2が適用される。
-Logical product rule 3
The record of ID = 3 of the logical product rule Tb1 in FIG.
A conditional expression map is generated. For example, truth value information (true, 1) is stored in the “left side” column of the record of ID = 3 of the logical product rule Tb1, and truth value information (true, 1) is stored in the “right side” column. ing. Combination rule 2 is applied to the true / false values of the leaves corresponding to the “left side” column and the “right side” column.

真偽値ルール適用部102は、例えば、論理積ルールTb1のID=3のレコードの「左辺」カラムに格納された真偽値情報に基づいて、リーフ“x>0”の条件式マップ集合か
ら、真偽値“true”となる条件式を全て抽出する。リーフ“x>0”の条件式マップ集合は
、{((x>0),true),(¬(x>0),false)}であり、真偽値“true”と組合せられた条
件式は単一の“(x>0)”である。
The truth value rule application unit 102, for example, from the conditional expression map set of leaf “x> 0” based on the truth value information stored in the “left side” column of the ID = 3 record of the logical product rule Tb1. , All the conditional expressions for which the truth value is “true” are extracted. The conditional expression map set of leaf “x> 0” is {((x> 0), true), (¬ (x> 0), false)}, and the conditional expression combined with the truth value “true” Is a single “(x> 0)”.

真偽値ルール適用部102は、例えば、論理積ルールTb1のID=3のレコードの「左辺」カラムに対応する条件式として、リーフ“x>0”の条件式マップ集合から、条件式
“(x>0)”を抽出する。
For example, the truth value rule application unit 102 uses the conditional expression “(” from the conditional expression map set of leaf “x> 0” as the conditional expression corresponding to the “left side” column of the record of ID = 3 of the logical product rule Tb1. x> 0) ”is extracted.

次に、真偽値ルール適用部102は、例えば、論理積ルールTb1のID=3のレコードの「右辺」カラムに格納された真偽値情報に基づいて、リーフ“z==5”の条件式マップ集合から、真偽値“true”となる条件式を全て抽出する。リーフ“z==5”の条件式マップ集合は、{((z==5),true),(¬(z==5),false)}であり、真偽値“true”と組合せ
られた条件式は単一の“(z==5)”である。
Next, the truth value rule application unit 102, for example, the condition of leaf “z == 5” based on the truth value information stored in the “right side” column of the record of ID = 3 of the logical product rule Tb1. From the expression map set, all conditional expressions having a true / false value “true” are extracted. The conditional expression map set of leaf “z == 5” is {((z == 5), true), (¬ (z == 5), false)}, and is combined with the truth value “true”. The conditional expression is a single “(z == 5)”.

真偽値ルール適用部102は、例えば、論理積ルールTb1のID=3のレコードの「右辺」カラムに対応する条件式として、リーフ“z==5”の条件式マップ集合から、条件式“(z==5)”を抽出する。   The truth value rule application unit 102, for example, from the conditional expression map set of leaf “z == 5” as the conditional expression corresponding to the “right side” column of the record of ID = 3 of the logical product rule Tb1, the conditional expression “ (z == 5) ”is extracted.

そして、真偽値ルール適用部102は、論理積ルールTb1のID=3のレコードの「全体」カラムに格納された真偽値“true”と組となる条件式マップを生成する。条件式マップは、例えば、リーフ“x>0”の条件式マップ集合から抽出された条件式(x>0)、及び、リーフ“z==5”の条件式マップ集合から抽出された条件式(z==5)に基づいて生成される。   Then, the truth value rule application unit 102 generates a conditional expression map paired with the truth value “true” stored in the “whole” column of the record of ID = 3 of the logical product rule Tb1. The conditional expression map is, for example, a conditional expression (x> 0) extracted from the conditional expression map set of leaf “x> 0” and a conditional expression extracted from the conditional expression map set of leaf “z == 5”. Generated based on (z == 5).

真偽値ルール適用部102は、例えば、各リーフの条件式マップ集合から抽出された条件式(x>0)と条件式(z==5)とを、合接を表す記号“∧”を用いて結合した、“((x>0) ∧ (z==5))”を生成する。そして、真偽値ルール適用部102は、例えば、論理積ルールTb1のID=3のレコードの「全体」カラムに格納された真偽値“true”と組合せ、ID=3のレコードの真偽値に対応する条件式マップ“((x>0) ∧ (z==5),true)”を生成する
。生成された条件式マップ“((x>0) ∧ (z==5),true)”は、例えば、論理積ルールTb
1のIDに対応付けられて、主記憶部12の所定の領域に一時的に記憶される。
For example, the truth value rule application unit 102 uses the conditional expression (x> 0) and the conditional expression (z == 5) extracted from the conditional expression map set of each leaf as the symbol “∧” representing the concatenation. Using the combination, “((x> 0) ∧ (z == 5))” is generated. Then, the truth value rule application unit 102 combines the truth value “true” stored in the “whole” column of the record with ID = 3 of the logical product rule Tb1, for example, and the truth value of the record with ID = 3. A conditional expression map “((x> 0) ∧ (z == 5), true)” corresponding to is generated. The generated conditional expression map “((x> 0) ∧ (z == 5), true)” is, for example, a logical product rule Tb
1 is temporarily stored in a predetermined area of the main storage unit 12 in association with one ID.

以上の処理により、図7CのブロックD2に示すように、論理積ルールTb1のID=1−3の論理関係に基づいた各条件式マップが生成される。   Through the above processing, as shown in the block D2 of FIG. 7C, each conditional expression map based on the logical relationship of ID = 1-3 of the logical product rule Tb1 is generated.

・条件式マップ集合
図7Cの論理積ルールTb1について、レコード毎に生成した条件式マップに基づいて、真偽値ルール適用部102は、リーフ“x>0”、“z==5”に係る処理プロセスについて
の真偽値を反映した条件式マップ集合を生成する。真偽値ルール適用部102は、例えば、ブロックD2に示す各条件式マップに基づいて、ブロックD3に示す条件式マップ集合を生成する。
Conditional Expression Map Set Based on the conditional expression map generated for each record for the logical product rule Tb1 in FIG. 7C, the truth value rule application unit 102 relates to the leaves “x> 0” and “z == 5”. A set of conditional expression maps reflecting the true / false values of the processing process is generated. For example, the truth value rule application unit 102 generates a conditional expression map set shown in the block D3 based on each conditional expression map shown in the block D2.

真偽値ルール適用部102は、例えば、論理積ルールTb1のレコード毎に生成した条件式マップを組合せ、条件式マップ集合{((x>0) ∧ ¬(z==5),false),(¬(x>0) ∧ (z
==5),false),((x>0) ∧(z==5),true)}を生成する。論理積ルールTb1のレコード毎に生成した条件式マップに基づいて生成された、リーフ“x>0”、“z==5”に係る処理プ
ロセスについての真偽値を反映した条件式マップ集合は、例えば、条件式マップ集合DB203に格納される。
For example, the truth value rule application unit 102 combines the conditional expression maps generated for each record of the logical product rule Tb1, and sets the conditional expression map set {((x> 0)) ¬ (z == 5), false), (¬ (x> 0) ∧ (z
== 5), false), ((x> 0) ∧ (z == 5), true)}. A set of conditional expression maps reflecting the true / false values of the processing processes relating to the leaves “x> 0” and “z == 5” generated based on the conditional expression map generated for each record of the logical product rule Tb1 is For example, it is stored in the conditional expression map set DB 203.

(第2の真偽値ルール適用処理)
次に、第2の真偽値ルール適用処理では、真偽値ルール適用部102は、例えば、木構造の同一の階層の右側に配置されたノード(論理演算子)処理についての、条件式マップ、及び、条件式マップ集合を生成する。図7Dに、第2の真偽値ルール適用処理に係る、判定式C1の木構造についての条件式マップ、条件式マップ集合の生成処理の説明図を例示する。
(Second true / false rule application process)
Next, in the second truth value rule application process, the truth value rule application unit 102, for example, a conditional expression map for the node (logical operator) process arranged on the right side of the same hierarchy of the tree structure And a set of conditional expression maps. FIG. 7D illustrates an explanatory diagram of the generation process of the conditional expression map and the conditional expression map set for the tree structure of the determination expression C1 according to the second truth value rule application process.

図7Dに例示の木構造において、第1の真偽値ルール適用処理の処理対象となったノードと同一の階層の右側に配置されたノードは論理積“and”であり、右側のノードの処理
プロセスに係る各リーフは、破線で囲まれた矩形領域に示すリーフ“y==1”、“z>1”で
ある。
In the tree structure illustrated in FIG. 7D, the node arranged on the right side of the same hierarchy as the node that is the processing target of the first true / false rule application processing is the logical product “and”, and the processing of the right node is performed. Each leaf related to the process is a leaf “y == 1” and “z> 1” shown in a rectangular area surrounded by a broken line.

先ず、真偽値ルール適用部102は、例えば、図7Bに例示の第1の真偽値ルール適用
処理と同様にして、右側のノードの処理プロセスに係るリーフ“y==1”、“z>1”につい
ての条件式マップ、条件式マップ集合を生成する。
First, the truth value rule application unit 102, for example, in the same way as the first truth value rule application process illustrated in FIG. 7B, leaves “y == 1” and “z” related to the processing process of the right node. Generates a conditional expression map and a conditional expression map set for> 1 ”.

真偽値ルール適用部102は、例えば、判定式二分木DB202を参照し、処理対象の判定式について生成された木構造(判定式二分木)から、下位層の左側に配置されたノードの処理プロセスに係るリーフ“y==1”、“z>1”を特定する。   The truth value rule application unit 102 refers to, for example, the determination expression binary tree DB 202 and processes the nodes arranged on the left side of the lower layer from the tree structure (determination expression binary tree) generated for the determination expression to be processed. The leaf “y == 1” and “z> 1” related to the process is specified.

真偽値ルール適用部102は、例えば、リーフ“y==1”について、“真(true)”の真偽値との組合せの条件式マップ((y==1),true)を生成し、“偽(false)の真偽値との
組合せの条件式マップ(¬(y==1),false)を生成する。そして、真偽値ルール適用部1
02は、例えば、リーフ“y==1”について生成した各条件式マップを組合せ、ブロックD4に示す条件式マップ集合{((y==1),true),(¬(y==1),false)}を生成する。
The truth value rule application unit 102 generates, for example, a conditional expression map ((y == 1), true) of the leaf “y == 1” in combination with the truth value of “true”. , A conditional expression map (¬ (y == 1), false) in combination with a false value of “false” is generated.
02, for example, combines the conditional expression maps generated for the leaf “y == 1”, and sets the conditional expression map set {((y == 1), true), (¬ (y == 1) shown in the block D4 , False)}.

また、真偽値ルール適用部102は、例えば、リーフ“z>1”について、“真(true)
”の真偽値との組合せの条件式マップ((z>1),true)を生成し、“偽(false)の真偽値との組合せの条件式マップ(¬(z>1),false)を生成する。真偽値ルール適用部102は、例えば、リーフ“z>1”について生成した各条件式マップを組合せ、ブロックD4に示
す条件式マップ集合{((z>1),true),(¬(z>1),false)}を生成する。
Further, the truth value rule application unit 102, for example, for the leaf “z> 1”, “true”
Generates a conditional expression map ((z> 1), true) in combination with a true / false value of “” and creates a conditional expression map (¬ (z> 1), false in combination with a false / false value) ) Is generated. For example, the truth value rule application unit 102 combines the conditional expression maps generated for the leaf “z> 1”, and sets the conditional expression map set {((z> 1), true), (¬ (z > 1), false)}.

真偽値ルール適用部102は、リーフ“y==1”、“z>1”のそれぞれについて生成され
た条件式マップ集合を、例えば、主記憶部12の所定の領域に一時的に記憶する。
The truth value rule application unit 102 temporarily stores the conditional expression map set generated for each of the leaves “y == 1” and “z> 1”, for example, in a predetermined area of the main storage unit 12. .

次に、真偽値ルール適用部102は、リーフ毎に生成した条件式マップ集合に基づいて、リーフ“y==1”、“z>1”を結び付けるノードの処理プロセスについての真偽値を反映
した条件式マップ集合を生成する。
Next, the true / false value rule application unit 102 calculates a true / false value for the processing process of the node linking the leaves “y == 1” and “z> 1” based on the conditional expression map set generated for each leaf. Generate the reflected conditional expression map set.

図7Eに、リーフ“y==1”、“z>1”に係る処理プロセスについての真偽値を反映した
条件式マップ集合の生成処理の説明図を例示する。なお、図7Eの説明図において、リーフ“y==1”について生成された条件式マップ集合は、ブロックD4に示すように、“左辺の条件式マップ集合”とも称し、リーフ“z>1”について生成された条件式マップ集合は
、“右辺の条件式マップ集合”とも称する。
FIG. 7E illustrates an explanatory diagram of generation processing of a conditional expression map set reflecting a true / false value for a processing process related to leaves “y == 1” and “z> 1”. In the explanatory diagram of FIG. 7E, the conditional expression map set generated for the leaf “y == 1” is also referred to as the “conditional map set on the left side” and the leaf “z> 1” as shown in the block D4. The conditional expression map set generated for is also referred to as a “right-side conditional expression map set”.

また、図7Eの説明図において、論理積ルールTb1は、組合せルールが適用された論理積の真偽値表を表す。論理積ルールTb1については、図7Cで説明した。なお、以下の説明では、図7Eに例示の論理積ルールTb1において、「No」カラムに「1」が格納されたレコードを“ID=1のレコード”とも称する。「No」カラムに「2」、「3」が格納されたレコードについても、同様に、“ID=2のレコード”、“ID=3のレコード”とも称する。   In the explanatory diagram of FIG. 7E, the logical product rule Tb1 represents a truth table of logical products to which the combination rule is applied. The logical product rule Tb1 has been described with reference to FIG. 7C. In the following description, in the logical product rule Tb1 illustrated in FIG. 7E, a record in which “1” is stored in the “No” column is also referred to as “record with ID = 1”. Similarly, records in which “2” and “3” are stored in the “No” column are also referred to as “records with ID = 2” and “records with ID = 3”.

真偽値ルール適用部102は、例えば、真偽値ルールDB201を参照し、処理対象となるノードに対応した真偽値表を取得する。図7Eの例では、リーフ“y==1”、“z>1”
を結び付けるノードは論理積“and”である。真偽値ルール適用部102は、例えば、論
理積ルールTb1を真偽値ルールDB201から取得し、取得した論理積ルールTb1を主記憶部12の所定の領域に一時的に記憶する。
For example, the truth value rule application unit 102 refers to the truth value rule DB 201 and acquires a truth value table corresponding to the node to be processed. In the example of FIG. 7E, the leaf “y == 1”, “z> 1”
The node linking is the logical product “and”. For example, the truth value rule application unit 102 acquires the logical product rule Tb1 from the true value rule DB 201 and temporarily stores the acquired logical product rule Tb1 in a predetermined area of the main storage unit 12.

真偽値ルール適用部102は、例えば、ノードに対応した真偽値表に基づいて、ノード毎の条件式マップ集合を生成する。ノード毎の条件式マップ集合は、例えば、真偽値表のレコード毎に生成された条件式マップから生成される。真偽値ルール適用部102は、例えば、真偽値表の「全体」カラムに格納された真偽値と、「左辺」カラム、「右辺」カラムの真偽値情報を反映させた条件式の結合式とを組合せ、レコード毎の条件式マップを生成する。ノードに対応した真偽値表に基づいて生成されたノード毎の条件式マップ集合は、例えば、主記憶部12の所定の領域に一時的に記憶される。   The truth value rule application unit 102 generates a conditional expression map set for each node based on a truth value table corresponding to the node, for example. The conditional expression map set for each node is generated from, for example, a conditional expression map generated for each record of the truth table. For example, the truth value rule application unit 102 is a conditional expression that reflects the truth value stored in the “whole” column of the truth value table and the truth value information of the “left side” column and the “right side” column. Combine with the join formula to generate a conditional formula map for each record. The conditional expression map set for each node generated based on the truth table corresponding to the node is temporarily stored in a predetermined area of the main storage unit 12, for example.

なお、第2の真偽値ルール適用処理のノード毎の条件式マップ集合の生成処理は、例えば、第1の真偽値ルール適用処理における、ノード毎の条件式マップ集合の生成処理と同
様の処理が行われる。すなわち、論理積テーブルTb1に沿ってレコード毎の条件式マップを生成し、生成したレコード毎の条件式マップを組合せ、ノード毎の条件式マップ集合を生成する。
The generation process of the conditional expression map set for each node in the second truth value rule application process is the same as the generation process of the conditional expression map set for each node in the first truth value rule application process, for example. Processing is performed. That is, a conditional expression map for each record is generated along the logical product table Tb1, and the generated conditional expression map for each record is combined to generate a conditional expression map set for each node.

・論理積ルール1
図7Eの論理積ルールTb1において、ID=1のレコードの「左辺」カラムには真偽値情報(true,0)が格納され、「右辺」カラムには真偽値情報(false,1)が格納さ
れている。このため、「左辺」カラムに対応するリーフ“y==1”の真偽値には組合せルール1が適用され、「右辺」カラムに対応するリーフ“z>1”の真偽値には組合せルール2
が適用されることとなる。
-Logical product rule 1
In the logical product rule Tb1 of FIG. 7E, truth value information (true, 0) is stored in the “left side” column of the record of ID = 1, and truth value information (false, 1) is stored in the “right side” column. Stored. Therefore, the combination rule 1 is applied to the truth value of the leaf “y == 1” corresponding to the “left side” column, and the combination rule is applied to the truth value of the leaf “z> 1” corresponding to the “right side” column. Rule 2
Will be applied.

真偽値ルール適用部102は、例えば、論理積ルールTb1のID=1のレコードの「右辺」カラムに格納された真偽値情報に基づいて、リーフ“z>1”の条件式マップ集合か
ら、真偽値“false”となる条件式を全て抽出する。ここで、リーフ“z>1”の条件式マップ集合は、{((z>1),true),(¬(z>1),false)}であり、真偽値“false”と組合せられた条件式は単一の“¬(z>1)”である。
The truth value rule application unit 102, for example, from the conditional expression map set of leaf “z> 1” based on the truth value information stored in the “right side” column of the record of ID = 1 of the logical product rule Tb1. , All the conditional expressions having the true / false value “false” are extracted. Here, the conditional expression map set of leaf “z> 1” is {((z> 1), true), (¬ (z> 1), false)}, and is combined with the truth value “false”. The conditional expression is a single “¬ (z> 1)”.

真偽値ルール適用部102は、例えば、論理積ルールTb1のID=1のレコードの「右辺」カラムに対応する条件式として、リーフ“z>1”の条件式マップ集合から、条件式
“¬(z>1)”を抽出する。
The truth value rule application unit 102, for example, from the conditional expression map set of leaf “z> 1” as the conditional expression corresponding to the “right side” column of the record of ID = 1 of the logical product rule Tb1, the conditional expression “¬ (z> 1) ”is extracted.

次に、真偽値ルール適用部102は、例えば、論理積ルールTb1のID=1のレコードの「左辺」カラムに格納された真偽値情報に基づいて、リーフ“y==1”の条件式マップ集合から、真偽値“true”となる条件式を選択演算子を用いて結合し、抽出する。ここで、リーフ“y==1”の条件式マップ集合は、{((y==1),true),(¬(y==1),false)}
であり、真偽値“true”と組合せられた条件式は複数に存在せずに単一の“(y==1)”である。このため、選択演算子は使用されずに、真偽値“true”と組合せられた条件式“(y==
1)”が抽出されることとなる。
Next, the truth value rule application unit 102, for example, the condition of leaf “y == 1” based on the truth value information stored in the “left side” column of the ID = 1 record of the logical product rule Tb1. From the expression map set, a conditional expression having a truth value “true” is combined and extracted using a selection operator. Here, the conditional expression map set of leaf “y == 1” is {((y == 1), true), (¬ (y == 1), false)}
The conditional expression combined with the true / false value “true” does not exist in plural and is a single “(y == 1)”. For this reason, the conditional expression “(y == combined with the truth value“ true ”is used without using the selection operator.
1) ”will be extracted.

真偽値ルール適用部102は、例えば、論理積ルールTb1のID=1のレコードの「左辺」カラムに対応する条件式として、リーフ“y==1”の条件式マップ集合から、条件式“(y==1)”を抽出する。   The truth value rule application unit 102, for example, from the conditional expression map set of leaf “y == 1” as the conditional expression corresponding to the “left side” column of the record of ID = 1 of the logical product rule Tb1, the conditional expression “ (y == 1) ”is extracted.

そして、真偽値ルール適用部102は、論理積ルールTb1のID=1のレコードについての、「全体」カラムに格納された真偽値“false”と組となる条件式マップを生成す
る。条件式マップは、例えば、リーフ“y==1”の条件式マップ集合から抽出された条件式(y==1)、及び、リーフ“z>1”の条件式マップ集合から抽出された条件式(¬(z>1))に基づいて生成される。
Then, the truth value rule application unit 102 generates a conditional expression map that is paired with the truth value “false” stored in the “whole” column for the record of ID = 1 of the logical product rule Tb1. The conditional expression map is, for example, a conditional expression (y == 1) extracted from the conditional expression map set of leaf “y == 1” and a conditional expression extracted from the conditional expression map set of leaf “z> 1”. It is generated based on the formula (¬ (z> 1)).

真偽値ルール適用部102は、例えば、各リーフの条件式マップ集合から抽出された条件式(y==1)と条件式(¬(z>1))とを、合接を表す記号“∧”を用いて結合した、“((y==1)
∧ ¬(z>1))”を生成する。そして、真偽値ルール適用部102は、例えば、論理積ルールTb1のID=1のレコードの「全体」カラムに格納された真偽値“false”と組合せ
、ID=1のレコードの真偽値に対応する条件式マップ“((y==1) ∧ ¬(z>1),false)”を生成する。生成された条件式マップ“((y==1) ∧ ¬(z>1),false)”は、例えば、論理積ルールTb1のIDに対応付けられて、主記憶部12の所定の領域に一時的に記憶される。
The truth value rule application unit 102, for example, combines the conditional expression (y == 1) and the conditional expression (¬ (z> 1)) extracted from the conditional expression map set of each leaf with the symbol “ "((Y == 1)
¬¬ (z> 1)) ”and the truth value rule application unit 102, for example, the truth value“ false ”stored in the“ whole ”column of the record of ID = 1 of the logical product rule Tb1. ”And a conditional expression map“ ((y == 1) ∧¬ (z> 1), false) ”corresponding to the truth value of the record with ID = 1 is generated. The generated conditional expression map “((y == 1) ∧¬ (z> 1), false)” is associated with the ID of the logical product rule Tb1, for example, in a predetermined area of the main storage unit 12. Temporarily stored.

・論理積ルール2
図7Eの論理積ルールTb1において、ID=2のレコードの「左辺」カラムには真偽値情報(false,1)が格納され、「右辺」カラムには真偽値情報(true,0)が格納さ
れている。このため、「左辺」カラムに対応するリーフ“y==1”の真偽値には組合せルール2が適用され、「右辺」カラムに対応するリーフ“z>1”の真偽値には組合せルール1
が適用されることとなる。
-Logical product rule 2
In the logical product rule Tb1 of FIG. 7E, truth value information (false, 1) is stored in the “left side” column of the record with ID = 2, and truth value information (true, 0) is stored in the “right side” column. Stored. Therefore, the combination rule 2 is applied to the true value of the leaf “y == 1” corresponding to the “left side” column, and the combination rule is applied to the true value of the leaf “z> 1” corresponding to the “right side” column. Rule 1
Will be applied.

真偽値ルール適用部102は、例えば、論理積ルールTb1のID=2のレコードの「左辺」カラムに格納された真偽値情報に基づいて、リーフ“y==1”の条件式マップ集合から、真偽値“false”となる条件式を全て抽出する。リーフ“y==1”の条件式マップ集合
は、{((y==1),true),(¬(y==1),false)}であり、真偽値“false”と組合せられた条件式は単一の“¬(y==1)”である。
For example, the truth value rule application unit 102 sets the conditional expression map set of the leaf “y == 1” based on the truth value information stored in the “left side” column of the record of ID = 2 of the logical product rule Tb1. From this, all conditional expressions having a true / false value “false” are extracted. The conditional expression map set of leaf “y == 1” is {((y == 1), true), (¬ (y == 1), false)}, and is combined with the truth value “false”. The conditional expression is a single “¬ (y == 1)”.

真偽値ルール適用部102は、例えば、論理積ルールTb1のID=2のレコードの「左辺」カラムに対応する条件式として、リーフ“y==1”の条件式マップ集合から、条件式“¬(y==1)”を抽出する。   The truth value rule application unit 102, for example, from the conditional expression map set of the leaf “y == 1” as the conditional expression corresponding to the “left side” column of the record of ID = 2 of the logical product rule Tb1, the conditional expression “ ¬ (y == 1) "is extracted.

次に、真偽値ルール適用部102は、例えば、論理積ルールTb1のID=2のレコードの「右辺」カラムに格納された真偽値情報に基づいて、リーフ“z>1”の条件式マップ
集合から、真偽値“true”となる条件式を選択演算子を用いて結合し、抽出する。リーフ“z>1”の条件式マップ集合は、{((z>1),true),(¬(z>1),false)}であり、真偽値“true”と組合せられた条件式は複数に存在せずに単一の“(z>1)”である。このため
、選択演算子は使用されずに、真偽値“true”と組合せられた条件式“(z>1)”が抽出さ
れることとなる。
Next, the truth value rule application unit 102, for example, the conditional expression of the leaf “z> 1” based on the truth value information stored in the “right side” column of the record of ID = 2 of the logical product rule Tb1. From the map set, a conditional expression having a true / false value “true” is combined and extracted using a selection operator. The conditional expression map set of leaf “z> 1” is {((z> 1), true), (¬ (z> 1), false)}, and the conditional expression combined with the truth value “true” Is a single “(z> 1)”, without multiple occurrences. Therefore, the conditional expression “(z> 1)” combined with the truth value “true” is extracted without using the selection operator.

真偽値ルール適用部102は、例えば、論理積ルールTb1のID=2のレコードの「右辺」カラムに対応する条件式として、リーフ“z>1”の条件式マップ集合から、条件式
“(z>1)”を抽出する。
For example, the truth value rule application unit 102 uses the conditional expression “(” from the conditional expression map set of leaf “z> 1” as the conditional expression corresponding to the “right side” column of the record of ID = 2 of the logical product rule Tb1. z> 1) ”is extracted.

そして、真偽値ルール適用部102は、論理積ルールTb1のID=2のレコードについての、「全体」カラムに格納された真偽値“false”と組となる条件式マップを生成す
る。条件式マップは、例えば、リーフ“y==1”の条件式マップ集合から抽出された条件式(¬(y==1))、及び、リーフ“z>1”の条件式マップ集合から抽出された条件式(z>1)に基づいて生成される。
Then, the truth value rule application unit 102 generates a conditional expression map paired with the truth value “false” stored in the “whole” column for the record of ID = 2 of the logical product rule Tb1. The conditional expression map is extracted from, for example, the conditional expression (¬ (y == 1)) extracted from the conditional expression map set of leaf “y == 1” and the conditional expression map set of leaf “z> 1” Is generated based on the conditional expression (z> 1).

真偽値ルール適用部102は、例えば、各リーフの条件式マップ集合から抽出された条件式(¬(y==1))と条件式(z>1)とを、合接を表す記号“∧”を用いて結合した、“(¬(y==1) ∧ (z>1))”を生成する。そして、真偽値ルール適用部102は、例えば、論理積ルールTb1のID=2のレコードの「全体」カラムに格納された真偽値“false”と組合せ
、ID=2のレコードの真偽値に対応する条件式マップ“(¬(y==1) ∧ (z>1),false)”を生成する。生成された条件式マップ“(¬(y==1) ∧ (z>1),false)”は、例えば、論理積ルールTb1のIDに対応付けられて、主記憶部12の所定の領域に一時的に記憶される。
The truth value rule application unit 102, for example, combines the conditional expression (¬ (y == 1)) and the conditional expression (z> 1) extracted from the conditional expression map set of each leaf with the symbol “ “(¬ (y == 1) ∧ (z> 1))” is generated by combining using “∧”. Then, the truth value rule application unit 102 combines the truth value “false” stored in the “whole” column of the ID = 2 record of the logical product rule Tb1, for example, and the truth value of the record ID = 2 A conditional expression map “(¬ (y == 1) ∧ (z> 1), false)” corresponding to is generated. The generated conditional expression map “(¬ (y == 1) ∧ (z> 1), false)” is associated with the ID of the logical product rule Tb1, for example, in a predetermined area of the main storage unit 12. Temporarily stored.

・論理積ルール3
図7Eの論理積ルールTb1において、ID=3のレコードの「左辺」カラムには真偽値情報(true,1)が格納され、「右辺」カラムには真偽値情報(true,1)が格納されている。このため、「左辺」カラムに対応するリーフ“y==1”の真偽値、及び、「右辺」カラムに対応するリーフ“z>1”の真偽値には組合せルール2が適用されることとなる。
-Logical product rule 3
In the logical product rule Tb1 of FIG. 7E, truth value information (true, 1) is stored in the “left side” column of the record with ID = 3, and truth value information (true, 1) is stored in the “right side” column. Stored. Therefore, the combination rule 2 is applied to the true / false value of the leaf “y == 1” corresponding to the “left side” column and the true / false value of the leaf “z> 1” corresponding to the “right side” column. It will be.

真偽値ルール適用部102は、例えば、論理積ルールTb1のID=3のレコードの「左辺」カラムに格納された真偽値情報に基づいて、リーフ“y==1”の条件式マップ集合から、真偽値“true”となる条件式を全て抽出する。リーフ“y==1”の条件式マップ集合は、{((y==1),true),(¬(y==1),false)}であり、真偽値“true”と組合せられた
条件式は単一の“(y==1)”である。
The truth value rule application unit 102, for example, sets the conditional expression map set of leaf “y == 1” based on the truth value information stored in the “left side” column of the ID = 3 record of the logical product rule Tb1. From this, all conditional expressions having a true / false value “true” are extracted. The conditional expression map set of leaf “y == 1” is {((y == 1), true), (¬ (y == 1), false)}, and is combined with the truth value “true”. The conditional expression is a single “(y == 1)”.

真偽値ルール適用部102は、例えば、論理積ルールTb1のID=3のレコードの「左辺」カラムに対応する条件式として、リーフ“y==1”の条件式マップ集合から、条件式“(y==1)”を抽出する。   The truth value rule application unit 102, for example, from the conditional expression map set of leaf “y == 1” as the conditional expression corresponding to the “left side” column of the record of ID = 3 of the logical product rule Tb1, the conditional expression “ (y == 1) ”is extracted.

次に、真偽値ルール適用部102は、例えば、論理積ルールTb1のID=3のレコードの「右辺」カラムに格納された真偽値情報に基づいて、リーフ“z>1”の条件式マップ
集合から、真偽値“true”となる条件式を全て抽出する。リーフ“z>1”の条件式マップ
集合は、{((z>1),true),(¬(z>1),false)}であり、真偽値“true”と組合せら
れた条件式は単一の“(z>1)”である。
Next, the truth value rule application unit 102, for example, the conditional expression of the leaf “z> 1” based on the truth value information stored in the “right side” column of the record of ID = 3 of the logical product rule Tb1. From the map set, all conditional expressions with a true / false value “true” are extracted. The conditional expression map set of leaf “z> 1” is {((z> 1), true), (¬ (z> 1), false)}, and the conditional expression combined with the truth value “true” Is a single “(z> 1)”.

真偽値ルール適用部102は、例えば、論理積ルールTb1のID=3のレコードの「右辺」カラムに対応する条件式として、リーフ“z>1”の条件式マップ集合から、条件式
“(z>1)”を抽出する。
The truth value rule application unit 102, for example, from the conditional expression map set of leaf “z> 1” as the conditional expression corresponding to the “right side” column of the record of ID = 3 of the logical product rule Tb1, the conditional expression “( z> 1) ”is extracted.

そして、真偽値ルール適用部102は、論理積ルールTb1のID=3のレコードについての、「全体」カラムに格納された真偽値“true”と組となる条件式マップを生成する。条件式マップは、例えば、リーフ“y==1”の条件式マップ集合から抽出された条件式(y==1)、及び、リーフ“z>1”の条件式マップ集合から抽出された条件式(z>1)に基づいて生成される。   Then, the true / false value rule application unit 102 generates a conditional expression map that is paired with the true / false value “true” stored in the “whole” column for the record of ID = 3 of the logical product rule Tb1. The conditional expression map is, for example, a conditional expression (y == 1) extracted from the conditional expression map set of leaf “y == 1” and a conditional expression extracted from the conditional expression map set of leaf “z> 1”. It is generated based on the formula (z> 1).

真偽値ルール適用部102は、例えば、各リーフの条件式マップ集合から抽出された条件式(y==1)と条件式(z>1)とを、合接を表す記号“∧”を用いて結合した、“((y==1) ∧ (z>1))”を生成する。そして、真偽値ルール適用部102は、例えば、論理積ルールTb
1のID=3のレコードの「全体」カラムに格納された真偽値“true”と組合せ、ID=3のレコードの真偽値に対応する条件式マップ“((y==1) ∧ (z>1),true)”を生成する
。生成された条件式マップ“((y==1) ∧ (z>1),true)”は、例えば、論理積ルールTb
1のIDに対応付けられて、主記憶部12の所定の領域に一時的に記憶される。
The truth value rule application unit 102, for example, uses the conditional expression (y == 1) and the conditional expression (z> 1) extracted from the conditional expression map set of each leaf as the symbol “∧” representing the concatenation. To create “((y == 1) ∧ (z> 1))”. Then, the truth value rule application unit 102 performs, for example, the AND rule Tb
Combined with the true / false value “true” stored in the “whole” column of the ID = 3 record of 1 and the conditional expression map “((y == 1) ∧ ( z> 1), true) ”. The generated conditional expression map “((y == 1) ∧ (z> 1), true)” is, for example, a logical product rule Tb
1 is temporarily stored in a predetermined area of the main storage unit 12 in association with one ID.

以上の処理により、図7EのブロックD5に示すように、論理積ルールTb1のID=1−3の論理関係に基づいた各条件式マップが生成される。   Through the above processing, as shown in block D5 in FIG. 7E, each conditional expression map based on the logical relationship of ID = 1-3 of the logical product rule Tb1 is generated.

・条件式マップ集合
図7Eの論理積ルールTb1の、レコード毎に生成した条件式マップに基づいて、真偽値ルール適用部102は、リーフ“y==1”、“z>1”に係る処理プロセスについての真偽
値を反映した条件式マップ集合を生成する。真偽値ルール適用部102は、例えば、ブロックD5に示す各条件式マップに基づいて、ブロックD6に示す条件式マップ集合を生成する。
Conditional Expression Map Set Based on the conditional expression map generated for each record of the logical product rule Tb1 in FIG. 7E, the truth value rule applying unit 102 relates to the leaves “y == 1” and “z> 1”. A set of conditional expression maps reflecting the true / false values of the processing process is generated. For example, the truth value rule application unit 102 generates a conditional expression map set shown in the block D6 based on each conditional expression map shown in the block D5.

真偽値ルール適用部102は、例えば、論理積ルールTb1のレコード毎に生成した条件式マップを組合せ、条件式マップ集合{((y==1) ∧ ¬(z>1),false),(¬(y==1) ∧ (z>1),false),((y==1) ∧(z>1),true)}を生成する。論理積ルールTb1のレコード毎に生成した条件式マップに基づいて生成された、リーフ“y==1”、“z>1”に係る処理プ
ロセスについての真偽値を反映した条件式マップ集合は、例えば、条件式マップ集合DB203に格納される。
For example, the truth value rule application unit 102 combines the conditional expression maps generated for each record of the logical product rule Tb1, and sets the conditional expression map set {(((y == 1)) ¬ (z> 1), false), (¬ (y == 1) ∧ (z> 1), false), ((y == 1) ∧ (z> 1), true)}. A set of conditional expression maps reflecting the true / false values for the processing processes related to the leaves “y == 1” and “z> 1” generated based on the conditional expression map generated for each record of the logical product rule Tb1 is For example, it is stored in the conditional expression map set DB 203.

(第3の真偽値ルール適用処理)
次に、第3の真偽値ルール適用処理では、真偽値ルール適用部102は、例えば、木構造において、下位の処理プロセスの各ノードを結び付けるノード(論理演算子)処理についての、条件式マップ、及び、条件式マップ集合を生成する。
(Third Boolean value rule application process)
Next, in the third true / false value rule application process, the true / false value rule application unit 102 uses, for example, a conditional expression for a node (logical operator) process that links each node of a lower processing process in a tree structure. A map and a conditional expression map set are generated.

図7Fに、第3の真偽値ルール適用処理に係る、判定式C1の木構造についての条件式マップ、条件式マップ集合の生成処理の説明図を例示する。図7Fに例示の木構造において、破線で囲まれた矩形領域に示すように、同一階層に配置された下位ノード(論理積“and”)を結び付ける上位ノードは、論理和“or”である。第3の真偽値ルール適用処理
では、例えば、同一階層に配置された下位ノード毎に生成された条件式マップ集合に基づいて、各下位ノードを結び付ける上位ノード(論理和“or”)処理についての、条件式マップ、及び、条件式マップ集合が生成される。
FIG. 7F illustrates an explanatory diagram of the generation process of the conditional expression map and the conditional expression map set for the tree structure of the determination expression C1 according to the third truth value rule application process. In the tree structure illustrated in FIG. 7F, as shown in a rectangular area surrounded by a broken line, an upper node that connects lower nodes (logical product “and”) arranged in the same hierarchy is a logical “or”. In the third true / false value rule application process, for example, an upper node (logical “or”) process for linking each lower node based on a conditional expression map set generated for each lower node arranged in the same hierarchy. A conditional expression map and a set of conditional expression maps are generated.

図7Fに例示の木構造において、リーフ“x>0”、“z==5”を結び付ける左側の下位ノ
ードで生成された条件式マップ集合は、{((x>0) ∧ ¬(z==5),false),(¬(x>0) ∧ (z==5),false),((x>0) ∧(z==5),true)}である。また、リーフ“y==1”、“z>1”を結
び付ける右側の下位ノードで生成された条件式マップ集合は、{((y==1) ∧ ¬(z>1),false),(¬(y==1) ∧ (z>1),false),((y==1) ∧(z>1),true)}である。
In the tree structure illustrated in FIG. 7F, the conditional expression map set generated at the left lower node connecting the leaves “x> 0” and “z == 5” is {((x> 0) ∧ ¬ (z = = 5), false), (¬ (x> 0) ∧ (z == 5), false), ((x> 0) ∧ (z == 5), true)}. In addition, the conditional expression map set generated at the right lower node connecting the leaves “y == 1” and “z> 1” is {((y == 1) ∧ ¬ (z> 1), false), (¬ (y == 1) ∧ (z> 1), false), ((y == 1) ∧ (z> 1), true)}.

なお、図7Fの説明図において、ブロックD7に示すように、リーフ“x>0”、“z==5
”を結び付ける左側の下位ノードで生成された条件式マップ集合は、“左辺の条件式マップ集合”とも称する。同様にして、ブロックD7に示すように、リーフ“y==1”、“z>1
”を結び付ける右側の下位ノードで生成された条件式マップ集合は、“右辺の条件式マップ集合”とも称する。
In the explanatory diagram of FIG. 7F, the leaf “x> 0”, “z == 5” as shown in the block D7.
The conditional expression map set generated at the left subordinate node that connects "" is also referred to as the "left-side conditional expression map set". Similarly, as shown in block D7, the leaves "y == 1", "z> 1
The conditional expression map set generated at the right-side lower node that ties "is also referred to as the" right-side conditional expression map set ".

また、図7Fの説明図において、論理和ルールTb2は、組合せルールが適用された論理和の真偽値表を表す。論理和ルールTb2の「左辺」カラム、「右辺」カラムに格納された真偽値情報については、図7Cで説明した。なお、以下の説明では、図7Fに例示の
論理和ルールTb2において、「No」カラムに「1」が格納されたレコードを“ID=1のレコード”とも称する。「No」カラムに「2」、「3」が格納されたレコードについても、同様に、“ID=2のレコード”、“ID=3のレコード”とも称する。
In the explanatory diagram of FIG. 7F, a logical sum rule Tb2 represents a truth table of logical sums to which the combination rule is applied. The truth value information stored in the “left side” column and the “right side” column of the logical sum rule Tb2 has been described with reference to FIG. 7C. In the following description, a record in which “1” is stored in the “No” column in the logical sum rule Tb2 illustrated in FIG. 7F is also referred to as “record of ID = 1”. Similarly, records in which “2” and “3” are stored in the “No” column are also referred to as “records with ID = 2” and “records with ID = 3”.

真偽値ルール適用部102は、例えば、真偽値ルールDB201を参照し、処理対象となるノードに対応した真偽値表を取得する。図7Fに例示の木構造において、同一階層に配置された下位ノード(論理積“and”)を結び付ける上位ノードは、論理和“or”であ
る。真偽値ルール適用部102は、例えば、論理和ルールTb2を真偽値ルールDB201から取得し、取得した論理和ルールTb2を主記憶部12の所定の領域に一時的に記憶する。
For example, the truth value rule application unit 102 refers to the truth value rule DB 201 and acquires a truth value table corresponding to the node to be processed. In the tree structure illustrated in FIG. 7F, an upper node that connects lower nodes (logical product “and”) arranged in the same hierarchy is a logical sum “or”. For example, the truth value rule application unit 102 acquires the logical sum rule Tb2 from the truth value rule DB 201, and temporarily stores the acquired logical sum rule Tb2 in a predetermined area of the main storage unit 12.

真偽値ルール適用部102は、例えば、真偽値表の「全体」カラムに格納された真偽値と、「左辺」カラム、「右辺」カラムの真偽値情報を反映させた条件式の結合式とを組合せ、レコード毎の条件式マップを生成する。そして、真偽値ルール適用部102は、例えば、真偽値表のレコード毎に生成された条件式マップから、レコード毎の条件式マップを組合せ、処理対象となるノードの処理プロセスに対する条件式マップ集合を生成する。処理対象となるノードの処理プロセスに対して生成された条件式マップ集合は、例えば、主記憶部12の所定の領域に一時的に記憶される。   For example, the truth value rule application unit 102 is a conditional expression that reflects the truth value stored in the “whole” column of the truth value table and the truth value information of the “left side” column and the “right side” column. Combine with the join formula to generate a conditional formula map for each record. Then, the truth value rule application unit 102 combines, for example, a conditional expression map for each record from a conditional expression map generated for each record of the truth table, and a conditional expression map for the processing process of the node to be processed. Create a set. The set of conditional expression maps generated for the processing process of the node to be processed is temporarily stored in a predetermined area of the main storage unit 12, for example.

・論理和ルール1
図7Fの論理和ルールTb2において、ID=1のレコードの「左辺」カラムには真偽値情報(true,1)が格納され、「右辺」カラムには真偽値情報(false,0)が格納さ
れている。ここで、「左辺」カラムは、例えば、処理対象となる上位ノードで結び付けられる左側の下位ノードの条件式マップ集合に対応し、「左辺」カラムは、処理対象となる上位ノードで結び付けられる右側の下位ノードの条件式マップ集合に対応する。
・ OR rule 1
In the logical sum rule Tb2 of FIG. 7F, truth value information (true, 1) is stored in the “left side” column of the record of ID = 1, and truth value information (false, 0) is stored in the “right side” column. Stored. Here, the “left side” column corresponds to, for example, the conditional expression map set of the left lower node that is linked by the upper node that is the processing target, and the “left side” column is the right side that is linked by the upper node that is the processing target. Corresponds to the set of conditional expression maps of lower nodes.

このため、「左辺」カラムに対応する左側の下位ノードの条件式マップ集合の真偽値には組合せルール2が適用され、「右辺」カラムに対応する右側の下位ノードの条件式マップ集合の真偽値には組合せルール1が適用される。   Therefore, the combination rule 2 is applied to the truth value of the conditional expression map set of the left lower node corresponding to the “left side” column, and the truth of the conditional expression map set of the right lower node corresponding to the “right side” column is applied. Combination rule 1 is applied to the false value.

真偽値ルール適用部102は、例えば、論理和ルールTb2のID=1のレコードの「左辺」カラムに格納された真偽値情報に基づいて、左側の下位ノードの条件式マップ集合から、真偽値“true”となる条件式を全て抽出する。ここで、左側の下位ノードの条件式マップ集合は、{((x>0) ∧ ¬(z==5),false),(¬(x>0) ∧ (z==5),false),((x>0)
∧(z==5),true)}であり、真偽値“true”と組合せられた条件式は、単一の“(x>0) ∧ (z==5)”である。
The truth value rule application unit 102, for example, from the conditional expression map set of the left lower node based on the truth value information stored in the “left side” column of the ID = 1 record of the logical sum rule Tb2. Extract all conditional expressions that have the false value “true”. Here, the conditional expression map set of the lower left node is {((x> 0) ¬ ¬ (z == 5), false), (¬ (x> 0) ∧ (z == 5), false) , ((X> 0)
∧ (z == 5), true)}, and the conditional expression combined with the truth value “true” is a single “(x> 0) ∧ (z == 5)”.

真偽値ルール適用部102は、例えば、論理和ルールTb2のID=1のレコードの「左辺」カラムに対応する条件式として、左側の下位ノードの条件式マップ集合から、条件式“(x>0) ∧ (z==5)”を抽出する。   For example, the truth value rule application unit 102 uses the conditional expression “(x>) from the conditional expression map set of the left lower node as a conditional expression corresponding to the“ left side ”column of the ID = 1 record of the logical sum rule Tb2. 0) ∧ (z == 5) ”is extracted.

次に、真偽値ルール適用部102は、例えば、論理和ルールTb2のID=1のレコードの「右辺」カラムに格納された真偽値情報に基づいて、右側の下位ノードの条件式マップ集合から、真偽値“false”となる条件式を選択演算子を用いて結合し、抽出する。   Next, the truth value rule application unit 102, for example, sets the conditional expression map set of the lower right node based on the truth value information stored in the “right side” column of the record of ID = 1 of the logical sum rule Tb2. From the above, the conditional expressions for which the truth value is “false” are combined and extracted using a selection operator.

ここで、右側の下位ノードで生成された条件式マップ集合は、{((y==1) ∧ ¬(z>1),false),(¬(y==1) ∧ (z>1),false),((y==1) ∧(z>1),true)}である。真偽値“false”と組合せられた条件式は複数に存在し、“(y==1) ∧ ¬(z>1)”、“¬(y==1) ∧ (z>1)”の2通りである。このため、真偽値ルール適用部102では、例えば、真偽値“false”と組合せられた複数の条件式が選択演算子“||”を用いて結合され、結合された条件式
“((y==1) ∧ ¬(z>1) ||¬(y==1) ∧ (z>1))”が抽出されることとなる。
Here, the set of conditional expression maps generated at the lower right node is {((y == 1) ∧ ¬ (z> 1), false), (¬ (y == 1) ∧ (z> 1) , False), ((y == 1) ∧ (z> 1), true)}. There are multiple conditional expressions that are combined with the truth value “false”, and they are “(y == 1) ∧ ¬ (z> 1)”, “¬ (y == 1) ∧ (z> 1)” There are two ways. Therefore, in the truth value rule application unit 102, for example, a plurality of conditional expressions combined with a true value “false” are combined using the selection operator “||”, and the combined conditional expression “(( y == 1) ∧ ¬ (z> 1) || ¬ (y == 1) ∧ (z> 1)) ”is extracted.

真偽値ルール適用部102は、例えば、論理和ルールTb2のID=1のレコードの「右辺」カラムに対応する条件式として、右側の下位ノードの条件式マップ集合から、選択演算子を用いて結合した条件式“((y==1) ∧ ¬(z>1)||¬(y==1) ∧ (z>1))”を抽出する。   The truth value rule application unit 102 uses, for example, a selection operator from the conditional expression map set of the right lower node as a conditional expression corresponding to the “right side” column of the record of ID = 1 of the logical sum rule Tb2. The combined conditional expression “((y == 1) ∧¬ (z> 1) || ¬ (y == 1) = 1 (z> 1))” is extracted.

そして、真偽値ルール適用部102は、論理和ルールTb2のID=1のレコードについての、「全体」カラムに格納された真偽値“true”と組となる条件式マップを生成する。条件式マップは、例えば、左側の下位ノードの条件式マップ集合から抽出された条件式“(x>0) ∧ (z==5)”、及び、右側の下位ノードの条件式マップ集合から抽出された条件
式“((y==1) ∧ ¬(z>1) ||¬(y==1) ∧ (z>1))”に基づいて生成される。
Then, the true / false value rule application unit 102 generates a conditional expression map paired with the true / false value “true” stored in the “whole” column for the record of ID = 1 of the logical sum rule Tb2. The conditional expression map is extracted from, for example, the conditional expression “(x> 0) ∧ (z == 5)” extracted from the conditional expression map set of the left lower node and the conditional expression map set of the right lower node. Is generated based on the conditional expression “((y == 1) ∧¬ (z> 1) || ¬ (y == 1) ∧ (z> 1))”.

真偽値ルール適用部102は、例えば、各下位ノードの条件式マップ集合から抽出された条件式を、合接を表す記号“∧”を用いて結合した、“(x>0) ∧ (z==5) ∧((y==1) ∧
¬(z>1) ||¬(y==1) ∧ (z>1))”を生成する。
For example, the truth value rule application unit 102 combines “(x> 0) ∧ (z) by combining the conditional expressions extracted from the conditional expression map set of each lower node using the symbol“ ∧ ”representing the concatenation. == 5) ∧ ((y == 1) ∧
¬ (z> 1) || ¬ (y == 1) ∧ (z> 1)) ”.

そして、真偽値ルール適用部102は、例えば、論理和ルールTb2のID=1のレコードの「全体」カラムに格納された真偽値“true”と組合せ、ID=1のレコードの真偽値に対応する条件式マップを生成する。論理和ルールTb2のID=1のレコードでは、ブロックD8に示すように、条件式マップ“((x>0) ∧ (z==5) ∧ ((y==1) ∧ ¬(z>1)||¬(y==1) ∧ (z>1)),true)”が生成される。   Then, the truth value rule application unit 102 combines the truth value “true” stored in the “whole” column of the record with ID = 1 of the logical sum rule Tb2, for example, and the truth value of the record with ID = 1. A conditional expression map corresponding to is generated. In the record of ID = 1 of the logical sum rule Tb2, as shown in the block D8, the conditional expression map “((x> 0) ∧ (z == 5) ∧ ((y == 1) ∧ ¬ (z> 1 ) || ¬ (y == 1) ∧ (z> 1)), true) ”is generated.

生成された条件式マップ“((x>0) ∧ (z==5)) ∧ ((y==1) ∧ ¬(z>1) ||¬(y==1) ∧(z>1)),true)”は、例えば、論理和ルールTb2のIDに対応付けられて、主記憶部12の所定の領域に一時的に記憶される。   Generated conditional expression map “((x> 0) ∧ (z == 5)) ∧ ((y == 1) ∧ ¬ (z> 1) || ¬ (y == 1) ∧ (z> 1 )), True) ”are temporarily stored in a predetermined area of the main storage unit 12 in association with the ID of the logical sum rule Tb2, for example.

・論理和ルール2
図7Fの論理和ルールTb2において、ID=2のレコードの「左辺」カラムには真偽値情報(false,0)が格納され、「右辺」カラムには真偽値情報(true,1)が格納さ
れている。このため、「左辺」カラムに対応する左側の下位ノードの条件式マップ集合の真偽値には組合せルール1が適用され、「右辺」カラムに対応する右側の下位ノードの条件式マップ集合の真偽値には組合せルール2が適用されることとなる。
・ OR rule 2
In the logical sum rule Tb2 of FIG. 7F, truth value information (false, 0) is stored in the “left side” column of the record of ID = 2, and truth value information (true, 1) is stored in the “right side” column. Stored. Therefore, the combination rule 1 is applied to the truth value of the conditional expression map set of the left lower node corresponding to the “left side” column, and the truth of the conditional expression map set of the right lower node corresponding to the “right side” column is applied. The combination rule 2 is applied to the false value.

真偽値ルール適用部102は、例えば、論理和ルールTb2のID=2のレコードの「左辺」カラムに格納された真偽値情報に基づいて、左側の下位ノードの条件式マップ集合から、真偽値“false”となる条件式を選択演算子を用いて結合し、抽出する。   The truth value rule application unit 102, for example, from the conditional expression map set of the lower left node based on the truth value information stored in the “left side” column of the record of ID = 2 of the logical sum rule Tb2. A conditional expression with a false value “false” is combined and extracted using a selection operator.

ここで、左側の下位ノードの条件式マップ集合は、{((x>0) ∧ ¬(z==5),false),(
¬(x>0) ∧ (z==5),false),((x>0) ∧(z==5),true)}である。真偽値“false”と組合せられた条件式は複数に存在し、“(x>0) ∧ ¬(z==5)”、“¬(x>0) ∧ (z==5)”の2通りである。このため、真偽値ルール適用部102では、例えば、真偽値“false”と組合
せられた複数の条件式が選択演算子“||”を用いて結合され、結合された条件式“((x>0)
∧ ¬(z==5)||¬(x>0) ∧ (z==5))”が抽出されることとなる。
Here, the conditional expression map set of the lower left node is {((x> 0) ∧ ¬ (z == 5), false), (
¬ (x> 0) ∧ (z == 5), false), ((x> 0) ∧ (z == 5), true)}. There are multiple conditional expressions that are combined with the truth value “false”, and “(x> 0) ¬ ¬ (z == 5)”, “¬ (x> 0) ∧ (z == 5)” There are two ways. Therefore, in the truth value rule application unit 102, for example, a plurality of conditional expressions combined with a true value “false” are combined using the selection operator “||”, and the combined conditional expression “(( x> 0)
¬ ¬ (z == 5) || ¬ (x> 0) ∧ (z == 5)) ”is extracted.

真偽値ルール適用部102は、例えば、論理和ルールTb2のID=2のレコードの「左辺」カラムに対応する条件式として、左側の下位ノードの条件式マップ集合から、選択演算子を用いて結合した条件式“((x>0) ∧ ¬(z==5)||¬(x>0) ∧ (z==5))”を抽出する。   The truth value rule application unit 102 uses, for example, a selection operator from the conditional expression map set of the left lower node as the conditional expression corresponding to the “left side” column of the record of ID = 2 of the logical sum rule Tb2. The combined conditional expression “((x> 0) ∧¬ (z == 5) || ¬ (x> 0) ∧ (z == 5))” is extracted.

次に、真偽値ルール適用部102は、例えば、論理和ルールTb2のID=1のレコードの「右辺」カラムに格納された真偽値情報に基づいて、右側の下位ノードの条件式マップ集合から、真偽値“true”となる条件式を全て抽出する。ここで、右側の下位ノードで生成された条件式マップ集合は、{((y==1) ∧ ¬(z>1),false),(¬(y==1) ∧ (z>1),false),((y==1) ∧(z>1),true)}であり、真偽値“true”と組合せられた条件式は、単一の“(y==1) ∧ (z>1)”である。   Next, the truth value rule application unit 102, for example, sets the conditional expression map set of the lower right node based on the truth value information stored in the “right side” column of the record of ID = 1 of the logical sum rule Tb2. From this, all conditional expressions having a true / false value “true” are extracted. Here, the set of conditional expression maps generated at the lower right node is {((y == 1) ∧ ¬ (z> 1), false), (¬ (y == 1) ∧ (z> 1) , False), ((y == 1) ∧ (z> 1), true)}, and the conditional expression combined with the true value “true” is a single “(y == 1) ∧ ( z> 1) ”.

真偽値ルール適用部102は、例えば、論理和ルールTb2のID=2のレコードの「右辺」カラムに対応する条件式として、右側の下位ノードの条件式マップ集合から、条件式“(y==1) ∧ (z>1)”を抽出する。   The truth value rule application unit 102, for example, from the conditional expression map set of the right lower node as the conditional expression corresponding to the “right side” column of the record of ID = 2 of the logical sum rule Tb2, the conditional expression “(y = = 1) Extract ∧ (z> 1) ”.

そして、真偽値ルール適用部102は、論理和ルールTb2のID=2のレコードについての、「全体」カラムに格納された真偽値“true”と組となる条件式マップを生成する。条件式マップは、例えば、左側の下位ノードの条件式マップ集合から抽出された条件式“((x>0) ∧ ¬(z==5)||¬(x>0) ∧ (z==5))”、及び、右側の下位ノードの条件式マップ集合から抽出された条件式“(y==1) ∧ (z>1)”に基づいて生成される。   Then, the truth value rule application unit 102 generates a conditional expression map that is paired with the truth value “true” stored in the “whole” column for the record of ID = 2 of the logical sum rule Tb2. The conditional expression map is, for example, a conditional expression “((x> 0) ∧ ¬ (z == 5) || ¬ (x> 0) ∧ (z == 5)) ”and the conditional expression“ (y == 1) ∧ (z> 1) ”extracted from the conditional expression map set of the lower right node.

真偽値ルール適用部102は、例えば、各下位ノードの条件式マップ集合から抽出された条件式を、合接を表す記号“∧”を用いて結合した、“((x>0) ∧ ¬(z==5)||¬(x>0) ∧ (z==5)) ∧(y==1) ∧ (z>1)”を生成する。   The truth value rule application unit 102 combines, for example, the conditional expressions extracted from the conditional expression map set of each lower node by using the symbol “∧” representing the concatenation, “((x> 0) ∧ ¬ (z == 5) || ¬ (x> 0) ∧ (z == 5)) ∧ (y == 1) ∧ (z> 1) ”.

そして、真偽値ルール適用部102は、例えば、論理和ルールTb2のID=2のレコードの「全体」カラムに格納された真偽値“true”と組合せ、ID=2のレコードの真偽値に対応する条件式マップを生成する。論理和ルールTb2のID=2のレコードでは、ブロックD8に示すように、条件式マップ“(((x>0) ∧ ¬(z==5)||¬(x>0) ∧ (z==5)) ∧(y==1) ∧ (z>1),true)”が生成される。   Then, the truth value rule application unit 102 combines the truth value “true” stored in the “whole” column of the record of ID = 2 of the logical sum rule Tb2, for example, and the truth value of the record of ID = 2 A conditional expression map corresponding to is generated. In the record of ID = 2 of the logical sum rule Tb2, as shown in the block D8, the conditional expression map “(((x> 0) ∧ ¬ (z == 5) || ¬ (x> 0) ∧ (z = = 5)) ∧ (y == 1) ∧ (z> 1), true) ”is generated.

生成された条件式マップ“(((x>0) ∧ ¬(z==5)||¬(x>0) ∧(z==5)) ∧ (y==1) ∧ (z>1),true)”は、例えば、論理和ルールTb2のIDに対応付けられて、主記憶部12の所定の領域に一時的に記憶される。   Generated conditional expression map “((((x> 0) ∧ ¬ (z == 5) || ¬ (x> 0) ∧ (z == 5)) ∧ (y == 1) ∧ (z> 1 ), True) ”is temporarily stored in a predetermined area of the main storage unit 12 in association with the ID of the logical sum rule Tb2, for example.

・論理和ルール3
図7Fの論理和ルールTb2において、ID=3のレコードの「左辺」カラムには真偽値情報(false,1)が格納され、「右辺」カラムには真偽値情報(false,1)が格納されている。このため、「左辺」カラムに対応する左側の下位ノードの条件式マップ集合の真偽値、及び、「右辺」カラムに対応する右側の下位ノードの条件式マップ集合の真偽値には組合せルール2が適用されることとなる。
・ OR rule 3
In the logical sum rule Tb2 of FIG. 7F, truth value information (false, 1) is stored in the “left side” column of the record with ID = 3, and truth value information (false, 1) is stored in the “right side” column. Stored. For this reason, the combination rule is applied to the truth value of the conditional expression map set of the left lower node corresponding to the “left side” column and the truth value of the conditional expression map set of the right lower node corresponding to the “right side” column. 2 will be applied.

真偽値ルール適用部102は、例えば、論理和ルールTb2のID=3のレコードの「左辺」カラムに格納された真偽値情報に基づいて、左側の下位ノードの条件式マップ集合から、真偽値“false”となる条件式を全て抽出する。   The truth value rule application unit 102, for example, from the conditional expression map set of the left lower node based on the truth value information stored in the “left side” column of the record of ID = 3 of the logical sum rule Tb2. Extract all conditional expressions that have a false value “false”.

ここで、左側の下位ノードの条件式マップ集合は、{((x>0) ∧ ¬(z==5),false),(
¬(x>0) ∧ (z==5),false),((x>0) ∧(z==5),true)}である。真偽値“false”と組合せられた条件式は、{(x>0) ∧ ¬(z==5),¬(x>0) ∧ (z==5)}の2通りである。このため、真偽値ルール適用部102では、例えば、真偽値“false”と組合せられた2通りの
条件式が全て抽出されることとなる。なお、真偽値“false”と組合せられた2通りの条
件式は、例えば、記号“{}”を用いた集合形式で抽出される。
Here, the conditional expression map set of the lower left node is {((x> 0) ∧ ¬ (z == 5), false), (
¬ (x> 0) ∧ (z == 5), false), ((x> 0) ∧ (z == 5), true)}. There are two conditional expressions combined with the truth value “false”: {(x> 0) 0¬ (z == 5), ¬ (x> 0) ∧ (z == 5)}. For this reason, in the truth value rule application unit 102, for example, all the two conditional expressions combined with the truth value “false” are extracted. Note that the two conditional expressions combined with the true / false value “false” are extracted, for example, in a set format using the symbol “{}”.

真偽値ルール適用部102は、例えば、論理和ルールTb2のID=3のレコードの「
左辺」カラムに対応する条件式として、左側の下位ノードの条件式マップ集合から、条件式の集合形式で表された“{(x>0) ∧ ¬(z==5),¬(x>0) ∧ (z==5)}”を抽出する。
The truth value rule application unit 102, for example, ““ of the record of ID = 3 of the logical sum rule Tb2 ”
As a conditional expression corresponding to the “left-hand side” column, “{(x> 0) ∧ ¬ (z == 5), ¬ (x> 0) ∧ (z == 5)} ”is extracted.

次に、真偽値ルール適用部102は、例えば、論理和ルールTb2のID=3のレコードの「右辺」カラムに格納された真偽値情報に基づいて、右側の下位ノードの条件式マップ集合から、真偽値“false”となる条件式を全て抽出する。   Next, the truth value rule application unit 102, for example, sets the conditional expression map set of the lower-level node on the right based on the truth value information stored in the “right side” column of the record of ID = 3 of the logical sum rule Tb2. From this, all conditional expressions having a true / false value “false” are extracted.

ここで、右側の下位ノードで生成された条件式マップ集合は、{((y==1) ∧ ¬(z>1),false),(¬(y==1) ∧ (z>1),false),((y==1) ∧(z>1),true)}である。真偽値“false”と組合せられた条件式は、{(y==1) ∧ ¬(z>1),¬(y==1) ∧ (z>1)}の2通りであ
る。このため、真偽値ルール適用部102では、例えば、右側の下位ノードにおいても、真偽値“false”と組合せられた2通りの条件式が全て抽出されることとなる。真偽値“false”と組合せられた2通りの条件式は、例えば、記号“{}”を用いた集合形式で抽出される。
Here, the set of conditional expression maps generated at the lower right node is {((y == 1) ∧ ¬ (z> 1), false), (¬ (y == 1) ∧ (z> 1) , False), ((y == 1) ∧ (z> 1), true)}. There are two conditional expressions combined with the truth value “false”: {(y == 1) = 1¬ (z> 1), ¬ (y == 1) ∧ (z> 1)}. For this reason, the true / false value rule applying unit 102 extracts all the two conditional expressions combined with the true / false value “false” even in the lower-level node on the right side, for example. The two conditional expressions combined with the true / false value “false” are extracted in a set form using the symbol “{}”, for example.

真偽値ルール適用部102は、例えば、論理和ルールTb2のID=3のレコードの「右辺」カラムに対応する条件式として、右側の下位ノードの条件式マップ集合から、条件式の集合形式で表された“{(y==1) ∧ ¬(z>1),¬(y==1) ∧ (z>1)}”を抽出する。   The truth value rule application unit 102, for example, from the conditional expression map set of the lower right node as a conditional expression corresponding to the “right side” column of the ID = 3 record of the logical sum rule Tb2 in the form of a conditional expression set. “{(Y == 1) ∧¬ (z> 1), ¬ (y == 1) ∧ (z> 1)}” is extracted.

そして、真偽値ルール適用部102は、例えば、論理和ルールTb2のID=3のレコードの「全体」カラムに格納された真偽値“false”と組合せ、ID=3のレコードの真
偽値に対応する条件式マップを生成する。なお、論理和ルールTb2のID=3では、左側の下位ノードについて2通りの条件式が抽出され、右側の下位ノードについても2通りの条件式が抽出されている。このため、論理和ルールTb2のID=3では、各下位ノードで抽出された条件式の組合せである、条件式2×条件式2=4通りの条件式の組合せが生成される。真偽値ルール適用部102は、例えば、各下位ノードで抽出された条件式の組合せから生成された4通りの条件式のそれぞれについて、論理和ルールTb2のID=3のレコードの「全体」カラムに格納された真偽値“false”を組合せ、条件式マップを
生成する。
Then, the truth value rule application unit 102 combines the truth value “false” stored in the “whole” column of the record with ID = 3 of the logical sum rule Tb2, for example, and the truth value of the record with ID = 3. A conditional expression map corresponding to is generated. Note that, with ID = 3 of the logical sum rule Tb2, two conditional expressions are extracted for the left lower node, and two conditional expressions are extracted for the right lower node. For this reason, with ID = 3 of the logical sum rule Tb2, conditional expression 2 × conditional expression 2 = 4 combinations of conditional expressions that are combinations of conditional expressions extracted at each lower node are generated. The truth value rule application unit 102, for example, for each of the four conditional expressions generated from the combination of conditional expressions extracted at each lower node, the “whole” column of the record of ID = 3 of the logical sum rule Tb2 The conditional expression map is generated by combining the truth values “false” stored in.

真偽値ルール適用部102は、例えば、条件式の集合形式で表された“{(x>0) ∧ ¬(z==5),¬(x>0) ∧ (z==5)}”及び“{(y==1) ∧ ¬(z>1),¬(y==1) ∧(z>1)}”をそ
れぞれに組合せ、4通りの条件式を生成する。生成される条件式は、“((x>0) ∧ ¬(z==5)) ∧ ((y==1) ∧ ¬(z>1))”、“((x>0) ∧ ¬(z==5)) ∧ (¬(y==1) ∧ (z>1))”、“(¬(x>0) ∧ (z==5)) ∧ ((y==1) ∧ ¬(z>1))”、“(¬(x>0) ∧ (z==5)) ∧ (¬(y==1)
∧ (z>1))”の4通りである。
The truth value rule application unit 102 represents, for example, “{(x> 0) ∧ ¬ (z == 5), ¬ (x> 0) ∧ (z == 5)} expressed in a set of conditional expressions. ”And“ {(y == 1) ∧¬ (z> 1), ¬ (y == 1) ∧ (z> 1)} ”are respectively combined to generate four conditional expressions. The generated conditional expressions are “((x> 0) ∧ ¬ (z == 5)) ∧ ((y == 1) ∧ ¬ (z> 1))”, “((x> 0) ∧ ¬ (z == 5)) ∧ (¬ (y == 1) ∧ (z> 1)) ”,“ (¬ (x> 0) ∧ (z == 5)) ∧ ((y == 1) ∧ ¬ (z> 1)) ”,“ (¬ (x> 0) ∧ (z == 5)) ∧ (¬ (y == 1)
∧ (z> 1)) ”.

そして、真偽値ルール適用部102は、例えば、ブロックD8に示すように、4通りの条件式のそれぞれに真偽値“false”を組合せた条件式マップを生成する。生成された条
件式マップは、例えば、記号“{}”を用いた集合形式で、以下に示すように表される。
Then, the true / false value rule application unit 102 generates a conditional expression map in which each of the four conditional expressions is combined with the true / false value “false”, as shown in block D8, for example. The generated conditional expression map is expressed as follows, for example, in a set form using the symbol “{}”.

条件式マップ:{((x>0) ∧ ¬(z==5) ∧ (y==1) ∧ ¬(z>1),false),((x>0) ∧ ¬(z==5) ∧ ¬(y==1) ∧ (z>1),false),(¬(x>0) ∧ (z==5) ∧ (y==1) ∧ ¬(z>1),false),(¬(x>0) ∧ (z==5) ∧ ¬(y==1) ∧(z>1),false)}
真偽値ルール適用部102は、例えば、論理和ルールTb2のID=3のレコードの真偽値を反映して生成された条件式マップを、例えば、論理和ルールTb2のIDに対応付けて、主記憶部12の所定の領域に一時的に記憶する。
Conditional expression map: {((x> 0) ∧ ¬ (z == 5) ∧ (y == 1) ∧ ¬ (z> 1), false), ((x> 0) ∧ ¬ (z == 5 ) ∧ ¬ (y == 1) ∧ (z> 1), false), (¬ (x> 0) ∧ (z == 5) ∧ (y == 1) ∧ ¬ (z> 1), false) , (¬ (x> 0) ∧ (z == 5) ∧ ¬ (y == 1) ∧ (z> 1), false)}
For example, the truth value rule application unit 102 associates the conditional expression map generated by reflecting the truth value of the record of ID = 3 of the logical sum rule Tb2 with, for example, the ID of the logical sum rule Tb2, The data is temporarily stored in a predetermined area of the main storage unit 12.

・条件式マップ集合
図7Fの論理和ルールTb2の、レコード毎に生成した条件式マップに基づいて、真偽
値ルール適用部102は、同一階層に配置された複数の下位ノードを結び付ける上位ノードの処理プロセスに対する、真偽値を反映した条件式マップ集合を生成する。真偽値ルール適用部102は、例えば、ブロックD8に示す各条件式マップに基づいて、ブロックD9に示す条件式マップ集合を生成する。
Conditional expression map set Based on the conditional expression map generated for each record of the logical sum rule Tb2 in FIG. 7F, the truth value rule application unit 102 sets the upper node that connects a plurality of lower nodes arranged in the same hierarchy. A set of conditional expression maps reflecting the truth value for the processing process is generated. For example, the truth value rule application unit 102 generates a conditional expression map set shown in the block D9 based on each conditional expression map shown in the block D8.

真偽値ルール適用部102は、例えば、論理和ルールTb2のレコード毎に生成した条件式マップを組合せ、以下に示す条件式マップ集合を生成する。なお、生成された条件式マップ集合は、例えば、条件式マップ集合DB203に格納される。   For example, the truth value rule application unit 102 combines the conditional expression maps generated for each record of the logical sum rule Tb2, and generates a conditional expression map set shown below. The generated conditional expression map set is stored in the conditional expression map set DB 203, for example.

条件式マップ集合:{((x>0) ∧ (z==5) ∧ ((y==1) ∧ ¬(z>1)||¬(y==1) ∧(z>1))
,true)、(((x>0) ∧ ¬(z==5)||¬(x>0) ∧ (z==5)) ∧ (y==1) ∧(z>1),true)、((x>0) ∧ ¬(z==5) ∧ (y==1) ∧ ¬(z>1),false)、((x>0) ∧ ¬(z==5) ∧ ¬(y==1) ∧ (z>1),false)、(¬(x>0) ∧ (z==5) ∧(y==1) ∧ ¬(z>1),false)、(¬(x>0) ∧ (z==5) ∧ ¬(y==1) ∧ (z>1),false)}
Conditional expression map set: {((x> 0) ∧ (z == 5) ∧ ((y == 1) ∧ ¬ (z> 1) || ¬ (y == 1) ∧ (z> 1))
, True), (((x> 0) ∧ ¬ (z == 5) || ¬ (x> 0) ∧ (z == 5)) ∧ (y == 1) ∧ (z> 1), true ), ((X> 0) ∧ ¬ (z == 5) ∧ (y == 1) ∧ ¬ (z> 1), false), ((x> 0) ∧ ¬ (z == 5) ∧ ¬ (y == 1) ∧ (z> 1), false), (¬ (x> 0) ∧ (z == 5) ∧ (y == 1) ∧ ¬ (z> 1), false), (¬ (x> 0) ∧ (z == 5) ∧ ¬ (y == 1) ∧ (z> 1), false)}

(第4の真偽値ルール適用処理)
第4の真偽値ルール適用処理では、真偽値ルール適用部102は、例えば、木構造において、最上位の処理プロセスのノード(論理演算子)処理についての条件式マップ、条件式マップ集合を生成する。真偽値ルール適用処理部102は、例えば、第3の真偽値ルール適用処理の処理対象となったノードと同一階層に配置されたリーフとを結び付ける最上位のノード(論理積“and”)の処理プロセスについての条件式マップ、条件式マップ集
合を生成する。
(Fourth Truth Value Rule Application Process)
In the fourth truth value rule application process, the truth value rule application unit 102 uses, for example, a conditional expression map and a conditional expression map set for a node (logical operator) process of the highest processing process in a tree structure. Generate. The truth value rule application processing unit 102, for example, the highest node (logical product “and”) that connects the node that is the processing target of the third truth value rule application processing and the leaf arranged in the same hierarchy. A conditional expression map and a conditional expression map set for the processing process are generated.

図7Gに、第4の真偽値ルール適用処理に係る、判定式C1の木構造についての条件式マップ、条件式マップ集合の生成処理の説明図を例示する。図7Gに例示の木構造において、第3の真偽値ルール適用処理の処理対象となったノードと同一階層に配置されたリーフは、破線で囲まれた矩形領域に示すように、リーフ“y>0”である。真偽値ルール適用
部102は、例えば、判定式二分木DB202を参照し、図7Gに例示の木構造から、リーフ“y>0”を特定し、リーフ“y>0”についての条件式マップ、条件式マップ集合を生成する。
FIG. 7G illustrates an explanatory diagram of the generation process of the conditional expression map and the conditional expression map set for the tree structure of the determination expression C1 according to the fourth truth value rule application process. In the tree structure illustrated in FIG. 7G, the leaf arranged in the same hierarchy as the node that is the processing target of the third truth value rule application process is the leaf “y” as shown in the rectangular area surrounded by the broken line. > 0 ”. The truth value rule application unit 102 refers to, for example, the determination expression binary tree DB 202, identifies the leaf “y> 0” from the tree structure illustrated in FIG. 7G, and the conditional expression map for the leaf “y> 0” A conditional expression map set is generated.

真偽値ルール適用部102は、例えば、リーフ“y>0”について、“真(true)”の真
偽値との組合せの条件式マップ((y>0),true)を生成し、“偽(false)の真偽値との組合せの条件式マップ(¬(y>0),false)を生成する。そして、真偽値ルール適用部102は、例えば、リーフ“(y>0)”について生成した各条件式マップを組合せ、ブロックD10
に示す条件式マップ集合{((y>0),true),(¬(y>0),false)}を生成する。真偽値
ルール適用部102は、例えば、リーフ“y>0”について生成された条件式マップ集合{
((y>0),true),(¬(y>0),false)}を、主記憶部12の所定の領域に一時的に記憶
する。
For example, for the leaf “y> 0”, the truth value rule application unit 102 generates a conditional expression map ((y> 0), true) in combination with the truth value of “true”. A conditional expression map (¬ (y> 0), false) in combination with a false value is generated, and the truth value rule application unit 102, for example, leaves “(y> 0)”. Combining the conditional expression maps generated for the block D10
A conditional expression map set {((y> 0), true), (¬ (y> 0), false)} is generated. The truth value rule application unit 102, for example, sets of conditional expression maps {{>
((Y> 0), true), (¬ (y> 0), false)} are temporarily stored in a predetermined area of the main storage unit 12.

真偽値ルール適用部102は、例えば、第3の真偽値ルール適用処理で生成された条件式マップ集合、及び、リーフ“y>0”で生成された条件式マップ集合に基づいて、最上位
のノードの処理プロセスについての真偽値を反映した条件式マップ集合を生成する。
The truth value rule application unit 102, for example, based on the conditional expression map set generated by the third truth value rule application process and the conditional expression map set generated by the leaf “y> 0”, A set of conditional expression maps reflecting the truth value about the processing process of the upper node is generated.

図7Hに、最上位のノードについての処理プロセスに係る、真偽値を反映した条件式マップ集合の説明図を例示する。なお、図7Hの説明図において、第3の真偽値ルール適用処理で生成された条件式マップ集合は、ブロックD9に示すように“左辺の条件式マップ集合”とも称する。また、リーフ“y>0”で生成された条件式マップ集合は、ブロックD
10に示すように“右辺の条件式マップ集合”とも称する。
FIG. 7H illustrates an explanatory diagram of a conditional expression map set reflecting a true / false value related to the processing process for the highest node. In the explanatory diagram of FIG. 7H, the conditional expression map set generated by the third true / false value rule application process is also referred to as a “left-side conditional expression map set” as indicated by a block D9. The set of conditional expression maps generated with leaf “y> 0” is the block D
As shown in FIG. 10, it is also referred to as a “right-side conditional expression map set”.

ここで、リーフ“y>0”で生成された条件式マップ集合は、{((y>0),true),(¬(y>0),false)}である。また、第3の真偽値ルール適用処理で生成された条件式マップ集合は、以下の通りである。   Here, the conditional expression map set generated with leaf “y> 0” is {((y> 0), true), (¬ (y> 0), false)}. The conditional expression map set generated by the third truth value rule application process is as follows.

第3の真偽値ルール適用処理で生成された条件式マップ集合:{((x>0) ∧ (z==5) ∧ ((y==1) ∧ ¬(z>1)||¬(y==1) ∧(z>1)),true)、(((x>0) ∧ ¬(z==5)||¬(x>0) ∧ (z==5)) ∧ (y==1) ∧(z>1),true)、((x>0) ∧ ¬(z==5) ∧ (y==1) ∧ ¬(z>1),false)
、((x>0) ∧ ¬(z==5) ∧ ¬(y==1) ∧ (z>1),false)、(¬(x>0) ∧ (z==5) ∧(y==1)
∧ ¬(z>1),false)、(¬(x>0) ∧ (z==5) ∧ ¬(y==1) ∧ (z>1),false)}
また、図7Hの説明図において、論理積ルールTb1は、図7C等に例示の、組合せルールが適用された論理積の真偽値表を表す。なお、以下の説明では、図7Fに例示の論理積ルールTb1において、「No」カラムに「1」が格納されたレコードを“ID=1のレコード”とも称する。「No」カラムに「2」、「3」が格納されたレコードについても、同様に、“ID=2のレコード”、“ID=3のレコード”とも称する。
Conditional expression map set generated by the third truth value rule application process: {((x> 0) ∧ (z == 5) ∧ ((y == 1) ∧ ¬ (z> 1) || ¬ (y == 1) ∧ (z> 1)), true), (((x> 0) ∧ ¬ (z == 5) || ¬ (x> 0) ∧ (z == 5)) ∧ ( y == 1) ∧ (z> 1), true), ((x> 0) ∧ ¬ (z == 5) ∧ (y == 1) ∧ ¬ (z> 1), false)
, ((X> 0) ∧ ¬ (z == 5) ∧ ¬ (y == 1) ∧ (z> 1), false), (¬ (x> 0) ∧ (z == 5) ∧ (y == 1)
∧ ¬ (z> 1), false), (¬ (x> 0) ∧ (z == 5) ∧ ¬ (y == 1) ∧ (z> 1), false)}
In the explanatory diagram of FIG. 7H, the logical product rule Tb1 represents a truth table of the logical product to which the combination rule is applied as illustrated in FIG. 7C and the like. In the following description, a record in which “1” is stored in the “No” column in the logical product rule Tb1 illustrated in FIG. 7F is also referred to as “record of ID = 1”. Similarly, records in which “2” and “3” are stored in the “No” column are also referred to as “records with ID = 2” and “records with ID = 3”.

真偽値ルール適用部102は、例えば、真偽値ルールDB201を参照し、処理対象となるノードに対応した真偽値表を取得する。図7Hの例では、破線で囲まれた矩形領域に示すように、同一階層に配置された左側のノード(論理和“or”)と右側に配置されたリーフ“y>0”とを結び付ける最上位のノードは論理積“and”である。真偽値ルール適用部102は、例えば、論理積ルールTb1を真偽値ルールDB201から取得し、取得した論理積ルールTb1を主記憶部12の所定の領域に一時的に記憶する。   For example, the truth value rule application unit 102 refers to the truth value rule DB 201 and acquires a truth value table corresponding to the node to be processed. In the example of FIG. 7H, as shown in the rectangular area surrounded by the broken line, the left node (logical sum “or”) arranged in the same hierarchy and the leaf “y> 0” arranged on the right side are connected. The upper node is the logical product “and”. For example, the truth value rule application unit 102 acquires the logical product rule Tb1 from the true value rule DB 201 and temporarily stores the acquired logical product rule Tb1 in a predetermined area of the main storage unit 12.

真偽値ルール適用部102は、例えば、最上位のノードに対応した真偽値表に基づいて、最上位のノードの処理プロセスに対する条件式マップ集合を生成する。最上位のノードの処理プロセスに対する条件式マップ集合は、例えば、レコード毎に生成された条件式マップの組合せから生成される。真偽値ルール適用部102は、例えば、レコード毎に、真偽値表の「全体」カラムに格納された真偽値と、「左辺」カラム、「右辺」カラムの真偽値情報を反映させた条件式の結合式とを組合せ、レコード毎の条件式マップを生成する。最上位ノードの処理プロセスに対して生成された条件式マップ集合は、例えば、条件式マップ集合DB203に格納される。   The truth value rule application unit 102 generates a conditional expression map set for the processing process of the highest node based on, for example, a truth table corresponding to the highest node. The conditional expression map set for the processing process of the highest node is generated from a combination of conditional expression maps generated for each record, for example. The Boolean value rule application unit 102 reflects, for example, the Boolean value stored in the “whole” column of the Boolean value table and the Boolean value information in the “left side” column and the “right side” column for each record. A combination of conditional expressions is combined to generate a conditional expression map for each record. The conditional expression map set generated for the processing process of the highest node is stored in the conditional expression map set DB 203, for example.

・論理積ルール1
図7Hの論理積ルールTb1において、ID=1のレコードの「左辺」カラムには真偽値情報(true,0)が格納され、「右辺」カラムには真偽値情報(false,1)が格納さ
れている。このため、「左辺」カラムに対応する左側のノード(論理和“or”)の条件式マップ集合の真偽値には組合せルール1が適用され、「右辺」カラムに対応する右側のリーフ“y>0”の真偽値には組合せルール2が適用される。
-Logical product rule 1
In the logical product rule Tb1 of FIG. 7H, truth value information (true, 0) is stored in the “left side” column of the record of ID = 1, and truth value information (false, 1) is stored in the “right side” column. Stored. Therefore, the combination rule 1 is applied to the true / false value of the conditional expression map set of the left node (logical sum “or”) corresponding to the “left side” column, and the right leaf “y” corresponding to the “right side” column. Combination rule 2 is applied to a true / false value of> 0 ”.

真偽値ルール適用部102は、例えば、論理積ルールTb1のID=1のレコードの「左辺」カラムに格納された真偽値情報に基づいて、左側のノードの条件式マップ集合から、真偽値“true”となる条件式を選択演算子を用いて結合し、抽出する。   For example, the truth value rule application unit 102 determines whether the truth value is true from the conditional expression map set of the left node based on the truth value information stored in the “left side” column of the ID = 1 record of the logical product rule Tb1. A conditional expression having the value “true” is extracted by using a selection operator.

左側のノードの条件式マップ集合で、真偽値“true”と組合せられた条件式は、“(x>0) ∧ (z==5) ∧((y==1) ∧ ¬(z>1)||¬(y==1) ∧ (z>1))”、“((x>0) ∧ ¬(z==5)||¬(x>0) ∧(z==5)) ∧ (y==1) ∧ (z>1)”の2通りである。真偽値ルール適用部102は、例えば、論理積ルールTb1のID=1のレコードの「左辺」カラムに対応する条件式として、左側のノードの条件式マップ集合から、選択演算子を用いて結合した、以下に示す条件式を抽出する。なお、以下の条件式では、選択演算子の階層関係を識別するため記号“[]”を用いて選択される2通りの条件式を表すとする。   In the conditional expression map set of the left node, the conditional expression combined with the truth value “true” is “(x> 0) ∧ (z == 5) ∧ ((y == 1) ∧ ¬ (z> 1) || ¬ (y == 1) ∧ (z> 1)) ”,“ ((x> 0) ∧ ¬ (z == 5) || ¬ (x> 0) ∧ (z == 5) ) ∧ (y == 1) ∧ (z> 1) ”. The truth value rule application unit 102 uses, for example, a selection operator from the conditional expression map set of the left node as a conditional expression corresponding to the “left side” column of the ID = 1 record of the logical product rule Tb1. Then, the following conditional expressions are extracted. The following conditional expressions represent two types of conditional expressions that are selected using the symbol “[]” to identify the hierarchical relationship of selection operators.

ID=1の左辺の条件式:([(x>0) ∧ (z==5) ∧ ((y==1) ∧ ¬(z>1)||¬(y==1) ∧(z>1))]||[((x>0) ∧ ¬(z==5)||¬(x>0) ∧ (z==5)) ∧(y==1) ∧ (z>1)])
次に、真偽値ルール適用部102は、例えば、論理積ルールTb1のID=1のレコードの「右辺」カラムに格納された真偽値情報に基づいて、右側のリーフ“y>0”の条件式
マップ集合から、真偽値“false”となる条件式を全て抽出する。ここで、リーフ“y>0”の条件式マップ集合は、{((y>0),true),(¬(y>0),false)}であり、真偽値“false”と組合せられた条件式は単一の“¬(y>0)”である。
Conditional expression on the left side of ID = 1: ([(x> 0) ∧ (z == 5) ∧ ((y == 1) ∧ ¬ (z> 1) || ¬ (y == 1) ∧ (z > 1))] || [((x> 0) ∧ ¬ (z == 5) || ¬ (x> 0) ∧ (z == 5)) ∧ (y == 1) ∧ (z> 1 )])
Next, the truth value rule application unit 102, for example, on the right leaf “y> 0” based on the truth value information stored in the “right side” column of the ID = 1 record of the logical product rule Tb1. From the conditional expression map set, all conditional expressions having a true / false value “false” are extracted. Here, the conditional expression map set of leaf “y> 0” is {((y> 0), true), (¬ (y> 0), false)}, and is combined with the true value “false”. The conditional expression is a single “¬ (y> 0)”.

真偽値ルール適用部102は、例えば、論理積ルールTb1のID=1のレコードの「右辺」カラムに対応する条件式として、リーフ“y>0”の条件式マップ集合から、条件式
“¬(y>0)”を抽出する。
For example, the truth value rule application unit 102 uses the conditional expression “¬” from the conditional expression map set of leaf “y> 0” as the conditional expression corresponding to the “right side” column of the record of ID = 1 of the logical product rule Tb1. (y> 0) ”is extracted.

そして、真偽値ルール適用部102は、論理積ルールTb1のID=1のレコードについての、「全体」カラムに格納された真偽値“false”と組となる条件式マップを生成す
る。条件式マップは、例えば、左側のノードの条件式マップ集合から抽出された条件式、及び、右側のリーフ“y>0”の条件式マップ集合から抽出された条件式(¬(y>0))に基づいて生成される。
Then, the truth value rule application unit 102 generates a conditional expression map that is paired with the truth value “false” stored in the “whole” column for the record of ID = 1 of the logical product rule Tb1. The conditional expression map includes, for example, a conditional expression extracted from the conditional expression map set of the left node and a conditional expression extracted from the conditional expression map set of the right leaf “y> 0” (¬ (y> 0) ).

真偽値ルール適用部102は、例えば、左側のノードの条件式マップ集合から抽出された条件式と右側のリーフの条件式マップ集合から抽出された条件式とを、合接を表す記号“∧”を用いて結合する。そして、真偽値ルール適用部102は、例えば、結合した左側のノードの条件式と右側のリーフの条件式に、論理積ルールTb1のID=1のレコードの「全体」カラムに格納された真偽値“false”を組合せ、ID=1の真偽値に対応する
条件式マップを生成する。
The truth value rule application unit 102, for example, combines a conditional expression extracted from the conditional expression map set of the left node and a conditional expression extracted from the conditional expression map set of the right leaf with a symbol “∧ ”To join. Then, for example, the truth value rule applying unit 102 adds the truth stored in the “whole” column of the record of ID = 1 of the logical product rule Tb1 to the combined conditional expression of the left node and the conditional expression of the right leaf. The conditional expression map corresponding to the true / false value of ID = 1 is generated by combining the false value “false”.

論理積ルールTb1のID=1のレコードでは、以下に示す条件式マップが生成される。なお、生成されたID=1の真偽値に対応する条件式マップは、例えば、論理積ルールTb1のレコードのIDに対応付けられて、主記憶部12の所定の領域に一時的に記憶される。   In the record of ID = 1 of the logical product rule Tb1, the conditional expression map shown below is generated. The generated conditional expression map corresponding to the true / false value of ID = 1 is temporarily stored in a predetermined area of the main storage unit 12 in association with the ID of the record of the logical product rule Tb1, for example. The

ID=1の条件式マップ:([(x>0) ∧ (z==5) ∧ ((y==1) ∧ ¬(z>1)||¬(y==1) ∧(z>1))]||[((x>0) ∧ ¬(z==5)||¬(x>0) ∧ (z==5)) ∧(y==1) ∧ (z>1)] ∧ ¬(y>0),false)   Conditional expression map with ID = 1: ([((x> 0) ∧ (z == 5) ∧ ((y == 1) ∧ ¬ (z> 1) || ¬ (y == 1) ∧ (z> 1))] || [((x> 0) ∧ ¬ (z == 5) || ¬ (x> 0) ∧ (z == 5)) ∧ (y == 1) ∧ (z> 1) ] ∧ ¬ (y> 0), false)

・論理積ルール2
図7Hの論理積ルールTb1において、ID=2のレコードの「左辺」カラムには真偽値情報(false,1)が格納され、「右辺」カラムには真偽値情報(true,0)が格納さ
れている。このため、「左辺」カラムに対応する左側のノード(論理和“or”)の条件式マップ集合の真偽値には組合せルール2が適用され、「右辺」カラムに対応する右側のリーフ“y>0”の条件式マップ集合の真偽値には組合せルール1が適用される。
-Logical product rule 2
In the logical product rule Tb1 of FIG. 7H, truth value information (false, 1) is stored in the “left side” column of the record of ID = 2, and truth value information (true, 0) is stored in the “right side” column. Stored. Therefore, the combination rule 2 is applied to the truth value of the conditional expression map set of the left node (logical sum “or”) corresponding to the “left side” column, and the right leaf “y” corresponding to the “right side” column. Combination rule 1 is applied to the truth value of the conditional expression map set of> 0 ”.

真偽値ルール適用部102は、例えば、論理積ルールTb1のID=2のレコードの「左辺」カラムに格納された真偽値情報に基づいて、左側のノードの条件式マップ集合から、真偽値“false”となる条件式を全て抽出する。   The truth value rule application unit 102, for example, from the conditional expression map set of the left node based on the truth value information stored in the “left side” column of the record of ID = 2 of the logical product rule Tb1. Extract all conditional expressions with the value “false”.

なお、左側のノードの条件式マップ集合で、真偽値“false”と組合せられた条件式は
、4通りである。真偽値ルール適用部102は、例えば、左側のノードの条件式マップ集合から、真偽値“false”となる4通りの条件式を記号“{}”を用いた集合形式で全て
抽出する。左側のノードの条件式マップ集合から、記号“{}”を用いた集合形式で抽出される条件式は以下の通りである。
Note that there are four conditional expressions combined with a true / false value “false” in the conditional expression map set of the left node. For example, the truth value rule application unit 102 extracts all the four conditional expressions that are the truth value “false” from the conditional expression map set of the left node in a set form using the symbol “{}”. The conditional expressions extracted from the conditional expression map set of the left node in a set form using the symbol “{}” are as follows.

ID=2の左辺の条件式:{((x>0) ∧ ¬(z==5)) ∧ ((y==1) ∧ ¬(z>1)),((x>0)
∧ ¬(z==5)) ∧ (¬(y==1) ∧ (z>1)),((¬(x>0) ∧ (z==5)) ∧ ((y==1) ∧ ¬(z>1)),((¬(x>0) ∧ (z==5)) ∧ (¬(y==1) ∧ (z>1))}
次に、真偽値ルール適用部102は、例えば、論理積ルールTb1のID=2のレコードの「右辺」カラムに格納された真偽値情報に基づいて、リーフ“y>0”の条件式マップ
集合から、真偽値“true”となる条件式を選択演算子を用いて結合し、抽出する。ここで、リーフ“y>0”の条件式マップ集合では、真偽値“true”と組合せられた条件式は複数
に存在しない。このため、選択演算子は使用されずに単一の条件式“(y>0)”が抽出され
ることとなる。
Conditional expression on the left side of ID = 2: {((x> 0) ∧ ¬ (z == 5)) ∧ ((y == 1) ∧ ¬ (z> 1)), ((x> 0)
∧ ¬ (z == 5)) ∧ (¬ (y == 1) ∧ (z> 1)), ((¬ (x> 0) ∧ (z == 5)) ∧ ((y == 1) ∧ ¬ (z> 1)), ((¬ (x> 0) ∧ (z == 5)) ∧ (¬ (y == 1) ∧ (z> 1))}
Next, the truth value rule application unit 102, for example, the conditional expression of leaf “y> 0” based on the truth value information stored in the “right side” column of the record of ID = 2 of the logical product rule Tb1. From the map set, a conditional expression having a true / false value “true” is combined and extracted using a selection operator. Here, in the conditional expression map set of leaf “y> 0”, there are not a plurality of conditional expressions combined with the true value “true”. Therefore, a single conditional expression “(y> 0)” is extracted without using the selection operator.

真偽値ルール適用部102は、例えば、論理積ルールTb1のID=2のレコードの「右辺」カラムに対応する条件式として、リーフ“y>0”の条件式マップ集合から、条件式
“(y>0)”を抽出する。
For example, the truth value rule application unit 102 uses the conditional expression “(” from the conditional expression map set of leaf “y> 0” as the conditional expression corresponding to the “right side” column of the record of ID = 2 of the logical product rule Tb1. y> 0) ”is extracted.

そして、真偽値ルール適用部102は、論理積ルールTb1のID=2のレコードについての、「全体」カラムに格納された真偽値“false”と組となる条件式マップを生成す
る。条件式マップは、例えば、左側のノードの条件式マップ集合から集合形式で抽出された条件式、及び、右側のリーフ“y>0”の条件式マップ集合から抽出された条件式(y>0)に基づいて生成される。
Then, the truth value rule application unit 102 generates a conditional expression map paired with the truth value “false” stored in the “whole” column for the record of ID = 2 of the logical product rule Tb1. The conditional expression map includes, for example, a conditional expression extracted from the conditional expression map set of the left node in a set form, and a conditional expression extracted from the conditional expression map set of the right leaf “y> 0” (y> 0 ).

真偽値ルール適用部102は、例えば、左側のノードの条件式マップ集合から集合形式で抽出された4通りの条件式のそれぞれと右側のリーフの条件式マップ集合から抽出された条件式とを、合接を表す記号“∧”を用いて結合する。そして、真偽値ルール適用部102は、例えば、各結合した左側のノードの条件式と右側のリーフの条件式に、論理積ルールTb1のID=2のレコードの「全体」カラムに格納された真偽値“false”を組合
せ、ID=2の真偽値に対応する条件式マップを生成する。
For example, the truth value rule application unit 102 calculates each of four conditional expressions extracted from the conditional expression map set of the left node in a set form and the conditional expressions extracted from the conditional expression map set of the right leaf. , Using the symbol “∧” representing the joint. Then, the truth value rule application unit 102 stores, for example, the combined expression of the left node and the conditional expression of the right leaf in the “whole” column of the record of ID = 2 of the AND rule Tb1. A conditional expression map corresponding to the true / false value of ID = 2 is generated by combining the true / false values “false”.

なお、論理積ルールTb1のID=2のレコードでは、以下に示す条件式マップのように、記号“{}”を用いた集合形式で、条件式マップが生成される。なお、集合形式で生成されたID=2の真偽値に対応する条件式マップは、例えば、論理積ルールTb1のレコードのIDに対応付けられて、主記憶部12の所定の領域に一時的に記憶される。   In the record of ID = 2 of the logical product rule Tb1, a conditional expression map is generated in a set form using the symbol “{}” as in the conditional expression map shown below. Note that the conditional expression map corresponding to the truth value of ID = 2 generated in the set format is associated with the record ID of the logical product rule Tb1, for example, temporarily in a predetermined area of the main storage unit 12. Is remembered.

ID=2の条件式マップ:{(((x>0) ∧ ¬(z==5)) ∧ ((y==1) ∧ ¬(z>1)) ∧ (y>0),false),(((x>0) ∧ ¬(z==5)) ∧ (¬(y==1) ∧ (z>1)) ∧ (y>0),false),((¬(x>0) ∧ (z==5)) ∧ ((y==1) ∧ ¬(z>1)) ∧ (y>0),false),((¬(x>0) ∧ (z==5)) ∧ (
¬(y==1) ∧ (z>1)) ∧ (y>0),false)}
Conditional expression map with ID = 2: {(((x> 0) ∧ ¬ (z == 5)) ∧ ((y == 1) ∧ ¬ (z> 1)) ∧ (y> 0), false) , (((X> 0) ∧ ¬ (z == 5)) ∧ (¬ (y == 1) ∧ (z> 1)) ∧ (y> 0), false), ((¬ (x> 0 ) ∧ (z == 5)) ∧ ((y == 1) ∧ ¬ (z> 1)) ∧ (y> 0), false), ((¬ (x> 0) ∧ (z == 5) ) ∧ (
¬ (y == 1) ∧ (z> 1)) ∧ (y> 0), false)}

・論理積ルール3
図7Hの論理積ルールTb1において、ID=3のレコードの「左辺」カラムには真偽値情報(true,1)が格納され、「右辺」カラムには真偽値情報(true,1)が格納されている。このため、「左辺」カラムに対応する左側のノード(論理和“or”)の条件式マップ集合、及び、「右辺」カラムに対応する右側のリーフ“y>0”のマップ集合の真偽値
には、それぞれに組合せルール2が適用されることとなる。
-Logical product rule 3
In the logical product rule Tb1 of FIG. 7H, truth value information (true, 1) is stored in the “left side” column of the record with ID = 3, and truth value information (true, 1) is stored in the “right side” column. Stored. Therefore, the truth value of the conditional expression map set of the left side node (logical sum “or”) corresponding to the “left side” column and the map set of the right side leaf “y> 0” corresponding to the “right side” column The combination rule 2 is applied to each.

真偽値ルール適用部102は、例えば、論理積ルールTb1のID=3のレコードの「左辺」カラムに格納された真偽値情報に基づいて、左側のノードの条件式マップ集合から、真偽値“true”となる条件式を全て抽出する。   The truth value rule application unit 102, for example, from the conditional expression map set of the left node based on the truth value information stored in the “left side” column of the ID = 3 record of the logical product rule Tb1. Extract all conditional expressions with the value “true”.

ここで、左側のノードの条件式マップ集合で、真偽値“true”と組合せられた条件式は
、2通りである。真偽値ルール適用部102は、例えば、左側のノードの条件式マップ集合から、真偽値“true”となる2通りの条件式を記号“{}”を用いた集合形式で全て抽出する。左側のノードの条件式マップ集合から、記号“{}”を用いた集合形式で抽出される条件式は以下の通りである。
ID=3の左辺の条件式:{((x>0) ∧ (z==5) ∧ ((y==1) ∧ ¬(z>1)||¬(y==1) ∧(z>1))),(((x>0) ∧ ¬(z==5)||¬(x>0) ∧ (z==5)) ∧(y==1) ∧ (z>1))}
Here, there are two types of conditional expressions combined with the true / false value “true” in the conditional expression map set of the left node. For example, the truth value rule application unit 102 extracts, from the conditional expression map set of the left node, all the two conditional expressions that are the true value “true” in a set form using the symbol “{}”. The conditional expressions extracted from the conditional expression map set of the left node in a set form using the symbol “{}” are as follows.
Conditional expression on the left side of ID = 3: {((x> 0) ∧ (z == 5) ∧ ((y == 1) ∧ ¬ (z> 1) || ¬ (y == 1) ∧ (z > 1))), (((x> 0) ∧ ¬ (z == 5) || ¬ (x> 0) ∧ (z == 5)) ∧ (y == 1) ∧ (z> 1) )}

次に、真偽値ルール適用部102は、例えば、論理積ルールTb1のID=3のレコードの「右辺」カラムに格納された真偽値情報に基づいて、リーフ“y>0”の条件式マップ
集合から、真偽値“true”となる条件式を全て抽出する。ここで、リーフ“y>0”の条件
式マップ集合は、{((y>0),true),(¬(y>0),false)}であり、真偽値“true”と
組合せられた条件式は単一の“(y>0)”である。
Next, the truth value rule application unit 102, for example, the conditional expression of leaf “y> 0” based on the truth value information stored in the “right side” column of the record of ID = 3 of the logical product rule Tb1. From the map set, all conditional expressions with a true / false value “true” are extracted. Here, the conditional expression map set of leaf “y> 0” is {((y> 0), true), (¬ (y> 0), false)}, and is combined with the true value “true”. The conditional expression is a single “(y> 0)”.

真偽値ルール適用部102は、例えば、論理積ルールTb1のID=3のレコードの「右辺」カラムに対応する条件式として、リーフ“y>0”の条件式マップ集合から、条件式
“(y>0)”を抽出する。
For example, the truth value rule application unit 102 uses the conditional expression “(” from the conditional expression map set of leaf “y> 0” as the conditional expression corresponding to the “right side” column of the record with ID = 3 of the logical product rule Tb1. y> 0) ”is extracted.

そして、真偽値ルール適用部102は、論理積ルールTb1のID=3のレコードについての、「全体」カラムに格納された真偽値“true”と組となる条件式マップを生成する。条件式マップは、例えば、左側のノードの条件式マップ集合から集合形式で抽出された条件式、及び、右側のリーフ“y>0”の条件式マップ集合から抽出された条件式(y>0)に基づいて生成される。   Then, the true / false value rule application unit 102 generates a conditional expression map that is paired with the true / false value “true” stored in the “whole” column for the record of ID = 3 of the logical product rule Tb1. The conditional expression map includes, for example, a conditional expression extracted from the conditional expression map set of the left node in a set form, and a conditional expression extracted from the conditional expression map set of the right leaf “y> 0” (y> 0 ).

真偽値ルール適用部102は、例えば、左側のノードの条件式マップ集合から集合形式で抽出された2通りの条件式のそれぞれと右側のリーフの条件式マップ集合から抽出された条件式とを、合接を表す記号“∧”を用いて結合する。そして、真偽値ルール適用部102は、例えば、各結合した左側のノードの条件式と右側のリーフの条件式に、論理積ルールTb1のID=3のレコードの「全体」カラムに格納された真偽値“true”を組合せ、ID=3の真偽値に対応する条件式マップを生成する。   The truth value rule application unit 102, for example, obtains each of two types of conditional expressions extracted from the conditional expression map set of the left node in a set form and the conditional expressions extracted from the conditional expression map set of the right leaf. , Using the symbol “∧” representing the joint. Then, the truth value rule application unit 102 stores, for example, the combined expression of the left node and the conditional expression of the right leaf in the “whole” column of the record of ID = 3 of the logical product rule Tb1. A conditional expression map corresponding to the true / false value of ID = 3 is generated by combining the true / false values “true”.

なお、論理積ルールTb1のID=3のレコードでは、以下に示す条件式マップのように、記号“{}”を用いた集合形式で、条件式マップが生成される。なお、集合形式で生成されたID=3の真偽値に対応する条件式マップは、例えば、論理積ルールTb1のレコードのIDに対応付けられて、主記憶部12の所定の領域に一時的に記憶される。
ID=3の条件式マップ:{((x>0) ∧ (z==5) ∧ ((y==1) ∧ ¬(z>1)||¬(y==1) ∧(z>1)) ∧ (y>0),true),(((x>0) ∧ ¬(z==5)||¬(x>0) ∧ (z==5)) ∧(y==1) ∧ (z>1)
∧ (y>0),true)}
In the record of ID = 3 in the logical product rule Tb1, a conditional expression map is generated in a set form using the symbol “{}” as in the conditional expression map shown below. In addition, the conditional expression map corresponding to the truth value of ID = 3 generated in the set format is associated with the record ID of the logical product rule Tb1 and temporarily stored in a predetermined area of the main storage unit 12, for example. Is remembered.
Conditional expression map of ID = 3: {((x> 0) ∧ (z == 5) ∧ ((y == 1) ∧ ¬ (z> 1) || ¬ (y == 1) ∧ (z> 1)) ∧ (y> 0), true), (((x> 0) ∧ ¬ (z == 5) || ¬ (x> 0) ∧ (z == 5)) ∧ (y == 1 ) ∧ (z> 1)
∧ (y> 0), true)}

・条件式マップ集合
図7Hの論理積ルールTb1の、レコード毎に生成した条件式マップに基づいて、同一階層の左側に配置されたノードと右側に配置されたリーフとを結び付ける最上位ノードの処理プロセスについての、真偽値を反映した条件式マップ集合が生成される。真偽値ルール適用部102は、例えば、図7HのブロックD11に示す条件式マップ集合を生成する。
Conditional expression map set Based on the conditional expression map generated for each record of the logical product rule Tb1 in FIG. 7H, processing of the highest node that connects the node arranged on the left side of the same hierarchy and the leaf arranged on the right side A set of conditional expression maps reflecting the truth value for the process is generated. The truth value rule application unit 102 generates, for example, a conditional expression map set shown in a block D11 in FIG. 7H.

真偽値ルール適用部102は、例えば、論理積ルールTb1のレコード毎に生成した条件式マップを組合せ、以下に示す、最上位ノードの処理プロセスに係る条件式マップ集合を生成する。なお、以下に示す条件式マップ集合は、例えば、判定式C1についての各処理プロセスでの真偽値を反映した各リーフの結合式に相当する。真偽値ルール適用部102は、以下に示す条件式を、例えば、処理対象の判定式の識別番号と対応付けて、条件式
マップ集合DB203に格納する。
For example, the truth value rule application unit 102 combines the conditional expression maps generated for each record of the logical product rule Tb1, and generates the following conditional expression map set related to the processing process of the highest node. The conditional expression map set shown below corresponds to, for example, a combined expression of each leaf reflecting a true / false value in each processing process for the determination expression C1. The truth value rule application unit 102 stores the following conditional expressions in the conditional expression map set DB 203 in association with, for example, the identification numbers of the determination expressions to be processed.

判定式C1の条件式マップ集合:{([(x>0) ∧ (z==5) ∧ ((y==1) ∧ ¬(z>1)||¬(y==1) ∧ (z>1))]||[((x>0) ∧ ¬(z==5)||¬(x>0) ∧(z==5)) ∧ (y==1) ∧ (z>1)] ∧ ¬(y>0),false)、((x>0) ∧ ¬(z==5) ∧ (y==1) ∧ ¬(z>1) ∧ (y>0),false)、((x>0) ∧ ¬(z==5) ∧ ¬(y==1) ∧ (z>1) ∧ (y>0),false)、(¬(x>0) ∧ (z==5) ∧ (y==1) ∧ ¬(z>1) ∧ (y>0),false)、(¬(x>0) ∧ (z==5) ∧ ¬(y==1) ∧ (z>1) ∧ (y>0),false)、((x>0) ∧ (z==5) ∧ ((y==1) ∧ ¬(z>1)||¬(y==1) ∧(z>1)) ∧ (y>0),true)、(((x>0) ∧ ¬(z==5)||¬(x>0) ∧ (z==5)) ∧(y==1) ∧ (z>1) ∧ (y>0),true)}   Conditional expression map set of judgment formula C1: {([(x> 0) ∧ (z == 5) ∧ ((y == 1) ∧ ¬ (z> 1) || ¬ (y == 1) ∧ ( z> 1))] || [((x> 0) ∧ ¬ (z == 5) || ¬ (x> 0) ∧ (z == 5)) ∧ (y == 1) ∧ (z> 1)] ∧ ¬ (y> 0), false), ((x> 0) ∧ ¬ (z == 5) ∧ (y == 1) ∧ ¬ (z> 1) ∧ (y> 0), false ), ((X> 0) ∧ ¬ (z == 5) ∧ ¬ (y == 1) ∧ (z> 1) ∧ (y> 0), false), (¬ (x> 0) ∧ (z == 5) ∧ (y == 1) ∧ ¬ (z> 1) ∧ (y> 0), false), (¬ (x> 0) ∧ (z == 5) ∧ ¬ (y == 1) ∧ (z> 1) ∧ (y> 0), false), ((x> 0) ∧ (z == 5) ∧ ((y == 1) ∧ ¬ (z> 1) || ¬¬y (y = = 1) ∧ (z> 1)) ∧ (y> 0), true), (((x> 0) ∧ ¬ (z == 5) || ¬ (x> 0) ∧ (z == 5) ) ∧ (y == 1) ∧ (z> 1) ∧ (y> 0), true)}

[テストケース生成処理]
図6に例示の説明図に戻り、テストケース生成部103は、例えば、真偽値ルール適用部102で生成された判定式C1についての条件式マップ集合に基づいて、MC/DCのテスト網羅度を満たすテストケースの条件式を生成する。テストケース生成部103で生成された、MC/DCのテスト網羅度を満たすテストケースの条件式は、例えば、テストケース条件式DB204に格納される。
[Test case generation process]
Returning to the explanatory diagram illustrated in FIG. 6, the test case generation unit 103, for example, based on the conditional expression map set for the determination formula C1 generated by the truth value rule application unit 102, the test coverage of MC / DC Generate conditional expressions for test cases that satisfy The test case conditional expression generated by the test case generating unit 103 and satisfying the MC / DC test coverage is stored in the test case conditional expression DB 204, for example.

テストケース生成部103では、例えば、判定式C1についての条件式マップ集合に含まれる条件式マップ毎に、判定式C1の処理プロセスの真偽値を反映した条件式の抽出が行われる。例えば、判定式C1について生成された条件式マップ集合には7通りの条件式マップが含まれる。このため、判定式C1について生成された条件式マップ集合からは、7通りの条件式が抽出されることとなる。   In the test case generation unit 103, for example, for each conditional expression map included in the conditional expression map set for the determination expression C1, a conditional expression that reflects the truth value of the processing process of the determination expression C1 is extracted. For example, the conditional expression map set generated for the determination expression C1 includes seven conditional expression maps. For this reason, seven types of conditional expressions are extracted from the conditional expression map set generated for the determination expression C1.

なお、抽出された各条件式には、例えば、選択演算子を用いて結合された条件式が含まれる。以下の説明においては、選択演算子を用いて結合された条件式を展開して得られた条件式を“部分条件式”とも称する。   Each extracted conditional expression includes, for example, a conditional expression that is combined using a selection operator. In the following description, a conditional expression obtained by expanding a conditional expression combined using a selection operator is also referred to as a “partial conditional expression”.

テストケース生成部103は、例えば、選択演算子を用いて結合された条件式を展開して分析を行い、展開された部分条件式の中から部分条件式についての変数関係を充足する部分条件式をMC/DCのテスト網羅度を満たすテストケースの条件式として選択する。選択演算子を用いて結合された条件式に対する展開・分析、展開された部分条件式の中から部分条件式についての変数関係を充足する部分条件式の選択は、例えば、選択分析部103aにより行われる。   For example, the test case generation unit 103 expands and analyzes the combined conditional expressions using a selection operator, and satisfies the variable relations regarding the partial conditional expressions among the expanded partial conditional expressions. Is selected as a conditional expression of a test case satisfying the MC / DC test coverage. For example, the selection analysis unit 103a performs the expansion / analysis on the conditional expressions combined using the selection operator, and the selection of the partial conditional expression satisfying the variable relation for the partial conditional expression among the expanded partial conditional expressions. Is called.

テストケース生成部103は、例えば、MC/DCのテスト網羅度を満たすテストケースとして選択された条件式、及び、選択された変数関係を充足する部分条件式を充足可能性判定部104に引き渡す。そして、充足可能性判定部104では、例えば、テストケース生成部103から引き渡されたテストケースの条件式、部分条件式に基づいて、それぞれの条件式に含まれる変数値の組合せ(テストセット)が生成される。   For example, the test case generation unit 103 delivers the conditional expression selected as the test case satisfying the test coverage of MC / DC and the partial conditional expression satisfying the selected variable relationship to the satisfiability determination unit 104. In the satisfiability determination unit 104, for example, based on the conditional expressions and partial conditional expressions of the test case delivered from the test case generating unit 103, combinations (test sets) of variable values included in the conditional expressions are obtained. Generated.

(条件式マップ毎の条件式の抽出)
テストケース生成部103は、例えば、条件式マップ集合DB203を参照し、処理対象の判定式に対応付けられた条件式マップ集合を取得する。取得された条件式マップ集合は、例えば、主記憶部12の所定の領域に一時的に記憶される。
(Extraction of conditional expressions for each conditional expression map)
The test case generation unit 103 refers to, for example, the conditional expression map set DB 203 and acquires the conditional expression map set associated with the determination target expression. The acquired conditional expression map set is temporarily stored in a predetermined area of the main storage unit 12, for example.

テストケース生成部103は、例えば、取得した条件式マップ集合から条件式マップ毎に、判定式の処理プロセスを反映した条件式の抽出を行う。そして、テストケース生成部103は、例えば、条件式マップ集合の条件式マップ毎に抽出された条件式に基づいて、処理対象の判定式に対するテストケース条件式テーブルを生成する。生成されたテストケース条件式テーブルは、例えば、テストケース条件式DB204に格納される。   For example, the test case generation unit 103 extracts a conditional expression reflecting the process of the determination expression for each conditional expression map from the acquired conditional expression map set. Then, for example, the test case generation unit 103 generates a test case conditional expression table for the processing target determination expression based on the conditional expression extracted for each conditional expression map of the conditional expression map set. The generated test case conditional expression table is stored in the test case conditional expression DB 204, for example.

図8Aに、判定式C1についてのテストケース条件式テーブル例を例示する。判定式C1について生成された条件式マップ集合には7通りの条件式マップが含まれるため、7通りの条件式が抽出される。   FIG. 8A illustrates an example of a test case conditional expression table for the determination formula C1. Since the conditional expression map set generated for the determination expression C1 includes seven conditional expression maps, seven conditional expressions are extracted.

図8Aに例示のテストケース条件式テーブルは、「No」カラム、「テストケースの条件式」カラムを有する。「No」カラムには、対象となる判定式の条件式マップ集合における条件式マップの組合せ順に対応した番号が格納される。「テストケースの条件式」カラムには、条件式マップ毎の、処理プロセスを反映した条件式が格納される。「テストケースの条件式」カラムに格納される条件式には、例えば、選択演算子によって結合された条件式が含まれる。   The test case conditional expression table illustrated in FIG. 8A includes a “No” column and a “Test Case Conditional Expression” column. The “No” column stores a number corresponding to the combination order of the conditional expression maps in the conditional expression map set of the target determination expression. In the “conditional expression of test case” column, a conditional expression reflecting the processing process is stored for each conditional expression map. The conditional expressions stored in the “conditional expression of test case” column include, for example, conditional expressions combined by a selection operator.

図8Aのテーブル例では、例えば、「No」カラムに格納された番号順に、以下に示す7通りの条件式がそれぞれの番号に対応するレコードに格納されている。なお、図8Aのテーブル例に示すように、選択演算子を用いて結合された条件式は、No=1,6,7のレコードに格納されていることが判る。
・No=1の条件式:[(x>0) ∧ (z==5) ∧ ((y==1) ∧ ¬(z>1)||¬(y==1) ∧(z>1))]||[((x>0) ∧ ¬(z==5)||¬(x>0) ∧ (z==5)) ∧(y==1) ∧ (z>1)] ∧ ¬(y>0)
・No=2の条件式:(x>0) ∧ ¬(z==5) ∧ (y==1) ∧ ¬(z>1) ∧ (y>0)
・No=3の条件式:(x>0) ∧ ¬(z==5) ∧ ¬(y==1) ∧(z>1) ∧ (y>0)
・No=4の条件式:¬(x>0) ∧ (z==5) ∧ (y==1) ∧ ¬(z>1) ∧ (y>0)
・No=5の条件式:¬(x>0) ∧ (z==5) ∧ ¬(y==1) ∧(z>1) ∧ (y>0)
・No=6の条件式:((x>0) ∧ (z==5) ∧ ((y==1) ∧ ¬(z>1)||¬(y==1) ∧(z>1)) ∧
(y>0)
・No=7の条件式:((x>0) ∧ ¬(z==5)||¬(x>0) ∧(z==5)) ∧ (y==1) ∧ (z>1) ∧ (y>0)
In the table example of FIG. 8A, for example, the following seven conditional expressions are stored in records corresponding to the respective numbers in the order of the numbers stored in the “No” column. As shown in the table example of FIG. 8A, it can be seen that the conditional expressions combined using the selection operator are stored in the records of No = 1, 6, and 7.
Conditional expression of No = 1: [(x> 0) ∧ (z == 5) ∧ ((y == 1) ∧ ¬ (z> 1) || ¬ (y == 1) ∧ (z> 1 ))] || [((x> 0) ∧ ¬ (z == 5) || ¬ (x> 0) ∧ (z == 5)) ∧ (y == 1) ∧ (z> 1)] ∧ ¬ (y> 0)
Conditional expression of No = 2: (x> 0) ∧ ¬ (z == 5) ∧ (y == 1) ∧ ¬ (z> 1) ∧ (y> 0)
Conditional expression of No = 3: (x> 0) ∧ ¬ (z == 5) ∧ ¬ (y == 1) ∧ (z> 1) ∧ (y> 0)
Conditional expression of No = 4: ¬ (x> 0) ∧ (z == 5) ∧ (y == 1) ∧ ¬ (z> 1) ∧ (y> 0)
Conditional expression of No = 5: ¬ (x> 0) ∧ (z == 5) ∧ ¬ (y == 1) ∧ (z> 1) ∧ (y> 0)
Conditional expression of No = 6: ((x> 0) ∧ (z == 5) ∧ ((y == 1) ∧ ¬ (z> 1) || ¬ (y == 1) ∧ (z> 1 )) ∧
(y> 0)
Conditional expression of No = 7: ((x> 0) ∧ ¬ (z == 5) || ¬ (x> 0) ∧ (z == 5)) ∧ (y == 1) ∧ (z> 1 ) ∧ (y> 0)

(選択分析処理)
テストケース生成部103の選択分析部103aは、例えば、テストケース条件式DB204を参照し、処理対象となる判定式で生成されたテストケース条件式テーブルから、選択演算子が含まれる条件式を抽出する。抽出された条件式は、例えば、該条件式が格納されたテストケース条件式テーブルのレコードの番号(No)に対応付けられて、主記憶部12の所定の領域に一時的に記憶される。例えば、図8Aに例示のテストケース条件式テーブルでは、レコードNo=1,6,7の条件式が順に抽出される。
(Selective analysis processing)
The selection analysis unit 103a of the test case generation unit 103 refers to, for example, the test case conditional expression DB 204 and extracts a conditional expression including a selection operator from the test case conditional expression table generated by the determination expression to be processed. To do. The extracted conditional expression is temporarily stored in a predetermined area of the main storage unit 12 in association with the record number (No) of the test case conditional expression table storing the conditional expression, for example. For example, in the test case conditional expression table illustrated in FIG. 8A, the conditional expressions of records No = 1, 6, and 7 are extracted in order.

選択分析部103aは、例えば、抽出された条件式を展開し、選択演算子で結合された選択関係にある部分条件式をそれぞれに抽出する。選択関係にある部分条件式の抽出は、例えば、記号“()”で括られた演算順序の深い(早い)順に、左側に配置された部分条件式を優先的に探索して展開し、展開して得られた部分条件式を抽出する。抽出された選択関係にある部分条件式は、例えば、主記憶部12の所定の領域に一時的に記憶される。   For example, the selection analysis unit 103a expands the extracted conditional expressions and extracts the partial conditional expressions that are in a selection relationship connected by the selection operator. Extraction of subconditional expressions that are in a selective relationship is performed by, for example, preferentially searching and expanding the subconditional expressions arranged on the left side in the deep (early) order of the operation sequence enclosed by the symbol “()”. The partial conditional expression obtained as above is extracted. The extracted partial conditional expression having a selection relationship is temporarily stored in a predetermined area of the main storage unit 12, for example.

図8B(1)、(2)に、選択分析処理についての説明図を例示する。図8B(1)、(2)に例示の選択分析処理の対象となる条件式は、図8Aに例示のテストケース条件式テーブルのNo=1のレコードに格納された条件式である。なお、図8B(1)、(2)に例示の説明図において、一点鎖線で囲まれた矩形領域は、選択演算子の階層関係において、左側(左項)の選択演算子により結合された条件式を表す。また、図8B(1)に例示の説明図において、破線で囲まれた矩形領域は、選択演算子により結び付けられる条件式の、左側(左項)の条件式を表す。同様にして、図8B(2)に例示の説明図において、太破線で囲まれた矩形領域は、選択演算子により結び付けられる条件式の、右側(右項)の条件式を表す。   FIG. 8B (1) and FIG. 8 (2) illustrate an explanatory diagram of the selection analysis process. The conditional expressions to be subjected to the selective analysis processing illustrated in FIGS. 8B (1) and (2) are the conditional expressions stored in the record No = 1 in the test case conditional expression table illustrated in FIG. 8A. 8B (1) and 8 (2), the rectangular area surrounded by the alternate long and short dash line is a condition connected by the selection operator on the left side (left term) in the hierarchical relationship of the selection operators. Represents an expression. In the explanatory diagram illustrated in FIG. 8B (1), a rectangular area surrounded by a broken line represents a conditional expression on the left side (left term) of the conditional expression linked by the selection operator. Similarly, in the explanatory diagram illustrated in FIG. 8B (2), a rectangular area surrounded by a thick broken line represents a conditional expression on the right side (right term) of the conditional expression linked by the selection operator.

図8B(1)に例示の条件式において、選択分析部103aは、例えば、一点鎖線で囲まれた矩形領域に示すように、選択演算子の階層関係において、左側(左項)の選択演算子により結合された条件式を探索する。選択分析部103aは、例えば、条件式“(x>0) ∧ (z==5) ∧((y==1) ∧ ¬(z>1)||¬(y==1) ∧ (z>1))”を探索する。   In the conditional expression illustrated in FIG. 8B (1), the selection analysis unit 103a selects the left (left term) selection operator in the hierarchical relationship of the selection operators, for example, as shown in a rectangular region surrounded by a one-dot chain line. Search for the conditional expression linked by. For example, the selection analysis unit 103a may use the conditional expression “(x> 0) ∧ (z == 5) ∧ ((y == 1) ∧ ¬ (z> 1) || ¬ (y == 1) ∧ (z > 1)) ”.

そして、選択分析部103aは、例えば、探索した条件式に選択演算子が含まれる場合には、破線で囲まれた矩形領域に示すように、選択演算子で結合された条件式の内、左側の条件式を特定する。選択分析部103aは、例えば、選択演算子で結合された条件式の内、左側の条件式“(y==1) ∧ ¬(z>1)”を特定する。   Then, for example, when the searched conditional expression includes a selection operator, the selection analysis unit 103a displays the left side of the conditional expressions combined by the selection operator as shown in a rectangular area surrounded by a broken line. Specify the conditional expression. For example, the selection analysis unit 103a identifies the conditional expression “(y == 1) ¬ (z> 1)” on the left side among the conditional expressions combined by the selection operator.

そして、選択分析部103aは、例えば、特定した左側の条件式を、上位の選択関係で探索された左側の条件式の演算関係に組合せて展開し、左優先を条件として展開されたNo=1のレコードの条件式についての部分条件式の抽出を行う。抽出された部分条件式は以下の通りである。
・部分条件式1:(x>0) ∧(z==5) ∧ (y==1) ∧ ¬(z>1) ∧ ¬(y>0)
Then, for example, the selection analysis unit 103a expands the identified left-side conditional expression in combination with the arithmetic relation of the left-side conditional expression searched for in the higher-order selection relationship, and expands with the left priority as the condition No = 1. Extract the partial conditional expression for the conditional expression of the record. The extracted partial conditional expressions are as follows.
-Partial conditional expression 1: (x> 0) ∧ (z == 5) ∧ (y == 1) ∧ ¬ (z> 1) ∧ ¬ (y> 0)

選択分析部103aは、例えば、抽出された部分条件式1について、該部分条件式1に含まれる各変数関係に矛盾を含まず、各変数関係を充足する変数値の組合せが存在するか否かの判定を行う。抽出された部分条件式についての、各変数関係を充足する変数値の組合せの有無は、例えば、充足可能性判定部104により行われる。選択分析部103aは、例えば、抽出された部分条件式1を充足可能性判定部104に引き渡す。   For example, regarding the extracted partial conditional expression 1, the selection analysis unit 103a does not include any contradiction in each variable relation included in the partial conditional expression 1, and whether there is a combination of variable values satisfying each variable relation. Judgment is made. Whether or not there is a combination of variable values that satisfy each variable relationship for the extracted partial conditional expression is performed by the satisfiability determination unit 104, for example. For example, the selection analysis unit 103 a delivers the extracted partial conditional expression 1 to the satisfiability determination unit 104.

充足可能性判定部104では、例えば、選択分析部103aから引き渡された部分条件式に基づいて、各変数関係を充足する変数値の組合せが生成される。充足可能性判定部104は、例えば、選択分析部103aから引き渡された部分条件式に矛盾が含まれず、各変数関係を充足する変数値の組合せを生成できる場合には、生成された変数値の組合せを選択分析部103aに返却する。一方、充足可能性判定部104は、例えば、選択分析部103aから引き渡された部分条件式が矛盾を含む場合には、各変数関係を充足する変数値の組合せを生成できないため、“充足不能”との応答を選択分析部103aに返却する。   In the satisfiability determination unit 104, for example, a combination of variable values that satisfies each variable relationship is generated based on the partial conditional expression delivered from the selection analysis unit 103a. The satisfiability determination unit 104, for example, can generate a combination of variable values satisfying each variable relationship when the partial conditional expression delivered from the selection analysis unit 103a does not include any contradiction and can generate variable value combinations. The combination is returned to the selection analysis unit 103a. On the other hand, the satisfiability determination unit 104 cannot generate a combination of variable values that satisfy each variable relationship when the partial conditional expression delivered from the selection analysis unit 103a includes a contradiction. Is returned to the selection analysis unit 103a.

例えば、部分条件式1の場合では、変数zについて“(z==5) ∧ ¬(z>1)”との矛盾関
係を含むため、充足可能性判定部104は、部分条件式C1の各変数関係を充足する変数値の組合せを生成することができない。このため、充足可能性判定部104は、例えば、部分条件式C1を引き渡した選択分析部103aに対して、“充足不能”との応答を返却する。
For example, in the case of the partial conditional expression 1, since the variable z includes a contradiction relationship with “(z == 5) ∧ ¬ (z> 1)”, the satisfiability determination unit 104 determines each of the partial conditional expressions C1. A combination of variable values that satisfy the variable relationship cannot be generated. For this reason, for example, the satisfiability determination unit 104 returns a response “unsatisfiable” to the selection analysis unit 103a that has delivered the partial conditional expression C1.

選択分析部103aは、例えば、充足可能性判定部104からの応答に基づいて、抽出された部分条件式についての、充足可能性を判定する。選択分析部103aは、例えば、充足可能性判定部104に引き渡した部分条件式に対し、“充足不能”との応答が返却された場合には、抽出された部分条件式は充足不能と判定する。一方、選択分析部103aは、例えば、充足可能性判定部104に引き渡した部分条件式に対し、生成された変数値の組合せが返却された場合には、抽出された部分条件式は充足可能と判定する。例えば、部分条件式1の場合では、“充足不能”との応答が返却されるため、選択分析部103aは、抽出した部分条件式1に対して充足不能と判定する。   For example, the selection analysis unit 103a determines the satisfiability of the extracted partial conditional expression based on the response from the satisfiability determination unit 104. For example, when the response “unsatisfiable” is returned to the partial conditional expression delivered to the satisfiability determination unit 104, the selection analysis unit 103a determines that the extracted partial conditional expression is unsatisfiable. . On the other hand, for example, when the combination of the generated variable values is returned for the partial conditional expression delivered to the satisfiability determining unit 104, the selection analysis unit 103a determines that the extracted partial conditional expression can be satisfied. judge. For example, in the case of the partial conditional expression 1, since the response “unsatisfiable” is returned, the selection analysis unit 103a determines that the extracted partial conditional expression 1 is unsatisfiable.

選択分析部103aは、例えば、抽出した部分条件式が充足不能である場合には、選択分析処理の対象となる条件式“(x>0) ∧ (z==5) ∧((y==1) ∧ ¬(z>1)||¬(y==1) ∧ (z>1))”から次の部分条件式の抽出を行う。次の部分条件式の抽出は、例えば、図8B(2
)に例示のように、探索した条件式において、選択演算子で結合された右側の条件式“¬(y==1) ∧ (z>1)”に基づいて行われる。
For example, if the extracted partial conditional expression is unsatisfiable, the selection analysis unit 103a determines that the conditional expression “(x> 0) ∧ (z == 5) ∧ ((y == 1) Extract the next partial conditional expression from ∧ ¬ (z> 1) || ¬ (y == 1) ∧ (z> 1)) ”. The extraction of the next partial conditional expression is, for example, shown in FIG.
In the searched conditional expression, the conditional expression “¬ (y == 1) ∧ (z> 1)” connected by the selection operator is used as illustrated in FIG.

図8B(2)に例示の条件式において、選択分析部103aは、例えば、一点鎖線の矩形領域の条件式から、太破線で囲まれた矩形領域に示すように、選択演算子で結合された条件式の内、右側の条件式“¬(y==1) ∧ (z>1)”を特定する。   In the conditional expression illustrated in FIG. 8B (2), the selection analysis unit 103a is coupled by a selection operator as shown in a rectangular area surrounded by a thick broken line, for example, from a conditional expression of a dashed-dotted rectangular area. Among the conditional expressions, the right conditional expression “¬ (y == 1) ∧ (z> 1)” is specified.

そして、選択分析部103aは、例えば、特定した右側の条件式を、上位の選択関係で探索された左側の条件式の演算関係に組合せて展開し、No=1のレコードの条件式についての次の部分条件式の抽出を行う。抽出された部分条件式は以下の通りである。
・部分条件式2:(x>0) ∧(z==5) ∧ ¬(y==1) ∧ (z>1) ∧ ¬(y>0)
Then, for example, the selection analysis unit 103a expands the identified right-side conditional expression in combination with the arithmetic relation of the left-side conditional expression searched for in the higher-order selection relation, and the next conditional expression of the record of No = 1. The partial conditional expression is extracted. The extracted partial conditional expressions are as follows.
-Partial conditional expression 2: (x> 0) ∧ (z == 5) ∧ ¬ (y == 1) ∧ (z> 1) ∧ ¬ (y> 0)

選択分析部103aは、例えば、抽出された部分条件式2について、部分条件式1と同様にして、部分条件式2に含まれる各変数関係に矛盾を含まず、各変数関係を充足する変数値の組合せが存在するか否かの判定を行う。部分条件式2についての、各変数関係を充足する変数値の組合せの有無は、例えば、充足可能性判定部104により行われる。選択分析部103aは、例えば、抽出された部分条件式2を充足可能性判定部104に引き渡す。   The selection analysis unit 103a, for example, with respect to the extracted partial conditional expression 2, similarly to the partial conditional expression 1, the variable values included in the partial conditional expression 2 include no contradiction and satisfy the variable values. It is determined whether or not a combination exists. The presence / absence of a combination of variable values that satisfy each variable relationship for the partial conditional expression 2 is performed by the satisfiability determination unit 104, for example. For example, the selection analysis unit 103 a delivers the extracted partial conditional expression 2 to the satisfiability determination unit 104.

充足可能性判定部104では、例えば、選択分析部103aから引き渡された部分条件式に基づいて、各変数関係を充足する変数値の組合せが生成される。例えば、部分条件式2では、変数x、y、zのそれぞれについての範囲関係に矛盾は含まれない。このため、充足可能性判定部104では、例えば、部分条件式2について生成された変数値の組合せが選択分析部103aに返却されることとなる。例えば、充足可能性判定部104は、“(x,y,z)=(1,−1,5)”といった変数値の組合せを選択分析部103aに返却する。   In the satisfiability determination unit 104, for example, a combination of variable values that satisfies each variable relationship is generated based on the partial conditional expression delivered from the selection analysis unit 103a. For example, in the partial conditional expression 2, a contradiction is not included in the range relationship for each of the variables x, y, and z. For this reason, in the satisfiability determination unit 104, for example, a combination of variable values generated for the partial conditional expression 2 is returned to the selection analysis unit 103a. For example, the satisfiability determination unit 104 returns a combination of variable values such as “(x, y, z) = (1, −1, 5)” to the selection analysis unit 103a.

選択分析部103aは、例えば、充足可能性判定部104からの応答に基づいて、抽出された部分条件式2についての、充足可能性を判定する。部分条件式A2の場合では、例えば、“(x,y,z)=(1,−1,5)”との応答が返却されるため、選択分析部103aは、抽出した部分条件式2に対して充足可能と判定する。   For example, the selection analysis unit 103 a determines the satisfiability of the extracted partial conditional expression 2 based on the response from the satisfiability determination unit 104. In the case of the partial conditional expression A2, for example, since a response “(x, y, z) = (1, −1, 5)” is returned, the selection analysis unit 103a adds the extracted partial conditional expression 2 to On the other hand, it is determined that it can be satisfied.

選択分析部103aは、充足可能な部分条件式が抽出された場合には、例えば、抽出された部分条件式に基づいて、テストケース条件式テーブルのNo=1のレコードに格納された条件式を更新する。例えば、更新前の条件式“[(x>0) ∧ (z==5) ∧((y==1) ∧ ¬(z>1)||¬(y==1) ∧ (z>1))]||[((x>0) ∧ ¬(z==5)||¬(x>0) ∧ (z==5)) ∧(y==1) ∧ (z>1)] ∧ ¬(y>0)”は、部分条件式“(x>0) ∧ (z==5) ∧ ¬(y==1) ∧ (z>1) ∧ ¬(y>0)”に更新される。   When a partial condition expression that can be satisfied is extracted, for example, the selection analysis unit 103a uses the conditional expression stored in the record No = 1 in the test case conditional expression table based on the extracted partial condition expression. Update. For example, the conditional expression “[(x> 0) ∧ (z == 5) ∧ ((y == 1) ∧ ¬ (z> 1) || ¬¬ (y == 1) ∧ (z> 1 ))] || [((x> 0) ∧ ¬ (z == 5) || ¬ (x> 0) ∧ (z == 5)) ∧ (y == 1) ∧ (z> 1)] ∧ ¬ (y> 0) ”is updated to partial conditional expression“ (x> 0) ∧ (z == 5) ∧ ¬ (y == 1) ∧ (z> 1) ∧ ¬ (y> 0) ” Is done.

選択分析部103aは、例えば、選択演算子が含まれる他のNo=6,7の条件式についても同様の処理を行い、充足可能と判定された部分条件式でそれぞれのレコードに格納された条件式を更新する。例えば、No=6の更新前の条件式“((x>0) ∧ (z==5) ∧((y==1) ∧ ¬(z>1)||¬(y==1) ∧ (z>1)) ∧ (y>0)”は、部分条件式“(x>0) ∧ (z==5) ∧
¬(y==1) ∧ (z>1) ∧(y>0)”に更新される。また、例えば、No=7の更新前の条件式“((x>0) ∧ ¬(z==5)||¬(x>0) ∧(z==5)) ∧ (y==1) ∧ (z>1) ∧ (y>0)”は、部分条
件式“(x>0) ∧ ¬(z==5) ∧ (y==1) ∧(z>1) ∧ (y>0)”に更新される。
For example, the selection analysis unit 103a performs the same process on other conditional expressions of No = 6 and 7 including the selection operator, and the conditions stored in the respective records with the partial conditional expressions determined to be satisfiable. Update the expression. For example, conditional expression “((x> 0) ∧ (z == 5) ∧ ((y == 1) ∧ ¬ (z> 1) || ¬¬y == 1) No before updating No = 6 (z> 1)) ∧ (y> 0) ”is a partial conditional expression“ (x> 0) ∧ (z == 5) ∧
¬ (y == 1) ∧ (z> 1) ∧ (y> 0) ”. Also, for example, conditional expression“ ((x> 0) 更新 ¬ (z = = 5) || ¬ (x> 0) ∧ (z == 5)) ∧ (y == 1) ∧ (z> 1) ∧ (y> 0) ”is the partial conditional expression“ (x> 0) ¬ ¬ (z == 5) ∧ (y == 1) ∧ (z> 1) ∧ (y> 0) ”.

図8Cに、更新前後のテストケース条件式テーブル例を例示する。図8Cに例示の更新前後のテストケース条件式テーブル例では、図8Aに例示のテストケース条件式テーブル例のNo=1,6,7に格納された条件式が上述した部分条件式で更新されていることが
判る。なお、選択分析部103aによって更新されたテストケース条件式テーブルは、例えば、テストケース条件式DB204に格納される。
FIG. 8C illustrates a test case conditional expression table example before and after the update. In the test case conditional expression table example before and after the update illustrated in FIG. 8C, the conditional expressions stored in No = 1, 6, and 7 in the test case conditional expression table example illustrated in FIG. 8A are updated with the partial conditional expressions described above. You can see that Note that the test case conditional expression table updated by the selection analysis unit 103a is stored in the test case conditional expression DB 204, for example.

(テストセット生成処理)
テストケース生成部103は、例えば、選択分析部103aで更新されたテストケース条件式テーブルに基づいて、処理対象となる判定式の真偽値が反映された各条件式を充足する変数値の組合せであるテストセットを生成する。なお、テストセットの生成は、例えば、充足判定部104により行われる。
(Test set generation process)
The test case generation unit 103, for example, based on the test case conditional expression table updated by the selection analysis unit 103a, a combination of variable values satisfying each conditional expression reflecting the true / false value of the determination expression to be processed Generate a test set that is The test set is generated by, for example, the satisfaction determination unit 104.

図8Dに、テストケース生成処理の説明図を例示する。図8Dの説明図において、Tb3は、選択分析部103aで更新されたテストケース条件式テーブルである。テストケース条件式テーブルTb3には、選択演算子によって結合された条件式の中から充足可能と判定された部分条件式を含む7通りの条件式が格納されている。   FIG. 8D illustrates an explanatory diagram of the test case generation process. In the explanatory diagram of FIG. 8D, Tb3 is a test case conditional expression table updated by the selection analysis unit 103a. The test case conditional expression table Tb3 stores seven types of conditional expressions including partial conditional expressions determined to be satisfactory among the conditional expressions combined by the selection operator.

テストケース生成部103は、例えば、テストケース条件式DB204を参照し、処理対象となる判定式についての、テストケース条件式テーブルTb4を取得する。取得されたテストケース条件式テーブルTb4は、例えば、主記憶部12の所定の領域に一時的に記憶される。   For example, the test case generation unit 103 refers to the test case conditional expression DB 204 and acquires the test case conditional expression table Tb4 for the determination expression to be processed. The acquired test case conditional expression table Tb4 is temporarily stored in a predetermined area of the main storage unit 12, for example.

テストケース生成部103は、例えば、テストケース条件式テーブルTb4の各レコードに格納された7通りの条件式を、レコードの識別番号順に抽出し、抽出したレコードの条件式を充足可能性判定部104に引き渡す。   For example, the test case generation unit 103 extracts seven types of conditional expressions stored in each record of the test case conditional expression table Tb4 in the order of record identification numbers, and satisfies the extracted record conditional expressions. To hand over.

充足可能性判定部104では、例えば、テストケース生成部103から引き渡された条件式に基づいて、条件式に含まれる変数関係を充足する変数値の組合せであるテストセットを生成する。充足可能性判定部104は、例えば、生成した変数値の組合せであるテストセットをテストケース生成部103に引き渡す。テストケース生成部103は、充足可能性判定部104から引き渡されたテストセットを、例えば、テストケース条件式テーブルTb4のレコードのNoに対応付けて、主記憶部12の所定の領域に一時的に記憶する。   For example, the satisfiability determination unit 104 generates a test set that is a combination of variable values that satisfy the variable relationship included in the conditional expression based on the conditional expression delivered from the test case generation unit 103. The satisfiability determination unit 104 delivers a test set, which is a combination of generated variable values, to the test case generation unit 103, for example. The test case generation unit 103 temporarily associates the test set delivered from the satisfiability determination unit 104 with, for example, a record No in the test case conditional expression table Tb4 in a predetermined area of the main storage unit 12. Remember.

充足可能性判定部104は、例えば、条件式に含まれる結合演算子“∧”を検出し、該結合演算子で結び付けられる変数条件を抽出する。例えば、図8Dに例示のテストケース条件式テーブルTb4のNo=1のレコードの条件式では、充足可能性判定部104は、論理演算子“∧”で結合された変数条件“(x>0)”、“(z==5)”、“¬(y==1)”、“(z>1)”、“¬(y>0)”を抽出する。   The satisfiability determination unit 104 detects, for example, a join operator “∧” included in the conditional expression, and extracts a variable condition linked by the join operator. For example, in the conditional expression of the record of No = 1 in the test case conditional expression table Tb4 illustrated in FIG. 8D, the satisfiability determining unit 104 uses the variable condition “(x> 0) combined by the logical operator“ ∧ ”. ”,“ (Z == 5) ”,“ ¬ (y == 1) ”,“ (z> 1) ”,“ ¬ (y> 0) ”are extracted.

充足可能性判定部104は、例えば、抽出した各変数条件から変数“x”、“y”、“z”を特定し、“>”、“<”、“==”といった大小関係を表す記号で結合された数値“0”
、“1”等を特定する。そして、充足可能性判定部104は、例えば、各変数に対する数
値との大小関係、及び、各変数条件に付加された否定演算子“¬t”との論理関係から、
変数条件“(x>0)”、“(z==5)”、“¬(y==1)”、“(z>1)”、“¬(y>0)”を充足する
変数値の組合せを生成する。
The satisfiability determination unit 104 identifies, for example, variables “x”, “y”, “z” from each extracted variable condition, and represents a magnitude relationship such as “>”, “<”, “==” Numeric value “0” combined with
, “1” etc. are specified. Then, the satisfiability determining unit 104, for example, from the magnitude relationship with the numerical value for each variable and the logical relationship with the negation operator “¬t” added to each variable condition,
Variable values satisfying the variable conditions “(x> 0)”, “(z == 5)”, “¬ (y == 1)”, “(z> 1)”, “¬ (y> 0)” Generate a combination of

例えば、充足可能性判定部104は、変数条件“(x>0)”を充足する変数値として“x=1”を生成し、変数条件“¬(y==1)”、“¬(y>0)”を充足する変数値として“y=-1”
を生成する。また、例えば、充足可能性判定部104は、変数条件“(z==5)”、“(z>1)
” を充足する変数値として“z=5”を生成する。そして、充足可能性判定部104は、例えば、引き渡された条件式の変数関係を充足する充足解として“x=1,y=-1,z=5”といった変数値の組合せをテストケース生成部103に引き渡す。
For example, the satisfiability determining unit 104 generates “x = 1” as a variable value that satisfies the variable condition “(x> 0)”, and the variable conditions “¬ (y == 1)”, “¬ (y > 0) ”as a variable value that satisfies“ y = -1 ”
Is generated. In addition, for example, the satisfiability determination unit 104 performs the variable conditions “(z == 5)”, “(z> 1)
"Z = 5" is generated as a variable value that satisfies "". Then, the satisfiability determination unit 104, for example, "x = 1, y =-as a sufficiency solution that satisfies the variable relationship of the passed conditional expression. A combination of variable values such as “1, z = 5” is delivered to the test case generation unit 103.

テストケース生成部103、充足可能性判定部104では、例えば、図8Dに例示の、テストケース条件式テーブルTb3のレコードNo=2−7の条件式についても同様の処理を繰り返し、各条件式についての充足解が生成される。テストケース生成部103は、例えば、充足可能性判定部104から引き渡された充足解に基づいて、図8Dに例示のテストケーステーブルTb4を生成する。   In the test case generation unit 103 and the satisfiability determination unit 104, for example, the same processing is repeated for the conditional expression of record No = 2-7 in the test case conditional expression table Tb3 illustrated in FIG. A satisfactory solution is generated. For example, the test case generation unit 103 generates the test case table Tb4 illustrated in FIG. 8D based on the satisfaction solution delivered from the satisfaction possibility determination unit 104.

なお、充足可能性判定部104では、引き渡された条件式から各変数関係を充足する変数値の組合せを生成できない場合には、“充足不能”との応答をテストケース生成部103に返却する。例えば、テストケース条件式テーブルTb3のレコードNo=4の条件式“¬(x>0) ∧ (z==5) ∧(y==1) ∧ ¬(z>1) ∧ (y>0)”では、変数zについて“(z==5)
∧ ¬(z>1)”といった矛盾が含まれる。このため、テストケース条件式テーブルTb3のレコードNo=4の条件式に対し、充足可能性判定部104は、充足不能”との応答をテストケース生成部103に返却することとなる。
Note that the satisfiability determination unit 104 returns a response “unsatisfiable” to the test case generation unit 103 when a combination of variable values that satisfy each variable relationship cannot be generated from the delivered conditional expression. For example, the conditional expression “¬ (x> 0) ∧ (z == 5) ∧ (y == 1) ¬ ¬ (z> 1) ∧ (y> 0) of record No = 4 in the test case conditional expression table Tb3 "" For the variable z "(z == 5)
矛盾 ¬ (z> 1) "is included. For this reason, the satisfiability determining unit 104 tests the response" unsatisfiable "for the conditional expression of record No = 4 in the test case conditional expression table Tb3. It will be returned to the case generation unit 103.

テストケース生成部103は、例えば、“充足不能”といった応答が返却された場合では、対応する条件式のNoのレコードに“UNSAT(充足解なし)”といった情報を格納し、
テストケーステーブルを生成する。図8Dに例示のテストケーステーブルTb4では、例えば、No=4のレコードには、“UNSAT(充足解なし)”といった情報が格納されている
For example, when a response such as “unsatisfiable” is returned, the test case generation unit 103 stores information such as “UNSAT (no satisfied solution)” in the record of No in the corresponding conditional expression,
Generate a test case table. In the test case table Tb4 illustrated in FIG. 8D, for example, information such as “UNSAT (no satisfactory solution)” is stored in the record No = 4.

テストケース生成部103は、例えば、生成したテストケーステーブルをテストケースDB205に格納する。そして、テストケース生成部103は、例えば、生成したテストケーステーブルから“UNSAT(充足解なし)”が格納されたNoのレコードを除き、テスト
ケースC2として出力する。
For example, the test case generation unit 103 stores the generated test case table in the test case DB 205. Then, for example, the test case generation unit 103 outputs the test case C2 by excluding the No record in which “UNSAT (no satisfactory solution)” is stored from the generated test case table.

テストケースC2として出力される充足解(テストセット)は、テストケース条件式テーブルTb3において、“UNSAT(充足解なし)”が格納されたレコードを除く6通りのテ
ストセットである。つまり、本実施形態の情報処理装置10は、処理対象となる条件数nの判定式に対して、n+1個を最小数とするn+1通り以上の充足可能性を向上させたMC/DCのテスト網羅度を充足するテストケースを生成し、出力することができる。
Satisfactory solutions (test sets) output as the test case C2 are six test sets excluding records in which “UNSAT (no satisfactory solution)” is stored in the test case conditional expression table Tb3. In other words, the information processing apparatus 10 according to the present embodiment covers the MC / DC test coverage that improves the satisfyability of n + 1 or more types, with the minimum number being n + 1, with respect to the determination formula for the condition number n to be processed. A test case satisfying the degree can be generated and output.

〔処理フロー〕
(全体処理)
以下、図9A−9Hに例示のフローチャートを参照し、本実施形態の情報処理装置10の、MC/DCのテスト網羅度を満たすテストケース生成処理を説明する。図9A−9Bは、MC/DCのテスト網羅度を満たすテストケース生成処理の全体処理を示すフローチャートの例示である。
[Process flow]
(Overall processing)
Hereinafter, a test case generation process that satisfies the MC / DC test coverage of the information processing apparatus 10 according to the present embodiment will be described with reference to flowcharts illustrated in FIGS. 9A to 9H. FIGS. 9A to 9B are examples of flowcharts illustrating the entire test case generation process that satisfies the test coverage of MC / DC.

図9Aに例示のフローチャートにおいて、MC/DCのテスト網羅度を満たすテストケース生成処理の開始は、例えば、テスト対象となるプログラムの判定式の受け付けのときが例示できる。情報処理装置10は、例えば、受け付けた判定式を解析し、判定式に含まれる論理演算子、論理演算子で結合される各条件式、論理演算子による各条件式についての処理プロセスの階層関係を特定する。そして、情報処理装置10は、例えば、特定した論理演算子、各条件式、処理プロセスの階層関係に基づいて、受け付けた判定式の各条件式の階層的な論理演算関係を二分木構造に変換する(S1)。なお、受け付けた判定式に対する二分木構造の変換処理は、図7Aで説明した。   In the flowchart illustrated in FIG. 9A, the start of the test case generation process that satisfies the test coverage of MC / DC can be exemplified by, for example, the acceptance of the determination formula of the program to be tested. For example, the information processing apparatus 10 analyzes the received determination expression, and includes a logical operator included in the determination expression, each conditional expression coupled by the logical operator, and a hierarchical relationship of processing processes for each conditional expression by the logical operator. Is identified. Then, the information processing apparatus 10 converts the hierarchical logical operation relationship of each conditional expression of the received judgment expression into a binary tree structure based on, for example, the identified logical operator, each conditional expression, and the hierarchical relationship of the processing processes. (S1). Note that the binary tree structure conversion processing for the accepted determination formula has been described with reference to FIG. 7A.

情報処理装置10は、S1の処理の結果、例えば、処理対象となる判定式についての判定式二分木を生成する。生成された判定式二分木は、例えば、受け付けた判定式の識別情
報に対応付けられて、判定式二分木DB202に格納される。
The information processing apparatus 10 generates, for example, a determination expression binary tree for the determination expression to be processed as a result of the processing of S1. The generated judgment formula binary tree is stored in the judgment formula binary tree DB 202 in association with the identification information of the accepted judgment formula, for example.

情報処理装置10は、例えば、S1の処理で生成した、処理対象の判定式についての二分木構造(判定式二分木)に基づいて、階層的な論理演算関係に係る処理プロセスについての条件式マップ集合を生成する(S2)。情報処理装置10は、例えば、二分木構造で階層化されたノード関係、ノード/リーフ関係に対して、組合せルールが反映された論理積、論理和の基本ルールである真偽値ルール適用処理を適用することにより、条件式マップ集合の生成を行う。なお、S2の真偽値ルール適用処理については、図9C−9Gで詳細を説明する。   The information processing apparatus 10, for example, a conditional expression map for a processing process related to a hierarchical logical operation relationship based on a binary tree structure (determination expression binary tree) for a determination target expression generated in the process of S <b> 1. A set is generated (S2). For example, the information processing apparatus 10 performs a true / false rule application process that is a basic rule of logical product and logical sum in which a combination rule is reflected on a node relation and a node / leaf relation hierarchized in a binary tree structure. By applying it, a set of conditional expression maps is generated. The true / false value rule application processing in S2 will be described in detail with reference to FIGS. 9C-9G.

情報処理装置10は、例えば、S2の処理の結果、生成された判定式についての条件式マップ集合を、受け付けた判定式の識別情報に対応付けて条件式マップ集合DB203に格納する。   For example, the information processing apparatus 10 stores the conditional expression map set for the determination formula generated as a result of the processing of S2 in the conditional expression map set DB 203 in association with the identification information of the received determination formula.

S3の処理では、情報処理装置10は、例えば、条件式マップ集合DB203を参照し、処理対象となる判定式について生成された条件式マップ集合を取得する。取得した条件式マップ集合は、例えば、主記憶部12の所定の領域に一時的に記憶される。そして、情報処理装置10は、例えば、条件式マップ集合に含まれる条件式マップ毎に、判定式の処理プロセスの真偽値を反映した条件式の抽出を行う。そして、情報処理装置10は、例えば、条件式マップ毎に抽出された条件式に基づいて、処理対象の判定式に対するテストケース条件式テーブルを生成する。なお、条件式マップ集合に基づくテストケース条件式テーブルの生成処理は、図8Aで説明した。   In the process of S3, the information processing apparatus 10 refers to the conditional expression map set DB 203, for example, and acquires the conditional expression map set generated for the determination expression to be processed. The acquired conditional expression map set is temporarily stored in a predetermined area of the main storage unit 12, for example. Then, for example, the information processing apparatus 10 extracts a conditional expression that reflects the true / false value of the processing process of the determination expression for each conditional expression map included in the conditional expression map set. For example, the information processing apparatus 10 generates a test case conditional expression table for the determination expression to be processed based on the conditional expression extracted for each conditional expression map. Note that the test case conditional expression table generation process based on the conditional expression map set has been described with reference to FIG. 8A.

ここで、S3の処理で生成されたテストケース条件式テーブルには、選択演算子を用いて結合された条件式が含まれる。情報処理装置10は、例えば、選択演算子を用いて結合された条件式が含まれるテストケース条件式テーブルを、処理対象の判定式の識別情報に対応付けてテストケース条件式DB204に格納する。   Here, the test case conditional expression table generated in the process of S3 includes conditional expressions combined using a selection operator. For example, the information processing apparatus 10 stores a test case conditional expression table including conditional expressions combined using a selection operator in the test case conditional expression DB 204 in association with identification information of a determination target expression.

図9Bに例示のフローチャートにおいて、S4−S8の処理では、情報処理装置10は、テストケース条件式テーブルの選択演算子を用いて結合された条件式を展開し、部分条件式を生成する。そして、S4−S8の処理では、例えば、情報処理装置10は、生成された部分条件式について、矛盾を含む変数関係の有無を判定する。   In the flowchart illustrated in FIG. 9B, in the processing of S <b> 4 to S <b> 8, the information processing apparatus 10 expands the conditional expressions combined using the selection operator of the test case conditional expression table and generates a partial conditional expression. In the process of S4-S8, for example, the information processing apparatus 10 determines whether there is a variable relationship including contradiction for the generated partial conditional expression.

S4−S8の処理では、情報処理装置10は、例えば、部分条件式が矛盾を含む変数関係を有する場合には、該部分条件式と選択関係にある他の部分条件式を生成し、選択関係にある他の部分条件式についての、矛盾を含む変数関係の有無を判定する。一方、情報処理装置10は、例えば、部分条件式の変数関係に矛盾が含まれない場合には、生成した部分条件式に基づいて、テストケース条件式テーブルを更新する。テストケース条件式テーブルの、選択演算子を用いて結合された条件式は、変数関係に矛盾が含まれない部分条件式により更新される。   In the processing of S4-S8, for example, when the partial conditional expression has a variable relationship including a contradiction, the information processing apparatus 10 generates another partial conditional expression that is in a selective relationship with the partial conditional expression, and selects the selective relationship. It is determined whether there is a variable relationship including contradiction for other partial conditional expressions in (1). On the other hand, the information processing apparatus 10 updates the test case conditional expression table based on the generated partial conditional expression when, for example, the contradiction is not included in the variable relationship of the partial conditional expression. The conditional expressions combined using the selection operator in the test case conditional expression table are updated with the partial conditional expressions that do not contain any contradiction in the variable relationship.

S4の処理では、情報処理装置10は、例えば、テストケース条件式DB204を参照し、S3の処理で生成されたテストケース条件式テーブルを取得する。取得したテストケース条件式テーブルは、例えば、主記憶部12の所定の領域に一時的に記憶される。そして、情報処理装置10は、例えば、テストケース条件式テーブルに、未処理のテストケース条件式が存在するかを判定する。   In the process of S4, the information processing apparatus 10 refers to the test case conditional expression DB 204, for example, and acquires the test case conditional expression table generated in the process of S3. The acquired test case conditional expression table is temporarily stored in a predetermined area of the main storage unit 12, for example. Then, the information processing apparatus 10 determines, for example, whether an unprocessed test case conditional expression exists in the test case conditional expression table.

情報処理装置10は、例えば、テストケース条件式テーブルに未処理のテストケース条件式が存在しない場合には(S4,no)、S9の処理に移行する。一方、情報処理装置10は、例えば、テストケース条件式テーブルに未処理のテストケース条件式が存在する
場合には(S4,yes)、S5の処理に移行する。S5の処理では、情報処理装置10は、テストケース条件式テーブルから、処理対象となるテストケース条件式を抽出する。
For example, when there is no unprocessed test case conditional expression in the test case conditional expression table (S4, no), the information processing apparatus 10 proceeds to the process of S9. On the other hand, for example, when there is an unprocessed test case conditional expression in the test case conditional expression table (S4, yes), the information processing apparatus 10 proceeds to the process of S5. In the process of S5, the information processing apparatus 10 extracts a test case conditional expression to be processed from the test case conditional expression table.

S6の処理では、情報処理装置10は、例えば、S5の処理で抽出されたテストケース条件式に選択演算子を表す選択記号“||”が含まれるか否かを判定する。情報処理装置10は、例えば、S5の処理で抽出されたテストケース条件式に選択演算子を表す選択記号“||”が含まれない場合には(S6,no)、S4―S5の処理を繰り返す。一方、情報処理装置10は、例えば、S5の処理で抽出されたテストケース条件式に選択演算子を表す選択記号“||”が含まれる場合には(S6,yes)、S7の処理に移行する。   In the process of S6, for example, the information processing apparatus 10 determines whether or not the selection symbol “||” representing the selection operator is included in the test case conditional expression extracted in the process of S5. For example, when the selection symbol “||” representing the selection operator is not included in the test case conditional expression extracted in the process of S5 (S6, no), the information processing apparatus 10 performs the processes of S4-S5. repeat. On the other hand, for example, when the selection symbol “||” representing the selection operator is included in the test case conditional expression extracted in the process of S5 (S6, yes), the information processing apparatus 10 proceeds to the process of S7. To do.

S7の処理では、情報処理装置10は、例えば、テストケース条件式を選択関係に基づいて展開し、部分条件式を生成する(テストケース選択処理)。そして、情報処理装置10は、例えば、生成された部分条件式について矛盾を含む変数関係の有無を判定し、変数関係に矛盾を含まない部分条件式を選択されたテストケース条件式として取得する。なお、S7の処理については、図9Hで詳細を説明する。   In the processing of S7, for example, the information processing apparatus 10 expands the test case conditional expression based on the selection relationship, and generates a partial conditional expression (test case selection processing). Then, the information processing apparatus 10 determines, for example, whether or not the generated partial conditional expression has a variable relationship including a contradiction, and acquires a partial conditional expression that does not include a contradiction in the variable relationship as a selected test case conditional expression. Details of the processing in S7 will be described with reference to FIG. 9H.

S8の処理では、情報処理装置10は、例えば、S7の処理で選択されたテストケースとして取得された部分条件式に基づいて、対応するテストケース条件式テーブル内のテストケース条件式を更新する。更新されたテストケース条件式テーブルは、例えば、テストケース条件式DB204に格納される。   In the process of S8, the information processing apparatus 10 updates the test case conditional expression in the corresponding test case conditional expression table, for example, based on the partial conditional expression acquired as the test case selected in the process of S7. The updated test case conditional expression table is stored in the test case conditional expression DB 204, for example.

S9−S12の処理では、情報処理装置10は、例えば、テストケース条件式テーブルに格納されたテストケース条件式に基づいて、MC/DCのテスト網羅度を充足する変数値の組合せであるテストセットを生成する。そして、情報処理装置10は、例えば、テストケース条件式毎に生成されたテストセットに基づいて、テストケーステーブルを生成する。生成されたテストケーステーブルは、例えば、テストケースDB205に格納される。   In the processing of S9-S12, the information processing apparatus 10 uses, for example, a test set that is a combination of variable values that satisfies the test coverage of MC / DC based on the test case conditional expressions stored in the test case conditional expression table. Is generated. And the information processing apparatus 10 produces | generates a test case table based on the test set produced | generated for every test case conditional expression, for example. The generated test case table is stored in the test case DB 205, for example.

S9の処理では、情報処理装置10は、例えば、テストケース条件式DB204を参照し、S8の処理で更新されたテストケース条件式テーブルを取得する。取得したテストケース条件式テーブルは、例えば、主記憶部12の所定の領域に一時的に記憶される。そして、情報処理装置10は、例えば、テストケース条件式テーブルに、未処理のテストケース条件式が存在するかを判定する。なお、S8の処理で更新されたテストケース条件式テーブル内には、選択演算子により結合された条件式は含まれない。   In the process of S9, the information processing apparatus 10 refers to the test case conditional expression DB 204, for example, and acquires the test case conditional expression table updated in the process of S8. The acquired test case conditional expression table is temporarily stored in a predetermined area of the main storage unit 12, for example. Then, the information processing apparatus 10 determines, for example, whether an unprocessed test case conditional expression exists in the test case conditional expression table. Note that the test case conditional expression table updated in the process of S8 does not include the conditional expression combined by the selection operator.

情報処理装置10は、例えば、テストケース条件式テーブルに未処理のテストケース条件式が存在しない場合には(S9,no)、S12の処理に移行する。一方、情報処理装置10は、例えば、テストケース条件式テーブルに未処理のテストケース条件式が存在する場合には(S9,yes)、S10の処理に移行する。S10の処理では、情報処理装置10は、テストケース条件式テーブルから、処理対象となるテストケース条件式を抽出する。   For example, when there is no unprocessed test case conditional expression in the test case conditional expression table (S9, no), the information processing apparatus 10 proceeds to the process of S12. On the other hand, for example, when there is an unprocessed test case conditional expression in the test case conditional expression table (S9, yes), the information processing apparatus 10 proceeds to the process of S10. In the process of S10, the information processing apparatus 10 extracts a test case conditional expression to be processed from the test case conditional expression table.

S11の処理では、情報処理装置10は、例えば、S10の処理で抽出されたテストケース条件式を充足可能性判定部104に引き渡し、テストケース条件式についての充足解を取得する。情報処理装置10は、例えば、充足可能性判定部104から返却された各変数値の組合せであるテストセットを、引き渡したテストケース条件式に対する充足解として取得する。取得した充足解は、例えば、テストケーステーブルに格納される。   In the process of S11, for example, the information processing apparatus 10 passes the test case conditional expression extracted in the process of S10 to the satisfiability determination unit 104, and acquires a satisfactory solution for the test case conditional expression. The information processing apparatus 10 acquires, for example, a test set that is a combination of variable values returned from the satisfiability determination unit 104 as a satisfactory solution for the delivered test case conditional expression. The acquired satisfaction solution is stored in, for example, a test case table.

情報処理装置10は、例えば、S9−S11の処理を繰り返し、S9の処理で取得したテストケース条件式テーブルにテストケーステーブルを生成する。S12の処理では、例
えば、S9の処理でテストケース条件式DB204から取得したテストケース条件式テーブルに基づいて生成されたテストケーステーブルが情報処理装置10に返却される。
For example, the information processing apparatus 10 repeats the processes of S9 to S11 and generates a test case table in the test case conditional expression table acquired in the process of S9. In the process of S12, for example, the test case table generated based on the test case conditional expression table acquired from the test case conditional expression DB 204 in the process of S9 is returned to the information processing apparatus 10.

情報処理装置10は、例えば、S12の処理で返却されたテストケーステーブルを、処理対象の判定式の識別情報に対応付けられてテストケーステーブルDB205に格納する。なお、S10−S12の処理は、図8Dで説明した。   For example, the information processing apparatus 10 stores the test case table returned in the process of S12 in the test case table DB 205 in association with the identification information of the determination target expression. In addition, the process of S10-S12 was demonstrated in FIG. 8D.

ここで、情報処理装置10で実行されるS1の処理は、判定に係る論理式中の演算子と演算対象式との組み合わせに基づく階層中の最上位の階層の演算子を取得する取得ステップの一例である。また、情報処理装置10のCPU11等は、判定に係る論理式中の演算子と演算対象式との組み合わせに基づく階層中の最上位の階層の演算子を取得する取得手段の一例としてS1の処理を実行する。   Here, the processing of S1 executed by the information processing apparatus 10 is an acquisition step of acquiring the operator in the highest hierarchy in the hierarchy based on the combination of the operator in the logical expression related to the determination and the operation target expression. It is an example. Further, the CPU 11 or the like of the information processing apparatus 10 performs the process of S1 as an example of an acquisition unit that acquires the operator of the highest hierarchy in the hierarchy based on the combination of the operator in the logical expression related to the determination and the operation target expression. Execute.

また、情報処理装置10で実行されるS2の処理は、演算子による演算結果の真偽値と演算子によって演算の対象となる演算対象式の真偽値とが所定関係を満たす演算対象式を特定し、所定関係にある演算対象式が複数特定される場合に、特定される複数の演算対象式を保持して、演算対象式の真偽値を求める解析ステップの一例である。また、情報処理装置10のCPU11等は、演算子による演算結果の真偽値と演算子によって演算の対象となる演算対象式の真偽値とが所定関係を満たす演算対象式を特定し、所定関係にある演算対象式が複数特定される場合に、特定される複数の演算対象式を保持して、演算対象式の真偽値を求める解析手段の一例としてS2の処理を実行する。   Further, the processing of S2 executed by the information processing apparatus 10 is a calculation target expression that satisfies a predetermined relationship between a true / false value of a calculation result by an operator and a true / false value of a calculation target expression to be calculated by the operator. This is an example of an analysis step in which when a plurality of calculation target expressions that are specified and in a predetermined relationship are specified, a plurality of calculation target expressions are held and a truth value of the calculation target expression is obtained. Further, the CPU 11 or the like of the information processing apparatus 10 specifies a calculation target expression that satisfies a predetermined relationship between a true / false value of a calculation result by the operator and a true / false value of a calculation target expression that is a calculation target by the operator. When a plurality of calculation target expressions related to each other are specified, the process of S2 is executed as an example of an analysis unit that holds a plurality of specified calculation target expressions and obtains a truth value of the calculation target expression.

また、情報処理装置10で実行されるS4−S8の処理は、所定関係にある複数の演算対象式について演算対象式の充足可能性を判定し、充足可能と判定された演算対象式を選択する選択ステップの一例である。また、情報処理装置10のCPU11等は、所定関係にある複数の演算対象式について演算対象式の充足可能性を判定し、充足可能と判定された演算対象式を選択する選択手段の一例としてS4−S8の処理を実行する。   Further, the processing of S4 to S8 executed by the information processing apparatus 10 determines the satisfiability of the calculation target formula for a plurality of calculation target formulas having a predetermined relationship, and selects the calculation target formula determined to be satisfiable. It is an example of a selection step. Further, the CPU 11 or the like of the information processing apparatus 10 determines the satisfiability of the calculation target formula for a plurality of calculation target formulas having a predetermined relationship, and selects S4 as an example of a selection unit that selects the calculation target formula determined to be satisfiable. -The process of S8 is executed.

(真偽値ルール適用処理)
図9C−9Gに例示のフローチャートを参照し、図9Aに例示のS2の真偽値ルール適用処理を説明する。なお、図9Cに例示のS21−S25の処理、図9D−9Eに例示のS31−S44の処理、図9F−9Gに例示のS51−S64の処理は、例えば、図7B−7Hで説明した。
(True value rule application processing)
With reference to the flowchart illustrated in FIGS. 9C to 9G, the true / false value rule application processing of S2 illustrated in FIG. 9A will be described. The process of S21-S25 illustrated in FIG. 9C, the process of S31-S44 illustrated in FIGS. 9D-9E, and the process of S51-S64 illustrated in FIGS. 9F-9G have been described with reference to FIGS. 7B-7H, for example.

図9Cに例示のフローチャートにおいて、情報処理装置10は、例えば、二分木構造において、処理対象のルートがリーフであることを判定する(S21)。情報処理装置10は、例えば、処理対象のルートがリーフである場合には(S21,yes)、S25の処理に移行する。S25の処理では、情報処理装置10は、例えば、処理対象のリーフについて条件式マップ集合{(リーフ,true),(¬(リーフ),false)}を生成し、処理中のテストケース生成処理に返却する。   In the flowchart illustrated in FIG. 9C, the information processing apparatus 10 determines that the processing target route is a leaf in a binary tree structure, for example (S21). For example, when the route to be processed is a leaf (S21, yes), the information processing apparatus 10 proceeds to the process of S25. In the processing of S25, for example, the information processing apparatus 10 generates a conditional expression map set {(leaf, true), (¬ (leaf), false)} for the processing target leaf, and performs the test case generation processing during processing. return.

一方、情報処理装置10は、例えば、処理対象のルートがリーフでない場合には(S21,no)、S22の処理に移行し、処理対象のルートが“or”演算子であることを判定する。情報処理装置10は、例えば、処理対象のルートが“or”演算子である場合には(S22,yes)、S24の処理に移行する。一方、情報処理装置10は、例えば、処理対象のルートが“or”演算子でない場合には(S22,no)、S23の処理に移行する。   On the other hand, for example, when the route to be processed is not a leaf (S21, no), the information processing apparatus 10 proceeds to the processing of S22 and determines that the route to be processed is an “or” operator. For example, when the route to be processed is an “or” operator (S22, yes), the information processing apparatus 10 proceeds to the process of S24. On the other hand, for example, when the route to be processed is not the “or” operator (S22, no), the information processing apparatus 10 proceeds to the process of S23.

S23の処理では、例えば、情報処理装置10は論理積のノード処理に係る左子木(左側のノード、或いは、リーフ)に真偽値ルール適用処理を適用し条件式マップ集合を生成
する。また、例えば、情報処理装置10は論理積のノード処理に係る右子木(右側のノード、或いは、リーフ)に真偽値ルール適用処理を適用し条件式マップ集合を生成する。
In the processing of S23, for example, the information processing apparatus 10 applies the truth value rule application processing to the left child tree (left node or leaf) related to the logical product node processing to generate a conditional expression map set. Further, for example, the information processing apparatus 10 applies a truth value rule application process to a right child tree (right node or leaf) related to a logical product node process to generate a conditional expression map set.

そして、情報処理装置10は、例えば、左右子木のそれぞれについて生成された条件式マップ集合から、論理積のノードに係る処理プロセス(AND演算子処理)についての真偽値を反映した条件式マップ集合を生成し、処理中のテストケース生成処理に返却する。なお、S23の処理については、図9D−9Eで詳細を説明する。   Then, the information processing apparatus 10, for example, from the conditional expression map set generated for each of the left and right child trees, the conditional expression map reflecting the truth value for the processing process (AND operator processing) related to the logical product node Generate a set and return it to the test case generation process being processed. Details of the processing of S23 will be described with reference to FIGS. 9D-9E.

S24の処理では、例えば、情報処理装置10は論理和のノード処理に係る左子木(左側のノード、或いは、リーフ)に真偽値ルール適用処理を適用し条件式マップ集合を生成する。また、例えば、情報処理装置10は論理和のノード処理に係る右子木(右側のノード、或いは、リーフ)に真偽値ルール適用処理を適用し条件式マップ集合を生成する。
そして、情報処理装置10は、例えば、左右子木のそれぞれについて生成された条件式マップ集合から、論理和のノードに係る処理プロセス(OR演算子処理)についての真偽値を反映した条件式マップ集合を生成し、処理中のテストケース生成処理に返却する。なお、S24の処理については、図9F−9Gで詳細を説明する。
In the processing of S24, for example, the information processing apparatus 10 applies the truth value rule application processing to the left child tree (left node or leaf) related to the logical sum node processing to generate a conditional expression map set. Further, for example, the information processing apparatus 10 applies a truth value rule application process to a right child tree (right node or leaf) related to a logical sum node process to generate a conditional expression map set.
Then, the information processing apparatus 10, for example, from the conditional expression map set generated for each of the left and right child trees, the conditional expression map that reflects the truth value for the processing process (OR operator processing) related to the logical sum node. Generate a set and return it to the test case generation process being processed. Details of the processing of S24 will be described with reference to FIGS. 9F-9G.

なお、S23−S24の処理において、真偽値ルールを適用した条件式マップ集合の生成は、例えば、真偽値ルールDB201に格納された論理積ルールTb1、論理和ルールTb2に基づいて行われる。真偽値ルールDB201に格納された論理積ルールTb1、論理和ルールTb2には、組合せルールが反映されている。   In the processing of S23 to S24, the generation of the conditional expression map set to which the truth value rule is applied is performed based on, for example, the logical product rule Tb1 and the logical sum rule Tb2 stored in the truth value rule DB 201. The combination rule is reflected in the logical product rule Tb1 and the logical sum rule Tb2 stored in the truth value rule DB 201.

ここで、情報処理装置10で実行されるS21−S25の処理は、所定関係を満たす演算対象式の真偽値を用いて階層中の最上位の階層の演算子で結合される演算対象式以下の論理式に取得ステップと解析ステップとを適用するステップの一例である。また、情報処理装置10のCPU11等は、所定関係を満たす演算対象式の真偽値を用いて階層中の最上位の階層の演算子で結合される演算対象式以下の論理式に取得ステップと解析ステップとを適用する手段の一例としてS21−S25の処理を実行する。   Here, the processing of S21 to S25 executed by the information processing apparatus 10 is an arithmetic expression that is combined with the operator of the highest hierarchy in the hierarchy using the truth value of the arithmetic expression that satisfies the predetermined relationship. It is an example of the step which applies an acquisition step and an analysis step to the logical expression. Further, the CPU 11 or the like of the information processing apparatus 10 obtains a logical expression below the calculation target expression that is combined by the operator of the highest hierarchy in the hierarchy using the truth value of the calculation target expression that satisfies the predetermined relationship. As an example of means for applying the analysis step, the processing of S21 to S25 is executed.

・AND演算子処理
図9D−9Eに例示のフローチャートを参照し、図9Cに例示のS23のAND演算子処理を説明する。なお、以下の説明では、論理積のノード処理に係る左子木で生成された条件式マップ集合を“左マップ集合”とも称し、右子木で生成された条件式マップ集合を“右マップ集合”とも称する。
AND Operator Processing The AND operator processing of S23 illustrated in FIG. 9C will be described with reference to the flowchart illustrated in FIGS. 9D-9E. In the following description, the conditional expression map set generated by the left child tree related to the logical node processing is also referred to as “left map set”, and the conditional expression map set generated by the right child tree is referred to as “right map set”. Also referred to.

図9Dに例示のフローチャートにおいて、情報処理装置10は、例えば、左マップ集合から真偽値“true”と組となった条件式マップを全て抽出し、抽出した各条件式マップの条件式に基づいて、選択演算子で結合された結合式“leftcond1”を生成する(S31)
。生成された結合式“leftcond1”は以下の通りである。なお、条件式に付加された識別
子“n”は、抽出された条件式マップの数量を表す。
In the flowchart illustrated in FIG. 9D, for example, the information processing apparatus 10 extracts all the conditional expression maps that are paired with the true value “true” from the left map set, and based on the extracted conditional expressions of the conditional expression maps. Thus, the join expression “leftcond1” joined by the selection operator is generated (S31).
. The generated combined expression “leftcond1” is as follows. The identifier “n” added to the conditional expression represents the quantity of the extracted conditional expression map.

・leftcond1:=(条件式1||…||条件式n)
S32の処理では、情報処理装置10は、例えば、右マップ集合から真偽値“false”
と組となった条件式マップを全て抽出し、抽出した各条件式マップの条件式に基づいて、“rightcond1”を生成する。なお、抽出した条件式マップが複数の場合には、“rightcond1”は、集合を表す記号“{}”を用いて以下のように表される。条件式に付加された識別子“n”は、抽出された条件式マップの数量を表す。
Leftcond1: = (conditional expression 1 || ... | conditional expression n)
In the process of S32, the information processing apparatus 10, for example, from the right map set, the truth value “false”
Are extracted, and “rightcond1” is generated based on the extracted conditional expressions of each conditional expression map. When there are a plurality of extracted conditional expression maps, “rightcond1” is expressed as follows using a symbol “{}” representing a set. The identifier “n” added to the conditional expression represents the quantity of the extracted conditional expression map.

・rightcond1:{(条件式1),…,(条件式n)}
S33の処理では、情報処理装置10は、例えば、S32の処理で生成した“rightcon
d1”の中に未処理の条件式が存在するかを判定する。情報処理装置10は、例えば、“rightcond1”の中に未処理の条件式が存在する場合には(S33,yes)、S34の処理に移行する。一方、情報処理装置10は、例えば、“rightcond1”の中に未処理の条件式が存在しない場合には(S33,no)、S35の処理に移行する。
Rightcond1: {(conditional expression 1), ..., (conditional expression n)}
In the process of S33, the information processing apparatus 10, for example, “rightcon” generated in the process of S32
It is determined whether there is an unprocessed conditional expression in “d1”. For example, when there is an unprocessed conditional expression in “rightcond1” (S33, yes), the information processing apparatus 10 performs S34. On the other hand, for example, when there is no unprocessed conditional expression in “rightcond1” (S33, no), the information processing apparatus 10 proceeds to the process of S35.

S34の処理では、情報処理装置10は、例えば、S32の処理で生成した“rightcond1”から条件式(rightcond1)を抽出し、抽出した条件式(rightcond1)を“leftcond1”と
結合演算子“∧”で結合する。条件式(rightcond1)には、複数の条件式が含まれる。“leftcond1”と条件式(rightcond1)との結合式は、“leftcond1 ∧ rightcond1”で表される。
In the process of S34, for example, the information processing apparatus 10 extracts the conditional expression (rightcond1) from “rightcond1” generated in the process of S32, and extracts the extracted conditional expression (rightcond1) as “leftcond1” and the join operator “∧”. Join with. The conditional expression (rightcond1) includes a plurality of conditional expressions. The combination expression of “leftcond1” and the conditional expression (rightcond1) is represented by “leftcond1∧rightcond1”.

そして、情報処理装置10は、例えば、結合式“leftcond1 ∧ rightcond1”と論理積
ルールTb1のID=1の真偽値“false”とを組合せた条件式マップ(leftcond1 ∧ rightcond1,false)を生成する。情報処理装置10は、例えば、生成した条件式マップを返
却用条件式マップ集合に追加する。
Then, for example, the information processing apparatus 10 generates a conditional expression map (leftcond1 ∧ rightcond1, false) that combines the combined expression “leftcond1∧rightcond1” and the truth value “false” of ID = 1 of the logical product rule Tb1. . For example, the information processing apparatus 10 adds the generated conditional expression map to the return conditional expression map set.

情報処理装置10は、例えば、S33−S34の処理を繰り返すことにより、論理積ルールTb1のID=1のレコードに対応した、条件式マップを生成することができる。   For example, the information processing apparatus 10 can generate a conditional expression map corresponding to the record of ID = 1 of the logical product rule Tb1 by repeating the processing of S33 to S34.

次に、情報処理装置10は、例えば、S35−S38の処理により、論理積ルールTb1のID=2のレコードに対応した、条件式マップを生成する。   Next, the information processing apparatus 10 generates a conditional expression map corresponding to the record of ID = 2 of the logical product rule Tb1 by, for example, the processing of S35 to S38.

情報処理装置10は、例えば、右マップ集合から真偽値“true”と組となった条件式マップを全て抽出し、抽出した各条件式マップの条件式に基づいて、選択演算子で結合された結合式“rightcond2”を生成する(S35)。生成された結合式“rightcond2”は以下の通りである。なお、条件式に付加された識別子“n”は、抽出された条件式マップの数量を表す。   For example, the information processing apparatus 10 extracts all the conditional expression maps that are paired with the true / false value “true” from the right map set, and is combined with a selection operator based on the extracted conditional expressions of each conditional expression map. The combined expression “rightcond2” is generated (S35). The generated join expression “rightcond2” is as follows. The identifier “n” added to the conditional expression represents the quantity of the extracted conditional expression map.

・rightcond2:=(条件式1||…||条件式n)
S36の処理では、情報処理装置10は、例えば、左マップ集合から真偽値“false”
と組となった条件式マップを全て抽出し、抽出した各条件式マップの条件式に基づいて、“leftcond2”を生成する。なお、抽出した条件式マップが複数の場合には、“leftcond2”は、集合を表す記号を用いて以下のように表される。条件式に付加された識別子“n”は、抽出された条件式マップの数量を表す。
Rightcond2: = (conditional expression 1 || ... | conditional expression n)
In the process of S36, the information processing apparatus 10, for example, from the left map set, the truth value “false”
Are extracted, and “leftcond2” is generated based on the extracted conditional expressions in each conditional expression map. When there are a plurality of extracted conditional expression maps, “leftcond2” is expressed as follows using a symbol representing a set. The identifier “n” added to the conditional expression represents the quantity of the extracted conditional expression map.

・leftcond2:{(条件式1),…,(条件式n)}
S37の処理では、情報処理装置10は、例えば、S36の処理で生成した“leftcond2”の中に未処理の条件式が存在するかを判定する。情報処理装置10は、例えば、“leftcond2”の中に未処理の条件式が存在する場合には(S37,yes)、S38の処理に移行する。一方、情報処理装置10は、例えば、“leftcond2”の中に未処理の条件式が
存在しない場合には(S37,no)、図9Eに例示するフローチャートのS39の処理に移行する。
Leftcond2: {(conditional expression 1), ..., (conditional expression n)}
In the process of S37, the information processing apparatus 10, for example, determines whether an unprocessed conditional expression exists in “leftcond2” generated in the process of S36. For example, when an unprocessed conditional expression exists in “leftcond2” (S37, yes), the information processing apparatus 10 proceeds to the process of S38. On the other hand, for example, when there is no unprocessed conditional expression in “leftcond2” (S37, no), the information processing apparatus 10 proceeds to the process of S39 in the flowchart illustrated in FIG. 9E.

S38の処理では、情報処理装置10は、例えば、S36の処理で生成した“leftcond2”から条件式(leftcond2)を抽出し、抽出した条件式(leftcond2)を“rightcond2”と結
合演算子“∧”で結合する。S34と同様に、条件式(leftcond2)には、複数の条件式が
含まれる。“leftcond2”と条件式(rightcond2)との結合式は、“leftcond2 ∧ rightcond2”で表される。
In the process of S38, for example, the information processing apparatus 10 extracts the conditional expression (leftcond2) from “leftcond2” generated in the process of S36, and extracts the extracted conditional expression (leftcond2) as “rightcond2” and the join operator “∧”. Join with. Similar to S34, the conditional expression (leftcond2) includes a plurality of conditional expressions. The combination expression of “leftcond2” and the conditional expression (rightcond2) is represented by “leftcond2∧rightcond2”.

そして、情報処理装置10は、例えば、結合式“leftcond2 ∧ rightcond2”と論理積
ルールTb1のID=2の真偽値“false”とを組合せた条件式マップ(leftcond2 ∧ rightcond2,false)を生成する。情報処理装置10は、例えば、生成した条件式マップを返
却用条件式マップ集合に追加する。
Then, for example, the information processing apparatus 10 generates a conditional expression map (leftcond2 2 rightcond2, false) that combines the combination expression “leftcond2∧rightcond2” and the truth value “false” of ID = 2 of the logical product rule Tb1. . For example, the information processing apparatus 10 adds the generated conditional expression map to the return conditional expression map set.

次に、情報処理装置10は、例えば、図9Eに例示するフローチャートのS39−S43の処理により、論理積ルールTb1のID=3のレコードに対応した、条件式マップを生成する。   Next, the information processing apparatus 10 generates a conditional expression map corresponding to the record of ID = 3 of the logical product rule Tb1 by, for example, the processing of S39 to S43 in the flowchart illustrated in FIG. 9E.

図9Eに例示のフローチャートにおいて、情報処理装置10は、例えば、左マップ集合から真偽値“true”と組となった条件式マップを全て抽出し、抽出した各条件式マップの条件式に基づいて、“leftcond3”を生成する(S39)。なお、抽出した条件式マップ
が複数の場合には、“leftcond3”は、集合を表す記号を用いて以下のように表される。
条件式に付加された識別子“n”は、抽出された条件式マップの数量を表す。
In the flowchart illustrated in FIG. 9E, for example, the information processing apparatus 10 extracts all conditional expression maps that are paired with a true value “true” from the left map set, and based on the extracted conditional expressions of each conditional expression map. Then, “leftcond3” is generated (S39). When there are a plurality of extracted conditional expression maps, “leftcond3” is expressed as follows using a symbol representing a set.
The identifier “n” added to the conditional expression represents the quantity of the extracted conditional expression map.

・leftcond3:{(条件式1),…,(条件式n)}
同様にして、情報処理装置10は、例えば、右マップ集合から真偽値“true”と組となった条件式マップを全て抽出し、抽出した各条件式マップの条件式に基づいて、“rightcond3”を生成する(S40)。抽出した条件式マップが複数の場合には、“rightcond3”は、集合を表す記号を用いて以下のように表される。条件式に付加された識別子“n”は、抽出された条件式マップの数量を表す。
Leftcond3: {(conditional expression 1), ..., (conditional expression n)}
Similarly, the information processing apparatus 10 extracts, for example, all the conditional expression maps that are paired with the true / false value “true” from the right map set, and sets “rightcond3” based on the extracted conditional expressions of each conditional expression map. "Is generated (S40). When there are a plurality of extracted conditional expression maps, “rightcond3” is expressed as follows using a symbol representing a set. The identifier “n” added to the conditional expression represents the quantity of the extracted conditional expression map.

・rightcond3:{(条件式1),…,(条件式n)}
S41の処理では、情報処理装置10は、例えば、S39の処理で生成した“leftcond3”の中に未処理の条件式が存在するかを判定する。情報処理装置10は、例えば、“leftcond3”の中に未処理の条件式が存在する場合には(S41,yes)、S42の処理に移行する。一方、情報処理装置10は、例えば、“leftcond3”の中に未処理の条件式が
存在しない場合には(S41,no)、S44の処理に移行する。
Rightcond3: {(conditional expression 1), ..., (conditional expression n)}
In the process of S41, the information processing apparatus 10 determines whether an unprocessed conditional expression exists in “leftcond3” generated in the process of S39, for example. For example, when an unprocessed conditional expression exists in “leftcond3” (S41, yes), the information processing apparatus 10 proceeds to the process of S42. On the other hand, for example, when there is no unprocessed conditional expression in “leftcond3” (S41, no), the information processing apparatus 10 proceeds to the process of S44.

S42の処理では、情報処理装置10は、例えば、S40の処理で生成した“rightcond3”の中に未処理の条件式が存在するかを判定する。情報処理装置10は、例えば、“rightcond3”の中に未処理の条件式が存在する場合には(S42,yes)、S43の処理に移行する。一方、情報処理装置10は、例えば、“rightcond3”の中に未処理の条件式が存在しない場合には(S42,no)、S41の処理を繰り返す。   In the process of S42, the information processing apparatus 10 determines whether an unprocessed conditional expression exists in “rightcond3” generated in the process of S40, for example. For example, when an unprocessed conditional expression exists in “rightcond3” (S42, yes), the information processing apparatus 10 proceeds to the process of S43. On the other hand, for example, when there is no unprocessed conditional expression in “rightcond3” (S42, no), the information processing apparatus 10 repeats the process of S41.

S43の処理では、情報処理装置10は、例えば、S39の処理で生成した“leftcond3”から条件式(leftcond3)を抽出し、S40の処理で生成した“rightcond3”から条件式(rightcond3)を抽出する。そして、情報処理装置10は、例えば、抽出した各条件式を結合し、結合した各条件式と論理積ルールTb1のID=3の真偽値“true”とを組合せた条件式マップ(leftcond3 ∧ rightcond3,true)を生成する。情報処理装置10は、例え
ば、生成した条件式マップを返却用条件式マップ集合に追加する。
In the process of S43, for example, the information processing apparatus 10 extracts the conditional expression (leftcond3) from “leftcond3” generated in the process of S39, and extracts the conditional expression (rightcond3) from “rightcond3” generated in the process of S40. . The information processing apparatus 10 combines, for example, the extracted conditional expressions, and combines the combined conditional expressions with the truth value “true” of ID = 3 of the logical product rule Tb1 (leftcond3 ∧ rightcond3, true) is generated. For example, the information processing apparatus 10 adds the generated conditional expression map to the return conditional expression map set.

情報処理装置10は、例えば、S41−S43の処理を繰り返すことにより、論理積ルールTb1のID=3のレコードに対応した、条件式マップを生成することができる。   For example, the information processing apparatus 10 can generate a conditional expression map corresponding to the record of ID = 3 of the logical product rule Tb1 by repeating the processing of S41 to S43.

S44の処理では、情報処理装置10は、例えば、S34,S38,S43の処理で生成された条件式マップが格納された返却用条件式マップ集合を、処理中の真偽値ルール適用処理に返却する。   In the process of S44, for example, the information processing apparatus 10 returns the return conditional expression map set in which the conditional expression map generated in the processes of S34, S38, and S43 is stored to the true / false value rule application process being processed. To do.

・OR演算子処理
図9F−9Gに例示のフローチャートを参照し、図9Cに例示のS24のOR演算子処
理を説明する。以下の説明においても、AND演算子処理と同様に、論理和のノード処理に係る左子木で生成された条件式マップ集合を“左マップ集合”とも称し、右子木で生成された条件式マップ集合を“右マップ集合”とも称する。
OR Operator Processing The OR operator processing in S24 illustrated in FIG. 9C will be described with reference to the flowchart illustrated in FIGS. 9F-9G. In the following description, similarly to the AND operator processing, the conditional expression map set generated by the left child tree related to the logical sum node processing is also referred to as “left map set”, and the conditional expression generated by the right child tree. The map set is also referred to as “right map set”.

情報処理装置10は、例えば、図9Fに例示のフローチャートのS51−S54の処理により、論理和ルールTb2のID=1のレコードに対応した、条件式マップを生成する。同様にして、情報処理装置10は、例えば、図9Fに例示のフローチャートのS55−S58の処理により、論理和ルールTb2のID=2のレコードに対応した、条件式マップを生成する。また、情報処理装置10は、例えば、図9Gに例示のフローチャートのS59−S63の処理により、論理和ルールTb2のID=3のレコードに対応した、条件式マップを生成する。   For example, the information processing apparatus 10 generates a conditional expression map corresponding to the record of ID = 1 of the logical sum rule Tb2 by the processing of S51 to S54 in the flowchart illustrated in FIG. 9F. Similarly, the information processing apparatus 10 generates a conditional expression map corresponding to the record of ID = 2 of the logical sum rule Tb2 by the processing of S55 to S58 in the flowchart illustrated in FIG. 9F, for example. Further, for example, the information processing apparatus 10 generates a conditional expression map corresponding to the record of ID = 3 of the logical sum rule Tb2 by the processing of S59 to S63 in the flowchart illustrated in FIG. 9G.

図9Fに例示のフローチャートにおいて、情報処理装置10は、例えば、右マップ集合から真偽値“false”と組となった条件式マップを全て抽出し、抽出した各条件式マップ
の条件式に基づいて、選択演算子で結合された結合式“rightcond1”を生成する(S51)。生成された結合式“rightcond1”は以下の通りである。なお、条件式に付加された識別子“n”は、抽出された条件式マップの数量を表す。
In the flowchart illustrated in FIG. 9F, for example, the information processing apparatus 10 extracts all the conditional expression maps that are paired with the true / false value “false” from the right map set, and based on the extracted conditional expressions of the conditional expression maps. Thus, the join expression “rightcond1” joined by the selection operator is generated (S51). The generated join expression “rightcond1” is as follows. The identifier “n” added to the conditional expression represents the quantity of the extracted conditional expression map.

・rightcond1:=(条件式1||…||条件式n)
S52の処理では、情報処理装置10は、例えば、左マップ集合から真偽値“true”と組となった条件式マップを全て抽出し、抽出した各条件式マップの条件式に基づいて、“leftcond1”を生成する。なお、抽出した条件式マップが複数の場合には、“leftcond1”は、集合を表す記号“{}”を用いて以下のように表される。条件式に付加された識別子“n”は、抽出された条件式マップの数量を表す。
Rightcond1: = (conditional expression 1 || ... || conditional expression n)
In the process of S52, for example, the information processing apparatus 10 extracts all the conditional expression maps that are paired with the true value “true” from the left map set, and, based on the extracted conditional expressions of the conditional expression maps, “ leftcond1 ”is generated. When there are a plurality of extracted conditional expression maps, “leftcond1” is expressed as follows using a symbol “{}” representing a set. The identifier “n” added to the conditional expression represents the quantity of the extracted conditional expression map.

・leftcond1:{(条件式1),…,(条件式n)}
S53の処理では、情報処理装置10は、例えば、S52の処理で生成した“leftcond1”の中に未処理の条件式が存在するかを判定する。情報処理装置10は、例えば、“leftcond1”の中に未処理の条件式が存在する場合には(S53,yes)、S54の処理に移行する。一方、情報処理装置10は、例えば、“leftcond1”の中に未処理の条件式が
存在しない場合には(S53,no)、S55の処理に移行する。
Leftcond1: {(conditional expression 1), ..., (conditional expression n)}
In the process of S53, the information processing apparatus 10 determines, for example, whether an unprocessed conditional expression exists in “leftcond1” generated in the process of S52. For example, when an unprocessed conditional expression exists in “leftcond1” (S53, yes), the information processing apparatus 10 proceeds to the process of S54. On the other hand, for example, when there is no unprocessed conditional expression in “leftcond1” (S53, no), the information processing apparatus 10 proceeds to the process of S55.

S54の処理では、情報処理装置10は、例えば、S52の処理で生成した“leftcond1”から条件式(leftcond1)を抽出し、抽出した条件式(leftcond1)を“rightcond1”と結
合演算子“∧”で結合する。条件式(leftcond1)には、複数の条件式が含まれる。“leftcond1”と条件式(rightcond1)との結合式は、“leftcond1 ∧ rightcond1”で表される。
In the process of S54, for example, the information processing apparatus 10 extracts the conditional expression (leftcond1) from “leftcond1” generated in the process of S52, and extracts the extracted conditional expression (leftcond1) as “rightcond1” and the join operator “∧”. Join with. The conditional expression (leftcond1) includes a plurality of conditional expressions. The combination expression of “leftcond1” and the conditional expression (rightcond1) is represented by “leftcond1∧rightcond1”.

そして、情報処理装置10は、例えば、結合式“leftcond1 ∧ rightcond1”と論理和
ルールTb2のID=1の真偽値“true”とを組合せた条件式マップ(leftcond1 ∧ rightcond1,true)を生成する。情報処理装置10は、例えば、生成した条件式マップを返却
用条件式マップ集合に追加する。
Then, for example, the information processing apparatus 10 generates a conditional expression map (leftcond1 ∧ rightcond1, true) that combines the combination expression “leftcond1∧rightcond1” and the truth value “true” of ID = 1 of the logical sum rule Tb2. . For example, the information processing apparatus 10 adds the generated conditional expression map to the return conditional expression map set.

次に、情報処理装置10は、例えば、左マップ集合から真偽値“false”と組となった
条件式マップを全て抽出し、抽出した各条件式マップの条件式に基づいて、選択演算子で結合された結合式“leftcond2”を生成する(S55)。生成された結合式“leftcond2”は以下の通りである。条件式に付加された識別子“n”は、抽出された条件式マップの数量を表す。
Next, the information processing apparatus 10 extracts, for example, all the conditional expression maps that are paired with the truth value “false” from the left map set, and selects operators based on the extracted conditional expressions of the respective conditional expression maps. The combined expression “leftcond2” combined in step S55 is generated (S55). The generated combined expression “leftcond2” is as follows. The identifier “n” added to the conditional expression represents the quantity of the extracted conditional expression map.

・leftcond2:=(条件式1||…||条件式n)
S56の処理では、情報処理装置10は、例えば、右マップ集合から真偽値“true”と
組となった条件式マップを全て抽出し、抽出した各条件式マップの条件式に基づいて、“rightcond2”を生成する。なお、抽出した条件式マップが複数の場合には、“rightcond2”は、集合を表す記号を用いて以下のように表される。条件式に付加された識別子“n”は、抽出された条件式マップの数量を表す。
Leftcond2: = (conditional expression 1 || ... | conditional expression n)
In the process of S56, for example, the information processing apparatus 10 extracts all the conditional expression maps that are paired with the true value “true” from the right map set, and, based on the extracted conditional expressions of the conditional expression maps, “ rightcond2 ”is generated. When there are a plurality of extracted conditional expression maps, “rightcond2” is expressed as follows using a symbol representing a set. The identifier “n” added to the conditional expression represents the quantity of the extracted conditional expression map.

・rightcond2:{(条件式1),…,(条件式n)}
S57の処理では、情報処理装置10は、例えば、S56の処理で生成した“rightcond2”の中に未処理の条件式が存在するかを判定する。情報処理装置10は、例えば、“rightcond2”の中に未処理の条件式が存在する場合には(S57,yes)、S58の処理に移行する。一方、情報処理装置10は、例えば、“rightcond2”の中に未処理の条件式が存在しない場合には(S57,no)、図9Gに例示するフローチャートのS59の処理に移行する。
Rightcond2: {(conditional expression 1), ..., (conditional expression n)}
In the process of S57, the information processing apparatus 10 determines whether an unprocessed conditional expression exists in “rightcond2” generated in the process of S56, for example. For example, when an unprocessed conditional expression exists in “rightcond2” (S57, yes), the information processing apparatus 10 proceeds to the process of S58. On the other hand, for example, when there is no unprocessed conditional expression in “rightcond2” (S57, no), the information processing apparatus 10 proceeds to the process of S59 in the flowchart illustrated in FIG. 9G.

S58の処理では、情報処理装置10は、例えば、S56の処理で生成した“rightcond2”から条件式(rightcond2)を抽出し、抽出した条件式(rightcond2)を“leftcond2”と
結合演算子“∧”で結合する。条件式(rightcond2)には、複数の条件式が含まれる。“leftcond2”と条件式(rightcond2)との結合式は、“leftcond2 ∧ rightcond2”で表される。
In the process of S58, for example, the information processing apparatus 10 extracts the conditional expression (rightcond2) from “rightcond2” generated in the process of S56, and extracts the extracted conditional expression (rightcond2) as “leftcond2” and the join operator “∧”. Join with. The conditional expression (rightcond2) includes a plurality of conditional expressions. The combination expression of “leftcond2” and the conditional expression (rightcond2) is represented by “leftcond2∧rightcond2”.

そして、情報処理装置10は、例えば、結合式“leftcond2 ∧ rightcond2”と論理和
ルールTb2のID=2の真偽値“true”とを組合せた条件式マップ(leftcond2 ∧ rightcond2,true)を生成する。情報処理装置10は、例えば、生成した条件式マップを返却
用条件式マップ集合に追加する。
Then, for example, the information processing apparatus 10 generates a conditional expression map (leftcond2 2 rightcond2, true) that combines the combined expression “leftcond2∧rightcond2” and the truth value “true” of ID = 2 of the logical sum rule Tb2. . For example, the information processing apparatus 10 adds the generated conditional expression map to the return conditional expression map set.

図9Gに例示のフローチャートにおいて、情報処理装置10は、例えば、左マップ集合から真偽値“false”と組となった条件式マップを全て抽出し、抽出した各条件式マップ
の条件式に基づいて、“leftcond3”を生成する(S59)。なお、抽出した条件式マッ
プが複数の場合には、“leftcond3”は、集合を表す記号を用いて以下のように表される
。条件式に付加された識別子“n”は、抽出された条件式マップの数量を表す。
In the flowchart illustrated in FIG. 9G, for example, the information processing apparatus 10 extracts all the conditional expression maps that are paired with the truth value “false” from the left map set, and based on the extracted conditional expressions of the conditional expression maps. Then, “leftcond3” is generated (S59). When there are a plurality of extracted conditional expression maps, “leftcond3” is expressed as follows using a symbol representing a set. The identifier “n” added to the conditional expression represents the quantity of the extracted conditional expression map.

・leftcond3:{(条件式1),…,(条件式n)}
同様にして、情報処理装置10は、例えば、右マップ集合から真偽値“false”と組と
なった条件式マップを全て抽出し、抽出した各条件式マップの条件式に基づいて、“rightcond3”を生成する(S60)。抽出した条件式マップが複数の場合には、“rightcond3”は、集合を表す記号を用いて以下のように表される。条件式に付加された識別子“n”は、抽出された条件式マップの数量を表す。
Leftcond3: {(conditional expression 1), ..., (conditional expression n)}
Similarly, the information processing apparatus 10 extracts, for example, all the conditional expression maps that are paired with the true / false value “false” from the right map set, and based on the extracted conditional expressions in each conditional expression map, “rightcond3 "Is generated (S60). When there are a plurality of extracted conditional expression maps, “rightcond3” is expressed as follows using a symbol representing a set. The identifier “n” added to the conditional expression represents the quantity of the extracted conditional expression map.

・rightcond3:{(条件式1),…,(条件式n)}
S61の処理では、情報処理装置10は、例えば、S59の処理で生成した“leftcond3”の中に未処理の条件式が存在するかを判定する。情報処理装置10は、例えば、“leftcond3”の中に未処理の条件式が存在する場合には(S61,yes)、S62の処理に移行する。一方、情報処理装置10は、例えば、“leftcond3”の中に未処理の条件式が
存在しない場合には(S61,no)、S64の処理に移行する。
Rightcond3: {(conditional expression 1), ..., (conditional expression n)}
In the process of S61, the information processing apparatus 10 determines whether an unprocessed conditional expression exists in “leftcond3” generated in the process of S59, for example. For example, when an unprocessed conditional expression exists in “leftcond3” (S61, yes), the information processing apparatus 10 proceeds to the process of S62. On the other hand, for example, when there is no unprocessed conditional expression in “leftcond3” (S61, no), the information processing apparatus 10 proceeds to the process of S64.

S62の処理では、情報処理装置10は、例えば、S60の処理で生成した“rightcond3”の中に未処理の条件式が存在するかを判定する。情報処理装置10は、例えば、“rightcond3”の中に未処理の条件式が存在する場合には(S62,yes)、S63の処理に移行する。一方、情報処理装置10は、例えば、“rightcond3”の中に未処理の条件式が存在しない場合には(S62,no)、S61の処理を繰り返す。   In the process of S62, the information processing apparatus 10 determines, for example, whether an unprocessed conditional expression exists in “rightcond3” generated in the process of S60. For example, when an unprocessed conditional expression exists in “rightcond3” (S62, yes), the information processing apparatus 10 proceeds to the process of S63. On the other hand, for example, when there is no unprocessed conditional expression in “rightcond3” (S62, no), the information processing apparatus 10 repeats the process of S61.

S63の処理では、情報処理装置10は、例えば、S59の処理で生成した“leftcond3”から条件式(leftcond3)を抽出し、S60の処理で生成した“rightcond3”から条件式(rightcond3)を抽出する。そして、情報処理装置10は、例えば、抽出した各条件式を結合し、結合した各条件式と論理和ルールTb2のID=3の真偽値“false”とを組合せ
た条件式マップ(leftcond3 ∧ rightcond3,false)を生成する。情報処理装置10は、例えば、生成した条件式マップを返却用条件式マップ集合に追加する。
In the process of S63, for example, the information processing apparatus 10 extracts the conditional expression (leftcond3) from “leftcond3” generated in the process of S59, and extracts the conditional expression (rightcond3) from “rightcond3” generated in the process of S60. . Then, the information processing apparatus 10 combines, for example, the extracted conditional expressions, and combines the combined conditional expressions with the truth value “false” of ID = 3 of the logical sum rule Tb2 (leftcond3 ∧ rightcond3, false). For example, the information processing apparatus 10 adds the generated conditional expression map to the return conditional expression map set.

S64の処理では、情報処理装置10は、例えば、S54,S58,S63の処理で生成された条件式マップが格納された返却用条件式マップ集合を、処理中の真偽値ルール適用処理に返却する。   In the process of S64, for example, the information processing apparatus 10 returns the return conditional expression map set in which the conditional expression map generated in the processes of S54, S58, and S63 is stored to the true / false value rule application process being processed. To do.

(テストケース選択処理)
図9Hに例示のフローチャートを参照し、図9Bに例示のS7のテストケース選択処理を説明する。なお、図9Hに例示のS71−S75の処理については、例えば、図8B(1)、(2)で説明した。
(Test case selection process)
The test case selection process of S7 illustrated in FIG. 9B will be described with reference to the flowchart illustrated in FIG. 9H. Note that the processing of S71 to S75 illustrated in FIG. 9H has been described with reference to FIGS. 8B (1) and (2), for example.

図9Hに例示のフローチャートにおいて、情報処理装置10は、例えば、処理対象となるテストケース条件式について、選択演算子“||”を分岐とみなした深さ優先の探索が終了したかを判定する(S71)。情報処理装置10は、例えば、処理対象となるテストケース条件式に対し、選択演算子を分岐とみなした深さ優先の探索が終了した場合には(S71,yes)、S76の処理に移行し、空の状態の条件式を処理中のテストケース生成処理に返却する。なお、情報処理装置10では、例えば、S76の処理で空の状態の条件式が返却された場合には、処理対象のテストケース条件式は充足不能であると判定される。   In the flowchart illustrated in FIG. 9H, for example, the information processing apparatus 10 determines whether the depth-first search in which the selection operator “||” is regarded as a branch is completed for the test case conditional expression to be processed. (S71). For example, when the depth-first search with the selection operator regarded as a branch is completed for the test case conditional expression to be processed (S71, yes), the information processing apparatus 10 proceeds to the process of S76. Return the empty conditional expression to the test case generation process. In the information processing apparatus 10, for example, when an empty conditional expression is returned in the process of S <b> 76, it is determined that the test case conditional expression to be processed cannot be satisfied.

一方、情報処理装置10は、例えば、処理対象となるテストケース条件式に対し、選択演算子を分岐とみなした深さ優先の探索が終了しない場合には(S71,no)、S72の処理に移行する。   On the other hand, for example, when the depth-first search in which the selection operator is regarded as a branch is not completed for the test case conditional expression to be processed (S71, no), the information processing apparatus 10 performs the process of S72. Transition.

S72の処理では、情報処理装置10は、例えば、処理対象となるテストケース条件式に対し、選択演算子“||”を分岐とみなした深さ優先の探索を行い、選択関係を展開して生成された部分条件式を処理対象のテストケース条件式として選択する。なお、S72の処理で生成される部分条件式には、例えば、選択演算子は含まれない。   In the processing of S72, the information processing apparatus 10 performs, for example, a depth-first search that considers the selection operator “||” as a branch for the test case conditional expression to be processed, and expands the selection relationship. The generated partial conditional expression is selected as a test case conditional expression to be processed. Note that, for example, the selection operator is not included in the partial conditional expression generated in the process of S72.

情報処理装置10は、例えば、S72の処理で選択されたテストケース条件式である部分条件式を、充足可能性判定部104に引き渡し、引き渡した部分条件式の充足可能性の判定を行う(S73)。引き渡した部分条件式の充足可能性は、例えば、充足可能性判定部104から返却される応答情報により行われる。   For example, the information processing apparatus 10 passes the partial conditional expression, which is the test case conditional expression selected in the process of S72, to the satisfiability determining unit 104, and determines the satisfaction of the delivered partial conditional expression (S73). ). Satisfiability of the delivered partial conditional expression is performed by, for example, response information returned from the satisfiability determination unit 104.

例えば、情報処理装置10は、充足可能性判定部104から、“充足不能”を表す空の状態の変数値の組合せ等が応答情報として返却された場合には、処理対象の部分条件式について充足不能と判定する。また、例えば、情報処理装置10は、充足可能性判定部104から、部分条件式に含まれる変数値の組合せであるテストセットが応答情報として返却された場合には、処理対象の部分条件式について充足可能と判定する。   For example, when the combination of empty variable values indicating “unsatisfiable” is returned as response information from the satisfiability determination unit 104, the information processing apparatus 10 satisfies the partial conditional expression to be processed. Judged as impossible. Further, for example, when the test set that is a combination of variable values included in the partial conditional expression is returned as response information from the satisfiability determination unit 104, the information processing apparatus 10 determines the partial conditional expression to be processed. It is determined that it can be satisfied.

S74の処理では、情報処理装置10は、例えば、上述した判定に基づいて、S72の処理で選択された部分条件式の充足可能性を判定する。情報処理装置10は、例えば、S72の処理で選択された部分条件式が充足不能の場合には(S74,no)、S71の処理に移行し、選択関係にある他の部分条件式に対してS71−S74の処理を繰り返す。   In the process of S74, the information processing apparatus 10 determines the satisfaction of the partial conditional expression selected in the process of S72 based on the determination described above, for example. For example, if the partial conditional expression selected in the process of S72 is unsatisfiable (S74, no), the information processing apparatus 10 proceeds to the process of S71, and selects other partial conditional expressions that are in a selection relationship. The processes of S71 to S74 are repeated.

一方、情報処理装置10は、例えば、S72の処理で選択された部分条件式が充足可能である場合には(S74,yes)、S75の処理に移行し、選択された部分条件式をテストケース条件式として処理中のテストケース生成処理に返却する。テストケース生成処理では、例えば、S75の処理で返却された部分条件式に基づいて、テストケース条件式テーブルに格納された、選択演算子を含むテストケース条件式が更新される。   On the other hand, for example, when the partial conditional expression selected in the process of S72 can be satisfied (S74, yes), the information processing apparatus 10 proceeds to the process of S75, and uses the selected partial conditional expression as a test case. Return to the test case generation process being processed as a conditional expression. In the test case generation process, for example, the test case conditional expression including the selection operator stored in the test case conditional expression table is updated based on the partial conditional expression returned in the process of S75.

以上、説明したように、本実施形態の情報処理装置10は、テスト対象となる判定式を解析し、判定式に含まれる論理演算子、論理演算子で結合される各条件式、論理演算子による各条件式についての処理プロセスの階層関係を特定することができる。本実施形態の情報処理装置10は、例えば、特定した論理演算子、各条件式、処理プロセスの階層関係に基づいて、判定式に含まれる各条件式の階層的な論理演算関係を二分木構造に変換することができる。   As described above, the information processing apparatus 10 according to the present embodiment analyzes the determination expression to be tested, and includes the logical operator included in the determination expression, each conditional expression combined with the logical operator, and the logical operator. It is possible to specify the hierarchical relationship of processing processes for each conditional expression. The information processing apparatus 10 according to the present embodiment, for example, uses a binary tree structure to represent a hierarchical logical operation relationship of each conditional expression included in the determination expression based on the identified logical operator, each conditional expression, and the hierarchical relationship of processing processes. Can be converted to

また、本実施形態の情報処理装置10は、判定式の論理演算関係について、論理積、論理和等の基本ルールとなる、3通りの真偽値の組合せを格納した真偽値表を備えることができる。本実施形態の情報処理装置10は、基本ルールの真偽値表に格納された3通りの真偽値の組合せを判定式の論理演算関係に適用することで、論理演算の処理プロセスに係る各条件式についての真偽値の組合せから、余剰となる条件式の真偽値の組合せを排除できる。   In addition, the information processing apparatus 10 according to the present embodiment includes a truth table that stores combinations of three true / false values, which are basic rules such as logical product and logical sum, regarding the logical operation relationship of the determination formula. Can do. The information processing apparatus 10 according to the present embodiment applies each of the three combinations of truth values stored in the truth table of the basic rule to the logical operation relationship of the determination formula, thereby It is possible to exclude the combination of the truth value of the conditional expression that is a surplus from the combination of the truth value of the conditional expression.

また、本実施形態の各真偽値表には、真偽値の判定結果に独立に影響しない(対象となる条件式の真偽値を反転しても判定結果が変わらない)場合には、判定結果が共通する条件式の組合せを選択演算子で結合して抽出すると言う組合せルールが反映できる。同様に、本実施形態の各真偽値表には、真偽値の判定結果に独立に影響する(対象となる条件式の真偽値を反転すると判定結果が変わる)場合には、判定結果が共通する条件の組合せを全て抽出すると言う組合せルールが反映できる。本実施形態の情報処理装置10では、論理積、論理和の真偽値表に基づいて判定結果が共通する条件式の組合せの抽出の際に、充足不能な変数関係にある条件式の組合せが抽出されることを防止することができる。   In addition, each truth table of the present embodiment does not affect the determination result of the truth value independently (the determination result does not change even if the truth value of the target conditional expression is inverted), A combination rule that combines combinations of conditional expressions with common determination results by using a selection operator can be reflected. Similarly, each truth table of the present embodiment has an independent influence on the determination result of the truth value (if the determination result changes when the truth value of the target conditional expression is inverted), the determination result The combination rule of extracting all combinations of common conditions can be reflected. In the information processing apparatus 10 according to the present embodiment, when extracting a combination of conditional expressions having a common determination result based on a truth table of logical products and logical sums, a combination of conditional expressions having unsatisfiable variable relationships is extracted. Extraction can be prevented.

本実施形態の情報処理装置10は、組合せルールが反映された論理積・論理和の真偽値表に格納された真偽値に従って、判定式に含まれる論理演算の処理プロセスに係る各条件式の真偽値関係を、選択肢を含み特定することができる。情報処理装置10は、例えば、判定式の論理演算に対応する真偽値表に格納された真偽値と一致する判定結果となる、各条件式の真偽値の組合せを特定することができる。特定された各条件式の真偽値の組合せには、選択演算子で結合された、判定結果の真偽値が共通する条件式の複数の組合せが含まれる。   The information processing apparatus 10 according to the present embodiment uses each conditional expression related to the logical operation processing process included in the determination expression according to the truth value stored in the truth table of the logical product / logical sum reflecting the combination rule. The true / false relation of can be specified including options. The information processing apparatus 10 can specify, for example, a combination of true / false values of each conditional expression that is a determination result that matches the true / false value stored in the true / false table corresponding to the logical operation of the determination expression. . The combination of the true / false values of the specified conditional expressions includes a plurality of combinations of conditional expressions that are combined by a selection operator and share the true / false values of the determination results.

本実施形態の情報処理装置10は、階層化された最上位の論理演算子で結び付く上位の各条件式の真偽値関係を特定し、さらに、上位の各条件式に係る下位の演算処理プロセスについての下位の条件式の真偽値関係を階層的(再帰的)に求めることができる。そして、本実施形態の情報処理装置10は、最上位の論理演算の処理プロセスで特定された各条件式について、選択関係にある複数の条件式を展開し、充足可能な変数関係にある条件式の組合せを選択することができる。   The information processing apparatus 10 according to the present embodiment specifies a true / false relation of each upper-level conditional expression linked by a hierarchical uppermost logical operator, and further performs a lower-order arithmetic processing process related to each upper-level conditional expression It is possible to hierarchically (recursively) obtain the truth value relationship of the subordinate conditional expressions for. Then, the information processing apparatus 10 according to the present embodiment expands a plurality of conditional expressions that are in a selective relationship with respect to each conditional expression that is specified in the processing process of the highest-level logical operation, and a conditional expression that has a satisfying variable relationship Can be selected.

この結果、本実施形態の情報処理装置10は、テスト対象となる判定式について、充足可能性を向上させ、冗長性を排除した、MC/DCのテスト網羅度を満たす、各条件式についての真偽値の組合せを生成することができる。本実施形態の情報処理装置10は、生成された各条件式の真偽値の組合せから、各条件式に含まれる各変数について、変数関係に矛盾を含まない、真偽値の値に応じた変数値の組合せをテストケースとして生成することができる。本実施形態の情報処理装置10では、複数の条件式に共通する変数が含まれ
る場合であっても、変数関係を充足する変数値の組合せを生成することができる。
As a result, the information processing apparatus 10 according to the present embodiment improves the satisfiability of the determination formula to be tested and eliminates the redundancy, and satisfies the MC / DC test coverage level. A combination of false values can be generated. The information processing apparatus 10 according to the present embodiment responds to the value of the truth value that does not include any contradiction in the variable relationship for each variable included in each conditional expression, from the combination of the generated truth values of the conditional expressions. A combination of variable values can be generated as a test case. In the information processing apparatus 10 according to the present embodiment, a combination of variable values that satisfies a variable relationship can be generated even when a variable common to a plurality of conditional expressions is included.

本実施形態の情報処理装置10では、充足可能性を向上させた、冗長性を排除可能な、MC/DCのテスト網羅度の網羅規則を満たすテストケースを生成する技術が提供できる。   The information processing apparatus 10 according to the present embodiment can provide a technique for generating a test case that satisfies the coverage rule of the MC / DC test coverage with improved satisfiability and capable of eliminating redundancy.

《コンピュータが読み取り可能な記録媒体》
コンピュータその他の機械、装置(以下、コンピュータ等)に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
<Computer-readable recording medium>
A program for causing a computer or other machine or device (hereinafter, a computer or the like) to realize any of the above functions can be recorded on a recording medium that can be read by the computer or the like. Then, the function can be provided by causing the computer or the like to read and execute the program of the recording medium.

ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD−ROM、CD−R/W、DVD、ブルーレイディスク、DAT、8mmテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスクやROM等がある。   Here, a computer-readable recording medium is a recording medium that stores information such as data and programs by electrical, magnetic, optical, mechanical, or chemical action and can be read from a computer or the like. Say. Examples of such a recording medium that can be removed from a computer or the like include a flexible disk, a magneto-optical disk, a CD-ROM, a CD-R / W, a DVD, a Blu-ray disk, a DAT, an 8 mm tape, a flash memory, and the like. There are cards. Moreover, there are a hard disk, a ROM, and the like as a recording medium fixed to a computer or the like.

《その他》
以上の実施形態は、さらに以下の付記と呼ぶ態様を含む。以下の各付記に含まれる構成要素は、他の付記に含まれる構成と組み合わせることができる。
(付記1)
コンピュータに、
演算子による演算結果の真偽値と前記演算子によって演算の対象となる演算対象式の真偽値とが所定関係を満たす演算対象式を特定し、前記所定関係にある演算対象式が複数特定される場合に、特定される複数の演算対象式を保持して、前記演算対象式の真偽値を求める解析ステップと、
前記所定関係にある複数の前記演算対象式について演算対象式の充足可能性を判定し、充足可能と判定された演算対象式を選択する選択ステップと、
を実行させるためのテストケース生成プログラム。
(付記2)
判定に係る論理式中の演算子と演算対象式との組み合わせに基づく階層中の最上位の階層の演算子を取得する取得ステップと、
前記所定関係を満たす演算対象式の真偽値を用いて前記階層中の最上位の階層の演算子で結合される演算対象式以下の論理式に前記取得ステップと前記解析ステップとを適用するステップと、
をさらに実行させる付記1に記載のテストケース生成プログラム。
(付記3)
前記選択ステップは、前記演算対象式に含まれる第1部分式と第2部分式との組合せ関係の矛盾の有無により充足可能性を判定する、付記1または付記2に記載のテストケース生成プログラム。
(付記4)
前記階層は、論理式中に複数の演算子が含まれる場合に、演算子による演算順序の優先度順に、優先度が後の演算子と前記演算子によって演算される演算対象式とを上位の階層とし、前記上位の階層とされた演算対象式中でさらに、演算子による演算順序の優先度順に、次の演算子と前記次の演算子によって演算される次の演算対象式とを次の階層として、前記上位の階層の直下に前記次の階層を位置づけることで形成される、付記2または付記3に記載のテストケース生成プログラム。
(付記5)
前記解析ステップは、第1の階層に含まれる第1の演算子による演算結果の真偽値に影響しない、前記第1の演算子によって演算の対象となる第1の演算対象式の真偽値を共通の値にする、前記第1の階層直下の第2の階層の演算対象式の真偽値の組合せが複数にある場合には、前記複数ある真偽値の組合せを選択可能な選択演算子で結合し、前記選択演算子で結合された真偽値の組合せを選択するステップを含む、付記4に記載のテストケース生成プログラム。
(付記6)
前記解析ステップは、第1の階層に含まれる第1の演算子による演算結果の真偽値に影響し、前記第1の演算子によって演算の対象となる第1の演算対象式の真偽値を共通の値にする、前記第1の階層直下の第2の階層の演算対象式の真偽値の組合せが複数にある場合には、前記複数ある真偽値の組合せのうち、全ての組合せを選択するステップを含む、付記4に記載のテストケース生成プログラム。
(付記7)
前記解析ステップは、第1の階層の演算子が積演算子である場合に、積演算子による演算の対象となる2つの第1の演算対象式の真偽値の組合せが真と偽、偽と真、または真と真となるように、前記第1の階層直下の第2の演算対象式中の真偽値の組合せを選択するステップを含む、付記4から付記6の何れか一の付記に記載のテストケース生成プログラム。
(付記8)
前記解析ステップは、第1の階層の演算子が和演算子である場合に、和演算子による演算の対象となる2つの第1の演算対象式の真偽値の組合せが真と偽、偽と真、または偽と偽となるように、前記第1の階層直下の第2の演算対象式中の真偽値の組合せを選択するステップを含む、付記4から付記6の何れか一の付記に記載のテストケース生成プログラム。
(付記9)
第1の階層の演算子が積演算子である場合に、積演算子による演算の対象となる2つの第1の演算対象式のうち、真と偽、または、偽と真となる組み合わせにおいて、真偽値が真となる演算対象式を選択可能な演算対象式として選択演算子で結合する、付記7に記載のテストケース生成プログラム。
(付記10)
第1の階層の演算子が和演算子である場合に、和演算子による演算の対象となる2つの第1の演算対象式のうち、真と偽、または、偽と真となる組み合わせにおいて、真偽値が偽となる演算対象式を選択可能な演算対象式として選択演算子で結合する、付記8に記載のテストケース生成プログラム。
<Others>
The above embodiment further includes an aspect called the following supplementary note. The components included in the following supplementary notes can be combined with the constituents included in the other supplementary notes.
(Appendix 1)
On the computer,
Identifies an operation target expression that satisfies a predetermined relationship between the true / false value of the operation result by the operator and the truth value of the operation target expression to be operated by the operator, and specifies a plurality of operation target expressions having the predetermined relationship An analysis step for holding a plurality of operation target expressions specified and obtaining a true / false value of the operation object expression;
A selection step of determining the satisfiability of the calculation target expression for the plurality of calculation target expressions in the predetermined relationship, and selecting the calculation target expression determined to be satisfiable;
Test case generation program to execute
(Appendix 2)
An acquisition step of acquiring an operator of the highest hierarchy in the hierarchy based on a combination of the operator in the logical expression related to the determination and the operation target expression;
Applying the obtaining step and the analyzing step to a logical expression below the operation target expression that is combined by an operator of the highest hierarchy in the hierarchy using a truth value of the operation expression that satisfies the predetermined relationship When,
The test case generation program according to appendix 1, further executing
(Appendix 3)
The test case generation program according to appendix 1 or appendix 2, wherein the selection step determines satisfiability based on whether or not there is a contradiction in the combination relation between the first sub-expression and the second sub-expression included in the calculation target expression.
(Appendix 4)
In the hierarchy, when a plurality of operators are included in the logical expression, the operator having the higher priority and the operation target expression operated by the operator are arranged in the order of priority of the operation order by the operator. In the calculation target expression that is a hierarchy, and in the priority order of the calculation order by the operator, the next operator and the next calculation target expression calculated by the next operator are The test case generation program according to appendix 2 or appendix 3, formed by positioning the next hierarchy immediately below the upper hierarchy as a hierarchy.
(Appendix 5)
The analysis step does not affect a truth value of an operation result by a first operator included in a first hierarchy, and a truth value of a first operation target expression that is an object of operation by the first operator Is a common value, and there are a plurality of combinations of true / false values of the operation target expression in the second hierarchy immediately below the first hierarchy, a selection operation capable of selecting the plurality of true / false combinations. The test case generation program according to appendix 4, including a step of selecting a combination of true and false values combined by a child and combined by the selection operator.
(Appendix 6)
The analyzing step affects a true / false value of a calculation result by a first operator included in a first hierarchy, and a true / false value of a first calculation target expression to be calculated by the first operator. When there are a plurality of combinations of true / false values of the operation target expression of the second hierarchy immediately below the first hierarchy, all combinations among the plurality of combinations of true / false values The test case generation program according to appendix 4, including a step of selecting.
(Appendix 7)
In the analyzing step, when the operator of the first hierarchy is a product operator, a combination of true / false values of two first operation target expressions to be operated by the product operator is true, false, false Supplementary note 4 to Supplementary note 6, including a step of selecting a combination of true and false values in the second calculation target expression immediately below the first hierarchy so as to be true and true or true Test case generation program described in 1.
(Appendix 8)
In the analyzing step, when the operator of the first hierarchy is a sum operator, the combination of the true / false values of the two first operation target expressions to be operated by the sum operator is true, false, false The supplementary statement according to any one of supplementary notes 4 to 6, including a step of selecting a combination of true and false values in the second calculation target expression immediately below the first hierarchy so as to be true and false or false and false Test case generation program described in 1.
(Appendix 9)
When the operator of the first hierarchy is a product operator, in the combination of true and false or false and true among the two first operation target expressions to be operated by the product operator, The test case generation program according to appendix 7, wherein a calculation target expression whose truth value is true is combined as a selectable calculation target expression with a selection operator.
(Appendix 10)
When the operator of the first hierarchy is a sum operator, in the combination of true and false or false and true among the two first computation target expressions to be computed by the sum operator, The test case generation program according to appendix 8, wherein a calculation target expression whose truth value is false is combined as a selectable calculation target expression with a selection operator.

(付記11)
コンピュータを用いてテストケースを生成する方法であって、
前記コンピュータの有するプロセッサが、
演算子による演算結果の真偽値と前記演算子によって演算の対象となる演算対象式の真偽値とが所定関係を満たす演算対象式を特定し、前記所定関係にある演算対象式が複数特定される場合に、特定される複数の演算対象式を保持して、前記演算対象式の真偽値を求め、
前記所定関係にある複数の前記演算対象式について演算対象式の充足可能性を判定し、充足可能と判定された演算対象式を選択する、
テストケース生成方法。
(付記12)
判定に係る論理式中の演算子と演算対象式との組み合わせに基づく階層中の最上位の階層の演算子を取得し、
前記所定関係を満たす演算対象式の真偽値を用いて前記階層中の最上位の階層の演算子
で結合される演算対象式以下の論理式に前記取得と前記演算対象式の真偽値を求めることとを行う、付記11に記載のテストケース生成方法。
(付記13)
前記充足可能と判定された演算対象式を選択することは、前記演算対象式に含まれる第1部分式と第2部分式との組合せ関係の矛盾の有無により充足可能性を判定する、付記11または付記12に記載のテストケース生成方法。
(付記14)
前記階層は、論理式中に複数の演算子が含まれる場合に、演算子による演算順序の優先度順に、優先度が後の演算子と前記演算子によって演算される演算対象式とを上位の階層とし、前記上位の階層とされた演算対象式中でさらに、演算子による演算順序の優先度順に、次の演算子と前記次の演算子によって演算される次の演算対象式とを次の階層として、前記上位の階層の直下に前記次の階層を位置づけることで形成される、付記12または付記13に記載のテストケース生成方法。
(付記15)
前記演算対象式の真偽値を求めることは、第1の階層に含まれる第1の演算子による演算結果の真偽値に影響しない、前記第1の演算子によって演算の対象となる第1の演算対象式の真偽値を共通の値にする、前記第1の階層直下の第2の階層の演算対象式の真偽値の組合せが複数にある場合には、前記複数ある真偽値の組合せを選択可能な選択演算子で結合し、前記選択演算子で結合された真偽値の組合せを選択することを含む、付記14に記載のテストケース生成方法。
(付記16)
前記演算対象式の真偽値を求めることは、第1の階層に含まれる第1の演算子による演算結果の真偽値に影響し、前記第1の演算子によって演算の対象となる第1の演算対象式の真偽値を共通の値にする、前記第1の階層直下の第2の階層の演算対象式の真偽値の組合せが複数にある場合には、前記複数ある真偽値の組合せのうち、全ての組合せを選択することを含む、付記14に記載のテストケース生成方法。
(付記17)
前記演算対象式の真偽値を求めることは、第1の階層の演算子が積演算子である場合に、積演算子による演算の対象となる2つの第1の演算対象式の真偽値の組合せが真と偽、偽と真、または真と真となるように、前記第1の階層直下の第2の演算対象式中の真偽値の組合せを選択することを含む、付記14から付記16の何れか一の付記に記載のテストケース生成方法。
(付記18)
前記演算対象式の真偽値を求めることは、第1の階層の演算子が和演算子である場合に、和演算子による演算の対象となる2つの第1の演算対象式の真偽値の組合せが真と偽、偽と真、または偽と偽となるように、前記第1の階層直下の第2の演算対象式中の真偽値の組合せを選択することを含む、付記14から付記16の何れか一の付記に記載のテストケース生成方法。
(付記19)
第1の階層の演算子が積演算子である場合に、積演算子による演算の対象となる2つの第1の演算対象式のうち、真と偽、または、偽と真となる組み合わせにおいて、真偽値が真となる演算対象式を選択可能な演算対象式として選択演算子で結合する、付記17に記載のテストケース生成方法。
(付記20)
第1の階層の演算子が和演算子である場合に、和演算子による演算の対象となる2つの第1の演算対象式のうち、真と偽、または、偽と真となる組み合わせにおいて、真偽値が偽となる演算対象式を選択可能な演算対象式として選択演算子で結合する、付記18に記載のテストケース生成方法。
(Appendix 11)
A method for generating a test case using a computer,
A processor of the computer,
Identifies an operation target expression that satisfies a predetermined relationship between the true / false value of the operation result by the operator and the truth value of the operation target expression to be operated by the operator, and specifies a plurality of operation target expressions having the predetermined relationship In the case where the calculation target expression is retained, a truth value of the calculation target expression is obtained,
Determining satisfiability of the calculation target expression for the plurality of calculation target expressions in the predetermined relationship, and selecting the calculation target expression determined to be satisfiable;
Test case generation method.
(Appendix 12)
Obtain the operator at the highest level in the hierarchy based on the combination of the operator in the logical expression related to the judgment and the operation target expression,
Using the truth value of the operation target expression that satisfies the predetermined relationship, the acquisition and the truth value of the operation target expression are added to the logical expression below the operation target expression combined by the operator of the highest hierarchy in the hierarchy. The test case generation method according to attachment 11, wherein the test case generation method is performed.
(Appendix 13)
Note that selecting the calculation target expression determined to be satisfiable determines satisfiability based on whether or not there is a contradiction in the combination relation between the first partial expression and the second partial expression included in the calculation target expression. Or the test case generation method according to attachment 12.
(Appendix 14)
In the hierarchy, when a plurality of operators are included in the logical expression, the operator having the higher priority and the operation target expression operated by the operator are arranged in the order of priority of the operation order by the operator. In the calculation target expression that is a hierarchy, and in the priority order of the calculation order by the operator, the next operator and the next calculation target expression calculated by the next operator are 14. The test case generation method according to appendix 12 or appendix 13, wherein the test case generation method is formed by positioning the next hierarchy immediately below the higher hierarchy.
(Appendix 15)
Obtaining the true / false value of the calculation target expression does not affect the true / false value of the calculation result by the first operator included in the first hierarchy, and is the first to be calculated by the first operator. When there are a plurality of combinations of true / false values of the calculation target expressions in the second hierarchy immediately below the first hierarchy, the true / false values of the calculation target expressions of 15. The test case generation method according to appendix 14, comprising: combining the combinations with a selectable selection operator, and selecting a combination of true and false values combined with the selection operator.
(Appendix 16)
Obtaining the true / false value of the calculation target expression affects the true / false value of the calculation result by the first operator included in the first hierarchy, and is the first to be calculated by the first operator. When there are a plurality of combinations of true / false values of the calculation target expressions in the second hierarchy immediately below the first hierarchy, the true / false values of the calculation target expressions of 15. The test case generation method according to appendix 14, including selecting all combinations among the combinations.
(Appendix 17)
Obtaining the truth value of the operation target expression means that the truth values of the two first operation object expressions to be operated by the product operator when the operator of the first hierarchy is a product operator. From the supplementary note 14, comprising selecting a combination of true and false values in the second arithmetic expression immediately below the first hierarchy so that the combination of true and false is false and true or true and true The test case generation method according to any one of supplementary notes 16.
(Appendix 18)
The determination of the truth value of the operation target expression means that the truth values of the two first operation target expressions that are the targets of the operation by the sum operator when the operator of the first hierarchy is the sum operator. From the supplementary note 14, including selecting a combination of true and false values in the second operation target expression immediately below the first hierarchy so that the combination becomes true and false, false and true, or false and false The test case generation method according to any one of supplementary notes 16.
(Appendix 19)
When the operator of the first hierarchy is a product operator, in the combination of true and false or false and true among the two first operation target expressions to be operated by the product operator, 18. The test case generation method according to appendix 17, wherein a calculation target expression whose truth value is true is combined with a selection operator as a selectable calculation target expression.
(Appendix 20)
When the operator of the first hierarchy is a sum operator, in the combination of true and false or false and true among the two first computation target expressions to be computed by the sum operator, Item 19. The test case generation method according to appendix 18, wherein a calculation target expression whose truth value is false is combined as a selectable calculation target expression with a selection operator.

(付記21)
演算子による演算結果の真偽値と、前記演算子によって演算の対象となる演算対象式の真偽値とが所定関係を満たすように、且つ、前記所定関係にある複数の前記演算対象式の中から一の演算対象式を選択可能なように、前記演算対象式の真偽値を求める解析手段と、
前記所定関係にある複数の前記演算対象式について演算対象式の充足可能性を判定し、充足可能と判定された演算対象式を選択する選択手段と、
を備えるテストケース生成装置。
(付記22)
判定に係る論理式中の演算子と演算対象式との組み合わせに基づく階層中の最上位の階層の演算子を取得する取得手段と、
前記所定関係を満たす演算対象式の真偽値を用いて前記階層中の最上位の階層の演算子で結合される演算対象式以下の論理式に前記取得手段と前記解析手段とを適用する手段と、
をさらに備える付記21に記載のテストケース生成装置。
(付記23)
前記選択手段は、前記演算対象式に含まれる第1部分式と第2部分式との組合せ関係の矛盾の有無により充足可能性を判定する、付記21または付記22に記載のテストケース生成装置。
(付記24)
前記階層は、論理式中に複数の演算子が含まれる場合に、演算子による演算順序の優先度順に、優先度が後の演算子と前記演算子によって演算される演算対象式とを上位の階層とし、前記上位の階層とされた演算対象式中でさらに、演算子による演算順序の優先度順に、次の演算子と前記次の演算子によって演算される次の演算対象式とを次の階層として、前記上位の階層の直下に前記次の階層を位置づけることで形成される、付記22または付記23に記載のテストケース生成装置。
(付記25)
前記解析手段は、第1の階層に含まれる第1の演算子による演算結果の真偽値に影響しない、前記第1の演算子によって演算の対象となる第1の演算対象式の真偽値を共通の値にする、前記第1の階層直下の第2の階層の演算対象式の真偽値の組合せが複数にある場合には、前記複数ある真偽値の組合せを選択可能な選択演算子で結合し、前記選択演算子で結合された真偽値の組合せを選択する手段を含む、付記24に記載のテストケース生成装置。
(付記26)
前記解析手段は、第1の階層に含まれる第1の演算子による演算結果の真偽値に影響し、前記第1の演算子によって演算の対象となる第1の演算対象式の真偽値を共通の値にする、前記第1の階層直下の第2の階層の演算対象式の真偽値の組合せが複数にある場合には、前記複数ある真偽値の組合せのうち、全ての組合せを選択する手段を含む、付記24に記載のテストケース生成装置。
(付記27)
前記解析手段は、第1の階層の演算子が積演算子である場合に、積演算子による演算の対象となる2つの第1の演算対象式の真偽値の組合せが真と偽、偽と真、または真と真となるように、前記第1の階層直下の第2の演算対象式中の真偽値の組合せを選択する手段を含む、付記24から付記26の何れか一の付記に記載のテストケース生成装置。
(付記28)
前記解析手段は、第1の階層の演算子が和演算子である場合に、和演算子による演算の対象となる2つの第1の演算対象式の真偽値の組合せが真と偽、偽と真、または偽と偽となるように、前記第1の階層直下の第2の演算対象式中の真偽値の組合せを選択する手段を含む、付記24から付記26の何れか一の付記に記載のテストケース生成装置。
(付記29)
第1の階層の演算子が積演算子である場合に、積演算子による演算の対象となる2つの
第1の演算対象式のうち、真と偽、または、偽と真となる組み合わせにおいて、真偽値が真となる演算対象式を選択可能な演算対象式として選択演算子で結合する、付記27に記載のテストケース生成装置。
(付記30)
第1の階層の演算子が和演算子である場合に、和演算子による演算の対象となる2つの第1の演算対象式のうち、真と偽、または、偽と真となる組み合わせにおいて、真偽値が偽となる演算対象式を選択可能な演算対象式として選択演算子で結合する、付記28に記載のテストケース生成装置。
(Appendix 21)
The true / false values of the calculation result by the operator and the true / false values of the calculation target expression to be calculated by the operator satisfy a predetermined relationship, and a plurality of the calculation target expressions in the predetermined relationship Analysis means for obtaining a true / false value of the calculation target expression so that one calculation target expression can be selected from among them,
Selection means for determining satisfiability of the calculation target expression for the plurality of calculation target expressions having the predetermined relationship, and selecting the calculation target expression determined to be satisfiable;
A test case generation apparatus comprising:
(Appendix 22)
An acquisition means for acquiring an operator of the highest hierarchy in the hierarchy based on a combination of the operator in the logical expression related to the determination and the operation target expression;
Means for applying the acquisition means and the analysis means to a logical expression below an arithmetic expression to be combined by an operator of the highest hierarchy in the hierarchy using a truth value of the arithmetic expression satisfying the predetermined relationship When,
The test case generation device according to attachment 21, further comprising:
(Appendix 23)
23. The test case generation device according to appendix 21 or appendix 22, wherein the selection means determines satisfiability based on whether or not there is a contradiction in the combination relationship between the first sub-expression and the second sub-expression included in the calculation target formula.
(Appendix 24)
In the hierarchy, when a plurality of operators are included in the logical expression, the operator having the higher priority and the operation target expression operated by the operator are arranged in the order of priority of the operation order by the operator. In the calculation target expression that is a hierarchy, and in the priority order of the calculation order by the operator, the next operator and the next calculation target expression calculated by the next operator are 24. The test case generation device according to appendix 22 or appendix 23, which is formed by positioning the next hierarchy immediately below the higher hierarchy as a hierarchy.
(Appendix 25)
The analysis means does not affect the truth value of the result of the operation by the first operator included in the first hierarchy, and the truth value of the first operation target expression to be operated by the first operator Is a common value, and there are a plurality of combinations of true / false values of the operation target expression in the second hierarchy immediately below the first hierarchy, a selection operation capable of selecting the plurality of true / false combinations. 25. The test case generation device according to attachment 24, further comprising means for selecting a combination of true and false values combined by a child and combined by the selection operator.
(Appendix 26)
The analysis means affects a truth value of a calculation result by a first operator included in a first hierarchy, and a truth value of a first calculation target expression to be calculated by the first operator. When there are a plurality of combinations of true / false values of the operation target expression of the second hierarchy immediately below the first hierarchy, all combinations among the plurality of combinations of true / false values The test case generation device according to appendix 24, including means for selecting.
(Appendix 27)
When the operator of the first hierarchy is a product operator, the analysis means is configured such that a combination of true / false values of two first operation target expressions to be operated by the product operator is true, false, false Supplementary Note 24 to Supplementary Note 26, including means for selecting a combination of true / false values in the second calculation target expression immediately below the first hierarchy so as to be true and true or true The test case generator described in 1.
(Appendix 28)
When the first hierarchy operator is a sum operator, the analyzing means determines that a combination of true and false values of two first operation target expressions to be operated by the sum operator is true, false, false The supplementary note according to any one of supplementary notes 24 to 26, including means for selecting a combination of true and false values in the second calculation target expression immediately below the first hierarchy so as to be true and false or false and false The test case generator described in 1.
(Appendix 29)
When the operator of the first hierarchy is a product operator, in the combination of true and false or false and true among the two first operation target expressions to be operated by the product operator, 28. The test case generation device according to appendix 27, wherein operation target expressions for which a truth value is true are combined by a selection operator as selectable operation target expressions.
(Appendix 30)
When the operator of the first hierarchy is a sum operator, in the combination of true and false or false and true among the two first computation target expressions to be computed by the sum operator, 29. The test case generation device according to appendix 28, wherein a calculation target expression whose truth value is false is combined with a selection operator as a selectable calculation target expression.

10 情報処理装置
11 CPU
12 主記憶部
13 補助記憶部
14 入力部
15 出力部
16 通信部
101 判定式解析部
101a 二分木変換部
102 真偽値ルール適用部
103 テストケース生成部
103a 選択分析部
104 充足可能性判定部
201 真偽値ルールDB
202 判定式二分木DB
203 条件式マップ集合DB
204 テストケース条件式DB
205 テストケースDB
Tb1 論理積ルール真偽値表
Tb2 論理和ルール真偽値表
Tb3 テストケース条件式テーブル
Tb4 テストケーステーブル
10 Information processing apparatus 11 CPU
12 Main storage unit 13 Auxiliary storage unit 14 Input unit 15 Output unit 16 Communication unit 101 Judgment expression analysis unit 101a Binary tree conversion unit 102 Truth value rule application unit 103 Test case generation unit 103a Selection analysis unit 104 Satisfiability determination unit 201 Boolean value rule DB
202 Judgment binary tree DB
203 Conditional Expression Map Set DB
204 Test case conditional expression DB
205 test case DB
Tb1 AND rule truth table Tb2 OR rule truth table Tb3 Test case conditional expression table Tb4 Test case table

Claims (12)

コンピュータに、
演算子による演算結果の真偽値と前記演算子によって演算の対象となる演算対象式の真偽値とが所定関係を満たす演算対象式を特定し、前記所定関係にある演算対象式が複数特定される場合に、特定される複数の演算対象式を保持して、前記演算対象式の真偽値を求める解析ステップと、
前記所定関係にある複数の前記演算対象式について演算対象式の充足可能性を判定し、充足可能と判定された演算対象式を選択する選択ステップと、
を実行させるためのテストケース生成プログラム。
On the computer,
Identifies an operation target expression that satisfies a predetermined relationship between the true / false value of the operation result by the operator and the truth value of the operation target expression to be operated by the operator, and specifies a plurality of operation target expressions having the predetermined relationship An analysis step for holding a plurality of operation target expressions specified and obtaining a true / false value of the operation object expression;
A selection step of determining the satisfiability of the calculation target expression for the plurality of calculation target expressions in the predetermined relationship, and selecting the calculation target expression determined to be satisfiable;
Test case generation program to execute
判定に係る論理式中の演算子と演算対象式との組み合わせに基づく階層中の最上位の階層の演算子を取得する取得ステップと、
前記所定関係を満たす演算対象式の真偽値を用いて前記階層中の最上位の階層の演算子で結合される演算対象式以下の論理式に前記取得ステップと前記解析ステップとを適用するステップと、
をさらに実行させる請求項1に記載のテストケース生成プログラム。
An acquisition step of acquiring an operator of the highest hierarchy in the hierarchy based on a combination of the operator in the logical expression related to the determination and the operation target expression;
Applying the obtaining step and the analyzing step to a logical expression below the operation target expression that is combined by an operator of the highest hierarchy in the hierarchy using a truth value of the operation expression that satisfies the predetermined relationship When,
The test case generation program according to claim 1, further executing:
前記選択ステップは、前記演算対象式に含まれる第1部分式と第2部分式との組合せ関係の矛盾の有無により充足可能性を判定する、請求項1または請求項2に記載のテストケース生成プログラム。   3. The test case generation according to claim 1, wherein the selection step determines satisfiability based on whether or not there is a contradiction in the combination relation between the first sub-expression and the second sub-expression included in the operation target expression. program. 前記階層は、論理式中に複数の演算子が含まれる場合に、演算子による演算順序の優先度順に、優先度が後の演算子と前記演算子によって演算される演算対象式とを上位の階層とし、前記上位の階層とされた演算対象式中でさらに、演算子による演算順序の優先度順に、次の演算子と前記次の演算子によって演算される次の演算対象式とを次の階層として、前記上位の階層の直下に前記次の階層を位置づけることで形成される、請求項2または請求項3に記載のテストケース生成プログラム。   In the hierarchy, when a plurality of operators are included in the logical expression, the operator having the higher priority and the operation target expression operated by the operator are arranged in the order of priority of the operation order by the operator. In the calculation target expression that is a hierarchy, and in the priority order of the calculation order by the operator, the next operator and the next calculation target expression calculated by the next operator are The test case generation program according to claim 2, wherein the test case generation program is formed by positioning the next hierarchy immediately below the higher hierarchy as a hierarchy. 前記解析ステップは、第1の階層に含まれる第1の演算子による演算結果の真偽値に影響しない、前記第1の演算子によって演算の対象となる第1の演算対象式の真偽値を共通の値にする、前記第1の階層直下の第2の階層の演算対象式の真偽値の組合せが複数にある場合には、前記複数ある真偽値の組合せを選択可能な選択演算子で結合し、前記選択演算子で結合された真偽値の組合せを選択するステップを含む、請求項4に記載のテスト生成ケースプログラム。   The analysis step does not affect a truth value of an operation result by a first operator included in a first hierarchy, and a truth value of a first operation target expression that is an object of operation by the first operator Is a common value, and there are a plurality of combinations of true / false values of the operation target expression in the second hierarchy immediately below the first hierarchy, a selection operation capable of selecting the plurality of true / false combinations. The test generation case program according to claim 4, further comprising a step of selecting a combination of true and false values combined by a child and combined by the selection operator. 前記解析ステップは、第1の階層に含まれる第1の演算子による演算結果の真偽値に影響し、前記第1の演算子によって演算の対象となる第1の演算対象式の真偽値を共通の値にする、前記第1の階層直下の第2の階層の演算対象式の真偽値の組合せが複数にある場合には、前記複数ある真偽値の組合せのうち、全ての組合せを選択するステップを含む、請求項4に記載のテストケース生成プログラム。   The analyzing step affects a true / false value of a calculation result by a first operator included in a first hierarchy, and a true / false value of a first calculation target expression to be calculated by the first operator. When there are a plurality of combinations of true / false values of the operation target expression of the second hierarchy immediately below the first hierarchy, all combinations among the plurality of combinations of true / false values The test case generation program according to claim 4, comprising a step of selecting. 前記解析ステップは、第1の階層の演算子が積演算子である場合に、積演算子による演算の対象となる2つの第1の演算対象式の真偽値の組合せが真と偽、偽と真、または真と真となるように、前記第1の階層直下の第2の演算対象式中の真偽値の組合せを選択するステップを含む、請求項4から請求項6の何れか一項に記載のテストケース生成プログラム。   In the analyzing step, when the operator of the first hierarchy is a product operator, a combination of true / false values of two first operation target expressions to be operated by the product operator is true, false, false 7. The method according to claim 4, further comprising: selecting a combination of true and false values in the second calculation target expression immediately below the first hierarchy so as to be true and true or true and true. Test case generation program described in the section. 前記解析ステップは、第1の階層の演算子が和演算子である場合に、和演算子による演算の対象となる2つの第1の演算対象式の真偽値の組合せが真と偽、偽と真、または偽と
偽となるように、前記第1の階層直下の第2の演算対象式中の真偽値の組合せを選択するステップを含む、請求項4から請求項6の何れか一項に記載のテストケース生成プログラム。
In the analyzing step, when the operator of the first hierarchy is a sum operator, the combination of the true / false values of the two first operation target expressions to be operated by the sum operator is true, false, false 7. The method according to claim 4, further comprising: selecting a combination of true / false values in the second calculation target expression immediately below the first hierarchy so as to be true and false, or false and false. Test case generation program described in the section.
第1の階層の演算子が積演算子である場合に、積演算子による演算の対象となる2つの第1の演算対象式のうち、真と偽、または、偽と真となる組み合わせにおいて、真偽値が真となる演算対象式を選択可能な演算対象式として選択演算子で結合する、請求項7に記載のテストケース生成プログラム。   When the operator of the first hierarchy is a product operator, in the combination of true and false or false and true among the two first operation target expressions to be operated by the product operator, The test case generation program according to claim 7, wherein operation target expressions having true / false values are combined by a selection operator as selectable operation target expressions. 第1の階層の演算子が和演算子である場合に、和演算子による演算の対象となる2つの第1の演算対象式のうち、真と偽、または、偽と真となる組み合わせにおいて、真偽値が偽となる演算対象式を選択可能な演算対象式として選択演算子で結合する、請求項8に記載のテストケース生成プログラム。   When the operator of the first hierarchy is a sum operator, in the combination of true and false or false and true among the two first computation target expressions to be computed by the sum operator, The test case generation program according to claim 8, wherein a calculation target expression whose truth value is false is combined by a selection operator as a selectable calculation target expression. コンピュータを用いてテストケースを生成する方法であって、
前記コンピュータの有するプロセッサが、
演算子による演算結果の真偽値と前記演算子によって演算の対象となる演算対象式の真偽値とが所定関係を満たす演算対象式を特定し、前記所定関係にある演算対象式が複数特定される場合に、特定される複数の演算対象式を保持して、前記演算対象式の真偽値を求め、
前記所定関係にある複数の前記演算対象式について演算対象式の充足可能性を判定し、充足可能と判定された演算対象式を選択する、
テストケース生成方法。
A method for generating a test case using a computer,
A processor of the computer,
Identifies an operation target expression that satisfies a predetermined relationship between the true / false value of the operation result by the operator and the truth value of the operation target expression to be operated by the operator, and specifies a plurality of operation target expressions having the predetermined relationship In the case where the calculation target expression is retained, a truth value of the calculation target expression is obtained,
Determining satisfiability of the calculation target expression for the plurality of calculation target expressions in the predetermined relationship, and selecting the calculation target expression determined to be satisfiable;
Test case generation method.
演算子による演算結果の真偽値と前記演算子によって演算の対象となる演算対象式の真偽値とが所定関係を満たす演算対象式を特定し、前記所定関係にある演算対象式が複数特定される場合に、特定される複数の演算対象式を保持して、前記演算対象式の真偽値を求める解析手段と、
前記所定関係にある複数の前記演算対象式について演算対象式の充足可能性を判定し、充足可能と判定された演算対象式を選択する選択手段と、
を備えるテストケース生成装置。
Identifies an operation target expression that satisfies a predetermined relationship between the true / false value of the operation result by the operator and the truth value of the operation target expression to be operated by the operator, and specifies a plurality of operation target expressions having the predetermined relationship An analysis means for holding a plurality of specified calculation target expressions and obtaining a true / false value of the calculation target expression,
Selection means for determining satisfiability of the calculation target expression for the plurality of calculation target expressions having the predetermined relationship, and selecting the calculation target expression determined to be satisfiable;
A test case generation apparatus comprising:
JP2014255605A 2014-12-17 2014-12-17 Test case generation program, test case generation method and test case generation apparatus Expired - Fee Related JP6511793B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014255605A JP6511793B2 (en) 2014-12-17 2014-12-17 Test case generation program, test case generation method and test case generation apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014255605A JP6511793B2 (en) 2014-12-17 2014-12-17 Test case generation program, test case generation method and test case generation apparatus

Publications (2)

Publication Number Publication Date
JP2016115287A true JP2016115287A (en) 2016-06-23
JP6511793B2 JP6511793B2 (en) 2019-05-15

Family

ID=56142085

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014255605A Expired - Fee Related JP6511793B2 (en) 2014-12-17 2014-12-17 Test case generation program, test case generation method and test case generation apparatus

Country Status (1)

Country Link
JP (1) JP6511793B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116383070A (en) * 2023-04-07 2023-07-04 南京航空航天大学 Symbol execution method for high MC/DC

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009181292A (en) * 2008-01-30 2009-08-13 Toyota Motor Corp Mc/dc pattern generation device
JP2013143067A (en) * 2012-01-12 2013-07-22 Fujitsu Ltd Generating device, generating method, and generating program
JP2013178729A (en) * 2012-01-31 2013-09-09 Fujitsu Ltd Path condition selection device, and program and method thereof
US20140068364A1 (en) * 2012-08-29 2014-03-06 Hcl Technologies Limited Modified condition/decision coverage test case automation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009181292A (en) * 2008-01-30 2009-08-13 Toyota Motor Corp Mc/dc pattern generation device
JP2013143067A (en) * 2012-01-12 2013-07-22 Fujitsu Ltd Generating device, generating method, and generating program
JP2013178729A (en) * 2012-01-31 2013-09-09 Fujitsu Ltd Path condition selection device, and program and method thereof
US20140068364A1 (en) * 2012-08-29 2014-03-06 Hcl Technologies Limited Modified condition/decision coverage test case automation

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MATEUS ANDRADE ALMEDIA ET AL.: "Automatic generation of test cases for critical systems based on MC/DC criteria", 2013 IEEE/AAA 32ND DIGITAL AVIONICS SYSTEMS CONFERENCE, JPN6018012943, 10 October 2013 (2013-10-10), US, pages pages:1-10 *
藤倉 俊幸: "「新・組み込みソフトへの数理的アプローチ 〜形式仕様記述をどのように使うか〜」", INTERFACE, vol. 第35巻 第7号, JPN6018012946, 1 July 2009 (2009-07-01), JP *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116383070A (en) * 2023-04-07 2023-07-04 南京航空航天大学 Symbol execution method for high MC/DC
CN116383070B (en) * 2023-04-07 2023-12-05 南京航空航天大学 Symbol execution method for high MC/DC

Also Published As

Publication number Publication date
JP6511793B2 (en) 2019-05-15

Similar Documents

Publication Publication Date Title
JP5159713B2 (en) Automatic design apparatus, automatic design method and automatic design program for automatically designing design architecture of system components
CN110928772B (en) Test method and device
US20140310053A1 (en) Method and systems for providing business process suggestions and recommendations utilizing a business process modeler
US20090024940A1 (en) Systems And Methods For Generating A Database Query Using A Graphical User Interface
CN102999318B (en) The method of aided programming and device
CN111176991B (en) Automatic generation method for embedded software interface use cases
CN105809389A (en) Method and apparatus for generating BOM trees
Kessentini et al. Automated metamodel/model co-evolution using a multi-objective optimization approach
EP1548581A2 (en) Methods, apparatus and programs for system development
CN111666100A (en) Software framework generation method and device, electronic equipment and storage medium
CN110737779A (en) Knowledge graph construction method and device, storage medium and electronic equipment
US20140136155A1 (en) Analyzing hardware designs based on component re-use
CN104598661B (en) For the method and apparatus for changing requirement analysis for the project for being related to IT system
CN112015382A (en) Processor architecture analysis method, device, equipment and storage medium
JP2016115287A (en) Test case generation program, test case generation method and test case generator
JP5422589B2 (en) Module analysis system, module analysis method, and module analysis program
CN115130043B (en) Database-based data processing method, device, equipment and storage medium
US8661061B2 (en) Data structure, data structure generation method, information processing apparatus, information processing system, and computer-readable storage medium having stored therein information processing program
JP2019133534A (en) Merging method, merging device, and merging program
CN105094209B (en) The restorative procedure and device of data
JP6459267B2 (en) Test case generation program, test case generation method, and test case generation apparatus
US20130325365A1 (en) Buildable part pairs in an unconfigured product structure
JP7365446B2 (en) Method and system for performing reuse analysis for model lifecycle management
CN108681672A (en) A kind of leading type symbolic excution methodology and system based on A-Star, Android application programs
JP5910410B2 (en) Schematic program test data generation apparatus and method, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180718

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180731

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181001

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190325

R150 Certificate of patent or registration of utility model

Ref document number: 6511793

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees