全网超全的测试类型详解,再也不怕面试答不出来了!

在软件测试工作过程中或者在面试过程中经常会被问到一些看起来简单但是总是有些回答不上的问题,比如你说说“黑盒测试和白盒测试的区别?”,“你们公司做灰度测试么?", ”α测试和β测试有什么不一样?“,“说说 AB test 的目的什么?”...

诸如此类的一些问题,总有些同学回答不上来,今天给大家总结一下所有的测试类型以及其使用场景。

测试类型详解

黑盒测试

软件对于测试员来说就是一个黑色的盒子,测试不知道里面的代码实现,只能看到对软件的输入和以及软件的输出结果。

比如你陪女朋友去逛街,你在外面等着,看着女朋友拿着你的银行卡进去,然后看着她拎着满满的商品出来,你对商场里的具体情况以及钱具体如何花掉的并不知情。商场对于你来说就是一个黑色的盒子,你不需要知道里面具体情况,只需要知道你女朋友进去然后出来的结果是你的工资卡空了。

如果你想学习性能测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386   

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1、接口自动化之为什么要做接口自动化、2、接口自动化之request全局观、3、接口自动化之接口实战等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337.search-card.all.click

白盒测试

沿用我们上面的例子,白盒测试就相当于你陪着女朋友走进去商场里,路线和商品你看得一清二楚,其中逛得过程可能遇到的各种突发问题你也可以知道来龙去脉,虽然结果也是你的这个月工资没了,但是心里敞亮,知道具体怎么没的。

所以,白盒测试就是软件对于你来说是个白色透明的盒子,里面的结构可以一清二楚的展示出来,而你也需要对里面的实现逻辑有一定了解才能进行白盒测试。

灰盒测试

基于黑白之间,不需要具体看每一行代码,但是又需要知道具体实现的逻辑和实现。一般我们的接口测试采用的就是这种测试方法。

功能测试

就是对软件的基本的业务流程和功能的测试,保证软件可以实现用户的基本需求。这是一个最基础要保证的测试。

界面测试

也叫 UI 测试,其实就是看产品的外形好不好看?设计是否合理?排版是否清晰美观?

那关于界面美观的测试标准是什么呢?先问一个问题,这个界面设计是谁定的?没错,是产品设计出来的原型图和 UI 设计师设计出来的 UI 切图。所以,我们测试需要确保软件界面跟最终的效果图一致;其次,也可以站在用户角度上,体验这种界面风格,如果觉得不合适,也可以提 bug。

兼容性测试

一般分为软件和软件之间兼容,软件和系统软件之间的兼容,以及软件不同版本之间的兼容。

比如 B/S 架构的应用,就需要考虑浏览器的兼容,包括浏览器的类型(Chrome,Firefox,IE,360,QQ 等),浏览器的版本之间的兼容;

比如 APP 应用需要考虑手机型号的兼容,手机系统版本的兼容,还有不同屏幕大小的兼容等;

比如 PC 端应用,需要考虑操作系统版本(win7,win10,32bit,64bit 等);

易用性测试

主要测试软件测试是否符合用户使用习惯,以及是否让用户体验便捷和简单。

比如我们一般 windows 的软件关闭按钮都在右上方,如设计出来的软件在左上方就是不符合用户的使用习惯的。当然这个的易用性测试主观性比较强,所以我们需要站在大部分用户的角度去思考,而且也可以多收集不同用户的反馈去做调整和修改。

性能测试

大家在生活中应该有类似的体验,比如双十一或者双十二的集中某个时间付尾款的时候,就经常会出现页面很卡或者打不开的情况,这其实就是一种性能测试的范畴里的现象。

我们在进行功能测试的时候,使用的数据和流量就是普通的流量,所以我们需要确保在极限条件下,数量多、时间长,依然正常。这就是性能测试。这个初级测试人员做的比较少,而且需要借助一些工具或者代码来做。

安全测试

对应用软件的安全性进行测试,比如登录账号的防护,连接的安全性,扫描系统存在的一些漏洞和安全隐患,这个就需要测试人员对产品有充分的了解,也需要具备丰富的基础知识体系和各种工具、代码的使用能力。所以,一般也是建议从事了测试行业 3 年左右之后再做安全测试。

回归测试

回归测试一般就是指 Bug 被修正之后,或软件功能、环境发生变化后,以及代码被修改或者设计重构之后,需要带原来测试过的功能进行重新测试,确保修改部分不会影响其他的模块。注意这个不是 bug 验证或者修改的功能本身的测试,而且测试其余没有被修改的功能模块会不会受影响。

冒烟测试

这个测试概念来自于硬件测试,电路板的测试人员为了验证一个电路板是否好用,就先给电路板通电,如果一通电就电路板就冒烟了,说明电路板被烧坏了,那么后续详细的测试就不需要就不需要再做了,直接打回给开发重新做一个新的就好了。

这个概念引用到软件测试里,就是针对每一个新的软件版本,会先进行基本主要功能的覆盖测试,确定这个软件版本是可测的,再进行后续的详细测试;如果版本的基本功能都不能用, 那么就直接打回开发重做就好了,不用继续后面的正式的测试。

探索性测试/自由测试

探索性测试是没有详细的需求,也没有具体的方法,更没有测试用例作为依据,全靠测试人员的经验和知识储备去发散测试。

所以,这种测试对测试人员有很高的要求,需要丰富的经验积累和自我知识沉淀,所以在公司里基本不会作为一种单独的测试方法进行覆盖,可以作为一种补充。

单元测试

一般是在开发阶段,开发自己做完了一个小模块,自己做的单元测试。所以单元测试需要开发人员对代码进行测试,很多公司都是由开发人员自己进行,也是软件测试第一个阶段要做的一种的测试。

集成测试

如果说刚刚第一阶段做的单元测试是针对单个单元进行的测试,那么集成测试就是进行了简单的拼接之后的测试。测试单元之间的交互和传输。我们常说的接口测试就是一种集成测试。

系统测试

系统测试就是整个软件已经完整可见了,所有的单元都组合在一起,成为一个完整的软件了,可以看到界面并可以操作。这种测试测试测试人员首要保证的一种测试,因为这是最贴近用户场景的一种测试。

系统测试的结束也就意味着测试人员的工作结束了。

验收测试

验收测试就是最后来验证软件是否达到最开始的需求的一种测试,所以这个测试一般不是测试做的。具体由谁来做可以分情况说:

  1. 项目如果是由甲方爸爸(客户)驱动的,那会有客户那边做验收测试,看是否满足了他们的需求

  2. 如果不是客户驱动的,由公司内部产品和老板自主研发的,那么验收测试就是由产品或者老板自己做的。

不管验收由谁来做,如果验收没有通过,会打回到测试部门,重新进行系统测试。

α测试

这个测试不是所有的公司有,一般是大型的公司大型项目才会有,而且是在系统测试之后,产品基本没有什么 bug 之后做的。α测试不是测试人员自己做的,是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试。它还是在公司里内部进行,尽量模拟用户使用的场景进行的测试。

一般开发者和测试人员可以在测试现场,可以随时记录下错误和使用中出现的问题及时修复,但是测试不由测试人员进行。

β测试

β测试也一般是较为大型项目才会有的,跟α测试的区别就是不在测试环境下测试了,而是到真实用户使用环境下进行,或者在客户现场做的测试。一般开发者通常不在测试现场,Beta 测试不能由程序员或测试员完成。

在软件临近发布的最后阶段,公司会找一些合作方,把产品部署进去 beta 几个月之后,再正式上线,避免严重问题。或者直接发布一个 bata 版本召集用户进行公测,让用户帮忙发现问题。

灰度测试

系统测试通过后,将测试版本发布到线上环境,替换部分的线上服务器进行预测试。在灰度测试结束后,如果没有问题,线上版本实现会统一。所以灰度测试,本质上是上线前的测试,收集用户的反馈。

AB 测试

AB 测试跟灰度测试差不多,也是指的是系统测试通过并发布后,同一个软件功能针对不同的用户进行分组:A 组用户和 B 组用户,不同组的用户会看到不同的实现方式,目的也是收集每个用户对新版本的反馈。如果没有问题,再实现统一。

动态测试

测试对象在运行的测试,比如微信在使用,就是一种动态测试。我们做的大部分的软件测试都是动态测试。

静态测试

程序没有在运行,比如代码走查,或者软件文档测试,就都是静态测试。

手工测试

就是测试人员手动的点点点测试。

自动化测试

使用工具或者代码的方式替换手工测试,释放人力的一种测试方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/688178.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

review 10

整理磁盘操作的完整流程,如何接入虚拟机,是否成功识别,对磁盘分区工具的使用,格式化,挂载以及取消挂载、复习cp、mv和find指令 1:U盘接入虚拟机 在弹出窗口直接选择 虚拟机-可移动设备-找到u盘-连接 2&a…

matlab代码--基于注水法的MIMO信道容量实现

今天接触一个简单的注水法程序,搞懂数学原理即可看懂代码。 1 注水法简介 详细原理可以参考: MIMO的信道容量以及实现 大致理论就是利用拉格朗日乘子法,求解信道容量的最大化问题,得到的解形如往水池中注水的形式,最…

过字符设备驱动分步注册过程实现LED驱动的编写,编写应用程序测试,发布到CSDN

头文件 #ifndef __HEAD_H__ #define __HEAD_H__ typedef struct{unsigned int MODER;unsigned int OTYPER;unsigned int OSPEEDR;unsigned int PUPDR;unsigned int IDR;unsigned int ODR; }gpio_t; #define PHY_LED1_ADDR 0X50006000 #define PHY_LED2_ADDR 0X50007000 #d…

信号系统之移动平均滤波器

1 通过卷积实现 移动平均滤波器的工作原理是平均输入信号中的多个点,以产生输出信号中的每个点。在方程式形式中,这样写: 其中是 x 输入信号,y 是输出信号,M 是平均值中的点数。例如,在 5 点移动平均滤波器…

基于51单片机的智能台灯的设计与实现

摘 要:针对青少年因坐姿不正确、灯光亮度不合适、用眼过度等原因易导致的近视问题,文中提出使用51单片机作为主控制单元,选用红外检测、光敏检测、蓝牙通信、蜂鸣器和模数转换等模块,设计了一款智能台灯。该智能台灯具有节能、预防近视等功能。经测试,该台灯具有保护视力的…

php基础学习之常用系统函数

一,有关输出的语句/函数 echo语句 用于输出一个或多个字符串 print语句 用于输出一个字符串(用句点连接的多个字符串本质是一个字符串),与echo类似,但返回值为1 printf()函数 用于格式化输出字符串,类似于C…

Android下SF合成流程重学习之Refresh流程

Android下SF合成流程重学习之Refresh流程 引言 在前面初步分析完成了Android下SF合成流程重学习之Invalidate流程,我们接下来继续下面的分析。当有事务的更新或者有Buffer的更新便会触发后面刷新的流程,即Refresh流程! 一. onMessageRefresh 文件&…

QT串口通讯上位机_基础串口通讯

目录 1. 实现目标1.1 界面1.2 发送1.3 接收1.4 清除接收、发送 2. 新建工程3. 添加头文件4. 变量定义5. 完整代码6. 工程下载 1. 实现目标 1.1 界面 1.2 发送 1.3 接收 1.4 清除接收、发送 2. 新建工程 3. 添加头文件 QT serialport // #include <QDebug‘’> #incl…

数据库架构师之道:MySQL安装与系统整合指南

目录 MySQL数据库安装&#xff08;centos&#xff09; 版本选择 企业版 社区版 选哪个 MySQL特点 MySQL服务端-客户端 mysql下载选择 软件包解释 安装MySQL的方式 rpm包安装 yum方式安装 源码编译安装★ 具体的编译安装步骤★★ 环境准备 free -m命令 cat /pr…

OpenAI超级视频模型Sora登上央视,LeCun强推的「世界模型」雏形相继诞生,AGI如何能够以人类的理解方式看世界?

OpenAI超级视频模型Sora热度不减 Sora一经面世&#xff0c;瞬间成为顶流&#xff0c;话题热度只增不减&#xff0c;一度登上央视新闻报道。 强大的逼真视频生成能力&#xff0c;让许多人纷纷惊呼「现实不存在了」。 OpenAI官方技术报告 OpenAI官方Sora技术报告&#xff1a;V…

JMeter 配置元件之按条件读取CSV Data Set Config

实践环境 win10 JMeter 5.4.1 需求描述 需求是这样的&#xff0c;需要压测某个接口(取消分配接口)&#xff0c;请求这个接口之前&#xff0c;需要先登录系统(物流WMS系统)&#xff0c;并在登录后&#xff0c;选择并进入需要操作的仓库&#xff0c;然后请求接口&#xff0c;…

我的NPI项目之Android Camera (二) -- 核心部件之 Camera Sensor

说到Camera模组&#xff0c;我们比较关心的是用的什么样的sensor&#xff1f; sensor的分辨率多少&#xff0c;sensor的像素多大&#xff0c;sensor是哪家生产的等等一些问题。今天&#xff0c;我们就穿越时间&#xff0c;将sensor的历史扒一扒。 Wikipedia先看一下&#xff1…

MOSFET栅极应用电路分析汇总(驱动、加速、保护、自举等等)

概述 MOSFET是一种常见的电压型控制器件&#xff0c;具有开关速度快、高频性能、输入阻抗高、噪声小、驱动功率小、动态范围大、安全工作区域(SOA)宽等一系列的优点&#xff0c;因此被广泛的应用于开关电源、电机控制、电动工具等各行各业。栅极做为MOSFET本身较薄弱的环节&am…

【C++11新特性】详解智能指针 创建、使用、注意事项

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

小白如何学鸿蒙开发?

在互联网技术不断发展的现在&#xff0c;鸿蒙操作系统的出现标志着是能技术领域的一次重大突破&#xff0c;鸿蒙作为华为推出的一代操作系统&#xff0c;鸿蒙不仅达代表了自主创新的力量&#xff0c;还因为独特的分布式架构和全场景适配能力而备受关注。随着鸿蒙生态的不断完善…

测试架构师必备技能 —— Nginx安装部署实战

Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的免费开源Web和 反向代理服务器&#xff0c;也是一个 IMAP/POP3/SMTP 代理服务器。在高并发访问的情况下&#xff0c;Nginx是Apache服务器不错的替代品。官网数据显示每秒TPS高达50W左右。本文…

左旋字符串解析

题目 实现一个函数&#xff0c;可以左旋字符串中的k个字符。 例如&#xff1a; ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB 法1&#xff1a;一个个移动 #include<stdio.h> #include<string.h>//把一个字符串s,左移time个字符 void leftRound(char* s…

leetcode日记(26)有效的数独

用暴力解法解出来的&#xff0c;判断3*3那要写的比较多&#xff0c;判断竖列那花了点功夫。 不知道有没有更好的解法。 class Solution { public:bool isValidSudoku(vector<vector<char>>& board) {for(int i0;i<9;i){vector<char>cboard[i];for(i…

[Docker实战] 旭日X3派上Docker Openwrt +Samba 实现局域网NAS 开启AP模式

​ &#x1f308; 博客个人主页&#xff1a;Chris在Coding &#x1f3a5; 本文所属专栏&#xff1a;[旭日X3派] [Docker实战] ❤️ 前置学习专栏&#xff1a;[Linux学习] ⏰ 我们仍在旅途 …

创建补丁文件.patch

前言 在linux中&#xff0c;在工程实践中。 自己基于文件1进行了修改&#xff0c;得到文件2&#xff0c;文件1有线上仓库。时常会遇到以下两种情景&#xff1a; 由于文件过大&#xff0c;直接向组员分享文件2很麻烦。由于修改地方过多&#xff0c;每次更换环境都需要重新修改文…