CN112052176A - 一种多值耦合逻辑中给定条件的覆盖性测试用例生成方法 - Google Patents
一种多值耦合逻辑中给定条件的覆盖性测试用例生成方法 Download PDFInfo
- Publication number
- CN112052176A CN112052176A CN202010962370.9A CN202010962370A CN112052176A CN 112052176 A CN112052176 A CN 112052176A CN 202010962370 A CN202010962370 A CN 202010962370A CN 112052176 A CN112052176 A CN 112052176A
- Authority
- CN
- China
- Prior art keywords
- condition
- expected output
- logic
- given
- output value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 68
- 238000000034 method Methods 0.000 title claims abstract description 56
- 230000008878 coupling Effects 0.000 title claims description 19
- 238000010168 coupling process Methods 0.000 title claims description 19
- 238000005859 coupling reaction Methods 0.000 title claims description 19
- 238000012545 processing Methods 0.000 claims description 7
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本发明公开了一种多值耦合逻辑中给定条件的覆盖性测试用例生成方法,可应用于软件黑盒测试、设备测试、系统测试等。该方法能够获得使给定信号能够独立决定表达式结果的其他信号赋值,能够判定给定信号是否能够独立决定表达式结果,也能够获得该信号独立决定表达式结果的值域范围,从而在值域范围的基础上,进行边界测试或其他类型的取值测试。
Description
技术领域
本发明涉及系统测试技术领域,尤其涉及一种多值耦合逻辑中给定条件的覆盖性测试用例生成方法。
背景技术
在复杂系统中,某些状态的触发,是由数十个甚至上百个信号构成的复杂逻辑关系所决定。在对这种逻辑关系进行测试时,往往需要对某一个特定逻辑分支下的信号进行单独测试,以验证被测对象是否满足由该特定信号所决定的输入输出关系。
经过调研后发现,针对布尔逻辑表达式生成的MC/DC(修正的条件判定覆盖)测试用例集,包含每个条件能够独立决定逻辑输出的要求,是与上述需求是一致的。
通过分析目前已有的MC/DC用例集生成算法,文献“MC/DC最小测试用例集快速生成算法”、“基于MC/DC最小测试用例集设计方法研究”、“MC/DC最小测试用例集递归分块矩阵生成算法”中规避了对耦合条件的讨论,仅处理无耦合条件的布尔表达式的用例生成问题。文献“耦合条件的MC/DC测试用例集生成算法”中,讨论了存在耦合条件情况下的MC/DC用例集生成方案,规避了多值情况,并且将耦合条件分成弱耦合与强耦合,用两套方案分别进行弱耦合与强耦合条件用例集的生成。因此,目前缺乏一种统一的方法,处理存在耦合的给定条件的用例覆盖问题。
另外,更显著的问题在于,现有的MC/DC用例集生成方案,均将条件作为基本元素,且默认设定为布尔类型,来进行用例赋值处理。然而,在实际应用中,条件一般是信号的关系运算,不能将条件作为原子性的基本元素。例如,给定速度信号V,定义条件A为(V>=120),条件B为(V<=60),则逻辑表达式L=A||B中,从形式上看A、B是2个非耦合条件,但是实际上这两个条件是通过V耦合的。一种情况下,取A为True(1)、B为True(1),则L为True(1)在逻辑上是成立的,但实际上无法同时满足V>=120、V<=60两个条件。另一种情况,取A为False(0)、B为True(1),应有L为True(1),则对于条件A应有V<120,可取V=100;但此时不满足B为True(1)即V<=60的条件。
上述示例中,多个不同条件通过共同的信号造成耦合的现象,在实际中是一般存在的。因此,必须将目前以布尔条件为基本元素的逻辑表达式,扩展到以信号的关系运算为单元构成的逻辑表达式,才能满足实际应用的需求。一旦进行上述扩展,则必须以信号为基本元素进行处理,而信号必然是有多种类型的,除了布尔型,还可能是整型、浮点型、枚举型等。也即从一般意义上来说,信号是多值的。
因此,目前尚未见到多值、耦合逻辑中给定条件的覆盖性测试用例生成方法。
发明内容
本发明的目的是提供一种多值耦合逻辑中给定条件的覆盖性测试用例生成方法,是一种针给定条件的用例生成的统一方法,可应用于软件黑盒测试、设备测试、系统测试。
本发明的目的是通过以下技术方案实现的:
一种多值耦合逻辑中给定条件的覆盖性测试用例生成方法,包括:
从需求定义文件中读取被测对象的输入输出关系,并通过解析,提取输入输出关系中的所有基本条件、以及逻辑关系;所述基本条件是被测对象输入信号的函数,且同一基本条件出现的次数为1次或多次;
以基本条件为叶节点、以逻辑关系作为分支节点或者根节点,构建逻辑语法树来图形化表示被测对象的输入输出关系;
以给定的基本条件作为独立条件,对其他叶节点进行赋值,获得使给定的基本条件能够独立决定输入输出关系结果的信号赋值,并判定给定基本条件是否能够独立决定输出结果,之后获得给定基本条件期望输出值为True(1)与False(0)时,其对应输入信号独立决定输入输出关系结果的值域范围,从而在值域范围的基础上,进行边界测试或区间内测试;其中,期望输出值为True(1)表示状态为真,期望输出值为False(0)表示状态为假。
由上述本发明提供的技术方案可以看出,通过该方法,能够获得使给定信号独立决定表达式结果的其他信号赋值,能够判定给定信号是否能够独立决定表达式结果,也能够获得该信号独立决定表达式结果的值域范围,从而在值域范围的基础上,进行边界测试或其他类型的取值测试。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供的一种多值耦合逻辑中给定条件的覆盖性测试用例生成方法的流程图;
图2为本发明实施例提供的输入输出关系Ls的逻辑语法树示意图;
图3为本发明实施例提供的赋值的流程图;
图4为本发明实施例提供的同父条件为判定时的赋值流程图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
在背景技术中介绍了应用目标:在复杂系统中,某些状态的触发,是由数十个甚至上百个信号构成的复杂逻辑关系所决定。在对这种逻辑关系进行测试时,往往需要对某一个特定逻辑分支下的信号进行单独测试,以验证被测对象是否满足由该特定信号所决定的输入输出关系。
为满足上述应用目标,需要解决如下三个问题:
1)所选择信号是否能独立决定逻辑输出?
2)如何对其他信号进行赋值,以使该信号能够独立决定逻辑输出?
3)由于信号的边界值一般是测试的重点,但是该信号可能在其他逻辑分支中出现,被测分支信号的取值范围应该如何确定?
例如,给定如下输入输出关系:
Ls=(s1==1)||((s2≥60)&&(s2≤120))||(!(s1==1)&&(s3<80))
需要单独验证(s2≥60)这个条件在被测对象中实现的正确性。该条件的信号s2在表达式中出现2次。为进行该测试,就需要解决上述三个问题。
同时,上述示例也代表了本发明所处理的表达式的典型特征,即:1)信号可能多次出现,也即信号是耦合的;2)逻辑中的基本单元是信号的关系运算,而信号除了开关量外,可能是枚举信号、连续信号,也即信号是多值的。
为了满足上述应用目标,本发明实施例提供一种多值耦合逻辑中给定条件的覆盖性测试用例生成方法,在存在多值、耦合条件下,给出给定条件是否能够独立决定逻辑结果的判断,获得使该条件能够独立决定逻辑结果的其他信号赋值,并获得该条件对应信号的取值范围,如图1所示,为上述方法的流程图,主要包括:
1、从需求定义文件中读取被测对象的输入输出关系,并通过解析,提取输入输出关系中的所有基本条件、以及逻辑关系;所述基本条件是被测对象输入信号的函数,且同一基本条件出现的次数为1次或多次。
2、以基本条件为叶节点、以逻辑关系作为分支节点或者根节点,构建逻辑语法树来图形化表示被测对象的输入输出关系。
3、以给定的基本条件作为独立条件,对其他叶节点进行赋值,获得使给定的基本条件能够独立决定输入输出关系结果的信号赋值,并判定给定基本条件是否能够独立决定输出结果,之后获得给定基本条件期望输出值为True(1)与False(0)时,其对应信号独立决定输入输出关系结果的值域范围,从而在值域范围的基础上,进行边界测试或其他类型的取值测试。
在上述方法的实现过程中,还可以配套设置相应的数据存储设备、处理设备、显示设备等硬件设备。数据存储设备中存放着需求定义文件,需求定义文件可以是用户根据被测对象的设计需求预先编写的表格、文本或XML形式的文件,其主要包含了被测对象的输入输出关系。处理设备从数据存储设备中读取文件数据,并执行以上三个步骤。显示设备中设有多个显示区域,可以用来显示各个步骤的执行过程或者执行结果;例如,第一显示区域,可显示第1个步骤中读取到的数据信息,以及解析结果;第二显示区域,可以显示被测对象的输入输出关系构造的逻辑语法树,第三显示区域,可以显示用例赋值集合、以及各类测试类型对应的测试用例等结果。通过这样的方式,可以更为便捷、更为直观的生成给定条件的覆盖性测试用例。当然,此处所提到的各类硬件设备仅为举例,显示设备上的各个显示区域及其显示的内容也只是应用中的示例,并非构成限制。
下面针对以上三个步骤的优选实施方式进行介绍。
一、数据读取与解析。
从需求定义文件中读取被测对象的输入输出关系,需要对输入输出关系进行解析,以获得输入输出关系中的基本条件、以及逻辑关系。
示例性的,在对一个特定被测对象(UUT)进行黑盒测试时,一般方法是对该UUT施加一组激励信号,检测该UUT的输出并与期望输出值进行比对,以判定该UUT是否满足功能要求,此时根据需求定义文件可以读取到逻辑表达式描述的被测对象的输入输出关系,表示为:
L=f(C1,C2,…,Cn)
其中,Ci表示一个基本条件,1≤i≤n,n为基本条件总数;通过逻辑关系函数f对n个基本条件进行逻辑关系运算;运算符包括与(&&)、或(||)、非(!)、异或(^^)。对任一Ci,在表达式中可能出现1次或多次。如某一条件出现多次,则该条件为耦合条件。
基本条件Ci是被测对象输入信号的函数,表示为:
Ci=r(s)
其中,s表示输入信号,r为关系运算符,包括:等于(==)、不等于(!=)、大于/大于等于(>/>=)、小于/小于等于(</<=)。
二、构造逻辑语法树结构。
逻辑表达式可以转换为逻辑语法树,利用逻辑语法树来图形化表示被测对象的输入输出关系。
逻辑语法树是一种层次结构,根节点判定的下级条件,可能是包含更下级条件的子树根节点。因此,在逻辑语法树中,条件的概念是相对的。此处定义两类条件:
基本条件:即前文介绍的基本条件,其作为逻辑语法树的叶节点,逻辑树的叶节点必为基本条件。
条件:所述条件包含了基本条件,同时,如果一个判定具有上级节点,则其是上级节点的条件。
逻辑语法树中其他定义如下:
1)判定:所述判定包含至少一个条件,且对条件进行逻辑运算;一个判定以及相关的条件构成逻辑语法树的逻辑子树;除根节点外,一个判定作为其下条件的父节点,以及作为其父节点判定的条件;
2)决定条件/非决定条件:对于一个判定下的若干条件,决定判定结果的条件称为决定条件;对判定结果无影响的条件为非决定条件。例如,对于表达式L=A||B,当表达式期望输出值为False(0)时,条件A、B均为决定条件,应取A=False(0)且B=False(0);当表达式期望输出值为True(1)时,可任选一个条件作为决定条件(如取A=True(1)),另一个条件为非决定条件(B可任意取值);其中,期望输出值为True(1)表示状态为真,期望输出值为False(0)表示状态为假。
3)同父条件:指具有相同父节点的条件。
4)独立条件:其他条件不变,能够独立影响逻辑表达式输出结果的条件。
5)耦合信号:在表达式中出现大于1次的信号。
以输入输出关系Ls为例:
Ls=(s1==1)||((2≥60)&&(s2≤120))||(!(s1==1)&&(s3<80))
如图2所示,给出了Ls的逻辑语法树,上式中各个基本条件都作为一个叶节点。由图2可见,逻辑表达式Ls有4个不同的基本条件,但是有5个叶节点,3个信号。一般的有,逻辑树叶节点数≥基本条件数≥信号数。
三、用例生成方法。
本发明实施例中,用例生成方法包括四个部分:1、使给定条件独立决定输出结果的信号赋值方案;2、给定条件关联信号的赋值方案。3、给定条件是否能够独立决定逻辑结果的判断方案。4、基于测试类型的测试用例生成方案。
其中,第1个部分中主要介绍以给定的基本条件为独立条件,对其他叶节点进行赋值的方法,也即,解决的了前述三个问题的第2)个问题。第2个部分介绍的是在不同期望输出值下,给定条件中输入信号的赋值方案。第3与第4个部分则是在第2个部分的基础上实现的,用来解决前述三个问题的第1)与第3)两个问题。下面针对各个部分进行介绍。
1、使给定条件独立决定输出结果的信号赋值方案。
根据独立条件定义可见,针对逻辑表达式中的给定条件生成覆盖性用例,即是将该给定条件设定为独立条件,使该条件能够独立决定逻辑表达式输出。
针对独立条件进行赋值的目的是,在初始赋值集合S基础上,给定叶节点l为独立条件,对其他叶节点进行赋值,获得用例赋值集合S′,使叶节点l能够独立决定逻辑表达式L的结果。
假设叶节点l=r(sj),1≤j≤p,即叶节点l是信号sj的关系运算,p是输入输出关系中输入信号的总数。
用例赋值集合S′给出逻辑表达式L中p个输入信号的值域。该值域能够保证由sj决定的叶节点l的取值,能独立决定逻辑表达式L的结果。
下面讨论一般性的独立条件赋值方法。
在逻辑语法树中,除根节点外,一个判定也是其上级判定的一个条件。因此,逻辑语法树可以看做是以判定为单元,构成的一种嵌套层次结构。以判定单元为对象,进行递归调用,即可完成整个逻辑语法树的处理。所需处理的判定类型共4种,包括:与(&&)、或(||)、非(!)、异或(^^)。
如图3所示,以叶节点l作为独立条件,对其他叶节点进行赋值的主要流程,主要包括:
步骤a1:进行同父条件的赋值。所述同父条件是指与独立条件具有相同父节点的条件,根据父节点的逻辑关系类型,为同父条件赋予期望输出值;所述同父条件的类型包括:基本条件以及判定。
步骤a2:根据同父条件的类型以及赋予的期望输出值,对同父条件进行逐一处理。如果同父条件类型为基本条件,则根据赋予的期望输出值更新该基本条件关联信号的值域;如果同父条件类型为判定,则根据赋予的期望输出值,对该判定的条件进行赋值。
步骤a3:判断父节点是否为根节点,若是,则结束;否则,以父节点为独立条件,重复执行步骤a1~步骤a3,直至到达根节点。
在上述步骤a2中,如果同父条件类型为判定,则在给定的判定期望输出值约束下,对该判定的条件进行赋值,它是一个递归调用的过程,主要过程如图4所示:首先,根据判定的期望输出值,对判定下的每一条件进行赋值,获得每一条件的期望输出值;之后,判定下的条件可能是基本条件也可能是判定;对于基本条件,则根据赋予的期望输出值,更新相应输入信号的值域;对于判定,则根据赋予的期望输出值,递归调用上述判定条件赋值方法,直至抵达叶节点,也即基本条件。
下面针对赋值方案所涉及的三个技术细节做详细介绍。
1)独立条件的同父条件的赋值。
如图3所示流程中,首先进行同父条件的赋值。本发明实施例中,根据父节点的逻辑关系类型,为同父条件赋予期望输出值,主要如下:
若为与逻辑,则同父条件期望输出值设置为True(1);
若为或逻辑,则同父条件期望输出值设置为False(0);
若为非逻辑,则无同父条件,无需设置期望输出值;
若为处理两个条件的异或逻辑,则包含一个同父条件,期望输出值设置为False(0)。
为保证独立条件能够独立影响判定,上述同父条件的赋值规则是必须的。因此,同父条件均为决定条件。例如,对于逻辑L=A&&B&&C,取A为独立条件,则同父条件B、C应设置为True,则A的取值能独立决定L的值,且有L=A。
2)给定输出的判定的赋值方案。
如之前所述,同父条件可能为判定,对于判定,则需要根据判定的逻辑运算类型,以及判定的给定输出,分别进行讨论,主要考虑如下两种情况。
第一种情况,判定下属的条件期望输出值是确定的,每个条件均为决定条件,如表1所示:
若逻辑关系类型为与逻辑,给定期望输出值为True(1),则条件期望输出值为True(1);
若逻辑关系类型为或逻辑,给定期望输出值为False(0),则条件期望输出值为False(0);
若逻辑关系类型为非逻辑,给定期望输出值为True(1),则条件期望输出值为False(0);
若逻辑关系类型为非逻辑,给定期望输出值为False(0),则条件期望输出值为True(1);
判定类型 | 与逻辑 | 或逻辑 | 非逻辑 | 非逻辑 |
给定输出 | True(1) | False(0) | True(1) | False(0) |
条件赋值 | True(1) | False(0) | False(0) | True(1) |
表1具有决定条件的判定类型及给定输出组合
例如,对于如下的或逻辑L=A||B||C,设定L的输出为False(0),则必有三个条件均需设置为False(0)。
第二种情况,判定下属的条件期望输出值是不确定的,如表2所示:
若逻辑关系类型为与逻辑,给定期望输出值为False(0),则选择一个条件设置期望输出值为False(0)且作为决定条件,其余条件设置期望输出值为True(1)且作为非决定条件;
若逻辑关系类型为或逻辑,给定期望输出值为True(1),则选择一个条件设置期望输出值为True(1)且作为决定条件,其余条件设置期望输出值为False(0)且作为非决定条件;
若逻辑关系类型为异或逻辑,给定期望输出值为True(1),则两个条件的期望输出值分别设置为True(1)、False(0),或者False(0)、True(1);
若逻辑关系类型为异或逻辑,给定期望输出值为False(0),则两个条件的期望输出值分别设置为True(1)、True(1),或者False(0)、False(0)。
表2具有可选决定条件的判定类型及给定输出组合
表2中的4种判定类型与给定输出的组合,其条件赋值是可选的。例如,或逻辑L=A||B||C,设定L的输出为True(1),则在逻辑上,可在A、B、C三个条件中任选其一作为决定条件并设置为True(1),其他条件则为非决定条件。
由于本发明处理的是多值耦合信号的输入输出关系,且考虑到实际应用,在可能的组合中确定条件赋值,需要满足如下两个原则:
1)可行性原则。对于多值耦合信号的逻辑表达式,一个条件可能已经被限制取值范围而无法任意设置True(1)/False(0)。例如,基本条件A为耦合条件,已经在某一判定中被设定为False(0),如果其他判定要求A设置为True(1),则该赋值就是不可行的。
2)最小代价原则。在实际测试场景下,尤其被测对象是物理设备或系统时,不同条件的设置有不同的代价,包括但不限于时间消耗、能量消耗、操作复杂度等。本发明不展开讨论最小代价原则的实现,仅举例说明。对于逻辑L=A||(B&&C),为使L为True(1),则有如下两种条件赋值方法:一是取A为True(1),二是取B为True且C为True(1)。假设A、B、C具有相同的代价,相比于设置B、C两个信号,显然仅设置A一个信号的代价是更低的,因此应选择A为决定条件。
由于本发明处理耦合条件下的用例生成,当对判定的条件进行赋值时,该判定下的某个条件可能已经被设置为独立条件,或者该条件的关联信号与独立条件的关联信号相同。此时应尽可能避免将该条件作为决定条件。在实际应用中,将独立条件关联信号的代价属性设置为明显大于普通信号的代价,然后当在多个可选条件中选择决定条件时,通过最小代价原则,在可能的情况下,避开将该条件作为决定条件。
3)给定输出的基本条件的赋值方案。
前文给出了基本条件的表示形式;对于给定输出的基本条件的赋值问题表示为:
s1=f(s0,d,r,V)
其中,s0为信号s的初始值域;d为基本条件是否为上级判定的决定条件;r为关系运算符;V为基本条件的给定输出值,也即赋予的期望输出值(True(1)或False(0));s1为信号s的赋值结果,也即更新后的值域。
本发明讨论的多值信号,是通过信号的值域、分辨率两个属性来表示的。
值域表示方法为顺序排列的多个取值区间的集合,例如s∈{R1,…,Rn},其中Ri为一个区间,例如R1∈[0,60),即0≤R1<60;R2∈[80,80],则R2为80。
分辨率取决于数据类型以及实际应用限制。例如,对于整型信号,数据类型决定的分辨率为1(布尔型也可以看做整型);对于一个浮点型的速度信号,其采样设备决定了其分辨率,例如为0.01。
本发明实施例中,除了可以表示有符号/无符号整型、浮点数等多值信号外,布尔型信号可以表示成值域[0,1],分辨率为1。
决定条件d为False(0)时,也即当基本条件为上级判定的非决定条件时,s1=s0,也即非决定条件不改变信号的值域。
决定条件d为True(1)时,也即基本条件为上级判定的决定条件时,赋值方法为:首先获得s*,使其满足V=r(s*);然后,取s1=s0∩s*。
对各类关系运算,包括:等于(==)、不等于(!=)、大于/大于等于(>/>=)、小于/小于等于(</<=),均可容易的获得s*。与s0取交集,即可获得s1。
例1,基本条件C=(s==1),且有s0∈[0,10],分辨率为1。设定C的取值为False,则s*!=1。与s0取交集,则有s1∈{[0,1),(1,10]}。
例2,基本条件C=(s>80),且有s0∈[0,60],分辨率为0.01。设定C的取值为True,则s*>80。与s0取交集,则有s1为空集,赋值失败。
2、给定条件关联信号的赋值方案。
通过上述独立条件赋值过程,对于给定条件即叶节点l(令l=r(sj),1≤j≤p,即叶节点l是信号sj的关系运算,也即sj为给定信号),可获得给定条件作为独立条件的赋值集合S′,S′给出逻辑表达式L中p个信号的值域,该值域能够保证由sj决定的条件l的取值,能独立决定逻辑表达式L的结果。
通过S′可得信号sj赋值后的值域为R。
令叶节点l的期望输出值为False(0),则根据关系运算r,获得值域RF,有r(RF)=False;则叶节点l望输出值为False(0),且能独立决定逻辑关系结果的取值值域其中,期望输出值True(1)表示状态为真,期望输出值False(0)表示状态为假。
3、给定条件是否能够独立决定逻辑结果的判断方案。
本发明实施例中,提供一种判断给定条件是否能够独立决定逻辑结果的方法,即:
4、基于测试类型的测试用例生成方案。
本发明实施例中,提供一种根据测试类型,以及给定条件在True(1)、False(0)下输入信号的值域,来生成测试用例的方案,具体来说:
根据给定基本条件为True(1)、False(0)时对应的输入信号的值域,结合测试类型,采用不同取值规则形成相应的测试用例,包括:
1)对于边界值测试:取值域的边界值,形成上限、下限测试用例。
2)对于区间内测试:在值域区间,取典型值形成测试用例;所述典型值的取值方式包括:均匀取值、以及按照指定的统计分布(例如,平均分布)随机取值。
为了便于理解,下面以一个具体输入输出关系中给定的基本条件为例,结合上述方案进行介绍。
本示例中,输入输出关系为:
Ls=(s1==1)||((s2≥60)&&(s2≤120))||(!(s1==1)&&(s3<80))
图2示出了该输入输出关系对应的逻辑语法树。上述输入输出关系Ls中,有3个信号,4个基本条件,5个叶节点。
信号初始赋值集合S如表3所示:
信号(条件) | 数据类型 | 值域 | 分辨率 |
s1 | Bool | [0,1] | 1 |
s2 | Float | [0,200] | 0.01 |
s3 | Float | [0,100] | 0.01 |
表3信号初始赋值集合S
设定独立条件关联信号代价属性为100,一般信号代价属性为1。
1、给定条件为耦合条件的例子。
取叶节点2为给定条件,计算其覆盖用例。计算过程如下。
1)叶节点2的同父条件为叶节点3,父节点判定2的类型为与逻辑,则叶节点3为决定条件且输出为True(1)。
2)叶节点3为基本条件,为决定条件,期望输出值为True(1),则应有s2≤120,与s2当前值域[0,200]取交集,得到更新后的信号s2的值域为[0,120]。
3)以叶节点2的父节点判定2为独立条件,其同父条件为叶节点1、判定3,其父节点判定1的类型为或逻辑,则叶节点1为决定条件且期望输出值为False(0),判定3为决定条件且期望输出值为False(0)。
4)叶节点1为基本条件,为决定条件,期望输出值为False(0),则更新信号s1的值域为[0,0]。
5)判定3不是基本条件,对其条件进行赋值:
a)判定3为决定条件,类型为与逻辑,期望输出为False(0),则可在判定4和叶节点5中任选一个条件作为决定条件,且设置为False(0)。
b)判定3的第一个条件为判定4,类型为非逻辑;如取判定4为决定条件,则判定4的条件叶节点4也为决定条件,且叶节点4的期望输出值应为True(1),则应取s1=1,与s1的当前值域[0,0]取交集后为空集,也即赋值失败,因此判定4作为决定条件不可行。
c)由于判定4作为决定条件不可行,则取判定3的第二个条件,即叶节点5作为决定条件,且设置叶节点5的期望输出为False(0)。
d)叶节点5为基本条件,为决定条件,期望输出值为False(0),则应有s3≥80,与s3当前值域[0,100]取交集,则更新信号s3的值域为[80,100]。
6)独立条件判定2的父节点判定1为根节点,结束。
经过上述赋值后,各信号的赋值集合如表4所示为:
信号 | 数据类型 | 值域 | 分辨率 |
s1 | Bool | [0,0] | 1 |
s2 | Float | [0,120] | 0.01 |
s3 | Float | [80,100] | 0.01 |
表4以叶节点2为独立条件的赋值结果
在上述赋值条件下,叶节点2的取值,可独立决定逻辑结果。且s2能够作为独立条件的值域由初始值域[0,200]更新为[0,120]。
取叶节点2为True(1),则有s2≥60,与允许值域[0,120]取交集,则有叶节点2为True且独立决定逻辑输出的s2值域为[60,120]。已知s2的分辨率为0.01,则该情况下s2的边界取值为60、120。
取叶节点2为False(0),则有s2<60,与允许值域[0,120]取交集,则有叶节点2为False且独立决定逻辑输出的s2值域为[0,60)。已知s2的分辨率为0.01,则该情况下s2的边界取值为0、59.99。
2、给定条件不能作为独立条件的例子。
取叶节点4为给定,计算其覆盖用例。计算过程如下。
1)叶节点4的父节点判定4为非逻辑,无同父条件。
2)令判定4为独立条件,其同父条件为叶节点5;父节点判定3的类型为与逻辑,则叶节点5为决定条件且输出为True(1)。
3)叶节点5是基本条件,期望输出为True(1),为决定条件;对叶节点5进行赋值,有s3<80,则更新信号s3的值域为[0,80)。
4)令判定3为独立条件,其同父条件为叶节点1、判定2,父节点判定1的类型为或逻辑,则叶节点1、判定3为决定条件且输出为False(0)。
5)叶节点1是基本条件,期望输出为False(0),为决定条件;对叶节点1进行赋值,有s1!=1,则更新信号s1的值域为[0,0]。
6)判定2不是基本条件,对其条件进行赋值:
a)判定2为决定条件,类型为与逻辑,期望输出为False,则可任选一个条件作为决定条件,且设置为False。
b)判定2的两个条件均为基本条件,且代价相同,设置叶节点2为决定条件,且设置为False。
c)对叶节点2进行赋值,有s2<60,则更新信号s2的值域为[0,60)。
7)独立条件判定3的父节点判定1为根节点,结束。
经过上述赋值后,各信号的赋值集合如表5所示:
信号 | 数据类型 | 值域 | 分辨率 |
s1 | Bool | [0,0] | 1 |
s2 | Float | [0,60) | 0.01 |
s3 | Float | [0,80) | 0.01 |
表5以叶节点4为独立条件的赋值集合
在上述赋值条件下,叶节点4,即条件s1==1,在s1的值域为[0,0]的约束下,仅能为False(0),无法取True(1)。也即叶节点4不能作为独立条件实现覆盖。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (10)
1.一种多值耦合逻辑中给定条件的覆盖性测试用例生成方法,其特征在于,包括:
从需求定义文件中读取被测对象的输入输出关系,并通过解析,提取输入输出关系中的所有基本条件、以及逻辑关系;所述基本条件是被测对象输入信号的函数,且同一基本条件出现的次数为1次或多次;
以基本条件为叶节点、以逻辑关系作为分支节点或者根节点,构建逻辑语法树来图形化表示被测对象的输入输出关系;
以给定的基本条件作为独立条件,对其他叶节点进行赋值,获得使给定的基本条件能够独立决定输入输出关系结果的信号赋值,并判定给定基本条件是否能够独立决定输出结果,之后获得给定基本条件期望输出值为True(1)与False(0)时,其对应输入信号独立决定输入输出关系结果的值域范围,从而在值域范围的基础上,进行边界测试或区间内测试;其中,期望输出值为True(1)表示状态为真,期望输出值为False(0)表示状态为假。
3.根据权利要求1或2所述的一种多值耦合逻辑中给定条件的覆盖性测试用例生成方法,其特征在于,根据给定基本条件期望输出值为True(1)与False(0)时对应的输入信号的值域,结合测试类型,采用不同取值规则形成相应的测试用例,包括:
对于边界值测试:取值域的边界值,形成上限、下限测试用例;
对于区间内测试:在值域区间,取典型值形成测试用例;所述典型值的取值方式包括:均匀取值、以及按照指定的统计分布随机取值。
4.根据权利要求1所述的一种多值耦合逻辑中给定条件的覆盖性测试用例生成方法,其特征在于,所述逻辑语法树中还包括条件,所述条件包含了基本条件,同时,如果一个判定具有上级节点,则其是上级节点的条件;
所述判定包含至少一个条件,且对条件进行逻辑运算;一个判定以及相关的条件构成逻辑语法树的逻辑子树;除根节点外,一个判定作为其下条件的父节点,以及作为其父节点判定的条件;对于一个判定下的若干条件,决定判定结果的条件称为决定条件;对判定结果无影响的条件为非决定条件。
5.根据权利要求1或4所述的一种多值耦合逻辑中给定条件的覆盖性测试用例生成方法,其特征在于,所述以给定的基本条件作为独立条件,对其他叶节点进行赋值,包括:
步骤a1:进行同父条件的赋值,所述同父条件是指与独立条件具有相同父节点的条件,根据父节点的逻辑关系类型,为同父条件赋予期望输出值;所述同父条件的类型包括:基本条件与判定;
步骤a2:根据同父条件的类型以及赋予的期望输出值,对同父条件进行逐一处理;如果同父条件的类型为基本条件,则根据赋予的期望输出值更新基本条件中输入信号的值域;如果同父条件的类型为判定,则根据赋予的期望输出值,对判定的条件进行赋值;
步骤a3:判断父节点是否为根节点,若是,则结束;否则,以父节点为独立条件,重复执行步骤a1~步骤a3,直至到达根节点。
6.根据权利要求5所述的一种多值耦合逻辑中给定条件的覆盖性测试用例生成方法,其特征在于,所述根据父节点的逻辑关系类型,为同父条件赋予期望输出值,包括:
若为与逻辑,则同父条件期望输出值设置为True(1);
若为或逻辑,则同父条件期望输出值设置为False(0);
若为非逻辑,则无同父条件,无需设置期望输出值;
若为处理两个条件的异或逻辑,则包含一个同父条件,期望输出值设置为False(0)。
7.根据权利要求5或6所述的一种多值耦合逻辑中给定条件的覆盖性测试用例生成方法,其特征在于,如果同父条件的类型为判定,根据逻辑关系类型与给定的期望输出值分为如下两种情况:
第一种情况,判定下属的条件期望输出值是确定的,每个条件均为决定条件:
若逻辑关系类型为与逻辑,给定期望输出值为True(1),则条件期望输出值为True(1);
若逻辑关系类型为或逻辑,给定期望输出值为False(0),则条件期望输出值为False(0);
若逻辑关系类型为非逻辑,给定期望输出值为True(1),则条件期望输出值为False(0);
若逻辑关系类型为非逻辑,给定期望输出值为False(0),则条件期望输出值为True(1);
第二种情况,判定下属的条件期望输出值是不确定的:
若逻辑关系类型为与逻辑,给定期望输出值为False(0),则选择一个条件设置期望输出值为False(0)且作为决定条件,其余条件设置期望输出值为True(1)且作为非决定条件;
若逻辑关系类型为或逻辑,给定期望输出值为True(1),则选择一个条件设置期望输出值为True(1)且作为决定条件,其余条件设置期望输出值为False(0)且作为非决定条件;
若逻辑关系类型为异或逻辑,给定期望输出值为True(1),则两个条件的期望输出值分别设置为True(1)、False(0),或者False(0)、True(1);
若逻辑关系类型为异或逻辑,给定期望输出值为False(0),则两个条件的期望输出值分别设置为True(1)、True(1),或者False(0)、False(0)。
8.根据权利要求5任一项所述的一种多值耦合逻辑中给定条件的覆盖性测试用例生成方法,其特征在于,
基本条件的赋值问题表示为:
s1=f(s0,d,r,V)
其中,s0为信号s的初始值域;d为基本条件是否为上级判定的决定条件;r为关系运算符;V为基本条件的给定输出值,也即赋予的期望输出值;s1为信号s的赋值结果,也即更新后的值域;
当基本条件为上级判定的非决定条件时,s1=s0;当基本条件为上级判定的决定条件时,获得s*,使其满足V=r(s*);然后,取s1=s0∩s*。
9.根据权利要求5任一项所述的一种多值耦合逻辑中给定条件的覆盖性测试用例生成方法,其特征在于,
如果同父条件类型为判定,则在给定的判定期望输出值约束下,对判定的条件进行赋值,它是一个递归调用的过程,过程如下:首先,根据判定的期望输出值,对判定下的每一条件进行赋值,获得每一条件的期望输出值,所述条件为基本条件或者判定;之后,对于基本条件,则根据赋予的期望输出值,更新相应输入信号的值域;对于判定,则根据赋予的期望输出值,递归调用判定条件赋值方法,直至抵达叶节点,也即基本条件。
10.根据权利要求5任一项所述的一种多值耦合逻辑中给定条件的覆盖性测试用例生成方法,其特征在于,
所述输入输出关系为多值耦合信号的输入输出关系,定义如下两个原则:可行性原则:对于多值耦合信号的输入输出关系,若某个条件被限制取值范围而无法任意设置期望输出值为True(1)或False(0),则不满足可行性原则;最小代价原则:不同条件的设置有不同的代价属性值,赋值过程中根据条件的代价属性值来选择决定条件;
同时,该方法实现的是耦合条件下的用例生成;当对判定的条件进行赋值时,该判定下的某个条件A如果已经被设置为独立条件,或者该条件A的关联信号与独立条件的关联信号相同,此时避免将该条件A作为决定条件,实现方式包括:将独立条件关联信号的代价属性值设置为大于其他信号的代价属性值,当在多个可选条件中选择决定条件时,通过最小代价原则,避免将该条件A作为决定条件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010962370.9A CN112052176B (zh) | 2020-09-14 | 2020-09-14 | 一种多值耦合逻辑中给定条件的覆盖性测试用例生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010962370.9A CN112052176B (zh) | 2020-09-14 | 2020-09-14 | 一种多值耦合逻辑中给定条件的覆盖性测试用例生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112052176A true CN112052176A (zh) | 2020-12-08 |
CN112052176B CN112052176B (zh) | 2024-07-19 |
Family
ID=73610166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010962370.9A Active CN112052176B (zh) | 2020-09-14 | 2020-09-14 | 一种多值耦合逻辑中给定条件的覆盖性测试用例生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112052176B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117234956A (zh) * | 2023-11-15 | 2023-12-15 | 北京全路通信信号研究设计院集团有限公司 | 一种基于mc/dc覆盖准则的最小测试用例集生成方法和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120101977A1 (en) * | 2010-10-20 | 2012-04-26 | Wooyeol Kim | Program for test case generation based on use case diagram and method for test case generation using the same |
CN107678973A (zh) * | 2017-10-31 | 2018-02-09 | 北京润科通用技术有限公司 | 一种测试脚本的自动生成方法及系统 |
CN107748721A (zh) * | 2017-11-27 | 2018-03-02 | 中国航空无线电电子研究所 | 一种测试用例集自动生成方法 |
CN108701074A (zh) * | 2016-02-24 | 2018-10-23 | 三菱电机株式会社 | 测试用例生成装置和测试用例生成程序 |
CN110389894A (zh) * | 2019-05-27 | 2019-10-29 | 南京祖母绿智能科技有限公司 | 测试用例生成的方法和装置 |
-
2020
- 2020-09-14 CN CN202010962370.9A patent/CN112052176B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120101977A1 (en) * | 2010-10-20 | 2012-04-26 | Wooyeol Kim | Program for test case generation based on use case diagram and method for test case generation using the same |
CN108701074A (zh) * | 2016-02-24 | 2018-10-23 | 三菱电机株式会社 | 测试用例生成装置和测试用例生成程序 |
CN107678973A (zh) * | 2017-10-31 | 2018-02-09 | 北京润科通用技术有限公司 | 一种测试脚本的自动生成方法及系统 |
CN107748721A (zh) * | 2017-11-27 | 2018-03-02 | 中国航空无线电电子研究所 | 一种测试用例集自动生成方法 |
CN110389894A (zh) * | 2019-05-27 | 2019-10-29 | 南京祖母绿智能科技有限公司 | 测试用例生成的方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117234956A (zh) * | 2023-11-15 | 2023-12-15 | 北京全路通信信号研究设计院集团有限公司 | 一种基于mc/dc覆盖准则的最小测试用例集生成方法和系统 |
CN117234956B (zh) * | 2023-11-15 | 2024-01-19 | 北京全路通信信号研究设计院集团有限公司 | 一种基于mc/dc覆盖准则的最小测试用例集生成方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112052176B (zh) | 2024-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Golino et al. | Exploratory graph analysis: A new approach for estimating the number of dimensions in psychological research | |
Xie et al. | Testing and validating machine learning classifiers by metamorphic testing | |
Rahman et al. | Source code properties of defective infrastructure as code scripts | |
Mısırlı et al. | An industrial case study of classifier ensembles for locating software defects | |
Pol et al. | Unstable taxa in cladistic analysis: identification and the assessment of relevant characters | |
US6343291B1 (en) | Method and apparatus for using an information model to create a location tree in a hierarchy of information | |
Christensen et al. | Estimating the stability of the number of factors via Bootstrap Exploratory Graph Analysis: A tutorial | |
Gagolewski | Bibliometric impact assessment with R and the CITAN package | |
US20120297364A1 (en) | Augmented design structure matrix visualizations for software system analysis | |
Hobert et al. | Functional compatibility, Markov chains, and Gibbs sampling with improper posteriors | |
CN112052177B (zh) | 一种多值耦合信号的mc/dc测试用例集生成方法 | |
Busari et al. | Radar: A lightweight tool for requirements and architecture decision analysis | |
Allen et al. | Measuring size, complexity, and coupling of hypergraph abstractions of software: An information-theory approach | |
Tan et al. | E-sc4r: Explaining software clustering for remodularisation | |
CN112052176A (zh) | 一种多值耦合逻辑中给定条件的覆盖性测试用例生成方法 | |
Kirbas et al. | Evolutionary coupling measurement: Making sense of the current chaos | |
Halepmollasi et al. | Exploring the relationship between refactoring and code debt indicators | |
Belda-Ferrín et al. | Local bisection for conformal refinement of unstructured 4D simplicial meshes | |
Yeomans et al. | Extending system dynamics modeling using simulation decomposition to improve the urban planning process | |
US6345277B1 (en) | Method and apparatus for using an information model to organize an information repository into an extensible hierarchy of information | |
Coolen et al. | Generalized partition testing via Bayes linear methods | |
Qiu et al. | Cosmology with Galaxy Cluster Properties using Machine Learning | |
Mirzargar et al. | Representative Consensus from Limited‐Size Ensembles | |
Kanellopoulos et al. | Interpretation of source code clusters in terms of the ISO/IEC-9126 maintainability characteristics | |
Xu et al. | Connection between SDSS galaxies and ELUCID subhaloes in the eye of machine learning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |