我的答案?也许,也许不是。
当EOE测试非常简单时,它们是好的。如果您打算涵盖基本方案,则可以通过EOE测试获得一些优势。但是,如果您有一个非常复杂且庞大的应用程序(无论是否执行关键任务),那么此EOE测试的维护成本将很高,并且您需要了解您的方案以评估是否值得。
几年前,Google测试博客讨论了该主题。我只能同意作者的看法。好的测试需要快速,可靠并隔离故障,而EOE测试无法提供这些功能。
我在一个应用程序上进行了超过12个小时的端到端测试,涉及许多场景。最终,我们设法将测试分发到不同的计算机上,控制测试的开始,执行和结束,并收集和合并结果。被测试的应用程序是一个整体应用程序(安装和运行起来更容易进行测试),并且是维护测试的噩梦。
大多数时候,我们是在维护测试,而不是从测试结果中发现错误。在端到端测试中发现错误的根源需要花费大量时间。我们还处理了很多“假阴性”测试,并且花了很少的时间来理解该问题并进行纠正:Java Applet加载问题,页面上未找到预期元素(以及其他有关自动化速度的问题),维护查询代码仅用于数据库内存测试(因为原始查询使用数据库特定的代码),等等。
所有这些都需要人们维护和运行。最后,我们开始删除一些EOE测试并将其替换为许多单元/集成测试。
因此,我的保守建议是使用Google的测试金字塔:
作为一个很好的初步猜测,Google经常建议采用70/20/10的比例:70%的单元测试,20%的集成测试和10%的端到端测试。每个团队的确切组合会有所不同,但通常,它应保持金字塔形状。