testing - 删除和组合回归测试以加速测试是否是一种不好的做法?

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

我正在开发一个与第 3 方网络服务集成的应用程序。我目前有单独的集成/回归测试调用网络服务来执行以下操作:

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

大多数这些测试都是在发现并修复错误时创建的。第 3 方 Web 服务很慢,我正在尝试加快测试过程。因为每个测试都会调用 Web 服务,所以将它们组合成一个只调用 Web 服务一次的测试会使事情变得更快。

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

最佳答案

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

具体的、有针对性的、直接的、单元测试非常有值(value);很高兴知道到底是什么坏了。组合测试会损害该值。

关于testing - 删除和组合回归测试以加速测试是否是一种不好的做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5666415/

相关文章:

unit-testing - 难以进行单元测试的方法类型?

node.js - 如何在 puppeteer 中处理多个窗口?

language-agnostic - 什么时候开始考虑扩展的好时机?

algorithm - 这是如何运作的?河内奇怪的塔解决方案

java - 如何重构重复的一行代码java

python - 如何通过命令行在pytest中传递参数

android - 如何在没有 Activity 的情况下在 Android JUnit 测试的 UI 线程中运行代码?

language-agnostic - 涉及转弯时如何实现航位推算?

c# - 如何重构这些重载的类构造函数? (C#)

java - 使用 Java 可选简化 if、else-if、else