1

我们在前端有 Eclipse UI,并且有一个非 Java 的后端。

我们通常为前端和后端分别编写单元测试。我们还编写了 PDE 测试,它针对虚拟后端运行 Eclipse UI。

我的问题是我们是否需要进行端到端测试的集成测试。

我可能会看到这些集成测试很有用的一个原因是,当我升级我的前端/后端时,我可以运行端到端测试并且我发现了缺陷。

我知道这类问题取决于特定情况。但是想知道这里所有遵循的一般和最佳实践是什么。

干杯,索拉夫

4

1 回答 1

3

正如您所说,最好的方法取决于应用程序。但是,一般来说,拥有一套可以端到端测试您的应用程序的集成测试是一个好主意,以找出当您只升级应用程序的一层而不考虑这些更改时可能出现的任何问题在另一层。这听起来在您的情况下绝对值得,因为您有用不同语言编写的系统组件,由于组件接口周围的复杂性增加,自然会产生更多的问题。

编写端到端集成测试(有些人称之为系统测试)时要注意的一件事是,与单元测试相比,它们往往非常脆弱,单元测试是多种因素的组合,包括:

  • 它们需要多个组件可用于测试,并正确配置这些组件之间的通信。
  • 他们执行的代码比单元测试更多,因此有更多可能出错的事情可能导致他们失败。
  • 它们通常涉及异步通信,这比同步通信更难编写测试。
  • 它们通常需要复杂的后端数据设置,然后才能通过整个应用程序进行测试。

由于这种脆弱性,我建议尝试编写尽可能少的测试来遍历整个堆栈 - 重点应该放在尽可能少的测试中覆盖尽可能多的功能,并偏向于您最重要的功能用途 -案例。一个好的开始策略是:

  • 选择一个关键用例(理想情况下,它涉及应用程序中的尽可能多的组件),并为此进行端到端测试(即使只有这个单一测试也会带来很多价值)。专注于使这个测试尽可能真实(即使用类似生产的部署)、尽可能可靠和尽可能自动化(理想情况下它应该作为持续集成的一部分运行)。即使只有这个单一的测试也能带来很多价值。
  • 为其他用例构建测试,一次一个测试,首先再次关注您最重要的用例。

这种方法将有助于确保您的端到端测试具有高质量,这对于它们的长期健康和有用性至关重要。太多次我看到人们试图向应用程序引入一套全面的此类测试,但最终失败了,因为这些测试脆弱且不可靠,人们对它们失去信心,不运行或维护它们,最终他们忘记了它们甚至首先进行了测试。

祝好运并玩得开心点!

于 2013-07-04T16:54:16.853 回答