第二章:input partitioning

输入划分(input partitioning)是测试中的一种策略,旨在筛选出具有代表性的输入测试用例,以提高测试效率。它通过将输入分为等价类(equivalence classes),每个类的测试用例能代表一类输入。等价类划分遵循不重叠和覆盖整个输入域的原则。本文详细介绍了等价类的划分方法,包括白盒测试中的域测试和黑盒测试中的等价类划分,以及处理等价类重叠的组合分区策略,如全组合、两两组合和每项选择组合。此外,还讨论了如何通过测试模板树缓解测试用例爆炸问题。
摘要由CSDN通过智能技术生成

Input partitioning

input partitioning 的目的

  • 在之前的章节中提到 input domain 是 program / function 的所有可能的输入

  • 但是这些输入中有一些是没有意义的,而且如果全部测量的话也是非常耗时的

  • 因此如何筛选出一部分 input test cases 能够又快又好地找出 failures 就是 testing 中关注的重点

  • 这部分 input partitioning

    • 我们可以将很多 test case 划分成相同的类别 (equivalence class 等价类) 从而用一个 test case 就能代替一群,这样也可以提高 test 效率而且还有助于更快发现 failure
  • 使用 input partitioning 相当于使用一个分类器,将所有的 input 划分成不同的类别 (input class),每个类别经过相同的代码段和处理
    在这里插入图片描述
    在这里插入图片描述

  • 这个 D i D_i Di 代表的就是所有 input 切分成多个类别中的第 i i i 个输入类; F i F_i Fi 表示就是这一类的输入经过的都是同一个函数
    在这里插入图片描述

computational / domain faults

  • 上述代码中可以认为分成了两个 F 1 F_1 F1 F 2 F_2 F2 其中 F 1 F_1 F1 包含 3, 4, 5, and 7 行, F 2 F_2 F2 包含 3, 4, and 7

  • 根据对程序的这种观点,存在两种可能的故障类型 (types of faults):

    • 计算故障:(computational faults) 在选择了正确路径但沿该路径发生了错误计算;以及

    • 领域故障:(domain faults): 在每个路径上计算都是正确的,但选择了错误的路径。

导致选择错误路径的可能原因有:(1)输入领域执行了错误路径;(2)构成路径选择的决策可能包含故障;以及(3)正确路径(或用于计算所必需的部分路径片段)可能被简单地遗漏。

输入划分的目标是派生测试输入,至少能够执行程序中每个函数一次。在本章中,我们介绍了两种将输入划分为等价类别的方法。

等价类(equivalence classes)

在这里插入图片描述

  • 例如在前面的 2.1 图中, D i D_i Di 就是第 i i i 个等价类࿰
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暖仔会飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值