代码覆盖率有哪些的指标?
代码覆盖率的指标主要包括以下几种:
- 行覆盖率:也称为语句覆盖率,指至少被执行了一次的条目数占整个条目数的百分比。如果“条目数”是语句,对应的就是代码行覆盖率。这是最常用也是要求最低的覆盖率指标。实际项目中通常会结合判定覆盖率或者条件覆盖率一起使用。
- 分支覆盖率:也称为判定覆盖,用于度量程序中每一个判定的分支是否都被测试到了,即代码中每个判断的取真分支和取假分支是否各被覆盖至少各一次。比如,对于if(a>0 && b>0),要求覆盖“a>0 && b>0”为TRUE和FALSE各一次。
- 条件覆盖率:用于度量判定中的每个条件的可能取值至少满足一次,度量判定中的每个条件的 结果TRUE和FALSE是否都被测试到了。比如,对于if(a>0 && b>0),就要 求“a>0”取TRUE和FALSE各一次,同时要求“b>0”取TRUE和FALSE各一次。
- 指令覆盖率:计数单元是单个java二进制代码指令,指令覆盖率提供了代码是否被执行的信息,度量完全独立源码格式。
- 圈复杂度:在(线性)组合中,计算在一个方法里面所有可能路径的最小数目,缺失的复杂度同样表示测试案例没有完全覆盖到这个模块。
此外,还有一些其他更具体的指标,如方法覆盖率等。在实际应用中,可以根据项目的需求选择合适的指标进行度量和评估。