|
|
|
|
移动端

2.3.6 基于等价类的测试用例设计

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

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

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

2.3.6 基于等价类的测试用例设计

当获得划分输入域的等价类集合后,就可以直接设计测试用例了。但是,由于不可测输入和无关值数据的存在,增大了测试用例设计的难度。在最为普通的情况下,测试人员只是简单地从每个等价类中选取一个测试用例作为代表。例如,对于例2.4中的pCat关系,选择4个测试用例,每个用例分别属于不同的等价类。每个用例就是一个代表打印机品牌和型号的字符串,且分别属于3个有效等价类和1个无效等价类。下面给出从软件pTest的输入域中选取出的4个测试用例集合的实例:

 
在使用测试用例集T对pTest进行测试时,假设:如果对于T中的所有打印机,pTest都能正确选择到一个打印机测试脚本,那么,pTest对数据库中的所有打印机都能正确选出相应的测试脚本。同样,对于例2.5中的6个等价类,生成测试用例集合T,T包含6个形如(w,f)的测试用例,其中w表示输入单词,f表示文件名,具体如下:
 

在上面的测试用例中,ε表示空或null字符串,是指输入的单词为一个空串。my-dict、does-not-exist、empty-file分别表示有效文件名(文件有内容)、无效文件名、有效空文件(文件无内容)。

对于例2.8中的热水器温控软件,由于存在不可测数据和无关值,使得测试用例的设计更为棘手,下面的例子说明如何选择热水器温控软件的测试用例。

例2.9回想前面的内容,最初将热水器温控软件的输入域划分为120个等价类。一个简单的方法,就是直接从每个等价类中选择一个测试用例作为代表。但是,由于其中包括不可测等价类,这样将出现大量在实际测试中无法使用的测试用例,这就需要从只包含可测等价类的集合中去设计测试用例。表2-3列出了例2.8中所描述的18个等价类,以及由这18个等价类生成的测试用例,等价类分别使用E1,E2,...,E18标记。

在设计表2-3中的测试用例时,为温控软件中的无关值变量选择了任意取值。例如在E9中,F是无关值变量,为了形成完整的测试数据,赋予F一个任意的有效文件名;同样,可以将tempch的取值随意置为10。

表2-3 用于热水器温控软件的测试用例

 
(续)
 

① __: 无关值;NA:不允许的输入。

② a_file: 有效文件名; no_file:无效文件名。在处理等价类中的无关值时必须非常谨慎,依据软件需求可以确定某个变量是否为无关值。但是,一个未正确实现的软件可能实际使用了无关值变量的值;事实上,即使一个正确实现的软件,也有可能使用了无关值变量的值。之所以产生后一种情况,原因可能在于不正确或不清晰的需求。

在生成输入域等价类的步骤3中,建议采用所有输入变量的等价类的笛卡儿积,这样将产生大量的等价类。为了避免组合爆炸,方法之一就是使用一个很小的测试用例集合覆盖每个变量的所有等价类。比如,假设变量V的某个等价类为E,如果测试输入包含了E,则称该测试输入覆盖了等价类E。因此,一个测试输入可以覆盖多个等价类,而每个等价类只属于一个输入变量。下面的例子说明该方法在热水器温控软件测试中的应用。

例2.10在例2.8中?淞縑、F、cmd、tempch分别生成了3个、2个、4个、5个等价类,总共只有14个等价类;相比之下,采用各等价类的笛卡儿积产生了120个等价类。注意,对于tempch,有5个等价类而不是2个,因为tempch是枚举型变量。下面的测试集T包含5个测试用例,覆盖了所有的14个等价类。

 

可以验证,上面列出的测试用例覆盖了每个变量的所有等价类。这样的测试集规模很小,但却有很多缺陷。虽然该测试集覆盖了所有的单个等价类,但并没有考虑不同变量间的语义关系。例如,测试集中的最后一个测试用例,当环境变量V的取值undefined被正确处理时,就无法对shut命令进行验证。

例2.10中的测试集T还有很多不足。这个例子表明,测试人员在设计覆盖变量等价类的测试用例时,需要仔细考虑变量间的关系。事实上,很容易证明,表2-3中测试集的一个真子集就能覆盖所有变量的等价类,同时还能满足各变量间的关系(参见练习2.13)。

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

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

读 书 +更多

精通ASP.NET 2.0+XML+CSS网络开发混合编程

本书以最新的ASP.NET 2.0为基础,详细阐述了当前网络开发的经典架构ASP.NET 2.0+XML+CSS的各个知识点,以及SQL Server 2005的相关知识。全...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊