来了解一下白盒测试,黑盒测试,灰盒测试吧(超详解~)

news/2024/11/7 14:32:59/

根据被测对象的不同,软件测试可以分为白盒测试、黑盒测试、灰盒测试三种方式。那么,这三种测试方式具体是如何运行的?各有什么特点?下面,跟着静姐一起了解一下吧!

01、白盒测试

WHITE BOX 

●概念:

➢ 白盒测试是依据被测软件分析程序内部构造,并根据内部构造设计用例,来对内部控制流程进行测试,可完全不顾程序的整体功能实现情况。

➢ 白盒测试是基于程序结构的逻辑驱动测试。

➢ 白盒测试又可以被称为玻璃盒测试、透明盒测试、开放盒测试、结构化测试、逻辑驱动测试。

●目的:

➢ 白盒测试一般在测试前期进行,通过达到一定的逻辑覆盖率指标,使得软件内部逻辑控制结构上的问题能基本得到消除。

➢ 白盒测试能保证内部逻辑结构达到一定的覆盖程度,能够给予软件代码质量更大的保证。

➢ 白盒测试发现问题后解决问题的成本较低。

●常用技术:

➢ 静态分析:包括控制流分析、数据流分析、信息流分析。

➢ 动态分析:逻辑覆盖测试(分支测试、路径测试等)、程序插装等。

• 逻辑覆盖测试根据覆盖的对象不同,可以分为:语句覆盖、判定(分支)覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。

• 程序插装指调试程序时,在程序中插入一些打印语句,程序执行时打印出我们关心的信息,通过这些信息了解执行过程中程序的一些动态行为。

●特点:

➢ 测试人员需要了解软件的实现,可以检测代码中的每条分支和路径,对代码的测试比较彻底。

➢ 揭示隐藏在代码中的错误,实现代码结构上的优化。

➢ 投入较大,成本高。

➢ 无法检测代码中遗漏的路径和数据敏感性错误。

➢ 不验证规格的正确性。

 

02、黑盒测试

BLACK BOX 

●概念:

➢ 黑盒测试把被测对象看成一个黑盒,只考虑其整体特性,不考虑其内部具体实现。

➢ 黑盒测试针对的被测对象可以是一个系统、一个子系统、一个模块、一个子模块、一个函数等。

➢ 黑盒测试又可以被称为基于规格的测试。

常见的黑盒测试类型:

➢ 功能测试:一种是顺序测试每个程序特性或功能,另一种途径是一个模块一个模块的测试,即每个功能在其先调用的地方被测试。

➢ 容量测试:检测软件在处理海量数据时的局限性,能发现系统效率方面的问题。

➢ 负载测试:检测系统在一个很短时间内处理一个巨大的数据量或执行许多功能调用上的能力。

➢ 异常测试:主要保证系统在崩溃后能够恢复外部数据的能力。 

常用的黑盒测试方法:

➢ 等价类划分法、边界值分析法、因果图分析法、判定表法、状态迁移法等。

●特点:

➢ 对于更大的代码单元来说(子系统甚至系统级)比白盒测试效率要高。

➢ 测试人员不需要了解实现的细节,包括特定的编程语言。

➢ 从用户的视角进行测试,很容易被大家理解和接受。

➢ 有助于暴露任何规格不一致或有歧义的问题。

➢ 如果没有清晰的需求规格说明书,测试用例很难设计。

➢ 不能控制内部执行路径,会有很多内部程序路径没有被测试到。

 

03、灰盒测试

GREY BOX 

● 利用被测对象的整体特性信息,采用黑盒测试方法。

● 利用被测对象的内部具体实现信息,采用白盒测试方法。

● 如果既利用被测对象的整体特性信息,又利用被测对象的内部具体实现信息,采用的就是灰盒测试方法。两种信息占的比例不同,相应的灰度就不同。

● 完全是整体特性信息,就是黑盒测试,完全是内部具体实现信息,就是白盒测试。

● 灰盒测试多用于集成测试阶段,不仅关注输入、输出的正确性,同时也关注程序内部的情况。

【案例】PDA闹钟事件的测试

背景描述:闹钟是PDA(Personal Digital Assistant)上的一个应用程序,它的主要功能就是在用户设置的时间点到达时,进行响铃提醒。响铃时,无论用户当前在做什么操作,会弹出一个响铃提示界面。

提出问题:一天,负责测试此模块的工程师小叶提出一个问题“闹铃事件优先级高,在所有应用程序界面、对话框或提示框上面都会弹出,黑盒测试需要进入所有情况的用户界面,然后等待闹钟事件的发生,才能全面验证到各种情况的用户使用场景。”但这样穷举测试,需耗的时间太多,效果也并不一定好。

分析问题:关于闹钟的应用,实际上该模块只提供了一个接口。如能从代码角度分析到所有其他模块调用的是同一个闹铃接口函数(对于响铃及停止响铃后对原界面的恢复,都是统一一个接口处理的),那么再通过黑盒功能测试,在某一个用户界面进行此响铃功能的验证,即可证明代码的实现是符合需求的,这正是灰盒测试的方法。

解决问题:后来,对于闹铃功能点的系统验证,采用了灰盒测试的方法,做了代码正向、逆向分析,结合功能性用户场景进行验证,节省了近2/3的测试时间。


 END配套学习资源分享

最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】

加入我的软件测试交流群:110685036免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

全套资料获取方式:


http://www.ppmy.cn/news/242905.html

相关文章

【Django知识点】【Django Rest Framework学习】fbv开发、cbv开发、...

前言 本文内容主要讲解介绍Django Rest Framework框架,结合如下django项目学习食用 Github仓库地址 基本概念 FBV:function based views 特点 无需继承类 基于函数形式的视图开发 fbv默认为get方法,如果提供post或其他类型方法&#x…

【动态规划】最长回文子序列(java)

最长回文子序列 leetcode516. 最长回文子序列题目描述 暴力递归解题思路代码演示 递归 缓存解题思路代码演示 动态规划解题思路代码演示 动态规划专题 leetcode516. 最长回文子序列 来源:力扣(LeetCode) 链接:https://leetcode.c…

智能语音电话机器人怎么选?从这三方面下手

电销机器人市场鱼龙混杂,哪个电话机器人品牌好? 小编觉得可以从三个方面下手: 第一、核心技术 使用传统电销时需要考虑这些数据:接通率、通话时长、投诉、客户满意度等,因为它们直接影响着电销人员的业务素质&#…

你了解过“本次通话将被录音,请您谅解“背后的智能语音质检?

“为了保证通话服务质量,本次通话将被录音,请您谅解", 这句话是不是很耳熟,这里的电话录音就是为了方便公司监察、纪检、管理等部门能随机抽取电话录音对公司的客服或销售人员在与客户通话的过程服务态度作出评价: 比如是否按照规定话术…

手机录音 怎么单声道_手机通话小不是手机问题,打开这个开关,音量提高好几倍...

平时在打电话的时候,你是否有这样的困扰?明明都把手机通话音量调整到最大了,但声音却还是感觉很小的样子。在一些公共场合下,没有携带耳机,又不能将手机开通免提,这种情况实在是很磨人! 其实我们…

电话机器人源码可以低成本高效率为OEM代理前景保驾护航

深圳电销机器人OEM代理前景怎么样?随着人工智能的发展,越来越多的企业开始选择采用智能语音机器人,来减轻人工的压力,更好的服务客户,提高效率。 而随着人工智能的发展,越来越多的企业开始选择采用智能语音…

SpringBoot整合第三方技术 -- SpringBoot快速入门保姆级教程(三)

文章目录 前言三、SpringBoot整合第三方技术1.SpringBoot整合junit2.Spring整合junit入门案例3.SpringBoot整合Mybatis4.SpringBoot整合Mybatis入门案例5.SpringBoot整合Mybatis更换默认数据源 总结 前言 为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博…

高性价比TWS降噪耳机:南卡和FIIL降噪蓝牙耳机哪个更好?

近几年,TWS耳机凭借着真无线、无约束的优势,逐渐成为大家日常生活中必不可少的电子产品,相信在很多人的包包里都会装着一款真无线蓝牙耳机,无论是听音乐、看视频,还是玩游戏都能用到。 近两年,许多品牌都推…