当前位置: 首页 > news >正文

软件测试覆盖率详解

软件测试覆盖率简介
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)计算公式:需求覆盖=(被验证到的需求数量)/(总的需求总数)


 

欢迎大家关注笔者的公众号:程序员老奕,专注于软件测试干活分享,全套测试资源可免费分享!

最后如果你想学习自动化测试,欢迎加入笔者的交流群:771645171,里面会有很多资源和大佬答疑解惑,我们一起交流一起学习!

http://www.hskmm.com/?act=detail&tid=21469

相关文章:

  • oppoR9m刷Linux系统: 说明-注意事项-知识点
  • 手机框架材质
  • 2025年陶瓷定制企业最新推荐榜单:涵盖电子陶瓷,氧化铝陶瓷,氧化锆陶瓷,氮化铝陶瓷,结构陶瓷领域!
  • 2025阳台装修品牌推荐榜:优质阳台厂商资质、技术、服务测评及高口碑企业优选指南,浙江多为建筑服务与性价比兼具!
  • 2025 年杭州小程序开发机构最新推荐榜单:覆盖多行业定制需求,助力企业精准选靠谱服务商
  • 2025年杭州软件开发公司最新品牌推荐榜:聚焦技术实力与售后体系的优质服务商精选指南!
  • 2025 年独立游戏公司 TOP 设计平台推荐排行榜,独立游戏开发 / 美术 / 原画 / 素材 / 设计 / 角色 / 场景 / 道具 / UI / 策划 / 独立像素游戏公司推荐
  • 湖南省茶陵一中校庆120周年:205班捐款
  • 实用指南:计算机网络-ipv4首部校验原理
  • 2025 年人工智能培训厂家最新推荐排行榜:聚焦人工智能培训合规运营机构、产业适配能力与教学实力深度解析
  • 一种以125kHz低频识别 + 2.4GHz数据传输”的方案,通过频率优势互补,为近距离物联网应用提供了可靠、精准且高效的解决方案
  • 高效做PPT!5个亲测模板网站,10分钟出专业演示 !
  • 【WCH蓝牙系列芯片】-基于CH592开发板——HID_Keyboard中添加读、写、通知的服务属性
  • 2025 年 AI 健康管理厂商最新推荐榜单:覆盖多场景需求,深护智康等优质品牌助力行业升级
  • 虚幻5.6插件添加自定义shader
  • 在线考试小程序管理系统:一站式智能考试解决方案,助力多场景高效考核
  • 快微商城小程序管理系统:助力商家搭建高效便捷的新零售平台
  • 2025最新布袋包装厂家推荐排行榜:布袋包装,布袋,手提袋,帆布袋定制,无纺布袋,布袋生产,云南布袋包装,茶叶布袋生产商优选指南
  • KTV 娱乐小程序管理系统:数字化运营新选择,助力行业高效经营
  • 城市电商小程序管理系统:助力商家搭建全渠道数字化经营体系
  • oppoR9m刷Linux系统: ColorOS系统OTA卡刷降级系统版本
  • 深入解析:[免费]基于Python的在线音乐网站系统(后端Django)【论文+源码+SQL脚本】
  • 勒索软件速度危机:AI驱动下的网络安全新挑战
  • 2025沈阳标识标牌厂家推荐排行榜:聚焦行业产能与技术实力,精选沈阳标识标牌优质企业供订做参考
  • Oracle故障分析:数据库不能open下查看undo段的名字
  • 实用指南:智慧外贸平台|基于Java+vue的智慧外贸平台系统(源码+数据库+文档)
  • L04_新建springboot项目与新建helloword(菜鸟版)
  • Implicit Neural Representations with Periodic Activation Functions
  • 故障处理:Oracle一体机更换磁盘控制器后部分磁盘状态异常的案例处理
  • 34