衡量验收测试覆盖率的最佳方法是什么?
你如何定义你的验收测试涵盖了多少以及何时足够?
在进行验收测试时,我宁愿查看功能覆盖率,即测试给定应用程序的多少功能(或用户故事或用例)。对我来说,对于每个功能(或用户故事或用例),都应该测试所有场景或可能的路径。换句话说,功能应该是编写测试计划的起点,目标应该是涵盖功能,而不是代码。这是一个细微的区别,但很重要:使用代码覆盖率测量验收测试是面向开发人员的,测量功能覆盖率是面向最终用户的。
关于度量,敏捷的创始人之一罗恩·杰弗里斯(Ron Jeffries)写了一篇精彩的总结,总结了他认为真正有价值的度量,RTF 或运行测试的特性。您可以在此处查看文章。我只是在下面引用一小部分:
项目的重点是什么?
我只是猜测,但我认为大多数软件开发项目的重点是软件可以工作,并且每美元投资具有最多的功能。我将这个概念称为经过测试的 [功能],实际上它可以在一定程度上进行衡量。
想象一下 RTF 的以下定义:
- 所需的软件被分解成命名的特性(需求、故事),这些特性是交付所需系统的一部分。
- 对于每个命名的特性,都有一个或多个自动化验收测试,当它们工作时,将显示所讨论的特性已实现。
- RTF 指标在项目的每一刻都显示有多少功能通过了所有的验收测试。
通过独立定义的测试,已知有多少客户定义的功能可以工作?现在有一个我可以接受的指标。
为了报告进度,我特别喜欢累积流程图。当出现问题时,它们清楚地显示出来,例如(这里是一种燃耗风格):
(来源:xprogramming.com)