7.1.2 自动化测试金字塔
你可能在想那种测试类型最适合项目以及如何扩展。在理想的情况下,你可以混合使用这些测试来确保代码能够在不同的架构层级上正常工作。然而,所编写的测试数量是需要花费时间和精力来实现维护的。所写的测试越简单,执行就越快,就会得到更高的投资回报率(ROI)。为了优化投资回报率,代码库应该包含大量的单元测试、少量的集成测试以及更少的功能测试。测试的分布及其相关ROI可以通过自动化测试金字塔最好的展现出来,这是Mike Cohn 在他的书 Succeeding with Agile:Software Development Using Scrum (Adding Wesley ,2009)中提出来的。图7.1显示了Cohn 的自动化测试金字塔的改编版本。