测试软件结构,功能测试和结构测试

构造测试用例的基本途径有两种,即功能测试和结构测试。每种途径都有几种不同的测试用例构造方法,通常也称为测试方法。

1、功能测试

功能测试的基本思想是:任何程序均可视为将其输入定义域中的值映射到其输出值域的函数。(函数、定义域、值域等概念见第3章)。工程领域普遍采用这种思想,因为工程系统常被当做黑盒子来研究,这样就产生了黑盒测试方法。黑盒里的内容(具体实现)不为外界所知,黑盒的功能完全通过其输入与输出来表述(如图1所示)。在Zen and the Art of Motorcycle Maintenance一书中,Pirsig把这种观点称为“罗曼蒂克的理解方式”(Prisig, 1973)。很多时候我们仅用黑盒知识也就够用了。(实际上,这也是面向对象的主要思想。)举例子来说,多数人仅凭黑盒知识就能开汽车。

f88adb2a4857a27364c0d80aead88d9c.png

图1 工程师的黑盒子

对功能测试用例构造方法来说,唯一可用的信息是软件规格说明。

功能测试用例有两个突出的优点:(1)与软件的具体实现方法无关,所以即使实现方式发生改变,测试用例仍然有用;(2)测试用例的开发工作可以同软件实现工作并行开展,这样可以缩短整个项目的开发周期。但不利的方面,功能测试用例常常也有两个突出的问题:测试用例之间会存在严重的冗余问题,而且可能有未测试的实现行为。

图2给出了用两种功能测试方法构造测试用例的不同结果。方法A比方法B构造的测试用例集合要大一些。可见对这两种方法来说,测试用例集合均完全包含在规定行为集合中。由于功能测试方法是基于规格说明的,所以此类方法不会构造规定之外的行为。在第8章中将针对第2章的示例直接比较不同的功能测试方法所构造的测试用例。

d363310b3f4921093d4e97c78bcf0a85.png

图2 两种功能测试用例构造方法的比较

2、结构测试

结构测试是另一种基本的构造测试用例方法。与功能测试相对,结构测试有时也被称为白盒(甚至透明盒)测试。透明盒的说法也可能更为恰当,因为这两者最根本的区别在于黑盒子中的具体实现现在是已知的并被用于构造测试用例。能够 “透视”黑盒内部的能力使测试人员可以根据功能的实现方式构造测试用例。

结构测试有很强的理论性。为真正理解结构测试,必须熟悉线性图论的基本概念。利用这些基本概念,测试人员可以精确描述被测试对象。鉴于其深厚的理论基础,结构测试允许定义和使用测试覆盖率指标。测试覆盖指标能够明确地表示软件被测试的程度,并且使测试管理更有意义。

21/212>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值