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

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

举例说明:

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】,使用这个组合键截屏,获得的是…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

pandas 对某一行标准化_Python中的神器Pandas,但是有人说Pandas慢...

如果你从事大数据工作,用Python的Pandas库时会发现很多惊喜。Pandas在数据科学和分析领域扮演越来越重要的角色,尤其是对于从Excel和VBA转向Python的用户。所以,对于数据科学家,数据分析师,数据工程师,Pand…

罗盘时钟编码代码_安全研究 | 利用macOS Dock实现代码的持久化执行

背景介绍近期,我一直在研究macOS上的一些持久化技术,尤其是如何利用低等级用户权限来修改文件以影响用户交互。对于macOS终端用户来说,交互最频繁的当属Dock了。在我的研究过程中,我发现了一个plist文件,它可以控制App…

xpress-mp优化实例精选_量化研究每周精选-20170711

本周为大家精选了5项机器学习/深度学习在量化投资中的相关资源,机器学习/深度学习是偏实践性学科,只有不断实践才能有所收获,纸上得来终觉浅,绝知此事要躬行!BigQuant拥有海量的数据和主流开源框架,附能每一…

mac 删除分区 command r 选择网络_Mac使用必看基础篇,Mac快捷键大全,mac新手入门指南...

你是Mac新手吗?你对使用Mac电脑有疑问吗?你还不知道mac有哪些快捷键吗?别着急,来看看小编给大家准备的Mac使用必看基础篇——Mac快捷键大全,对于新手用户很有帮助哦!!一、开机相关命令快捷键C:从…

无法执行二进制文件: 可执行文件格式错误_VB中.frm .frx .vbp .vbw .scc文件都有什么作用,你知道么?...

.frm 是每个窗体都有的,保存窗体的代码,你可以用记事本打开;.frx 窗体里使用图片、图标等资料,保存的是资源;.vbp 和.vbw 保存一个工程时他会自动生成这两个文件。.vbp 是关键的文件,它用来保存当前工程中的…

共享文件原理_fishhook 的实现原理浅析

| 作者:小可长江,目前在 bilibili 做音视频研发,业余时间喜欢研究好的源码和逆向打开姿势很重要早些时候,iOS中一提到“黑魔法”、HOOK,很多人第一时间想到的就是 AOP RunTime MethodSwizzling 这些不明觉厉的东西&…

ef power tools mysql_使用 EF Power Tool Code Frist 生成 Mysql 实体

使用 EF Power Tool Code Frist 生成 Mysql 实体1,在要生成的项目上右键2,3,4,5, 生成后的效果已知问题:1,在Mysql数据表中 tinyint(1) ,会被映射成为 C# bool ,这样造成一些数据信息的丢失。 这个问题应该是EF 工具的问题&#…

python数据可视化散点图案例_Python数据可视化—散点图_python 数据可视化

Python数据可视化—散点图 PS: 翻了翻草稿箱, 发现居然存了一篇去年2月的文章。。。虽然naive,还是发出来吧。。。 本文记录了Python中的数据可视化——散点图scatter, 令x作为数据(50个点,每个30维)&#…

python重复元素判定_30段极简Python代码:这些小技巧你都Get了么

选自 | towardsdatascience转自 | 机器之心Python 是机器学习最广泛采用的编程语言,它最重要的优势在于编程的易用性。如果读者对基本的 Python 语法已经有一些了解,那么这篇文章可能会给你一些启发。作者简单概览了 30 段代码,它们都是平常非…

mysql主从数据库同步问题_聊聊MySQL主从数据库同步的那些事儿

在linux服务器下测试:主(master)服务器IP:219.223.5.105(对应内网IP:192.168.1.75)从(slave)服务器IP:219.223.5.104(对应内网IP:192.168.1.74)一、修改主服务器master[mysqld]log-binmysql-bin //[必须]启用二进制日…