8、JExample:利用测试间依赖关系提升缺陷定位能力

JExample:利用测试间依赖关系提升缺陷定位能力

1. 引言

在软件开发中,一个设计良好的测试套件应具备高覆盖率,以便更有效地识别缺陷。然而,当基础代码的某部分发生更改时,一个小缺陷可能引发多米诺骨牌效应,导致多个单元测试失败。这给代码修改者带来了难题,他们不得不浏览所有失败的单元测试来推断单一的根本原因,尤其是当他们不熟悉失败的测试代码时,这项任务会变得十分困难。

单元测试之间的依赖关系是导致这种多米诺骨牌效应的原因,并且引发了广泛的争议。虽然普遍认为避免测试间的依赖关系有助于提升缺陷定位能力,但经验表明,即使在设计良好的测试套件中,潜在的依赖关系仍然存在。这意味着,尽管有相关准则,测试间的依赖关系是不可避免的。

为了改善这种情况,有人提出通过明确测试之间的依赖关系来提高缺陷定位能力。例如,开发者可以声明一个 testRemove 测试依赖于 testAdd 测试的成功结果。基于这些依赖关系,测试框架可以自动确定合适的测试运行顺序,并跳过依赖于其他失败测试的测试,从而避免测试失败的多米诺骨牌效应。

2. 相关工作

许多研究人员一直在探索优先排序测试用例、选择性执行回归测试或缩减测试套件的技术:
- Kung等人 :讨论了一种在面向对象程序更改后具有成本效益的选择性回归测试方法,通过确定受影响的类集并对类的测试进行优先排序,以最小化测试桩的构建。
- Wong等人 :先应用基于修改的选择技术,然后进行测试集最小化(保留覆盖准则的最小选择)和优先排序(增加额外覆盖的成本)。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值