我们公司有一个基于Java的大型桌面应用程序,我们正在构建测试用例。我们希望遵循测试金字塔方法:
1)我们要求开发人员编写大量单元测试(但不要验证他们在哪里编写了高质量的单元测试)。
2)我们编写服务测试,我们遍历代码的每一行,并编写Junit测试来测试代码中的每个可能的方法和条件。
3)我们计划创建UI测试以确保UI正常工作。
我阅读了很多关于测试金字塔方法的博客,并了解我们应该花更少的时间来编写UI测试,因为它们不适合测试ROI,因为它们通常需要花费大量时间来执行,并且由于它们的依赖性而很脆弱在UI元素上。我绝对同意这些观点。
但是,问题是,当我们说我们需要的UI测试数量要少得多时,我们是否只需要优先级为1的案例(或冒烟测试)进行UI测试?相反,UI是用户与之交互的元素,所以我们不需要确保它首先没有被破坏吗?我的意思是,当我们说我们需要减少UI测试的数量时,它是否会影响UI交付的质量?例如,我已经编写了很多服务测试,并确保后端业务逻辑是完美的,但如果用户界面搞砸了怎么办?它不是同等重要的吗?
我认为UI测试的数量并不重要。
我认为测试自动化金字塔的意思是单个UI测试用例涵盖了许多低级测试。例如,单个UI测试用例可能会进行5次API调用并调用10个方法。这使得UI测试更加脆弱和复杂,因此在API和单元层经过充分测试后更好地编写它们。