测试类型分类

news2024/9/27 12:14:37

  前言👀~

上一章我们介绍了如何设计一个测试用例,接下来我们对测试类型进行分类以便更好的了解和分清不同测试测试的内容、对象、时间点等

按照测试对象划分

界面测试(也称UI测试)

可靠性测试

容错性测试

文档测试

兼容性测试

易用性测试

安装卸载测试

安全测试

性能测试

内存泄漏测试

按照是否查看代码划分

黑盒测试

白盒测试

灰盒测试

按照开发阶段进行划分

单元测试

集成测试

系统测试

回归测试

冒烟测试

验收测试

按照实施组织划分

α测试

β测试

按是否运行划分

静态测试(code review)

动态测试

按照是否手工划分

手工测试

自动化测试

按测试地域划分

国际化测试

本地化测试


如果各位对文章的内容感兴趣的话,请点点小赞,关注一手不迷路,讲解的内容我会搭配我的理解用我自己的话去解释如果有什么问题的话,欢迎各位评论纠正 🤞🤞🤞

12b46cd836b7495695ce3560ea45749c.jpeg

个人主页:N_0050-CSDN博客

相关专栏:java SE_N_0050的博客-CSDN博客  java数据结构_N_0050的博客-CSDN博客  java EE_N_0050的博客-CSDN博客


按照测试对象划分

界面测试(也称UI测试)

什么是界面?用户肉眼直观看到的都属于是界面,软件只是一种工具,软件与人的信息交流是通过界面来进行的,界面是软件与用户交流的最直接的一层,界面的设计决定了用户对我们设计的软件的第一印象

对软件界面进行测试包含的以下内容:

1.验证界面内容显示的完整性,一致性,准确性,友好性

2.验证整个界面布局和排版是否合理,不同板块字体的设计,图片的展示是否符合需求

3.对界面不同控件的测试,比如,对话框,文本框,滚动条,选项按钮等是否可以正常使用

4.界面的布局和色调符合当下时事的发展

可靠性测试

可靠性即可用性,是指系统正常运行的能力或者程度

可靠性 = 正常运行时间/(正常运行时间+非正常运行时间)*100%,比例越高说明软件可靠性越高。可用性指标一般要求达到4个或5个“9”,即99.99%或者99.999%,前者就可以想象一个系统一年之间不正常运行时间为1个小时差不多,后者则为5分钟差不多

系统非正常运行的时间可能是由于硬件,软件,网络故障或任何其他因素(如断电)造成的,这些因素能让系统停止工作,或者连接中断不能被访问,或者性能急剧降低导致不能使用软件现有的服务等

例子:就好比一个人的可靠性,你托一个人给你处理某个事,它去给你处理,处理花费的时间以及反馈可以看出它的可靠性,如果一个很简单的事情给你搞上一个月那说明这人不是很可靠,可靠性低

容错性测试

容错性测试是指系统能够处理异常,用户的错误操作而不至于系统崩溃,从而能够提高系统的可用性,就是指系统处理异常的能力,在出现异常的情况下不会导致整个软件到不能使用或者严重影响使用的一个情况

对软件进行容错性测试包含的以下内容:

1.在用户输入异常数据或执行异常操作的时候,检验系统的保护性,来分析系统的容错性。如果容错性好就会显示提示信息或内部自动进行解决,不会导致系统出错或出现崩溃。

2.通过各种手段方法测试,让软件强制出现故障,看看系统的反应如何以及如何进行处理的,然后验证系统已保存的用户数据是否丢失,系统和数据是否能尽快恢复

还有界面容错性测试,就是我们处于的这个界面网址后加上一些七七八八的数字或符号啥的看看这个界面什么反应,如果是回到主页面或者不受影响就说明界面容错性好

文档测试

在实际的测试中,最常见的是用户文件的测试,例如:手册说明书等。也会有一些公司对需求文档进行测试,来保证需求文档的质量。在需求评审的时候测试人员需要进行需求分析(文档测试)

文档测试的三大类:开发文件、用户文件、管理文件

去公司接触最多的文件有测试文件(总结了很多测试的技巧和方法)、开发文件、产品文件

文档测试的关注点:文档的术语、文档的正确性、文档的完整性、文档的一致性、文档的易用性

兼容性测试

需要考虑用户使用的系统是否和我们的软件兼容,兼容性测试需求是指明确要测试的兼容环境,考虑软,硬件的兼容

就软件兼容来说,主要考虑以下几个方面:

1.测试与应用环境的兼容性,比如操作系统,应用平台,浏览器的兼容,以及还要针对移动端或PC端再进行考虑

2.测试与第三方系统以及第三方数据的兼容性,就比如运行一个A软件又运行一个B软件和A属于同一种类型或不同,此时B不能正常运行

易用性测试

关注用户体验,让用户获得舒适,易用的体验,针对软件这方面的测试称之为易用性测试。软件具备简单易上手、直观、舒适等属性

安装卸载测试

应用的安装和卸载在任何一款APP中都属于最基本功能,一旦出错,就属于优先级为严重Critical的缺陷

主要需要考虑以下方面:

1.安装软件和卸载软件的方式,例如系统自带的软件商城、第三方的软件商城、浏览器、命令

2.软件在不同系统下是否能进行安装(安装兼容性),以及考虑空间不足的时候会有怎样的反应呢

3.安装或卸载过程中环境出现问题,例如出现死机、关机、断网会有怎么样的反应以及如何进行处理的

安全测试

安全性是指信息安全,是指计算机系统或网络保护用户数据隐私,完整,保护数据正常传输和抵御黑客,病毒攻击的能力。安全性测试属于非功能性测试很重要的一个方面,系统常见的安全漏洞和威胁如下

性能测试

就是在使用一款软件的时候这个软件的响应时间给用户带来的体验是如何的,例如查询一条信息的时候响应时间过久就反应了软件性能方面的缺陷,反之说明性能方面不错,常见的性能问题比如资源泄露、线程死锁等

衡量一个系统性能好坏的关键性指标:用户响时间,事务平均响应时间(TPS),吞吐率,每秒点击次数,内存和CPU使用率等

内存泄漏测试

对于内存泄露用户感受不到是什么样的存在,随着内存泄露的不断累加内存空间会越来越紧张对系统造成一定的影响,会出现卡顿严重点导致无响应

内存泄漏的检测方法:

人工静态法:代码走读,人工查找未被回收的内存

自动工具法:借助相应测试内存泄漏的工具,记录每次内存分配,清楚告诉用户内存是如何泄漏的


按照是否查看代码划分

黑盒测试

就是在不关心程序逻辑和内部结构的情况下,检查系统功能是否按照需求规格说明书的规定正常使用测试人员通过输入数据,观察输出结果来验证软件是否满足需求

黑盒测试用到的测试方法:有等价类,边界值,判定表法,场景法,错误猜测法等

测试对象: 软件的功能和用户界面

测试依据: 软件的需求规格说明书和功能说明

优点:不需要关心代码内部的逻辑与实现,站在用户的角度设计测试用例,比较容易想到会涉及哪些功能,提升测试人员的思维,测试用例容易设计,能够发现功能上的缺陷

缺点: 无法检测到代码内部的逻辑缺陷或性能问题

白盒测试

又称为结构测试或逻辑测试,它一般用来分析程序的内部结构,针对程序的逻辑结构来设计测试用例进行测试白盒测试关注的是代码逻辑,所以对业务功能会有一定的疏漏

白盒测试的测试目的:通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致

白盒测试主要包含六种测试方法:语句覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖、分支覆盖等

1.    语句覆盖: 确保代码中的每个语句至少被执行一次

2.    分支覆盖: 确保代码中的每个分支(如 if 语句的 true 和 false 分支)至少被执行一次

3.    条件覆盖: 测试每个条件表达式的所有可能结果(true 和 false)

4.    路径覆盖: 测试代码中的所有独立路径

5.    循环覆盖: 针对循环结构进行测试,验证循环的边界和执行次数

测试对象: 软件的代码逻辑和内部结构

测试依据: 软件的源代码和设计文档

优点: 可以检测代码中的逻辑错误和不完整的路径覆盖

缺点: 需要测试人员具有较强的编程能力和代码理解能力

灰盒测试
 

介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。就是不仅要关心程序内部还要关注功能是否符合要求


按照开发阶段进行划分

单元测试

单元测试是对软件组成单元进行测试。其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单位:模块。就是针对系统最小单元测试,就是一个个类一个个方法

测试阶段:编码后或者编码前(TDD,测试驱动开发)

测试对象:最小模块

测试人员:白盒测试工程师或开发工程师

测试依据:代码和注释+详细设计文档

测试方法:白盒测试

测试内容:模块接口测试、边界测试等

集成测试

对系统的接口及集成后的功能进行正确性检测的测试工作。集成主要目的是检查软件模块之间的接口是否正确

测试阶段:一般单元测试之后进行

测试对象:模块间的接口

测试人员:白盒测试工程师或开发工程师

测试依据:单元测试的模块+概要设计文档

测试方法:黑盒测试与白盒测试相结合

测试内容:模块之间数据传输、模块之间功能冲突

系统测试

将系统运行起来对软件上的所有功能模块以及所运行的硬件环境进行测试,以验证系统是否满足需求规格说明书中的所有要求

测试阶段:集成测试通过之后

测试对象:整个系统(软、硬件)

测试人员:黑盒测试工程师

测试依据:需求规格说明文档

测试方法:黑盒测试

测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性等

回归测试

回归测试旨在确保软件在进行修改或更新后,之前已经测试过的功能仍然能够正常工作,不会因为新的修改或更新而出现新的问题或错误。就是对原先的代码做出修改后测试一下这些功能还能不能正常使用

回归测试通常采用黑盒测试方法,即测试人员不需要了解内部实现细节,只需要验证软件的功能是否符合用户需求和预期。在选择回归测试用例时,应该优先选择能够自动化的测试用例,以提高测试效率和准确性

冒烟测试

在正式进行系统测试之前执行。冒烟测试一般在开发人员开发完毕后先进行冒烟测试后,再提交给测试人员来进行测试时,先进行冒烟测试,保证基本功能正常,不阻碍后续的测试。冒烟测试可以理解为系统测试前的预测试,如果冒烟测试通过,则测试人员开始进行正式的系统测试,如果不通过,则测试人员可以让开发人员重新修复代码直到冒烟测试通过,再开始进行系统测试

一个冒烟测试如何执行的?

首先一个测试流程从我们需求分析阶段->测试人员梳理测试点梳理完后也就是梳理测试用例->评审测试用例->测试->项目上线

在梳理测试点的时候如果这个测试点涉及到此次核心模块的话就可以标记为冒烟测试用例,在评审测试用例的时候,如果这个冒烟测试用例不通过则无法进入下一个阶段的测试,注意这个冒烟测试用例不仅是测试人员执行的,也会给到开发进行执行,先让开发执行一下看看能不能通过,如果通过了才给到测试人员进行测试

回归测试和冒烟测试都属于是系统测试

验收测试

验收测试属于是部署软件前最后一个测试,属于技术测试的最后一个阶段,也称为交付测试。通常指的用户来进行验收测试,目的是验证产品是否符合用户需求,实际上主要还是由产品/运维进行验收


测试阶段:系统测试通过之后

测试对象:整个系统(包括软硬件)

测试人员:主要是最终用户或者需求方

测试依据:用户需求、验收标准(测试人员写的)

测试方法:黑盒测试

测试内容:同系统测试(功能...各类文档等)


按照实施组织划分

α测试

α测试先于β测试之前,让用户或除了开发和测试人员外的公司内部人员在开发环境进行测试


β测试

用户在实际使用环境下进行测试,不限时间和地点

α测试和β测试的区别:测试环境和测试时间,α测试先于β测试之前。举个例子就是游戏的内测和公测的区别,内测的参与人员属于是除了开发和测试人员的其他人员以及少数被选中玩家等在开发环境下进行测试,公测的话则面向任何对这个游戏感兴趣的玩家来参与测试,收集更多的意见对产品做出调整,最后也就到了正式发布版


按是否运行划分

静态测试(code review)

不实际运行被测软件,仅通过分析或检查源程序的设计、内部结构、逻辑、代码风格和规格等来检查程序的正确性,就是看代码然后分析

动态测试

实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程,就是把程序跑起来测试,大多数软件测试工作都属于动态测试

所以判断一个测试属于动态测试还是静态的,唯一的标准就是看是否运行程序


按照是否手工划分

手工测试

手工执行测试用例,模拟用户的操作,通过手动检查和验证软件功能

优点:

灵活性:适合探索性测试和用户体验测试,能够根据即时观察调整测试策略

直观性:测试人员可以通过观察界面和行为,更直观地发现问题

低初始成本:无需编写脚本和维护测试代码,适合小规模或一次性测试

缺点:执行效率低量大易出错,难以快速覆盖大量测试用例


自动化测试

自动化测试是利用自动化工具执行测试用例,以减少人工干预。自动化工具可以模拟用户操作,执行测试步骤,并自动记录结果分类:接口测试、UI测试等。接口测试的ROI(产出投入比)要比UI测试高

自动化的价值和意义是节省时间和人力,能够快速覆盖大量测试场景和数据集,自动化脚本使用率越高价值也越高。并不是所有测试都适用自动化测试,比如项目不稳定、功能频繁变动的项目。随着软件的变化,需要更新和维护测试脚本,所以缺点比较明显脚本不易快速适应测试场景的变化


自动化测试能否完全替代手工测试?

首先答案肯定是不行的,手工测试适合探索性测试和用户体验评估这些测试是自动化测试无法替代的,需要靠我们的直觉和想象,并且我们可以根据发现的问题及时进行调整自动化测试适合回归测试和大量重复性测试,能节省时间提高效率,但是自动化测试需要编写脚本投入的时间和资源较多并且对于测试环境变化自动化测试无法做出很好的适应和调整,并且脚本需要随着应用程序的变化而更新保证其有效性


按测试地域划分

国际化测试

测试在各种语言环境下,应用程序是否能被正确地安装,各种操作系统和用户区域设置下,通用功能是否能正确地使用等根据不同国家的风格进行测试


本地化测试

上面我们所讲的全是本地化测试

以上便是本章内容,关于在不同场景下根据不同情况对测试进行划分,根据需求、场景、情况等选择对应的测试方法💕

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

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

相关文章

vue2怎么上传文件夹,并展示文件夹内的图片?

我使用的是element-ui组件库,发现el-upload组件并不能满足需求,于是用原生实现一下,这里贴一下关键代码,如果大家有更好的实现方法,欢迎分享!! 实现效果:

Jangow-1.0.1靶机

一、安装Jangow: 1.0.1靶机 下载靶机,导入到virtualBox里面 开机可以看到,他已经给出了靶机的IP地址,就不用我们自己去探测了 二、信息收集 扫描靶机的端口 首先访问80端口 扫描目录也就是一个site 点击site,来到以下界面 发现…

进阶SpringBoot之自动装配原理

pom.xml&#xff1a; spring-boot-dependencies -> spring-boot-starter-parent spring-boot-dependencies&#xff1a;核心依赖在父工程&#xff0c;引入依赖时不需要指定版本 启动器&#xff1a;SpringBoot 的启动场景 <dependency><groupId>org.springfra…

机器学习练手(二):基于KMeans的股票分类

总结&#xff1a;本文为和鲸python 可视化探索训练营资料整理而来&#xff0c;加入了自己的理解&#xff08;by GPT4o&#xff09; 原活动链接 在前一关我们学习了逻辑回归&#xff0c;学会如何训练模型、数据基础性分析、如何处理空值等操作&#xff0c;下面我们开始新的一关…

AI+生命科学第二课:入门RNA和特征学习 【Datawhale AI夏令营】

教程链接&#xff1a;Task2&#xff1a;深入理解赛题&#xff0c;入门RNN和特征工程 打卡;https://linklearner.com/activity/12/4/4 在大佬讲解的基础上&#xff0c;带上一些我自己的理解 分析训练流程 从原始特征到输入模型 初始数据转换为tensor后&#xff0c;将x通过fo…

【C++】初识引用

目录 概念引用的五大特性引用在定义时必须初始化一个变量可以有多个引用一个引用可以继续有引用引用了一个实体就不能再引用另一个实体可以对任何类型做引用(包括指针) 引用使用的两种使用场景做参数交换两数单链表头结点的修改 做返回值优化传递返回值 常引用权限放大这时候进…

【前端学习笔记二】CSS基础二

一、颜色模型 1.颜色设置 颜色名称 https://www.w3schools.com/colors/colors_names.asp 这里是一些颜色的名称&#xff08;关键字&#xff09;&#xff0c;比如red、black、green等&#xff0c;可以直接指定名称来设置颜色。名称不区分大小写。 color:red;transparent tr…

OCC 网格化(三)-网格划分算法原理

目录 一、简介 二、基本原理 三、工作流程 四、BRepMesh模块与网格化流程 4.1 BRepMesh 主要组件 4.2 工作流程 4.3 网格生成示例 五、关键参数总结 一、简介 BRepMesh_IncrementalMesh 是一种基于迭代细分的网格划分算法,通过设置线性偏转和角偏转参数,可以生成高精…

利用Python爬虫实现数据收集与挖掘

Python爬虫通常使用requests、selenium等库来发送HTTP请求&#xff0c;获取网页内容&#xff0c;并使用BeautifulSoup、lxml等库来解析网页&#xff0c;提取所需的数据。 以下是一个简单的Python爬虫示例&#xff0c;用于从某个网页上抓取数据&#xff1a; import requests …

免费【2024】springboot 大学生志愿者管理系统的设计与实现

博主介绍&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围&#xff1a;SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化…

Executing an update/delete query,解决Hibernate更新数据库报错

问题描述 在使用Hibernate更新数据库中一条记录时,发送如下错误: javax.persistence.TransactionRequiredException: Executing an update/delete query at org.hibernate.internal.AbstractSharedSessionContract.checkTransactionNeededForUpdateOperation(AbstractShare…

HCIA基础回顾

OSI参考模型 OSI&#xff08;Open System Interconnect&#xff09;参考模型&#xff0c;即为开放式系统互连参考模型。 应用层&#xff1a;人机交互&#xff0c;提供网络服务。 表示层&#xff1a;将逻辑语言转换为二进制语言&#xff0c;定义数据格式。 会话层&#xff1…

Linux 安装gradle

1.下载 下载地址&#xff1a; 下载地址&#xff1a; Gradle | ReleasesFind binaries and reference documentation for current and past versions of Gradle.https://gradle.org/releases/ 2. 解压 unzip gradle-7.6.2-all.zip 3.修改配置文件 #1.进入配置文件 vim /etc/…

【探索Linux】P.44(数据链路层 —— 以太网的帧格式 | MAC地址 | MTU | ARP协议)

阅读导航 引言一、认识以太网二、以太网的帧格式三、MAC地址四、MTU五、ARP协议温馨提示 引言 在深入探讨了网络层的IP协议之后&#xff0c;本文将带领读者进一步深入网络的底层——数据链路层。我们将详细解析以太网的帧格式&#xff0c;这是数据链路层传输数据的基本单元&am…

漏洞复现:Apache solr

目录 漏洞简述 环境搭建 漏洞复现 漏洞检测 漏洞修复 漏洞简述 Apache Solr是一个开源的搜索服务&#xff0c;使用Java编写、运行在Servlet容器的一个独立的全文搜索服务器&#xff0c;是Apache Lucene项目的开源企业搜索平台。 该漏洞是由于没有对输入的内容进行校验&…

深度体验:IntelliJ Idea自带AI Assistant,开启面向AI编程新纪元!

首发公众号&#xff1a; 赵侠客 引言 JetBrains AI Assistant 是 JetBrains 集成开发环境&#xff08;IDE&#xff09;中嵌入的一款智能开发助手工具&#xff0c;旨在通过人工智能技术来简化和提升软件开发过程&#xff0c;我深度体验了一下在IntelliJ IDEA 2024.2 Beta (Ulti…

JAVA项目基于SSM的学生成绩管理系统

目录 一、前言 二、技术介绍 三、项目实现流程 四、论文流程参考 五、核心代码截图 专注于大学生实战开发、讲解和毕业答疑等辅导&#xff0c;获取源码后台 一、前言 二、技术介绍 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端…

全球氢化双酚A (HBPA)市场规划预测:2030年市场规模将接近1330亿元,未来六年CAGR为2.7%

一、引言 随着全球化工行业的持续发展&#xff0c;氢化双酚A (HBPA)作为重要的化工原料&#xff0c;其市场重要性日益凸显。本文旨在探索HBPA行业的发展趋势、潜在商机及其未来展望。 二、市场趋势 全球HBPA市场的增长主要受全球化工行业增加、消费者对高性能化工产品要求提高…

vue3内置组件Suspense

给多个异步组件提供一个统一的状态管理 使用前&#xff0c;有两个loading... 使用后&#xff0c; 只有一个loading... Index.vue: <script setup lang"ts"> import { onMounted, ref, defineAsyncComponent } from vue import { useRouter } from vue-router…

CTF入门教程(非常详细)从零基础入门到竞赛,看这一篇就够了!

一、CTF简介 CTF&#xff08;Capture The Flag&#xff09;中文一般译作夺旗赛&#xff0c;在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会&#xff0c;以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。…