Testing 移除并组合回归测试以加快测试速度是否是一种不好的做法?

Testing 移除并组合回归测试以加快测试速度是否是一种不好的做法?,testing,language-agnostic,refactoring,integration-testing,regression-testing,Testing,Language Agnostic,Refactoring,Integration Testing,Regression Testing,我正在开发一个与第三方web服务集成的应用程序。我目前有单独的集成/回归测试,这些测试调用web服务来执行以下操作: 修改策略-添加车辆 修改策略-删除车辆 修改策略-添加多个车辆 修改保单-添加被保险人 大多数测试都是在发现并修复bug时创建的。第三方web服务很慢,我正试图加快测试过程。因为每个测试都调用web服务,所以将它们组合成一个只调用web服务一次的测试将使事情更快 因为每个测试都是针对特定的bug编写的,所以组合这些测试会是一种糟糕的做法吗?我担心的是,重构中的错误可能会导致

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

  • 修改策略-添加车辆
  • 修改策略-删除车辆
  • 修改策略-添加多个车辆
  • 修改保单-添加被保险人
大多数测试都是在发现并修复bug时创建的。第三方web服务很慢,我正试图加快测试过程。因为每个测试都调用web服务,所以将它们组合成一个只调用web服务一次的测试将使事情更快


因为每个测试都是针对特定的bug编写的,所以组合这些测试会是一种糟糕的做法吗?我担心的是,重构中的错误可能会导致以后重新引入bug。

是的,将它们结合起来将是一种糟糕的做法。而是考虑如何在不结合测试的情况下降低风险。一种方法——可能是你最好的选择——是模拟web服务,这样测试速度就快得多,而不会影响它们检测回归的能力。另一种方法是将您的慢速回归测试拆分为它们自己的套件,这些套件的运行频率(但仍然足够频繁!)低于您通常的测试集。最后,您可以将它们组合在一起,但我建议将所有原始bug显式地重新引入到您的代码中,以验证组合测试是否仍能检测到它们


具体的、有针对性的、直接的单元测试非常有价值;很高兴知道到底是什么坏了。组合测试会影响这一价值。

我建议将它们包括在夜间构建中,这样它们就可以在您睡觉时不看时钟的情况下每天运行一次。并且只在开发人员时间测试中删除它们

当然,这是假设他们不是太懒,一个晚上是不够的


仅仅将您的测试合并到一个大型测试中可能会使它们变得无用或更糟。这并不比删除它们好多少。

我不建议将它们合并,除非您能够单独运行它们(可能在夜间构建中将它们分开,在连续构建中合并)


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

我没有考虑过并行化它们。好主意!