代码覆盖率分析

无论是单元测试、API测试还是功能性测试,最终都是调用了产品的代码;如何评价这些测试的效率,是否真正全部或者大部分覆盖了产品的代码,这个时候,代码覆盖率(code coverage)就是一个比较有价值的参考指标了。

通常,代码覆盖率用在如下几个方面
  • 找出程序中没有被测试代码执行到的地方;
  • 增加新的测试代码,以提高代码覆盖率;
  • 分析测试代码的效率,以便设计出更有效的测试代码或测试用例
代码覆盖率常用的指标

语句覆盖(statement coverage):语句覆盖是指程序的每一行代码是否都被覆盖到;语句覆盖是最常用的一种代码覆盖率指标,也非常简单。但是对一些控制结构的代码而言,它不能真正表示是否完全覆盖到,如下代码:

int* p=NULL;
if(condition)
    p=&variable;
*p=123;

在以上代码中,如果condition为true,这时,语句覆盖率就为100%。而其实当condtion为false,会导致空指针被赋值的运行时错误。

 

决策覆盖(decision coverage):决策覆盖是指在控制结构的代码块,如if, while中的整个bool表达式是否在false和true条件下,各被执行一次。决策覆盖不考虑组成该条件表达式的各个子条件是否被完全覆盖到。于是࿰

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值