各种覆盖率方法介绍[转载]

本文详细介绍了代码覆盖率分析的概念,包括结构化测试与功能测试的对比,以及各种覆盖率度量,如语句覆盖、判定覆盖、条件覆盖、多条件覆盖等。强调了覆盖率分析在测试中的重要性和局限性,并提供了不同覆盖目标的选择建议。
摘要由CSDN通过智能技术生成
目    录
1 简介 0
1.1 代码覆盖率分析 0
1.2 结构化测试和功能测试(STRUCTURAL TESTING&FUNCTIONAL TESTING) 1
1.3 假定 1
2 基本的度量 1
2.1 语句覆盖(STATEMENT COVERAGE ) 1
2.2 判定覆盖(DECISION COVERAGE ) 2
2.3 条件覆盖(CONDITION COVERAGE ) 3
2.4 多条件覆盖(MULTIPLE CONDITION COVERAGE ) 3
2.5 分支条件组合覆盖(CONDITION/DECISION COVERAGE ) 4
2.6 修正条件/判定覆盖(MODIFIED CONDITION/DECISION COVERAGE) 4
2.6.1 覆盖率的计算公式: 5
2.7 路径覆盖(PATH COVERAGE ) 5
3 其它度量 6
3.1 函数覆盖(FUNCTION COVERAGE ) 6
3.2 函数出入口覆盖(FUNCTION EXITS COVERAGE) 6
3.3 调用覆盖(CALL COVERAGE ) 6
3.4 线性代码顺序及跳转覆盖(LINEAR CODE SEQUENCE AND JUMP (LCSAJ) COVERAGE ) 7
3.4.1 覆盖率的计算公式: 7
3.5 数据流覆盖(DATA FLOW COVERAGE ) 8
3.6 目标代码分支覆盖(OBJECT CODE BRANCH COVERAGE ) 8
3.7 循环覆盖(LOOP COVERAGE ) 8
3.8 竞争覆盖(RACE COVERAGE) 8
3.9 比较操作符覆盖(RELATIONAL OPERATOR COVERAGE) 8
3.10 弱变化覆盖(WEAK MUTATION COVERAGE) 9
3.11 表覆盖(TABLE COVERAGE) 9
4 比较各种覆盖 9
4.1 对RELEASE版本的覆盖目标 9
4.2 中间版本的覆盖目标 9
5 总结 10
6 参考 10
7 术语表 11
1 简介
1.1 代码覆盖率分析
这篇文章给出了一个完整的代码覆盖率分析方面的概念。 
代码覆盖率分析是这样一个过程: 
· 找出程序经过一系列测试而没有执行的部分代码 
· 创建一个附加的测试用例来增加覆盖率 
· 决定代码覆盖的定量度量。 
代码覆盖率分析的一个有效方面是: 
· 识别出没有增加覆盖率的无效的测试用例。 
覆盖率分析需要被测试程序的源代码,并且经常需要用一个特殊的命令重新编译它。 
这篇文章讨论你应当考虑你的测试计划中应该如何增加覆盖率分析的细节问题。覆盖率分析有一定的好处和弱点。你应该选择一个测量方法的范围。你应该建立一个覆盖率要达到的最小百分比,来决定你什么时候停止覆盖率分析。覆盖率分析只是许多测试技术的一种,你不能只是依靠它。 
1.2 结构化测试和功能测试(Structural testing&Functional testing)
代码覆盖率分析是一种结构化测试技术 (AKA glass box testing and white box testing). 结构化测试是比较被测试程序的行为和源代码的外观目的。和功能测试相比 (AKA black-box testing), 功能测试是比较被测试程序的行为和确定的需求。结构化测试检查程序的工作,考虑结构中可能存在的逻辑缺陷。功能测试检查被测试程序的完成需求的能力,不考虑它是怎么工作的。 
结构化测试也叫路径测试(path testing), 因为你选择测试用例来通过程序结构的路径。不要和路径覆盖率度量(path coverage)混淆,下面会介绍。 
粗略的看,结构化测试似乎不安全,结构化测试不能发现需求疏忽的错误,但是,需求定义有时并不存在,而且并不完整。这个现象是实际存在的,当产品开发的时间线就要到的时候,当需求定义很少更新,产品自身代替了需求定义的作用的时候。 
1.3 假定
一些基本原理的假定如下所列: 
· Faults ―――和控制流相关的缺陷,你可以发现这些缺陷通过变更控制流[Beizer1990 p.60]。例如,一个程序写为"if (c)" 比"if (!c)"好 。
· 你可以寻找缺陷而不必知道这个缺陷可能引起的后果和所有测试的可靠性。 
· 其它的假定包括可完成需求的定义、没有疏忽的缺陷和没有不可以达到的代码等。 
2 基本的度量
有许多覆盖率度量存在,这里介绍一些基本的度量的益处和弱点。 
2.1 语句覆盖(Statement Coverage )
这个度量报告每一个可执行语句是否
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值