我想我会一直走在测试的道路上,既然 我已选择了测试这条路 欢迎测试界的XDJM一起交流、共同进步

1月14日覆盖率学习

上一篇 / 下一篇  2009-01-15 10:51:32

每日一句:
I was on the edge of my seat during the entire match.
看比赛时我一直很紧张。
一、逻辑覆盖率
1.语句覆盖(statement coverage)
测试时运行被测试程序后,程序中被执行到的可执行语句的比率。
语句覆盖率=(至少被执行一次的语句数量)/(可执行的语句总数)
注意:可执行的语句不包括:以#开头的#include、宏定义、预处理语句和注释语句
2.分支覆盖(branch coverage)也叫 判定覆盖(decision coverage)
在测试时运行被测试程序后,程序中所有判断语句的取真分支和取假分支被执行到的比率
判定覆盖率=(判定结果至少被评价一次的数量)/(判定结果的总数)
出现在分支的情况下,如if、while、for、switch、和三目运算符a?b:c
3.条件覆盖(condition coverage)
在测试时运行被测试程序后,所有判断语句中每个条件的可能取值(真值和假值)出现过的比率
条件覆盖率=(条件操作数值至少被评价一次的数量)/(条件操作数值的总数)
4.分支-条件覆盖(branch condition coverage)也叫 判定-条件覆盖(decision condition coverage)
在测试时运行被测试程序后,所有判断语句中每个条件的所有可能值(为真为假)和每个判断本身的判定结果(为真为假)出现的比率
分支-条件覆盖率=(条件操作数值或判定结果至少被评价一次的数量)/(条件操作数值总数+判定结果总数)
5.路径覆盖(path coverage)
在测试时运行被测试程序后,程序中所有可能的路径被执行过的比率。
路径覆盖率=(至少被执行到一次的路径数)/(总的路径数)
tips:N个测试用例最多执行了N条路径。
二、功能覆盖率
功能覆盖(function coverage)属于黑盒测试范畴。功能覆盖中最常见的需求覆盖,通过设计一定的测试用例,要求每个需求点都被测试到。需求覆盖率公式:
需求覆盖率=(被验证到的需求数量)/(总的需求数量)
功能测试中,还有一种覆盖称为接口覆盖,又叫入口点覆盖。
三、面向对象的覆盖率
1.继承上下文覆盖
继承上下文判定覆盖率=(累加每个上下文内执行到的判定分支数)/(上下文数*上下文内的判定分支总数)
2.基于状态的上下文覆盖
a.基于状态的类
b.入口点覆盖
c.白盒覆盖
d.基于状态转移图
e.基于状态的上下文覆盖
基于状态的上下文入口点覆盖率=(累加每个状态内执行到的方法数)/(状态数*类内方法总数)
3.基于线程的上下文覆盖
四、其他覆盖率
1.函数覆盖率
函数覆盖率=(至少被执行一次的函数数量)/(系统中函数的总数)
2.指令块覆盖
以分支来断点,划分指令块
指令块覆盖率=(至少被执行一次的指令块数量)/(系统中的指令块总数)
3.判定路径覆盖
DDP覆盖=(至少被执行到一次的判定路径数量)/(系统中的判定路径总数)
判定路径:
a.函数入口——>判定开始
b.判定开始——>下一次判定开始
c.判定开始——>判定结束
4.此外还有 更改条件判定覆盖、分支条件组合覆盖、过程到过程路径覆盖、Z路径覆盖、ESTCA覆盖、LCSAJ覆盖
五、如何 使用覆盖率
1.基本原则
a.覆盖率不是目的,只是一种手段
b.不可能针对所有的覆盖率指标去进行测试;相反,只考虑一种覆盖率指标也是不恰当的
c.不要追求绝对100%的覆盖率
2.使用最少的测试用例来达到覆盖
根据N-S图来计算:
测试用例数=上层测试用例数*下次测试用例数


TAG: 覆盖率

 

评分:0

我来说两句

我的栏目

日历

« 2024-04-27  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 25466
  • 日志数: 42
  • 建立时间: 2008-12-06
  • 更新时间: 2009-06-15

RSS订阅

Open Toolbar