首页 > 其他分享 >【FAQ】白盒与黑盒测试

【FAQ】白盒与黑盒测试

时间:2024-03-03 21:46:31浏览次数:26  
标签:test1 黑盒 覆盖 白盒 -- FAQ 例子 判定 条件

黑盒测试

不管你里面有什么东西,我输入东西进去程序里面,只看输出的结果是不是我想要的就行。
用于确保程序的输出符合预期,同时检测功能性错误(软件操作,数据结构处理,UI初始化/终止等问题)

白盒测试/透明盒测试

常用的典型代码覆盖标准通常分为下面六种:
语句覆盖
判定覆盖
条件覆盖
判定+条件覆盖
路径覆盖
多条件/组合覆盖

总例子

我们以下面这个例子来了解六种覆盖标准,以T为true,F为false,abcd为判断条件,a and b和c or d为判定过程:

if a and b
  then act1

if c or d
  then act2

语句覆盖

要求每个语句都要执行一次
从上面例子看,也就是要求act1和act2都要执行一次,那么由此我们可以推断出:

a和b必须为T,就能执行act1
c或者d有一个为T,就执行act2

因此我们可以这样写测试例子就能满足语句覆盖:

test:a=T,b=T,c=T
或者a=T,b=T,d=T

判定覆盖

每个判定过程的结果至少要真和假一次
从例子看,有两个判定过程,一个是a and b,另一个是c or d,因此可以抽象为下面的过程:

① a and b = T --> a=T b=T
② a and b = F --> a=F b=T (a和b有一个是F就行,这里我们以a为F)
③ c or d = T --> c=T或者d=T
④ c or d = F --> c=F d=F

接下来就可以写测试例子来满足判定覆盖了:

test1:a=T b=T c=T d=F -->满足过程①和③
test2:a=T b=F c=F d=F -->满足过程②和④

条件覆盖

每个条件至少要取一次真和假
从例子看,有四个条件,a,b,c,d,因此实现条件覆盖也就是:

a	T	F
b	T	F
c	T	F
d	T	F
 	⑤	⑥

我们简单地理解一下目标,要把每个条件的真和假都取一次,那么我们把全条件为真作为目标⑤,全为假为目⑥
那么我们组合一下就行:

test1:a=T,b=T,c=T,d=T -->满足⑤
test2:a=F,b=F,c=F,d=F -->满足⑥

判定+条件覆盖

其实就是判断覆盖加条件覆盖,也就是要每个判定过程至少要取一次真和假,且每个条件都要取一次真和假
我们直接取上面的六个目标(①到⑥),例子可以这样写:

test1:a=T,b=T,c=T,d=T -->满足⑤,①,③
test2:a=F,b=F,c=F,d=F -->满足⑥,②,④

如此,只需要两个案例就实现了这个覆盖

路径覆盖

把程序流程都走一次,换个说法其实就是判定覆盖
我们为例子做一个流程图:
image
黑科技:删掉开始和结束相连的两条链路,那么图片就剩下五条链路了,一共四个节点(两个判断两个过程),代入公式:链路数-节点数+2=路径数,比如此处就是:5-4+2=3
看着图片,我们可以梳理出三条路:

路1:开始-->A and B--为T-->Act1---->C or D--为T-->Act2---->结束
路2:开始-->A and B--为F-->C or D--为T-->Act2---->结束
路3:开始-->A and B--为T-->Act1---->C or D--为F-->结束

简单分析:
路1是把全部方法执行了,每个判断过程都是T
路2是跳过了act1,只执行了act2
路3执行了act1,跳过了act2
也就是说我们把每一条连接线走完他就行了,所以例子可以这样写:

test1:A=T,B=T,C=T
test2:A=F,C=T
test3:A=T,B=T,C=F,D=F

如此,我们就实现了路径覆盖

多条件/组合覆盖

每个判定过程中的条件各种可能存在的组合都出现至少一次
我们以例子来说明,看a and b这个判定过程,他有两个条件:a和b,这两个条件各自又有两种情况,分别是T和F,因此我们可以得出来这个判断过程的多条件组合覆盖是:

a	b
T	T
T	F
F	T
F	F

同理,把c or d也放进来,那就是:

a	b	|	c	d
T	T	|	T	T
T	F	|	T	F
F	T	|	F	T
F	F	|	F	F

那么整个程序的多条件组合覆盖的用例就可以这样写:

test1:a=T,b=T,c=T,d=T
test2:a=T,b=F,c=T,d=F
test3:a=F,b=T,c=F,d=T
test4:a=F,b=F,c=F,d=F

这样四个测试就实现了程序的多条件组合覆盖!

标签:test1,黑盒,覆盖,白盒,--,FAQ,例子,判定,条件
From: https://www.cnblogs.com/MorningMaple/p/18050736

相关文章

  • 【FAQ】HarmonyOS SDK 闭源开放能力 —Push Kit
    1.问题描述升级到4.0.0.59版本后,通过pushService.getToken获取华为的token时报如下错误:Illegalapplicationidentity.解决方案Mate40Pro(NOH)从4.0升级到4.1版本后,会出现UDID变化,影响历史的调试签名使用,应用重新签名后即可正常运行。2.问题描述按照https://developer.h......
  • SpringCloud系列之(十三)FAQ
    关于一些可能出现的报错1.DruidDataSource:testWhileIdleistrue,validationQuerynotset工程启动时可能会报如下错误,这是DruidDataSource保持链接的测试,不影响我们的应用。2.idea未监测到yml文件出现这种情况会造成文件内写配置的时候没有提示正常应该是这样的......
  • 问题:?软件测试方法中,属于静态测试方法的是( )。?黑盒法?逻辑覆盖?错误推测?人工检测
    问题:?软件测试方法中,属于静态测试方法的是()。?黑盒法?逻辑覆盖?错误推测?人工检测参考答案如图所示......
  • 白盒测试?软件工程?看这一篇就够了
    五星上将麦克阿瑟曾经说过“在白盒测试面前,黑盒测试就是弟弟“一让我们来讲一个故事今天和女朋友吵架了,(假设你有女朋友)。今晚又是一个人睡沙发,这天晚上,你躺在沙发上,夜不能寐决定学习一下这个事情——白盒测试前言什么是白盒测试:白盒测试技术分析内部结构、使用的数据结构、内部设计......
  • FAQ-linux登录失败或者执行命令提示bash: fork: Cannot allocate memory
    一、现象服务器登录失败或者提示失败bash:fork:Cannotallocatememory二、盘查1、先使用free-m查看内存有没有问题2、没有问题再看最大进程数sysctlkernel.pid_max3、然后核实下当前的进程数ps-eLf|wc-l三、解决方法修改最大进程数后系统恢复echo100000......
  • [FAQ] Docker查询出所有的停止容器并移除
     $ dockerrm`dockercontainerls-a--filter"status=exited"|awk'{print$1}'|sed'1,1d'|xargs` Ref:phvia/dkcRef:[Shell]字符截取命令:cut,printf,awk,sedRef:使用nodejs的puppeteer库使用完关闭后,linux上面有很多chrome进程Link:https......
  • 每日总结2024/1/13(白盒技术)
    第一节:什么是白盒测试?白盒测试是软件测试技术,白盒测试也称结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试。它根据程序的控制结构设计测试用例,主要用于软件程序验证。白盒测试中也称为透明盒测试、基于代码的测试和玻璃盒测试。它是BoxTesting软件测试方法之一......
  • 什么是黑盒白盒测试,他们有什么区别?
    软件测试是软件开发过程中的基本活动。黑盒测试和白盒测试是两种不同类型的软件测试策略,它们具有同样强大的功能,并且结合使用时甚至更好。一、黑盒测试在软件中,黑盒测试很方便,可以减少灾难性(软件)崩溃的风险。灾难性的软件崩溃可能是什么?系统在更新客户数据库的过程中崩溃了?在这种情......
  • FAQ001 读取INI文件的配置项
    要读取INI文件中的配置项,你可以使用System.IO.File类来读取文件,然后使用System.Text.RegularExpressions.Regex类来搜索字符串并提取所需的值。下面是一个基本的函数示例,它根据传入的文件名和配置项名返回对应的配置值。usingSystem.IO;usingSystem.Text.RegularExpress......
  • FAQ002 设置RichTextBox的字体
    要将文本颜色设置为红色并加粗,可以使用Font类中的Bold属性来将字体加粗。下面是一个示例:yourRichTextBox.SelectionColor=Color.Red;yourRichTextBox.SelectionFont=newFont(yourRichTextBox.SelectionFont,FontStyle.Bold);在这个示例中,yourRichTextBox是一个指向......