软件测试语句覆盖,软件测试中的语句覆盖,分支覆盖,条件覆盖以及路径覆盖...

我举一个简单的例子来解释一下语句覆盖,分支覆盖,条件覆盖以及路径覆盖的相关知识,如果有不对的地方,恳请各位同行指正:

举例说明:

if A=true and B=true then Action1

if C=true or D=true then Action2

这是一个很简单的例子,也就是,当A和B都为真的情况下,执行Action1,Action1执行好以后再次判断,只要A或者B有一个为真,那么就执行Action2,当Action2执行完成后,整个程序算是执行完成了:分析见图

245435_201105162215431OW39.jpg

(pic 01)

语句覆盖:顾名思义,让程序中的每个语句都cover到。在这个例子中,也就是要符合两个Positive条件:

1. A = true and B = true

2. C = true or B = true

根据上图所示,符合有两个条件的,都可以实现语句覆盖:

比如:A = true, B = true, C = true, D =true就可以实现最大的语句覆盖了

看到图,我们可以知道,实际上A和B有一种情况,C和D有三种情况,1*3=3,所以,语句覆盖的例子除了有上面提示的一个例子外还可以有以下两个,罗列如下:

2. A = true, B = true, C = true, D = false

3. A = true, B = true, C = false, D = true

这个例子中,选择任何一个(比如1),都可以覆盖整个语句,实现最大的语句覆盖率

分支覆盖(判定覆盖):把程序中所有判定的分支尽可能得到体验。这句话说白了,就是两个条件的真真假假都得考虑到,也就是以下四种情况在case中都需要cover到:

1. A = true and B = true 真positive (见图pic 01:1种情况)

2. A = true and B = true 假negative (见图pic 01:3种情况)

3. C = true or B = true 真positive (见图pic 01:3种情况)

4. C = true or B = true 假negative (见图pic 01:1种情况)

典型的两个例子如:

A=true, B=true, C=false, D=true

A=false, B=true, C=false, D=true

当然,我们如果再深入考虑下去,其实不只这一对case可以覆盖所有的条件,还有很多对的case可以覆盖,其实就是符合上述1234的条件就行,很容易就可以看出:13 24组合,14 23组合

完全覆盖到了,算下来(1×3)*(3*1)+(1*1)*(3*3)=18:

13 24组合

1. A=true, B=true, C=false, D=trueA=false, B=true, C=false, D=true2. A=true, B=true, C=true, D=falseA=false, B=true, C=false, D=true3. A=true, B=true, C=true, D=trueA=false, B=true, C=false, D=true4. A=true, B=true, C=false, D=trueA=true, B=false, C=false, D=true5. A=true, B=true, C=true, D=falseA=true, B=false, C=false, D=true6. A=true, B=true, C=true, D=trueA=true, B=false, C=false, D=true7. A=true, B=true, C=false, D=trueA=false, B=false, C=false, D=true8. A=true, B=true, C=true, D=falseA=false, B=false, C=false, D=true9. A=true, B=true, C=true, D=trueA=false, B=false, C=false, D=true

14 23组合

10. A=false, B=true, C=false, D=trueA=true, B=true, C=false, D=false11. A=true, B=false, C=false, D=trueA=true, B=true, C=false, D=false12. A=false, B=false, C=false, D=trueA=true, B=true, C=false, D=false13. A=false, B=true, C=true, D=falseA=true, B=true, C=false, D=false14. A=true, B=false, C=true, D=falseA=true, B=true, C=false, D=false15. A=false, B=false, C=true, D=falseA=true, B=true, C=false, D=false16. A=false, B=true, C=true, D=trueA=true, B=true, C=false, D=false17. A=true, B=false, C=true, D=trueA=true, B=true, C=false, D=false18. A=false, B=false, C=true, D=trueA=true, B=true, C=false, D=false

条件覆盖:每个判断中的每个条件的可能取值至少满足一次. 说条件覆盖的时候不要看上面的两幅图了。这里的条件参数有四个A,B,C,D,也就是说A,B,C,D可能的条件至少要满足一次:

1. A = false, B = false, C = false, D = false

2. A = true, B = true, C =true, D = true

这两个用例已经覆盖了条件测试的所有的条件,当然,你同样可以展开来:2*2*2*2 = 16,可以设计出16对上面所列的测试用例

这里就不一一列出来了

1. A = true, B = false, C = false, D = false

A = false, B = true, C =true, D = true

2. A = false, B = true, C = false, D = false

A = true, B = false, C =true, D = true

3. A = false, B = false, C = true, D = false

A = true, B = true, C =false, D = true

……………………

路径覆盖:要求覆盖程序中的所有可能路径,见如下图:

245435_2011051617222114PZM.jpg(Pic 02)

如上图所示,所有的路径包括:13,14,23,24

示例1:

A=false, B=true, C=false, D=false (1,3)

A=false, B=true, C=false, D=true (1,4)

A=true, B=true, C=false, D=false (2,3)

A=true, B=true, C=false, D=true (2,4)

和前面的条件覆盖,分支覆盖一样,这仅仅是其中一组cover全面覆盖率例子,如果有兴趣的朋友可以继续写下去。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/567069.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

按钮点击没有反应_时控开关按键没反应怎么办?

当时市场上时控开关大体分为两种:按键式时控开关和蓝牙时控开关。按键式定时开关不用多做介绍,市场上已经存在很多年了,无论是校时、手动控制开关、设置定时时间,都需要手动接触按键进行调试控制,操作起来相对繁琐一些…

postman替换快捷键ctrl加什么_电脑截图快捷键ctrl加什么

无论我们使用电脑聊天,打游戏还是看视频,都不可避免会使用到截图的功能。下面小编来告诉大家windows自带的截图组合键吧。希望可以帮助到大家。www.aiwin10.com电脑截图快捷键是【ctrl】加【PrScrn】,使用这个组合键截屏,获得的是…

计算机二级科目电子商务,计算机二级Web数据在电子商务中的应用解析

要参加考试的同学们,出国留学网为你整理“计算机二级Web数据在电子商务中的应用解析”,供大家参考学习,更多资讯请关注我们网站的更新哦!计算机二级Web数据在电子商务中的应用解析1引言当前,随着网络技术的发展和数据库技术的迅猛…

代码整理工具_整理了 11 个好用的代码质量审核和管理工具

点击上方“Python编程时光”,选择“加为星标”第一时间关注Python技术干货!来源:云智时代https://www.toutiao.com/i6771334551873520131如今,代码质量分析和审核已成为每个企业的基本流程。随着开源代码库使用的增加,…

css样式全大写,用css样式表实现首字大写

css当中有许多平时很少用的属性,但是这些属性有时候被发掘出来以后就会立刻引起一些人的追逐,首字大写就是这样一种效果。最近越来越多的blogger开始在自己的blog中运用这一方法,东西很简单,下面就来给大家介绍一下用:first-lette…

vue中 点击事件的写法_vue中的事件:原生事件与自定义事件__Vue.js

模板编译 processAttrs对于ast attributes处理(v-on/)利用onRE与dirRE来捕获事件这里最重要的就是dynamic的判断,vue中可以用动态参数来命名事件名称,如[prop],prop为data中的值。不过通常都是一个静态的事件名称如 click另一个核心方法就是a…

vue点击其它侧边栏收缩_企业微信聊天侧边栏功能怎么开启?聊天侧边栏有什么用?...

腾讯的企业微信上线以来一直在默默的优化更新,今年8月份悄悄上新了聊天侧边栏功能。作为一款主打移动端办公的软件,企业微信上线聊天侧边栏有什么用?聊天侧边栏是啥聊天侧边栏是企业微信的一个全新功能,为了方便公司成员更好的与客…

下找到vue变量_Vue:npm run serve 到底做了什么?

前言 在 vue-cli2或者 vue-cli3 中,当我们创建好一个项目,我们要通过 npm run dev(vue-cli2的命令,vue-cli3之后用npm run serve,原理都一样,只不过是换了一下名字而已)运行一个项目。或者通过 npm run build 打包一个项目。那么问题来了,当我们在命令框中输入这两个命令…

python求最大值最小值_Python求可变参数的最大值最小值以及参数个数

求可变参数的最大值最小值以及参数个数 简介: 首先要做这个题,我们要使用函数来解决,这就要求我们要掌握函数的定义以及函数的调用。函数是一段具有特定功能的、可重用的,用来实现单一,或相关联功能的代码段。用函数名…

关于web服务器性能书籍,图书商城系统的Web服务器性能优化研究与实现

摘要:随着互联网技术的不断发展,特别是电子商务的不断发展,网上购物的需求也在不断的增加.根据《2017-2022年中国电子商务市场运行态势及投资战略研究报告》中指出2015年中国电子商务市场交易额规模16.4万亿元,增长22.7%.而其中网络购物增长36.2%,成为推动电子商务市…

侧边栏配置_企业微信上线“聊天侧边栏”功能,可在外部会话时快捷使用应用...

点击上方“蓝色字体”,选择 “设为星标”关键讯息,D1时间送达!8月7日消息,企业微信发布全新2.8.10版本,新增“聊天侧边栏”功能,且同时支持PC端与移动端。成员在外部会话中,可通过侧边栏使用应用…

python输入逗号分隔_命令行Python逗号分隔的用户输入int值

"2,3"是一个字符串,将其传递给函数不会使其表现为由,分隔的两个不同参数(如您所料)。在>>> def func(arg): ... print arg ... >>> func(a, b) a, b # arg is a variable that stores the passed string 您应该首…

vlc文件服务器局域网,vlc流媒体服务器配置

vlc流媒体服务器配置 内容精选换一换本节操作以Windows Server 2012操作系统的弹性云服务器为例介绍实现多用户登录的操作步骤。Windows server2012服务器默认能够支持两个用户同时远程登录,而通过配置远程桌面会话主机和远程桌面授权,即可实现多用户远程…

移动短信回执怎么开通_移动短信回执业务内容及资费介绍

短信回执业务是指移动客户向网内其他用户发送短信后,将会收到一条回执短信,内容包含接收方是否成功接收的状态报告信息,同时还可以收到我们提供的附加资讯信息的业务。附加资讯信息长度限为44个字符(含标点符号),内容涉及文化娱乐…

db2导入发生错误显示不是绝对路径_python编程常见错误总结

对于python初学者,在编程过程中常犯的错误及解决办法进行汇总和解决。勇哥希望编写此文能帮到大家。下边是勇哥结合例子给大家现身说法: 第一例:缩进错误(IndentationError)图1python对缩进很敏感,python用缩进来划分语句块,对于同…

服务器通电显示黄灯,服务器内存亮黄灯

服务器内存亮黄灯 内容精选换一换本文介绍了裸金属服务器BMS产品新特性和对应的文档动态,新特性将在各个区域(Region)陆续发布,欢迎体验。当您购买的云服务器规格无法满足业务需要时,可参考本章节变更规格,升级vCPU、内存。对于部…

mybatis mysql 调用存储过程 多个返回值_图解MyBatis的SQL执行流程(干货)

前言MyBatis可能很多人都一直在用,但是MyBatis的SQL执行流程可能并不是所有人都清楚了,那么既然进来了,通读本文你将收获如下:1、Mapper接口和映射文件是如何进行绑定的2、MyBatis中SQL语句的执行流程3、自定义MyBatis中的参数设置…

js获取下月时间_js 获取 本周、下周、本月、下月、本季度、下季度的开始结束日期...

js 获取 本周、上周、本月、上月、本季度、上季度的开始结束日期/*** 获取本周、本季度、本月、上月的开始日期、结束日期*/var now new Date(); //当前日期var nowDayOfWeek now.getDay(); //今天本周的第几天var nowDay now.getDate(); //当前日var nowMonth now.getMont…

华为手机显示解析服务器返回错误,ajax服务器返回错误

ajax服务器返回错误 内容精选换一换查询指定备份策略下的标签信息。URI格式GET /v2/{project_id}/backuppolicy/{policy_id}/tagsGET /v2/{project_id}/backuppolicy/{policy_id}/tags参数说明参数是否必选描述project_id是项目IDpolicy_id是策略ID请求示例GET /查询所有备份策…

已知弧长计算器_科学计算器,怎么用弧度计算弧长,请知道的举例说明,

展开全部大家好知道弧度的半径是6184.弦长是3120怎么算弧长,最好把详e69da5e6ba903231313335323631343130323136353331333363366236细的过程和结果发给我,用科学计算器要怎么按的方法写出来谢谢了要不然不懂的怎么用计算器算以后换了数字就不知道怎么算了…