在面试过程中,遇到过面试官询问测试覆盖率的问题。
我说没统计过(完结撒花)。
开个玩笑。
通常测试覆盖率是用来衡量测试的充分性和完整性。
从广义的角度来讲,测试覆盖率主要分为两大类,一类是面向项目的需求覆盖率,另一类是更偏向技术的代码覆盖率。
一、需求覆盖率
需求覆盖率,是指测试对需求的覆盖程度。
通常的做法是将每一条分解后的软件需求和对应的测试建立一对多的映射关系,最终目标是保证测试可以覆盖每个需求,以保证软件产品的质量。
但是,在如今敏捷开发模式下,互联网项目中很少直接基于需求来衡量测试覆盖率了,而是将软件需求转换成测试需求,然后基于测试需求再来设计测试点。
所以,现在所说的测试覆盖率,通常默认指代码覆盖率,而不是需求覆盖率。
二、代码覆盖率
代码覆盖率,通常是指至少被执行了一次的条目数占整个条目数的百分比。
这里的“条目数”,可以是代码语句,也可以是函数,还可以是路径,来对应不同的代码覆盖率类型的定义。
1. 最常用的三种代码覆盖率指标
行覆盖率
又称为语句覆盖率