软件测试技术——覆盖方法介绍
软件测试技术——白盒测试的覆盖方法介绍
1.语句覆盖——SC(Statement Coverage)
也称作:行覆盖——LC(Line Coverage)
设计足够的测试样例,使得被测程序中的每条语句至少执行一次即可。
注意它与基本路径覆盖的区别,基本路径覆盖是将程序流程图中的所有路径覆盖,而语句覆盖仅仅是将每条语句执行即可,比如:当出现if语句时,基本路径覆盖需要设计true和false两种测试样例,但是语句覆盖只需设计一个true样例去执行if语句中的判断语句即可。
语句覆盖的衍生:基本块覆盖——BBC(Basic Block Coverage)
它是语句覆盖的一个衍生,它把没有一个分支的代码区域作为一个计量单位,而不是简单的代码行。用于一个if-else分支代码行数远远大于另一个的情 况,在这种情况下,语句覆盖的指标并不适用。
2.判定覆盖——DC(Decision Coverage)
也称作:分支覆盖——BC(Branch Coverage)
设计足够的测试样例,使得被测程序中的每个判断的取真分支和取假分支至少经历一次即可。
3.条件覆盖——CC(Condition Coverage)
设计足够的测试样例,使得被测程序中的每个判断中的每个条件的可能取值至少满足一次即可。
注意区分条件和分支的区别,比如对于:if(a>0 && b>0) 这个判断语句来说,a>0 , b>0是两个条件,它们各自有true和false两种取值,true:a>0,false:a<=0;true:b>0,false:b<=0 ,而if(a>0 && b>0)这个判断有两个分支true和false,由a和b的取值来决定。
条件覆盖的衍生:简单条件覆盖——SCC(Simple Condition Coverage)
可以自动生成CPP格式的测试用例,测试用例可以加入到源代码控制系统(如CVS)。
4.条件—判定覆盖——CDC(Condition—Decision Coverage)
设计足够的测试样例,使得被测程序中每个判断的取真分支和取假分支至少经历一次,且每个条件的可能取值至少满足一次即可。
说白了,条件—判定覆盖就是判定覆盖和条件覆盖的交集。
5.条件组合覆盖——CCC(Condition Combination Coverage)
也称作:多条件覆盖——MCC(Multiple Condition Coverage)
它在条件—判定覆盖的基础上,要求每个条件的true和false两种结果不仅要出现,还要将条件的结果进行排列组合式地出现。
比如说:我们对一个判断语句if(a>0 && b>0),原本只需要设计出Ta , Tb;Fa , Fb这样的两组测试用例即可满足条件—判定覆盖了,但是条件组合覆盖还要求我们写出Ta , Fb ;Fa , Tb这样的另外两组测试用例(也难怪它叫做条件组合覆盖了=.=,如果还有第二个判断语句的话,那么也有类似上面的四个组合条件,但是注意它并不是要你写出4*4=16个测试样例,而是要根据分支结果来进行条件组合,还记得我们要满足“每个判断的取真分支和取假分支至少经历一次”这个条件么?一般写出4个测试用例基本就能满足条件组合覆盖的两项要求了,记得要把两个判断语句的各个条件组合全部用上,使其所得到的分支要有真有假。
6.修正条件/判定覆盖——MC/DC(Modified Condition /Decision Coverage)
使用条件组合覆盖基本会出现冗余的现象,因为一些条件组合得到的分支结果是一样的,他们可以看作是一组同样结果的条件组合集合,完全可以从中选择一个代表来替换掉这个集合。
7.路径覆盖——PC(Path Coverage)
路径覆盖是基本路径覆盖的前身,基本路径覆盖就是在路径覆盖的基础上将路径数压缩后得到的。
8.基本路径覆盖——BPC(Basis Path Coverage)
设计足够的测试用例,来覆盖程序中的所有可能的、独立的执行路径。
注意区分路径和语句的关系,直观点说:程序流程图里面,各种方框是语句,线条是路径
路径覆盖与基本路径覆盖参考网址
覆盖率介绍
后面想说的话
自己写的不对的地方还请大家指出来,一起学习交流~ ~ ̄▽ ̄ !
软件测试技术——覆盖方法介绍相关推荐
- ChinaSoft 论坛巡礼 | 群智化软件测试技术和方法
2022年CCF中国软件大会(CCF ChinaSoft 2022)将于2022年11月25-27日在线上举行.预期将有林惠民.陈左宁.邬江兴.何积丰.梅宏.吕建.柴洪峰.廖湘科.王怀民.郑纬民.蒋昌 ...
- 环境类软件测试项目,软件测试技术、方法和环境
软件测试技术.方法和环境 语音 编辑 锁定 讨论 上传视频 <软件测试技术.方法和环境>是2012年6月北京航空航天大学出版社出版的图书,作者是徐拥军 . 书 名 软件测试技术.方法 ...
- 软件测试基本方法介绍
来源: http://oldchild.nbc.net.cn/jsjsj/spks/cps/rjcsff.htm 软件测试的方法和技术是多种多样的. 对于软件测试技术,可以从不同的角度加以分类: 从是 ...
- 实用软件测试技术与持续质量改进方法 培训课程
实用软件测试技术与持续质量改进方法 培训课程 http://gdtesting.com/product.php?id=127
- 怀旧服服务器维护后断牙刷新吗,魔兽世界怀旧服:猎人抓断牙方法介绍,时间和位面技术缺一不可...
原标题:魔兽世界怀旧服:猎人抓断牙方法介绍,时间和位面技术缺一不可 如果问魔兽世界怀旧服猎人最想获得的宠物是什么,相信很多猎人玩家都会脱口而出"断牙".断牙作为猫科宠物,虽然不是唯 ...
- 【机房重构】C#与数据库访问技术之ExecuteNonQuery方法介绍及实例、SQL注入问题
ExecuteNonQuery()方法介绍: 1.ExecuteNonQuery()方法是SqlCommand类的一个方法 2.ExecuteNonQuery方法主要用来更新数据.通常使用它来执行Up ...
- 软件测试技术与项目实训pdf,软件测试技术任务驱动式教程pdf
软件测试技术任务驱动式教程 内容简介 <软件测试技术任务驱动式教程>分四个篇章介绍了软件测试的基本知识.方法.工具及流程.软件测试的基本理论阐述了软件测试的概念.模型和分类,软件质量管理与 ...
- 如何选择好的软件测试技术?
软件测试技术是指测试软件或软件一部分的方法或方式.每种测试技术都有其自身的优势.不同的技术针对不同类型的缺陷.因此,说一种技术是最好的是错误的.根据软件及其要求,一种测试技术可能比另一种更适合用于该目 ...
- 东软学院软件测试,软件测试技术与测试标准
本教材面向软件测试的实际应用,系统阐述了软件测试所涉及到的基础理论.常用技术.过程管理和质量控制:重点讲解软件测试中的白盒测试技术.黑盒测试技术以及自动化测试技术,全面剖析了软件测试从单元测试阶段.集 ...
- 软件测试技术大全 一书的目录
目录 第一篇 软件测试的基础 第1章 软件测试行业 1 1.1 软件测试的起源 1 1.1.1 第一个BUG的故事 1 1.1.2 最近的几个导致严重错误的Bug 1 1.1.3 软件测试 ...
最新文章
- 机器学习的5个常见痛点及解决方法
- 数据上移下移简单的存储过程
- Todolist总结
- Linux服务器上监控网络带宽与监控性能命令大全
- Androd开发之广告栏设计
- [Linux] PHP程序员玩转Linux系列-nginx初学者引导
- 比dropout更好的方法_比较自己的更好方法
- python 配置文件返回的两种方式,写法不一样而已
- tab切换中的滚动条下拉分页带来的问题
- 【数字IC验证快速入门】7、验证岗位中必备的数字电路基础知识(含常见面试题)
- vue axios中文文档详解
- linux ftps ftp,Linux下ftp+SSL实现ftps
- Trading Convexity for Scalability
- c语言lzma算法,在C中使用C-LZMA-SDK解压缩LZMA返回SZ_ERROR_DATA,因为输入流的第一个字节是!= 0...
- CPU温度过高解决方法
- 绘画教程:伤口疤痕应该怎么画?如何画出皮肤质感?
- 群晖NAS配置DNSPodDDNS实现外网访问(仅适用于阿里云域名)
- SpringBoot知识点整理
- ATP 系列无线测温集中采集触摸屏
- 使用TeamView远程电脑无法操作的问题处理
热门文章
- VS编译运行时提示:应用程序并行配置不正确,无法启动程序
- Java架构师之路:从码农到年薪五十万的架构师
- python怎么算二元一次方程_利用Python求解二元一次方程
- matlab的s变换,MATLAB - Transforms
- ba无标度网络python_python绘制BA无标度网络示例代码
- C语言按位取反~的简单理解
- 【入门】R语言最详细Windows安装指南
- 怎么把c盘的软件移到d盘?
- 用python做思维导图软件_两款好用的思维导图工具详细介绍,Xmind和幕布
- python读excel表格数据绘制图表_Python读取Excel数据并生成图表过程解析