软件测试的艺术:浅谈等价划分

等价划分的两种思想:1、严格控制测试用例的增加,减少为达到“合理测试”的某些既定目标而必须设计的其他测试用例的数量;2、它覆盖了大部分其他可能的测试用例。也就是说,它会告诉我们,使用或不使用这个特定的输入集合,哪些错误会被发现,哪些会被遗漏。第二种思想可以用来设计一个“令人感兴趣的”输入条件集合以供测试,而第一个思想可以随后用来设计涵盖这些状态的一个最小测试用例集。

使用等价划分方法设计测试用例主要有两个步骤:1、确定等价类;2、生成测试用例。

1. 确定等价类:选取每一个输入条件(通常是规格说明中的一个句子或短语)并将其划分为两个或更多的组。注意要确定两类等价类:有效等价类和无效等价类。有效等价类代表对程序的有效输入,而无效等价类代表的则是其他任何可能的输入条件(即不正确的输入值)。这是遵循了测试原则中的要注意无效和未预料到的输入情况。

在给定了输入或外部条件之后,确定等价类大体上是一个启发式的过程。下面给出一些指导原则:

  • 如果输入条件规定了一个取值范围(例如,“数量可以是从1到999”),那么就应确定一个有效等价类(1<数量<999)、两个无效等价类(数量<1,数量>999)。
  • 如果输入条件规定了取值的个数(例如,“汽车可登记一至六名车主”),那么就应确定出一个有效等价类和两个无效等价类(没有车主,或车主多于六个)。
  • 如果输入条件规定了输入值的集合,而且有理由认为程序会对每个值进行不同处理(例如,“交通工具的类型必须是公共汽车、卡车、摩托车、火车”),那么就应为每个输入值确定一个有效等价类(公共汽车、卡车、摩托车、火车)和一个无效等价类(“拖车”)。
  • 如果存在输入条件规定了“必须是”的情况(例如“标识符的第一个字符必须是字母”),那么就应确定一个有效等价类(首字符是字母)和一个无效等价类(首字符不是字母)。
  • 如果有任何理由可以认为程序并未等同地处理等价类中的元素,那么就应该将这个等价类再划分为小一些的等价类。

2. 生成测试用例,过程如下:

  1. 为每个等价类设置一个不同的编号;
  2. 编写新的测试用例,尽可能多地覆盖那些尚未被涵盖的有效等价类,直到所有的有效等价类都被测试用例所覆盖(包含进去);
  3. 编写新的测试用例,覆盖一个且仅一个尚未被涵盖的无效等价类,直到所有的无效等价类都被测试用例所覆盖。

用单个测试用例覆盖无效等价类,是因为某些特定的输入错误检查可能会屏蔽或取代其他输入错误检查。举例,如果规格说明规定了“请输入书籍类型(硬皮、软皮或活页)及数量(1~999)”,代表两个错误输入(书籍类型错误,数量错误)的测试用例“XYZ 0”,很可能不会执行对数量的检查,因为程序也许会提示“XYZ是未知的书籍类型”,就不检查输入的其余部分了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值