Nir*_*tel 2 code-coverage acceptance-testing function-coverage
测量验收测试覆盖率的最佳方法是什么?
你如何定义你的验收测试覆盖多少以及何时足够?
Pas*_*ent 12
在进行验收测试时,我宁愿查看功能覆盖范围,即测试给定应用程序的功能(或用户故事或用例).对我而言,对于每个功能(或用户故事或用例),应测试所有场景或可能的路径.换句话说,功能应该是编写测试计划的起点,目标应该是覆盖功能,而不是代码.这是一个微小的差异,但是一个重要的区别:使用代码覆盖测量验收测试是面向开发人员的,测量功能覆盖是面向最终用户的.
关于测量,敏捷的创始人之一Ron Jeffries写了一篇关于他认为真正有价值的指标,RTF或运行测试功能的优秀摘要.你可以在这里查看文章.我只是引用下面的一小部分:
项目的重点是什么?
我只是在猜测,但我认为大多数软件开发项目的重点都在于有效的软件,并且每一美元的投资都具有最多的功能.我称之为跑步测试[功能],实际上它可以在某种程度上进行测量.
想象一下RTF的以下定义:
- 所需的软件被分解为命名特征(要求,故事),这是提供所需系统的一部分.
- 对于每个命名功能,有一个或多个自动验收测试,当它们工作时,将显示相关功能已实现.
- RTF指标在项目的每个时刻显示有多少功能通过了所有验收测试.
通过独立定义的测试,已知有多少客户定义的功能可用?现在有一个我可以忍受的指标.
为了报告进度,我特别喜欢累积流程图.它们清楚地显示出现问题的时候,例如(这里是一种燃尽风格):
alt text http://xprogramming.com/images/BVCcustTest2.jpg
对于现实生活中的例子,请看一下这篇文章或这篇文章(燃尽风格图表).