网站首页 > 技术教程 正文
根据被测对象的不同,软件测试可以分为白盒测试、黑盒测试、灰盒测试三种方式。那么,这三种测试方式具体是如何运行的?各有什么特点?下面,跟着小厚一起了解一下吧!
01
白盒测试WHITE BOX
●概念:
? 白盒测试是依据被测软件分析程序内部构造,并根据内部构造设计用例,来对内部控制流程进行测试,可完全不顾程序的整体功能实现情况。
? 白盒测试是基于程序结构的逻辑驱动测试。
? 白盒测试又可以被称为玻璃盒测试、透明盒测试、开放盒测试、结构化测试、逻辑驱动测试。
●目的:
? 白盒测试一般在测试前期进行,通过达到一定的逻辑覆盖率指标,使得软件内部逻辑控制结构上的问题能基本得到消除。
? 白盒测试能保证内部逻辑结构达到一定的覆盖程度,能够给予软件代码质量更大的保证。
? 白盒测试发现问题后解决问题的成本较低。
●常用技术:
? 静态分析:包括控制流分析、数据流分析、信息流分析。
? 动态分析:逻辑覆盖测试(分支测试、路径测试等)、程序插装等。
? 逻辑覆盖测试根据覆盖的对象不同,可以分为:语句覆盖、判定(分支)覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。
? 程序插装指调试程序时,在程序中插入一些打印语句,程序执行时打印出我们关心的信息,通过这些信息了解执行过程中程序的一些动态行为。
●特点:
? 测试人员需要了解软件的实现,可以检测代码中的每条分支和路径,对代码的测试比较彻底。
? 揭示隐藏在代码中的错误,实现代码结构上的优化。
? 投入较大,成本高。
? 无法检测代码中遗漏的路径和数据敏感性错误。
? 不验证规格的正确性。
02
黑盒测试
BLACK BOX
●概念:
? 黑盒测试把被测对象看成一个黑盒,只考虑其整体特性,不考虑其内部具体实现。
? 黑盒测试针对的被测对象可以是一个系统、一个子系统、一个模块、一个子模块、一个函数等。
? 黑盒测试又可以被称为基于规格的测试。
●常见的黑盒测试类型:
? 功能测试:一种是顺序测试每个程序特性或功能,另一种途径是一个模块一个模块的测试,即每个功能在其先调用的地方被测试。
? 容量测试:检测软件在处理海量数据时的局限性,能发现系统效率方面的问题。
? 负载测试:检测系统在一个很短时间内处理一个巨大的数据量或执行许多功能调用上的能力。
? 异常测试:主要保证系统在崩溃后能够恢复外部数据的能力。
●常用的黑盒测试方法:
? 等价类划分法、边界值分析法、因果图分析法、判定表法、状态迁移法等。
●特点:
? 对于更大的代码单元来说(子系统甚至系统级)比白盒测试效率要高。
? 测试人员不需要了解实现的细节,包括特定的编程语言。
? 从用户的视角进行测试,很容易被大家理解和接受。
? 有助于暴露任何规格不一致或有歧义的问题。
? 如果没有清晰的需求规格说明书,测试用例很难设计。
? 不能控制内部执行路径,会有很多内部程序路径没有被测试到。
03
灰盒测试GREY BOX
● 利用被测对象的整体特性信息,采用黑盒测试方法。
● 利用被测对象的内部具体实现信息,采用白盒测试方法。
● 如果既利用被测对象的整体特性信息,又利用被测对象的内部具体实现信息,采用的就是灰盒测试方法。两种信息占的比例不同,相应的灰度就不同。
● 完全是整体特性信息,就是黑盒测试,完全是内部具体实现信息,就是白盒测试。
● 灰盒测试多用于集成测试阶段,不仅关注输入、输出的正确性,同时也关注程序内部的情况。
【案例】PDA闹钟事件的测试
背景描述:闹钟是PDA(Personal Digital Assistant)上的一个应用程序,它的主要功能就是在用户设置的时间点到达时,进行响铃提醒。响铃时,无论用户当前在做什么操作,会弹出一个响铃提示界面。
提出问题:一天,负责测试此模块的工程师小叶提出一个问题“闹铃事件优先级高,在所有应用程序界面、对话框或提示框上面都会弹出,黑盒测试需要进入所有情况的用户界面,然后等待闹钟事件的发生,才能全面验证到各种情况的用户使用场景。”但这样穷举测试,需耗的时间太多,效果也并不一定好。
分析问题:关于闹钟的应用,实际上该模块只提供了一个接口。如能从代码角度分析到所有其他模块调用的是同一个闹铃接口函数(对于响铃及停止响铃后对原界面的恢复,都是统一一个接口处理的),那么再通过黑盒功能测试,在某一个用户界面进行此响铃功能的验证,即可证明代码的实现是符合需求的,这正是灰盒测试的方法。
解决问题:后来,对于闹铃功能点的系统验证,采用了灰盒测试的方法,做了代码正向、逆向分析,结合功能性用户场景进行验证,节省了近2/3的测试时间。
- 上一篇: 黑盒测试和白盒测试方法对比
- 下一篇: 白盒测试用例之静态结构分析法
猜你喜欢
- 2024-12-05 白盒密码技术
- 2024-12-05 实践单元测试与白盒测试很容易——基于C语言实现单元测试框架
- 2024-12-05 黑盒、白盒、灰盒,如何选择合适的模糊测试工具?
- 2024-12-05 信号白盒自动化测试技术基础:50Ω同轴线探头与标配探头测试对比
- 2024-12-05 黑盒测试、白盒测试、灰盒测试之间的异同点
- 2024-12-05 安全测试前置实践1-白盒&黑盒扫描
- 2024-12-05 硬件测试全景图
- 2024-12-05 白盒测试用例之静态结构分析法
- 2024-12-05 黑盒测试和白盒测试方法对比
- 2024-12-05 白盒测试之逻辑覆盖准则
你 发表评论:
欢迎- 最近发表
-
- Win10 TH2正式版官方ESD映像转换ISO镜像方法详解
- 使用iso镜像升级到Windows 10的步骤
- macOS Ventura 13.2 (22D49) Boot ISO 原版可引导镜像
- 安利一个用ISO镜像文件制作引导U盘的的小工具RUFUS
- CentOS 7使用ISO镜像配置本地yum源
- 用于x86平台的安卓9.0 ISO镜像发布下载:通吃I/A/N、完全免费
- AlmaLinux 9.6发布:升级工具、初步支持IBM Power虚拟化技术
- Rufus写入工具简洁介绍与教程(写入模式)
- 新硬件也能安装使用了,Edge版Linux Mint 21.3镜像发布
- 开源工程师:Ubuntu应该抛弃32位ISO镜像
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)