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

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

相关推荐
吃好睡好便好12 分钟前
说说科学爬山
学习·生活
lunzi_08261 小时前
【学习笔记】《Python编程 从入门到实践》第8章:函数定义、参数传递与模块导入
笔记·python·学习
零陵上将军_xdr2 小时前
后端转全栈学习-Day5-JavaScript 基础-3
开发语言·javascript·学习
05大叔2 小时前
对话系统学习,问答型数据库,闲聊型对话数据库
学习
nashane2 小时前
HarmonyOS 6商城开发学习:抢票倒计时与系统日历提醒——票务类场景的完整落地思路
学习·华为·harmonyos
测试19983 小时前
Jmeter性能压测:TPS与QPS
自动化测试·软件测试·python·jmeter·测试用例·压力测试·性能测试
伶俜663 小时前
零基础学 ArkUI 传感器(专题二):从加速度计到指南针,玩转硬件能力
学习·华为·harmonyos
进击的小头4 小时前
第8篇:IGBT 从零到精通:核心原理、关键参数、选型指南与工业级应用要点
经验分享·嵌入式硬件·学习