软件测试覆盖率简介

  1、定义:覆盖率是用来度量测试完整性的一个手段,同时也是测试技术有效性的一个度量。2、计算:覆盖率=(至少被执行一次的item数)/item的总数3、特点1)通过覆盖率数据,可以检测我们的测试是否充分2)分析出测试的弱点在哪方面3)指导我们设计能够增加覆盖率的测试用例,有效提高测试质量,但是测试用例设计不能一味追求覆盖率,因为测试成本随覆盖率的增加而增加。

软件测试覆盖率分类

覆盖率按照测试方法大体上可以划分为三大类,即白盒覆盖(white-Box Coverage)、灰盒覆盖(Gray-Box coverage)和黑盒覆盖(Black-Box Coverage)。

白盒覆盖率(white-Box Coverage)

白盒覆盖率中使用的最常见的就是逻辑覆盖率(Logical Coverage ),也叫代码覆盖率(Code Coverage)或者结构化覆盖率(Structural Coverage),我们常见的逻辑覆盖包括:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。

1、语句覆盖(Statement Coverage)

     1)定义:在测试时,运行被测程序后,程序中被执行的可执行语句的比率。2)计算公式:语句覆盖率=(至少被执行一次的语句数量)/(可执行的语句总数)3)100%语句覆盖率含义:在测试时,首先设计若干个测试用例,然后运行被测程序,使程序中的每个可执行语句至少执行一次。4)特点:语句覆盖可以检验每个可执行语句,但是即使语句覆盖率达到了100%,也会有缺陷发现不了,所以覆盖率只是我们度量的手段。

2、判定覆盖(Decision Coverage)/分支覆盖率(Branch Coverage)

     1)定义:在测试时,运行被测程序后,程序中所有判断语句的取真分支和取假分支被执行到的比率。2)计算公式:判定覆盖率=(判定结果被评价的次数)/(判定结果的总数)3)100%条件覆盖率含义:在测试时,首先设计若干个测试用例,然后运行测试程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假值均曾被满足。4)特点(1)若判定覆盖达到100%,则语句覆盖必为100%。(2)即使判定覆盖率达到了100%,也会有缺陷发现不了。

3、条件覆盖(Condition Coverage)

     1)定义:在测试时,运行被测程序后,程序中所有判断语句中每个条件的可能取值(真值和假值)出现过的比率。2)计算公式:条件覆盖率=(条件操作数值至少被评价一次的数量)/(条件操作数值的总数)3)100%条件覆盖率含义:在测试时,首先设计若干个测试用例,然后运行被测试程序,要使每个判断中每个条件的可能取值至少满足一次。4)特点:覆盖条件的测试用例不一定覆盖判定。

4、判定-条件覆盖(Decision Condition Coverage)/分支条件覆盖(Branch Condition Coverage)

     1)定义:在测试时,运行被测程序后,程序中所有判断语句中每个条件的可能取值(真值和假值)和每个判断本身的判定结果(为真为假)出现的比率。2)计算公式:判定-条件覆盖率=(条件操作数值或判定结果至少被评价一次的数量)/(条件操作数值的总数+判定结果的总数)3)100%判定-条件覆盖率含义:设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,同时每个判断本身的所有可能结果至少执行一次。换言之,即是要求各个判断的所有的可能的取值组合至少执行一次。4)特点(1)判定-条件覆盖率实际上就是判定覆盖率和条件覆盖率的组合。(2)采用判定-条件覆盖,逻辑表达式中的错误不一定能够查得出来。

5、条件组合覆盖(Condition combination coverage)

     1)定义:在测试时,运行被测程序后,所有语句中原子条件所有的可能的取值结果组合出现过的比率。2)计算公式:条件组合覆盖率=(至少被执行一次的条件组合)/(总的可能的条件组合数)3)100%条件组合覆盖率含义:设计足够的测试用例,使得判断中条件的各种可能组合至少出现过一次。4)特点:若条件组合覆盖率为100%,则语句覆盖率、判定覆盖率、条件覆盖率和判定-条件覆盖率必为100%。

6、路径覆盖(Path Coverage)

     1)定义:在测试时,运行被测程序后,程序中所有可能的路径被执行的比率。2)计算公式:路径覆盖率=(至少被执行一次的路径数)/(总的路径数)3)100%路径覆盖率含义:设计足够的测试用例,要求覆盖程序中所有可能的路径。4)特点(1)路径覆盖比判定条件覆盖更强,但是不能包含判定条件覆盖。(2)若路径覆盖率为100%,则语句覆盖率、判定覆盖率必为100%。

小结:逻辑覆盖率可以作为软件测试的一个度量,但是,即使达到了100%的逻辑覆盖率,仍然无法保证程序的正确性。

灰盒覆盖率(Gray-Box Coverage)

函数覆盖和接口覆盖可以归为灰盒测试的范畴。

1、函数覆盖

     1)定义:它表示在测试中,有哪些函数被测试到了,其被测试到的频率有多大,这些函数在系统所有函数中占的比例有多大。2)计算公式:函数覆盖=(至少被执行一次的函数数量)/(系统中函数的总数)3)特点:是针对一个系统或者子系统测试的。

2、接口覆盖(Interface Coverage)/入口点覆盖(Entry-Point Coverage)

     1)定义:要求通过设计一定的用例使得系统的每个接口被测试到。2)计算公式:接口覆盖=(至少被执行一次的接口数量)/(系统中接口的总数)

黑盒覆盖率(Black-Box Coverage)

在实际测试中,与黑盒相关的覆盖率比较少,主要是功能覆盖率(Function Coverage),其中最常见的是需求覆盖。

需求覆盖

     1)定义:它表示在测试中,有哪些函数被测试到了,其被测试到的频率有多大,这些函数在系统所有函数中占的比例有多大通过设计一定的测试用例,要求每个需求点都被测试到。2)计算公式:需求覆盖=(被验证到的需求数量)/(总的需求总数)

软件测试之-测试覆盖率相关推荐

  1. 软件测试中语句覆盖的优点,软件测试之测试覆盖率的基本策略

    原标题:软件测试之测试覆盖率的基本策略 软件测试覆盖率简介 1.定义:覆盖率是用来度量测试完整性的一个手段,同时也是测试技术有效性的一个度量. 2.计算:覆盖率=(至少被执行一次的item数)/ite ...

  2. 全程软件测试之测试需求分析与计划

    全程软件测试之测试需求分析与计划 在项目启动之后,就要着手软件项目的计划,包括软件测试计划.软件测试计划是整个开发计划的组成部分,同时,它又依赖于软件组织过程.项目的总体计划.质量文化和方针.在测试计 ...

  3. 【软件测试之测试方案】

    软件测试之测试方案 测试方案包含内容 1 编写目的 2 需求概述(需求描述及主要功能流程图及组网图) 3 测试覆盖需求(功能.性能.接口等) 4 测试计划(测试阶段的人力时间规划.测试轮次) 5 测试 ...

  4. 全程软件测试之测试需求分析与计划(1)

    在项目启动之后,就要着手软件项目的计划,包括软件测试计划.软件测试计划是整个开发计划的组成部分,同时,它又依赖于软件组织过程.项目的总体计划.质量文化和方针.在测试计划活动中,首先要确认测试目标.范围 ...

  5. 如何理解软件的测试覆盖率?

    测试覆盖率通常用来衡量测试的充分性和完整性. 从广义来讲,大致分为业务层面的需求覆盖率和技术层面的代码覆盖率. 一.需求覆盖率 通常通过需求管理工具,来建立需求和测试用例的对应关系,并以此来计算测试覆 ...

  6. 全程软件测试之测试需求分析与计划 1

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 在项目启 ...

  7. 软件分支测试覆盖率 100%,测试覆盖率之三——测试覆盖率100%相关的话题

    上一篇文章中,介绍了测试覆盖率的意义之类的东西.测试覆盖率可以帮助我们检查测试质量,检查测试用例的有效率.如果有兴趣的话,可以阅读测试覆盖率之二--测试覆盖率有什么用? 关于测试覆盖率,我个人的感觉是 ...

  8. 软件测试之测试主流技能

    1.认识软件及测试  1.1.什么是软件  软件:控制计算机硬件的工具 软件分两大类:(1)系统软件 pc端:Windows,Linux,Mac 移动端:Android,IOS (2)应用软件 聊天软 ...

  9. 全程软件测试之测试需求分析与计划(2)

    2.3  测试工作量估算 在确定了测试需求.明确了测试范围之后,就需要明确测试任务,估算测试工作量.基于质量需求和测试的工作量.测试环境.产品发布的设想时间等要求,就可以确定测试进度和所需的测试资源, ...

最新文章

  1. 【Java基础】基本类型与运算
  2. vs opencv4 imread读不到图片问题的解决方法
  3. linux操作系统的体系架构,linux操作系统的体系架构_linux操作系统的关机指令
  4. python列表类型用什么表示_python内置类型:列表,包括 list 和 tuple
  5. 单目视觉机器人的循迹_机器人视觉系统传感器的关键技术盘点
  6. 语音识别(四)——DTW, Spectrogram, Cepstrum Analysis
  7. 阿里云周源:一篇文章读懂四代视频加密技术演进
  8. 创建表空间、用户和赋权
  9. linux java echo 3,Linux常用命令13 - echo
  10. aliyun maven 添加jar_Maven介绍及安装
  11. 数据结构专题(二):2.7顺序表反转
  12. es6二进制数组--基础
  13. python 正则表达式集合-抄的
  14. 软件项目架构简单总结
  15. 手机端选择收货地址html写法,jQuery仿手机京东商城收货地址城市选择代码
  16. centos图像界面和dos界面之间切换
  17. 【Windows】Windows如何使用注册表修改软件默认安装路径?
  18. linux去重复程序,Linux下大文件的排序和去重复
  19. 照明控制系统在呼和浩特商场楼宇的应用
  20. Linux的文件和目录管理

热门文章

  1. 自动驾驶路径规划论文解析(1)
  2. 移动安全之角逐,无人可赖以苟安
  3. 【71期分享】4款求职个人简历PPT模板免费下载
  4. Httpclient调用短信验证码接口
  5. 科学计算机怎么恢复出厂设置,恢复出厂设置也并不安全,科学家做过实验,一分钟就能还原数据-电脑恢复出厂设置会怎么样...
  6. 软碟通 ubuntu
  7. Qt(十二)Graphics View 绘图软件(二)
  8. Java面向对象 - 封装、继承和多态的综合练习
  9. 做网络必须知道的几个定律
  10. 《影响力》读书笔记(一)