测试的目的,是确保软件开发的质量,是发现(防止)软件错误。追求所谓的百分之百测试覆盖,并不能保证软件无缺陷。首先,许多软件错误源于需求理解错误;其次,既使百分之百测试覆盖也不能检测到所有的代码错误,比如多条件组合;还有,许多很简单的代码如getter / setter, 没有必要特别测试。
单元测试可以检测出大多数比较孤立的软件错误。集成和系统测试关注于子系统之间的行为。测试覆盖率在单元测试上有些意义。
测试覆盖率只是一个参考指标。过低的数值表明测试不足。无必要盲目追求所谓的高覆盖。