|
|
|
|
移动端

2.7.5 生成BOR、BRO和BRE充分性测试用例(1)

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

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

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

2.7.5 生成BOR、BRO和BRE充分性测试用例(1)

现在来描述用于谓词测试的测试约束生成的算法。实际使用的测试用例通常都是根据测试约束产生的。回想一个有效的(feasible)测试约束可被一个或多个测试用例满足。因此,在这里着重讨论生成测试约束的算法,而不是具体的测试用例。满足测试约束的测试用例可以用手工或自动化的方式生成。我们从介绍针对具体谓词的BOR约束集合的生成方法开始。

首先,回顾关于集合笛卡儿积的两个定义。

有限集合A和B的笛卡儿积记为A×B,定义如下:

 

为了能生成最小的测试约束集,还需要另一种集合积的计算方法。集合的onto积(其运算符记为)定义如下:对于有限集合A和B,AB为二元偶(u,v)构成的最小集合,其中u∈A、v∈B,且A中的各个元素至少出现一次,B中的各个元素也至少出现一次。根据该定义,当集合A、B包含两个或两个以上元素时,AB的计算结果不唯一。

例2.26设A={t,=,>}、B={f,<},根据上述集合笛卡儿积和集合onto积的定义,可得如下集合:

 

注意这里给出了AB的6个可能结果。在后面描述的算法中,当需计算AB时,我们将选取其中的任意一个。

对于给定的谓词pr,生成其相应的BOR、BRO、BRE约束集时需要使用pr的抽象语法树,即AST(pr)。根据前面的内容我们知道:(a)AST(pr)的每个叶结点代表一个布尔变量或一个关系表达式;(b) AST(pr)的内部结点是布尔运算符,比如∧、∨、∨—、﹁,分别被称作AND结点、OR结点、XOR结点、NOT结点。

下面,介绍四个根据谓词生成测试集的算法。前三个算法为只涉及奇异表达式的谓词生成BOR、BRO、BRE充分的测试集。最后一个算法称作BOR-MI,为至少包含一个非奇异表达式的谓词生成测试集。练习2.27旨在探讨针对非奇异表达式应用前三种算法时会产生的问题。

1. 生成BOR约束集

给定谓词pr,AST(pr)是pr的抽象语法树。用字符N,N1,N2,...表示AST(pr)中不同的结点,SN表示结点N的约束集。正如前面讨论的那样,StN、SfN分别代表结点N的“真”约束集和“假”约束集,SN=StN∩SfN。下面的算法用于生成pr的BOR约束集(CSET)。

从谓词pr的抽象语法树生成最小BOR约束集的算法BOR-CSET

输入:谓词pr的抽象语法树AST(pr)。pr只包含奇异表达式。

输出:谓词pr的BOR约束集,放置在抽象语法树AST(pr)的根结点处。

Begin of BOR-CSET

步骤1标识AST(pr)每个叶结点N的约束集SN,SN ={t,f},StN=t,SfN=f。

步骤2以自底向上的方式遍历AST(pr)的每个非叶结点(内部结点)。如果结点N是一个AND结点或OR结点,设N1、N2是其直接后继。如果结点N是一个NOT结点,设N1是其直接后继。SN1、SN2分别代表结点N1、N2的BOR约束集。对每个非叶结点N,计算SN如下:

2.1N是OR结点

 

2.2N是AND结点

 

2.3N是NOT结点

 

步骤3AST(pr)根结点的BOR约束集就是谓词pr的BOR约束集。

End of BOR-CSET

 
图2-18谓词的BOR约束集。约束集放置在谓词抽象语法树的各结点旁。
注意,本节中关于将约束集划分为“真”、“假”约束集的论述

例2.27采用算法BOR-CSET生成例2.25中所用谓词p1:a<b∧c>d的BOR约束集。p1的抽象语法树AST(p1)如图2-18a所示。

N1、N2是AST(p1)的叶结点,它们的约束集如下:

 
自底向上遍历AST(p1),计算AND结点N3的约束集:
 



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

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

读 书 +更多

网管员必读——网络组建

本书以一个模拟局域网组建为思路,介绍了与局域网组建各主要方面相关的知识及组建、配置方法。本书所介绍的内容主要包括:局域网组建规划、...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊