超全的测试类型详解,再也不怕面试答不出来了!
在软件测试工作过程中或者在面试过程中经常会被问到一些看起来简单但是总是有些回答不上的问题,比如你说说“黑盒测试和白盒测试的区别?”,“你们公司做灰度测试么?", ”α测试和β测试有什么不一样?“,“说说 AB test 的目的什么?”...诸如此类的一些问题,总有些同学回答不上来,今天给大家总结一下所有的测试类型以及其使用场景。 |
测试类型详解
黑盒测试
软件对于测试员来说就是一个黑色的盒子,测试不知道里面的代码实现,只能看到对软件的输入和以及软件的输出结果。
比如你陪女朋友去逛街,你在外面等着,看着女朋友拿着你的银行卡进去,然后看着她拎着满满的商品出来,你对商场里的具体情况以及钱具体如何花掉的并不知情。商场对于你来说就是一个黑色的盒子,你不需要知道里面具体情况,只需要知道你女朋友进去然后出来的结果是你的工资卡空了。
白盒测试
沿用我们上面的例子,白盒测试就相当于你陪着女朋友走进去商场里,路线和商品你看得一清二楚,其中逛得过程可能遇到的各种突发问题你也可以知道来龙去脉,虽然结果也是你的这个月工资没了,但是心里敞亮,知道具体怎么没的。
所以,白盒测试就是软件对于你来说是个白色透明的盒子,里面的结构可以一清二楚的展示出来,而你也需要对里面的实现逻辑有一定了解才能进行白盒测试。
灰盒测试
基于黑白之间,不需要具体看每一行代码,但是又需要知道具体实现的逻辑和实现。一般我们的接口测试采用的就是这种测试方法。
功能测试
就是对软件的基本的业务流程和功能的测试,保证软件可以实现用户的基本需求。这是一个最基础要保证的测试。
界面测试
也叫 UI 测试,其实就是看产品的外形好不好看?设计是否合理?排版是否清晰美观?
那关于界面美观的测试标准是什么呢?先问一个问题,这个界面设计是谁定的?没错,是产品设计出来的原型图和 UI 设计师设计出来的 UI 切图。所以,我们测试需要确保软件界面跟最终的效果图一致;其次,也可以站在用户角度上,体验这种界面风格,如果觉得不合适,也可以提 bug。
兼容性测试
一般分为软件和软件之间兼容,软件和系统软件之间的兼容,以及软件不同版本之间的兼容。
比如 B/S 架构的应用,就需要考虑浏览器的兼容,包括浏览器的类型(Chrome,Firefox,IE,360,QQ 等),浏览器的版本之间的兼容;
比如 APP 应用需要考虑手机型号的兼容,手机系统版本的兼容,还有不同屏幕大小的兼容等;
比如 PC 端应用,需要考虑操作系统版本(win7,win10,32bit,64bit 等);
易用性测试
主要测试软件测试是否符合用户使用习惯,以及是否让用户体验便捷和简单。
比如我们一般 windows 的软件关闭按钮都在右上方,如设计出来的软件在左上方就是不符合用户的使用习惯的。当然这个的易用性测试主观性比较强,所以我们需要站在大部分用户的角度去思考,而且也可以多收集不同用户的反馈去做调整和修改。
性能测试
大家在生活中应该有类似的体验,比如双十一或者双十二的集中某个时间付尾款的时候,就经常会出现页面很卡或者打不开的情况,这其实就是一种性能测试的范畴里的现象。
我们在进行功能测试的时候,使用的数据和流量就是普通的流量,所以我们需要确保在极限条件下,数量多、时间长,依然正常。这就是性能测试。这个初级测试人员做的比较少,而且需要借助一些工具或者代码来做。
安全测试
对应用软件的安全性进行测试,比如登录账号的防护,连接的安全性,扫描系统存在的一些漏洞和安全隐患,这个就需要测试人员对产品有充分的了解,也需要具备丰富的基础知识体系和各种工具、代码的使用能力。所以,一般也是建议从事了测试行业 3 年左右之后再做安全测试。
回归测试
回归测试一般就是指 Bug 被修正之后,或软件功能、环境发生变化后,以及代码被修改或者设计重构之后,需要带原来测试过的功能进行重新测试,确保修改部分不会影响其他的模块。注意这个不是 bug 验证或者修改的功能本身的测试,而且测试其余没有被修改的功能模块会不会受影响。
冒烟测试
这个测试概念来自于硬件测试,电路板的测试人员为了验证一个电路板是否好用,就先给电路板通电,如果一通电就电路板就冒烟了,说明电路板被烧坏了,那么后续详细的测试就不需要就不需要再做了,直接打回给开发重新做一个新的就好了。
这个概念引用到软件测试里,就是针对每一个新的软件版本,会先进行基本主要功能的覆盖测试,确定这个软件版本是可测的,再进行后续的详细测试;如果版本的基本功能都不能用, 那么就直接打回开发重做就好了,不用继续后面的正式的测试。
探索性测试/自由测试
探索性测试是没有详细的需求,也没有具体的方法,更没有测试用例作为依据,全靠测试人员的经验和知识储备去发散测试。
所以,这种测试对测试人员有很高的要求,需要丰富的经验积累和自我知识沉淀,所以在公司里基本不会作为一种单独的测试方法进行覆盖,可以作为一种补充。
单元测试
一般是在开发阶段,开发自己做完了一个小模块,自己做的单元测试。所以单元测试需要开发人员对代码进行测试,很多公司都是由开发人员自己进行,也是软件测试第一个阶段要做的一种的测试。
集成测试
如果说刚刚第一阶段做的单元测试是针对单个单元进行的测试,那么集成测试就是进行了简单的拼接之后的测试。测试单元之间的交互和传输。我们常说的接口测试就是一种集成测试。
系统测试
系统测试就是整个软件已经完整可见了,所有的单元都组合在一起,成为一个完整的软件了,可以看到界面并可以操作。这种测试测试测试人员首要保证的一种测试,因为这是最贴近用户场景的一种测试。
系统测试的结束也就意味着测试人员的工作结束了。
验收测试
验收测试就是最后来验证软件是否达到最开始的需求的一种测试,所以这个测试一般不是测试做的。具体由谁来做可以分情况说:
-
项目如果是由甲方爸爸(客户)驱动的,那会有客户那边做验收测试,看是否满足了他们的需求
-
如果不是客户驱动的,由公司内部产品和老板自主研发的,那么验收测试就是由产品或者老板自己做的。
不管验收由谁来做,如果验收没有通过,会打回到测试部门,重新进行系统测试。
α测试
这个测试不是所有的公司有,一般是大型的公司大型项目才会有,而且是在系统测试之后,产品基本没有什么 bug 之后做的。α测试不是测试人员自己做的,是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试。它还是在公司里内部进行,尽量模拟用户使用的场景进行的测试。
一般开发者和测试人员可以在测试现场,可以随时记录下错误和使用中出现的问题及时修复,但是测试不由测试人员进行。
β测试
β测试也一般是较为大型项目才会有的,跟α测试的区别就是不在测试环境下测试了,而是到真实用户使用环境下进行,或者在客户现场做的测试。一般开发者通常不在测试现场,Beta 测试不能由程序员或测试员完成。
在软件临近发布的最后阶段,公司会找一些合作方,把产品部署进去 beta 几个月之后,再正式上线,避免严重问题。或者直接发布一个 bata 版本召集用户进行公测,让用户帮忙发现问题。
灰度测试
系统测试通过后,将测试版本发布到线上环境,替换部分的线上服务器进行预测试。在灰度测试结束后,如果没有问题,线上版本实现会统一。所以灰度测试,本质上是上线前的测试,收集用户的反馈。
AB 测试
AB 测试跟灰度测试差不多,也是指的是系统测试通过并发布后,同一个软件功能针对不同的用户进行分组:A 组用户和 B 组用户,不同组的用户会看到不同的实现方式,目的也是收集每个用户对新版本的反馈。如果没有问题,再实现统一。
动态测试
测试对象在运行的测试,比如微信在使用,就是一种动态测试。我们做的大部分的软件测试都是动态测试。
静态测试
程序没有在运行,比如代码走查,或者软件文档测试,就都是静态测试。
手工测试
就是测试人员手动的点点点测试。
自动化测试
使用工具或者代码的方式替换手工测试,释放人力的一种测试方法。
相关文章:

超全的测试类型详解,再也不怕面试答不出来了!
在软件测试工作过程中或者在面试过程中经常会被问到一些看起来简单但是总是有些回答不上的问题,比如你说说“黑盒测试和白盒测试的区别?”,“你们公司做灰度测试么?", ”α测试和β测试有什么不一样?“࿰…...

【Linux】
Linux零基础入门 列出文件/文件夹新建/切换路径查看当前路径重命名或者移动文件夹拷贝文件/文件夹删除文件夹设置环境变量编辑文本文件压缩和解压查看cpu的信息查看/杀死进程查看进程的CPU和内存占用重定向日志场景一场景二场景三场景四 列出文件/文件夹 命令:Ls(L…...

「 网络安全常用术语解读 」网络攻击者的战术、技术和常识知识库ATTCK详解
引言:随着网络攻击手段的不断升级和多样化,网络安全领域面临着越来越严峻的挑战。为了帮助网络安全专业人员更好地识别和防御网络攻击,MITRE公司创建了ATT&CK框架,以提供一个统一且结构化的方法来描述网络攻击者的行为和技巧。…...
Java.lang.Integer类详解
Java.lang.Integer类详解 大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!在今天的文章中,我们将深度解析Java中的一个重要类——java.lang.Integer&…...

GitFlow工作流
基于 Git 这一版本控制系统,通过定义不同的分支,探索合适的工作流程来完成开发、测试、修改等方面的需求。 例如:在开发阶段,创建 feature 分支,完成需求后,将此分支合并到 develop 分支上;在发…...
GitHub Copilot 与 OpenAI ChatGPT 的区别及应用领域比较
GitHub Copilot 和 OpenAI ChatGPT 都是近年来颇受关注的人工智能项目,它们在不同领域中的应用继续引发热议。本文旨在分析和比较这两个项目的区别,从技术原理、应用场景、能力和限制、输出结果、能力与限制和发展前景等方面进行综合评估,帮助…...

【C++】类和对象(上篇)
文章目录 🛟一、面向过程和面向对象初步认识🛟二、类的引入🛟三、类的定义📝1、类的两种定义方式📝2、成员变量命名规则的建议 🛟四、类的访问限定符及封装🍩1、访问限定符🍩2、封装…...

甜蜜而简洁——深入了解Pytest插件pytest-sugar
在日常的软件开发中,测试是确保代码质量的关键步骤之一。然而,对于测试报告的生成和测试结果的可读性,一直以来都是开发者关注的焦点。Pytest插件 pytest-sugar 以其清晰而美观的输出,为我们提供了一种愉悦的测试体验。本文将深入介绍 pytest-sugar 插件的基本用法和实际案…...

SpringBoot3整合OpenAPI3(Swagger3)
文章目录 一、引入依赖二、使用1. OpenAPIDefinition Info2. Tag3. Operation4. Parameter5. Schema6. ApiResponse swagger2更新到3后,再使用方法上发生了很大的变化,名称也变为OpenAPI3。 官方文档 一、引入依赖 <dependency><groupId>…...
2023美赛各题分析,2024美赛数学建模思路解析2.2日第一时间更新
目录 2024美赛数学建模各题思路模型代码:开赛后第一时间更新,更新见文末 一、2023题目重述 拟解决的问题 我们的工作: 二、模型和计算 1.数据预处理 2.报告数量区间预测模型 3.猜词结果分布预测模型 2024美赛数学建模交流࿰…...

分享一个学习git的网站
Learn Git Branching...
用户拉新的4大关键策略,照着做就对了!
今天给大家分享用户拉新的4个关键策略,掌握了这些策略,不仅有助于增加用户数量,还能让对方成为你忠实的粉丝。 1、制定明确的目标:在开始拉新之前,你需要明确自己的目标。你想要吸引什么样的用户?你希望他…...

如何用“VMware安装Ubuntu”win11系统?
一、 下载Ubuntu 企业开源和 Linux |Ubuntu的 二、 安装 三、 启动虚拟机 选中Try or Install Ubuntu Server,按回车...
ZJOI2009 对称的正方形
P2601 [ZJOI2009] 对称的正方形 题目大意 给定一个 n m n\times m nm的矩阵,求这个矩阵中满足上下对称且左右对称的正方形子矩阵的个数。 1 ≤ n , m ≤ 1000 1\leq n,m\leq 1000 1≤n,m≤1000 题解 首先,我们对原矩阵、左右翻转后的矩阵、上下翻转后…...

大模型学习与实践笔记(十一)
一、使用OpenCompass 对模型进行测评 1.环境安装: git clone https://github.com/open-compass/opencompass cd opencompass pip install -e . 当github超时无法访问时,可以在原命令基础上加上地址: https://mirror.ghproxy.com git clon…...

Elasticsearch+Kibana 学习记录
文章目录 安装Elasticsearch 安装Kibana 安装 Rest风格API操作索引基本概念示例创建索引查看索引删除索引映射配置(不配置好像也行、智能判断)新增数据随机生成ID自定义ID 修改数据删除数据 查询基本查询查询所有(match_all)匹配查…...

Cesium叠加超图二维服务、三维场景模型
前言 Cesium作为开源的库要加超图的服务则需要适配层去桥接超图与Cesium的数据格式。这个工作iClient系列已经做好,相比用过超图二维的道友们可以理解:要用Openlayer加载超图二维,那就用iClient for Openlayer库去加载;同样的要用…...
【低危】OpenSSL 拒绝服务漏洞
漏洞描述 OpenSSL 是广泛使用的开源加密库。 在 OpenSSL 3.0.0 到 3.0.12, 3.1.0 到 3.1.4 和 3.2.0 中 ,使用函数 EVP_PKEY_public_check() 来检查 RSA 公钥的应用程序可能会遇到长时间延迟。如果检查的密钥是从不可信任的来源获取的,这可能会导致拒绝…...
TDL-Tiny Synopsis-TED-ED 网络理论 Network Theory
Tiny Synopsis on TED-ED-Network Theory I) Webpage addressII)Context ExceptionIII) Diagram/Chart Research&Developement I) Webpage address URL Resource II)Context Exception what does “going viral” on Internet really mean? (网络…...

GIS项目实战08:JetBrains IntelliJ IDEA 2022 激活
为什么选择 IntelliJ IDEA 使用编码辅助功能更快地编写高质量代码,这些功能可在您键入时搜索可能的错误并提供改进建议,同时无缝地向您介绍编码、新语言功能等方面的社区最佳实践。 IntelliJ IDEA 了解您的代码,并利用这些知识通过在每种上…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...

无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...