2

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

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

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

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

4

3 回答 3

1

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

具体的、有针对性的、直接的、单元测试是非常有价值的;很高兴确切地知道发生了什么故障。组合测试会损害该值。

于 2011-04-14T16:36:17.253 回答
1

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

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

于 2011-04-14T16:56:33.637 回答
0

我建议将它们包含在您的夜间构建中,以便它们每天在您睡着而不看时钟时运行一次。并且只删除它们您的开发人员时间测试。

当然,这假设他们并不认为一晚是不够的。

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

于 2011-04-14T16:39:56.890 回答