|
|
|
|
移动端

1.3 利用维恩图来理解软件测试

《软件测试:一个软件工艺师的方法(原书第4版)》第1章测试概述,本章给出软件测试的总体知识框架。本节为大家介绍利用维恩图来理解软件测试。

作者:马琳/李海峰 译来源:机械工业出版社|2017-11-15 16:52

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

1.3 利用维恩图来理解软件测试

从本质上讲,测试关心的是软件的行为,而软件行为同软件(或系统)开发人员所常用的面向程序代码的视角并没有直接关系。此处最明显的差别在于:代码侧重于“软件是什么”,而行为则关注“软件干什么”。一直困扰测试人员的一个难点问题是:基础性的文档通常都是由开发人员编写,并且为开发人员服务的,所以这些文档就很自然地强调程序代码方面的信息而不是软件行为信息。本节将给出一个简单的维恩图来说明软件测试中的一些很微妙的问题。

我们先来看看程序的行为空间(注意,此处我们专注研究的是测试的本质)。对于给定的程序及其规格说明,考察其规格说明所规定的行为集合S和编程实现的行为集合P。

图1-2给出了规格行为和实现行为之间的关系。在程序的所有可能行为中,规定行为都在圆圈S内,所有实际实现的行为都在圆圈P中。利用这个维恩图,可以清楚地看到测试人员所遇到的问题。如果某些规定行为未经编程实现,情况会怎样呢?用前面提到的术语来讲,这些是遗漏故障。类似地,如果编程实现的某些行为不是规格说明所规定的,情况又会怎样呢?这些就是过失故障,或者在满足了规格说明之后又发生的错误。S与P的交集(图中的橄榄球型区域)是“正确”的部分,即那些按规定实现的行为。对测试的一个很好的认识是:测试就是要确定按规定实现的程序行为到底有多少。(需要补充的是,正确性仅仅是针对确定的规格说明和具体的程序实现而言的。正确性是相对的,而不是绝对的。)

在图1-3中,新圆圈代表测试用例集合。注意,它同程序行为全空间以及各个行为集合之间存在些许不同。一个测试用例要引发一个程序行为,这里请数学家们谅解这种表述中的不严密性。所以考察集合S、P和T之间的关系可以看到:可能会存在测试不到的规定行为(2号区和5号区),测试到的规定行为(1号区和4号区),以及对应于未规定行为的测试用例(3号区和7号区)。

类似地,也会有测试不到的实现行为(2号区和6号区),测试得到的实现行为(1号区和3号区),以及对应于未实现行为的测试用例(4号区和7号区)。

在维恩图中,每一个区域都很重要。如果某些规定行为没有相应的测试用例,那测试就是不完备的。如果有测试用例对应的是未规定行为,则会产生几种可能:此测试用例设计得不恰当,或者规格说明不够充分,又或者测试人员故意要确认规定不该发生的行为确实不会发生。(就我个人的经验来讲,好的测试人员经常会有意设计最后一种情况的测试用例。这也是在进行规格说明和系统设计评审时吸收有经验的测试人员参与的重要原因。)

至此我们已经可以看清把软件测试称为技艺或工艺的原因了:测试人员怎样才能尽可能地扩大所有行为集合的交集(1号区)呢?也就是说,应该如何确定集合T中的测试用例呢?最简单的回答就是:遵循测试方法来构造测试用例。这个思路给了我们一种方法来比较各种测试方法的有效性,详见第10章。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

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

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

读 书 +更多

网络管理员备考训练——计算机与网络基础知识

本书是根据全国计算机技术与软件专业技术资格(水平)考试《网络管理员考试大纲》所要求的考试范围而编写的试题集。全书共分10个单元,同步...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊