Selenium 学习(0.16)——软件测试之测试用例设计方法——白盒测试——逻辑覆盖法(语句覆盖和判定覆盖)

写在前面

今天回来有点晚,因为上午给小伙伴们开了个小会,随便说了些什么,结果小伙伴们下班就没急着走,弄点我还有点不好意思提前走了,就略留了一会。其实也没说什么,就是强调工作要抓点紧,8小时内提高效率就好,我反对无意义的加班;要他们遵守好规章就好,该干啥就干啥;最好不要摸鱼,千万不要以为摸鱼才是挣钱,把正常上班当等价交换;大家都从学生过来的,坐在下面都以为自己作弊技术高明,其实站在上面的人一眼就能看出来,不管是眼神、动作或神态;我没什么能耐,但是盯个一二十个人还是没啥问题的,如果非要让人盯着,就不太好玩了。也许可能说的不对,请大家"有则改之,无则加冕",我的要求就是"和谐工作、开心生活",不要因为工作产生什么不愉快,搞清楚自己上班是为啥、值不值继续得就好了......

其实我一点也不想贩卖焦虑,我只想能工作顺顺利利推动就好,大家都能拿到想要的就好。大家这么配合,我都脸红了,真心只是希望大家都好,当然你们好了我才会好!感谢!

定义

逻辑覆盖法又称控制流覆盖,是一种按照程序内部逻辑结构设计测试用例的测试方法,目的是要测试程序中的判定和条件,测试程序逻辑结构通常需要通过使用控制流覆盖准则来定量测试进行程度。

它包括:语句覆盖、判定覆盖、条件覆盖、条件判定覆盖、条件组合覆盖。

语句覆盖

又称为线覆盖面或段覆盖面,通过选择足够数目测试数据,使被测程序中每个可执行语句至少执行一次。

以上被测单元代码包含两个 if 语句,每个判定表达式又由两个子条件组成。绘制流程图如上所示,P1~P5表示若干段控制流。

若要做到语句覆盖,即每条语句至少执行一次程序执行的路径应该是 P1-P3-P2-P5-P4。可设计测试用例如下:

语句覆盖可以很直观地从源代码得到测试用例,无须细分每条判定表达式,但由于这种测试方法仅仅针对程序逻辑中显式存在的语句,对于隐藏的条件和可能到达的隐式逻辑分支,是无法测试的。语句覆盖对于多分支的逻辑运算是无法全面反映的,它只在乎运行一次,而不考虑其他情况。

判定覆盖

又称为分支覆盖或所有边覆盖:**每个判定(例如if语句和while语句)的分支至少执行一次。**注意:每个判定视为一个整体,取值为 true 或 false,而不考虑内部是否包含"逻辑与"或者"逻辑或"等操作符。

判定覆盖法的基本思想是指设计的测试用例,使得程序中每个判定至少分别取"真"和取"假"分支一次,即判断真假值均被满足。

第一种:覆盖P1-P3-P2-P5-P4和P1-P2-P4两条路径

第二种:覆盖P1-P3-P2-P4和P1-P2-P5-P4条路径

根据第二种设计测试用例如下:

判定覆盖法对程序的逻辑覆盖程度仍度高,流程图表示的源程序有4条路径,以上的一种测试用例只覆盖了其中的2条。

判定覆盖比语句覆盖要多几乎一倍的测试路径,当然也就具有比语句覆盖更强的测试能力。同样判定覆盖也具有和语句覆盖一样的简单性,无须细分每个判定就可以得到测试用例。

=========================================================================

更新待续,洗涤睡了......困!2023年11月27日23:01

=========================================================================

相关推荐
代码欢乐豆17 分钟前
数据采集之selenium模拟登录
python·selenium·测试工具
阿伟来咯~26 分钟前
记录学习react的一些内容
javascript·学习·react.js
Suckerbin1 小时前
Hms?: 1渗透测试
学习·安全·网络安全
水豚AI课代表1 小时前
分析报告、调研报告、工作方案等的提示词
大数据·人工智能·学习·chatgpt·aigc
聪明的墨菲特i1 小时前
Python爬虫学习
爬虫·python·学习
Diamond技术流1 小时前
从0开始学习Linux——网络配置
linux·运维·网络·学习·安全·centos
斑布斑布1 小时前
【linux学习2】linux基本命令行操作总结
linux·运维·服务器·学习
Chef_Chen2 小时前
从0开始学习机器学习--Day13--神经网络如何处理复杂非线性函数
神经网络·学习·机器学习
lulu_gh_yu3 小时前
数据结构之排序补充
c语言·开发语言·数据结构·c++·学习·算法·排序算法
Re.不晚3 小时前
Java入门15——抽象类
java·开发语言·学习·算法·intellij-idea