来了解一下白盒测试,黑盒测试,灰盒测试吧!
haoteby 2025-04-24 00:22 34 浏览
根据被测对象的不同,软件测试可以分为白盒测试、黑盒测试、灰盒测试三种方式。那么,这三种测试方式具体是如何运行的?各有什么特点?下面,跟着小厚一起了解一下吧!
01
白盒测试WHITE BOX
●概念:
白盒测试是依据被测软件分析程序内部构造,并根据内部构造设计用例,来对内部控制流程进行测试,可完全不顾程序的整体功能实现情况。
白盒测试是基于程序结构的逻辑驱动测试。
白盒测试又可以被称为玻璃盒测试、透明盒测试、开放盒测试、结构化测试、逻辑驱动测试。
●目的:
白盒测试一般在测试前期进行,通过达到一定的逻辑覆盖率指标,使得软件内部逻辑控制结构上的问题能基本得到消除。
白盒测试能保证内部逻辑结构达到一定的覆盖程度,能够给予软件代码质量更大的保证。
白盒测试发现问题后解决问题的成本较低。
●常用技术:
静态分析:包括控制流分析、数据流分析、信息流分析。
动态分析:逻辑覆盖测试(分支测试、路径测试等)、程序插装等。
o 逻辑覆盖测试根据覆盖的对象不同,可以分为:语句覆盖、判定(分支)覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。
o 程序插装指调试程序时,在程序中插入一些打印语句,程序执行时打印出我们关心的信息,通过这些信息了解执行过程中程序的一些动态行为。
●特点:
测试人员需要了解软件的实现,可以检测代码中的每条分支和路径,对代码的测试比较彻底。
揭示隐藏在代码中的错误,实现代码结构上的优化。
投入较大,成本高。
无法检测代码中遗漏的路径和数据敏感性错误。
不验证规格的正确性。
02
黑盒测试
BLACK BOX
●概念:
黑盒测试把被测对象看成一个黑盒,只考虑其整体特性,不考虑其内部具体实现。
黑盒测试针对的被测对象可以是一个系统、一个子系统、一个模块、一个子模块、一个函数等。
黑盒测试又可以被称为基于规格的测试。
●常见的黑盒测试类型:
功能测试:一种是顺序测试每个程序特性或功能,另一种途径是一个模块一个模块的测试,即每个功能在其先调用的地方被测试。
容量测试:检测软件在处理海量数据时的局限性,能发现系统效率方面的问题。
负载测试:检测系统在一个很短时间内处理一个巨大的数据量或执行许多功能调用上的能力。
异常测试:主要保证系统在崩溃后能够恢复外部数据的能力。
●常用的黑盒测试方法:
等价类划分法、边界值分析法、因果图分析法、判定表法、状态迁移法等。
●特点:
对于更大的代码单元来说(子系统甚至系统级)比白盒测试效率要高。
测试人员不需要了解实现的细节,包括特定的编程语言。
从用户的视角进行测试,很容易被大家理解和接受。
有助于暴露任何规格不一致或有歧义的问题。
如果没有清晰的需求规格说明书,测试用例很难设计。
不能控制内部执行路径,会有很多内部程序路径没有被测试到。
03
灰盒测试GREY BOX
● 利用被测对象的整体特性信息,采用黑盒测试方法。
● 利用被测对象的内部具体实现信息,采用白盒测试方法。
● 如果既利用被测对象的整体特性信息,又利用被测对象的内部具体实现信息,采用的就是灰盒测试方法。两种信息占的比例不同,相应的灰度就不同。
● 完全是整体特性信息,就是黑盒测试,完全是内部具体实现信息,就是白盒测试。
● 灰盒测试多用于集成测试阶段,不仅关注输入、输出的正确性,同时也关注程序内部的情况。
【案例】PDA闹钟事件的测试
背景描述:闹钟是PDA(Personal Digital Assistant)上的一个应用程序,它的主要功能就是在用户设置的时间点到达时,进行响铃提醒。响铃时,无论用户当前在做什么操作,会弹出一个响铃提示界面。
提出问题:一天,负责测试此模块的工程师小叶提出一个问题“闹铃事件优先级高,在所有应用程序界面、对话框或提示框上面都会弹出,黑盒测试需要进入所有情况的用户界面,然后等待闹钟事件的发生,才能全面验证到各种情况的用户使用场景。”但这样穷举测试,需耗的时间太多,效果也并不一定好。
分析问题:关于闹钟的应用,实际上该模块只提供了一个接口。如能从代码角度分析到所有其他模块调用的是同一个闹铃接口函数(对于响铃及停止响铃后对原界面的恢复,都是统一一个接口处理的),那么再通过黑盒功能测试,在某一个用户界面进行此响铃功能的验证,即可证明代码的实现是符合需求的,这正是灰盒测试的方法。
解决问题:后来,对于闹铃功能点的系统验证,采用了灰盒测试的方法,做了代码正向、逆向分析,结合功能性用户场景进行验证,节省了近2/3的测试时间。
相关推荐
- DIY桌面激光雕刻机#是时候展现真正的技术了
-
激光雕刻机。这期视频我们来看一下我是如何DIY一台桌面激光雕刻机。前几天在水池子边上发现了一台旧电脑,我看这电脑上还有一些东西可以利用到,比如光驱上面拆出了步进电机和滑轨。所以本期视频我将用这些废品去...
- 100000块多米诺骨牌拼成超级马里奥,这款机器人1天就完成了
-
智东西(公众号:zhidxcom)编译|王健恩编辑|高歌智东西7月30日消息,美国工程师兼YouTube博主MarkRober创造出了一个可以自动摆放多米诺骨牌的机器人。这个机器人被命名为D...
- 这个3D打印机器人可以在30秒内打开密码锁
-
密码锁看似很安全?也许曾经是,但现在你可要当心了!这是因为一台3D打印制造的机器人就可以在半分钟内打开你的密码锁。上周四,知名黑客萨米·卡姆卡尔(SamyKamkar)在自己的网站上公布了一个称之为...
- 密码锁也不安全 这款机器人30秒即可自动打开
-
大学生和体育爱好者们要注意了,千万不要再把贵重物品存放在公共储物柜里。因为现在已经出现了一种3D打印的机器人,据说世界上各大锁商推出的大部分密码锁,它都能够在30秒之内打开。著名黑客山米·卡姆卡(Sa...
- 硬件单片机模拟器,再也不用买开发板了...
-
#头条创作挑战赛#记得2006年在凌阳科技(sunplus)工作的时候,凌阳科技开发了自己的编译器/集成开发环境(unspIDE),那个IDE除了有keil那样的编辑器、编译器、链接器、调试器、下载...
- 3D打印机分哪几部分构成?(3d打印机结构组成及系统分析)
-
3D打印机的构成根据技术类型(如FDM、SLA、SLS等)有所不同,但以最常见的FDM(熔融沉积成型)3D打印机为例,其核心组成部分可分为以下模块:1.机械结构框架提供整体支撑和稳定性,常见材质为金...
- 初学者学伺服都需要什么?石家庄诺仕通
-
#初学者学伺服都需要什么?#对于初学者学习伺服系统,需要从...
- arduino(arduino是单片机吗)
-
arduino学习笔记arduino学习笔记1-什么是arduino?...
- 自制写字机,你需要的全套资料都在这里
-
小编之前发过《用废旧光驱制作迷你绘图仪》,很多读者都成功制作了自己的绘图仪。但是该方法的缺点是gcode要在inkscape软件中生成,然后通过grbl-controller这个没有界面的程序发送画图...
- 自己动手DIY3D打印机 瞬间效果出现桌面时,大家都惊呆了!
-
3D打印机,对数码产品比较了解的朋友都知道,但是真正玩过的童鞋可能就不多了。其实3D打印机离我们并不远,随着3D打印技术越来越成熟,3D打印机的学习资料也越来越多,这让自己动手做一台桌面3D打印机也成...
- 机器人仅用24小时将十万块多米诺骨牌拼出马里奥,创下世界纪录
-
十万块多米诺骨牌倒下是个啥场面?等等,十万块?那得搭多久啊?...
- 如何制作一个机器人?(制作机器人的方法)
-
1.简单机械机器人(例如自动小车)2.智能机器人(带有人工智能或计算机视觉)3.工业机器人(用于生产自动化)4.人形机器人(类人结构,可以行走、对话)...
- CrowPi2树莓派4学习套件评测第1部分–开箱和首次启动
-
文章来源:CNXSoftware中文站2020年6月,我曾写过一篇关于深圳易科诺...
- 基于 Arduino UNO 的蓝牙汽车(arduino智能小车蓝牙控制app)
-
HC-05蓝牙模块HC-05是一款易于使用的蓝牙SPP模块,针对流畅的串行无线通信配置进行了优化。串口蓝牙模块是完全合格的蓝牙V2.0+EDR(增强数据速率)3Mbps调制,具有总2.4...
- 电机驱动设计方案带你初识机电一体化
-
在直流电机驱动电路的设计中,主要考虑以下几点:功能:电机是单向还是双向转动?需不需要调速?...