|
|
|
|
移动端

2.7.4 谓词测试准则

《软件测试基础教程》第2章基于需求的测试生成,本章主要介绍从非形式化或形式化定义的软件需求生成测试集的技术。这些技术,有的可以自动地执行,而大部分则需测试人员付出艰辛的劳动,特别是在测试大型软件时。本章所介绍的大部分测试技术属于黑盒测试,因为生成测试集时不需参考被测软件的源代码。本节为大家介绍谓词测试准则。

作者:王峰/郭长国/陈振华 等译来源:机械工业出版社|2011-09-17 22:59

技术沙龙 | 邀您于8月25日与国美/AWS/转转三位专家共同探讨小程序电商实战

2.7.4 谓词测试准则

我们最关心的是如何从给定的谓词pr生成测试集T,使其满足:(a) T是最小集合;(b) T保证能够检测出pr实现中存在的符合前文所述故障模型的所有故障。为了获得这样的测试集,定义了三个准则,通常称作BOR、BRO、BRE测试准则。名称BOR、BRO、BRE分别对应于布尔运算符、布尔和关系运算符、布尔和关系表达式。三个准则的形式化定义如下:

对于复合谓词pr,如果测试集T确保能够检测出pr实现中存在的所有单/多布尔运算符故障,则T满足BOR测试准则,称T为BOR充分测试集,记为TBOR。

对于复合谓词pr,如果测试集T确保能够检测出pr实现中存在的所有单/多布尔运算符及关系运算符故障,则T满足BRO测试准则,称T为BRO充分测试集,记为TBRO。

对于复合谓词pr,如果测试集T确保能够检测出pr实现中存在的所有单/多布尔运算符、关系表达式以及算术表达式故障,则T满足BRE测试准则,称T为BRE充分测试集,记为TBRE。

注意,上文中的“单/多故障”和“确保能够检测出”需要仔细揣摩。

设Tx为从谓词pr导出的测试集,其中x∈{BOR,BRO,BRE}。设pf为通过向谓词pr注入单/多故障而得到的另一谓词,注入的故障属于三种类型之一,即布尔运算符故障、关系运算符故障、算术表达式故障。若存在t∈Tx,使得p(t)≠pf(t),则称Tx确保能够检测出pf中的故障。下面的例子说明一个BOR充分测试集示例及其故障检测效力。

例2.25考虑复合谓词pr:a<b∧c>d。设S为pr上的约束集合

 

下面的测试集T满足约束集合S以及BOR测试准则:

 

由于T满足BOR测试准则,从而确保能够检测出pr中存在的所有单/多布尔运算符故障。通过针对测试集T,计算pr及其经注入布尔运算符故障后得到的变体的真值,就能验证这一点。

表2-6列出了谓词pr以及经注入单/多布尔运算符故障后得到的7个故障谓词。对于每个谓词,都使用T中的3个测试用例分别进行计算。注意,对于故障谓词,至少存在一个测试用例,使其取值与pr取值不同。

表2-6例2.25中BOR充分测试集对单/多布尔运算符故障的检测能力(故障谓词与谓词pr的计算结果的差异用斜体标识)

 

很容易验证,如果从表2-6中删去任意一个测试用例,则至少存在一个故障谓词对于剩余的两个测试用例,其真值与谓词pr的真值相同。例如,删去t2,则故障谓词4与谓词pr对于测试用例t1、t3所得结果一致。因此,可以肯定,T是谓词pr的最小且满足BOR充分性的测试集。

练习2.28与上面的例子类似,要求验证所给的两个测试集分别是BRO充分的和BRE充分的。在下一节,将讨论生成BOR、BRO、BRE充分测试用例的算法。



【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Linux编程技术详解

本书全面介绍了Linux编程相关的知识,内容涵盖Linux基本知识、如何建立Linux开发环境、Linux开发工具、Linux文件系统、文件I/O操作、设备文...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊