移除和组合回归测试以加速测试是不好的做法吗?

时间:2011-04-14 16:27:00

标签: testing language-agnostic refactoring integration-testing regression-testing

我正在开发一款与第三方网络服务集成的应用。我目前有单独的集成/回归测试,它们调用Web服务来执行以下操作:

  • 修改政策 - 添加车辆
  • 修改政策 - 删除车辆
  • 修改政策 - 添加多辆车
  • 修改政策 - 添加保险
  • ...

大多数这些测试是在发现错误时创建的。固定。第三方Web服务是懒散的,我正在努力加快测试过程。因为每个测试都调用Web服务,所以将它们组合到一个仅调用Web服务一次的测试中会使事情变得更快。

将这些测试结合起来是不好的做法,因为每个测试都是针对特定的错误编写的?我担心的是,重构中的错误可能会导致稍后重新引入错误。

3 个答案:

答案 0 :(得分:1)

是的,将它们结合起来将是一种不好的做法。而不考虑如何在不组合测试的情况下降低风险。一种方法 - 可能是您最好的选择 - 是模拟Web服务,以便测试更快,而不会危及他们检测回归的能力。另一种方法是将慢回归测试分成他们自己的套件,该套件运行频率较低(但仍然足够频繁!),而不是通常的测试集。最后,你可以组合它们 - 但我建议明确地将所有原始错误重新引入代码中,以验证组合测试是否仍能检测到它们。

具体,有针对性,直接的单元测试非常有价值;很高兴知道到底发生了什么。组合测试会损害这一价值。

答案 1 :(得分:1)

我不建议将它们组合起来,除非你保持单独运行它们的能力(可能在你的夜间构建中将它们分开,并在你的连续构建中合并)。

如果您的测试框架支持它,请尝试并行化它们(在单独的“策略”上)。

答案 2 :(得分:0)

我建议将它们包括在你的夜间身材中,这样他们每天都会跑步,当你睡着而不是看时钟时。并且只删除它们的开发者时间测试。

当然,假设他们并非如此懒散,以至于一晚还不够。

将测试组合成一个大测试可能会使它们变得无用或更糟。多数民众赞成并没有比删除它们好多了。