【N年测试总结】测试的分类

news2024/10/2 8:31:48

一、概述

测试的分类一般有按照测试的内容进行划分和按照测试阶段划分两种大的方式。

按测试内容划分

1、需求测试
2、单元测试
3、接口测试
4、功能测试
5、UI自动化测试
6、性能测试
7、测试开发

按测试阶段划分

1、需求测试
2、单元测试
3、集成测试
4、系统测试
5、验收测试
6、回归测试

其他分类

1、α测试
2、β测试
3、λ测试

二、按测试内容划分

1、需求测试

需求测试,对于测试人员来说其实包含了两个阶段,分别是需求分析及需求评审阶段,另一个阶段就是需求分析并编写用例阶段。在需求评审会上,其实除了正式的测试人员,参会的所有人都是测试,对需求的完整性、正确性、一致性、可行性、无二义性、健壮性、必要性、可测试性、可修改性、可跟踪性进行测试(评审)。

完整性(重要):每一项需求都必须将所要实现的功能描述清楚,以使测试人员获得测试所需信息和开发人员获得设计和实现这些功能所需的所有必要信息。
正确性(重要):每一项需求都必须准确地陈述其要开发的功能,需求没有公式、业务、逻辑上的错误。
一致性:一致性是指与其它软件需求或相关标准规定不相矛盾。
可行性(重要):需求在现有的系统和环境的限制范围内是可以实施的。
无二义性:对所有需求说明都只能有一个明确统一的解释,由于自然语言极易导致二义性,所以尽量把每项需求用简洁明了的语言表达出来,同一功能用同一术语表达。
健壮性(重要):需求的说明中是否对可能出现的异常进行了分析,并且对这些异常进行了容错处理。
*必要性:每项需求的制定都是必要的且能够追溯的。
*可测试性:每项需求都能通过设计测试用例或其它的验证方法来进行测试。
*可修改性:每项需求只应在软件需求说明书中出现一次,这样更改时易于保持一致性。
*可跟踪性:应能在每项软件需求与它的根源和设计元素、源代码、测试用例之间建立起链接,这种可跟踪性要求每项需求以一种结构化的方式编写并单独标明。

需求测试对测试人员的能力要求比较高,尤其是正确性和可行性,正确性要求测试具备相关的业务知识,可行性要求测试具备一定的开发知识。

一般需求评审会上,由于时间有限,并不能对需求进行深入的分析,深入的分析往往会后移到测试人员编写用例阶段和开发人员开发阶段,更深入细致的问题才能发现。不论在哪个阶段,运用上面的框架进行需求测试,基本能够发现需求中百分之八十的问题。问题发现的越早,解决的成本越低。

单元测试

对软件中的最小可测试单元进行检查和验证。至于“单元”的大小或范围,并没有一个明确的标准,“单元”可以是一个函数、方法、类、功能模块或者子系统。
单元测试的一个重要的衡量标准就是代码覆盖率,尽量做到代码的全覆盖。常见单元测试覆盖标准:

  • 语句覆盖
  • 分支覆盖
  • 条件覆盖
  • 分支-条件覆盖
  • 条件组合覆盖
  • 路径覆盖

由于单元测试在国内的环境下,很少有公司的测试能做到,大部分都是研发自己做了,都是理想很丰满,现实不允许,所以这里也就不多介绍了。

接口测试

接口测试就是对后端研发提供的接口进行测试。接口测试第一阶段可以使用Postman进行单接口的连通性和主要入参的简单测试,第二阶段就可以使用接口自动化代码项目进行接口测试了。接口测试的内容主要如下图所示,优先级从上往下,如果业务有需要或侧重点要求不同,可以调整编写接口用例时主要测试点的优先级。
在这里插入图片描述
由于有些接口入参非常多,排列组合可能有成千上万种情况,所以需要测试人员对接口用例的编写根据优先级进行选择测试。优先级的判断参考如下:
1、需求文档要求校验字段有较高优先级
2、需求文档要求必填字段有较高优先级
3、影响金额的数据参数
4、日期参数

接口自动化测试是自动化测试中应用最广泛的自动化测试,它的适用场景限制比UI自动化测试少很多,所以一般首先建设接口自动化测试,再建设UI自动化测试。接口自动化测试项目可以使用python+pytest+allure的技术栈。

功能测试

功能测试是测试入门的第一个测试内容,也是测试最基础的工作。按照需求文档或者测试用例,对完成的功能软件进行人工的点击和使用操作,发现软件的问题。功能测试主要考虑一下内容:

  • 功能:需求文档所描述的功能是否都已经正确实现
  • 界面:需求功能是否符合UI设计、是否合理、美观
  • 兼容性:需求功能是否可以在多个不同的系统平台上正确运行
  • 安全性:需求功能是否有安全漏洞方面的问题
  • 稳定性:弱网断网、高并发访问、高温低温等场景下,是否能稳定运行
  • 易用性:功能是否符合使用习惯,方便容易使用

UI自动化测试

UI自动化测试就是使用工具或者脚本对需要测试的软件的前端界面在预设的条件下和已给的测试数据下运行系统或者应用程序,并获取其前端页面显示的数据结果进行校验,评估得出测试结论。UI自动化测试的使用所受限制会比较多,一般要考虑以下情况:
1、需求不能频繁变动(主要)
2、UI稳定(UI自动化就是基于UI层面的,UI界面总变化无法开展)
3、项目周期长(UI自动化脚本编写和调试耗时,项目周期短纯手工更高效)
4、回归测试频繁

UI自动化测试其实不是很难,实践中最困难的是对UI自动化代码脚本的维护,是比较费时费力的。

性能测试

性能测试就是是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。
并发测试是性能测试的重点,性能测试操作起来不是很难,难的是对性能指标的分析。工具有LoadRunner、Jmeter等,一般只有大公司用户量在十万级别以上的公司才有可能做性能测试,小公司和非抢购活动性质的需求,基本不会做性能测试,好的测试工具也都是收费的。

测试开发

测试开发具体还可以分为:自动化测试,性能压测,平台研发,白盒测试,工具研发等,跟代码相关的都可以定义为测试开发。包含了上面的一些跟代码相关的测试类型,这里单独列出来,主要还是因为测试开发这里主要指的是测试平台开发和测试工具开发。
测试平台和工具的开发主要是在公司的测试部门或业务发展到一定的阶段,有大量的固定的测试的流程或者操作需要管理,或者是为了部分功能测试人员服务,提高测试效率而研发的平台和工具。其实从本质上讲,测试平台和工具的开发,已经不是传统的测试了,而是开发,但是是测试部门自己的开发所以还是归为测试的一类。

三、按测试阶段划分

1、需求测试

需求测试,对于测试人员来说其实包含了两个阶段,分别是需求分析及需求评审阶段,另一个阶段就是需求分析并编写用例阶段。在需求评审会上,其实除了正式的测试人员,参会的所有人都是测试,对需求的完整性、正确性、一致性、可行性、无二义性、健壮性、必要性、可测试性、可修改性、可跟踪性进行测试(评审)。

2、单元测试

对软件中的最小可测试单元进行检查和验证。至于“单元”的大小或范围,并没有一个明确的标准,“单元”可以是一个函数、方法、类、功能模块或者子系统。

3、集成测试

集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动

4、系统测试

系统测试是将经过集成测试的软件,作为计算机系统的一个部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统进行的一系列严格有效地测试,以发现软件潜在的问题,保证系统的正常运行。

5、验收测试

验收测试是在软件产品完成了单元测试、集成测试和系统测试之后,产品发布之前所进行的软件测试活动,一般由产品经理进行验收测试。它是技术测试的最后一个阶段,也称为交付测试。验收测试的目的是确保研发的功能符合产品需求,并且可以让最终用户将其用于执行软件的既定功能和任务。

6、回归测试

回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。软件开发的各个阶段都会进行多次回归测试。

其他分类

1、α测试

α是第一个阶段,α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。由用户、测试人员、开发人员共同参与的内部测试。

2、β测试

β是第二个阶段,β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,β测试不能由程序员或测试员完成。

3、λ测试

λ是第三个阶段,此时产品已经相当成熟,只需在个别地方再做进一步的优化处理即可上线发布。

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

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

相关文章

C 连接MySQL8

Linux 安装MySQL 8 请参考文章&#xff1a;Docker 安装MySQL 8 详解 Visual Studio 2022 编写C 连接MySQL 8 C源码 #include <stdio.h> #include <mysql.h> int main(void) {MYSQL mysql; //数据库句柄MYSQL_RES* res; //查询结果集MYSQL_ROW row; //记录结…

回归预测 | MATLAB实现BES-ELM秃鹰搜索优化算法优化极限学习机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现BES-ELM秃鹰搜索优化算法优化极限学习机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现BES-ELM秃鹰搜索优化算法优化极限学习机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;效…

【学会动态规划】最长递增子序列的个数(28)

目录 动态规划怎么学&#xff1f; 1. 题目解析 2. 算法原理 1. 状态表示 2. 状态转移方程 3. 初始化 4. 填表顺序 5. 返回值 3. 代码编写 写在最后&#xff1a; 动态规划怎么学&#xff1f; 学习一个算法没有捷径&#xff0c;更何况是学习动态规划&#xff0c; 跟我…

Spring Boot 事务和事务传播机制

1. 为什么需要事务? 事务定义 将一组操作封装成一个执行单元 (封装到一起)&#xff0c;这一组的执行具备原子性, 那么就要么全部成功&#xff0c;要么全部失败. 为什么要用事务? 比如转账分为两个操作: 第一步操作:A 账户-100 元。 第二步操作:B账户 100 元。 如果没有事务&a…

【WinForm】WebView2-个性化浏览器-桌面程序开发详解

这是一个桌面程序上的浏览器&#xff0c;是用插件WebView2开发的浏览器桌面程序&#xff0c;功能体验堪比Edge浏览器&#xff0c;相比使用Chrome内核插件开发浏览器来说&#xff0c;还是用插件WebView2开发来得简单一些&#xff0c;接下来讲一讲实现过程。 开发之前&#xff0c…

Centos7部署Python程序详解

Centos7服务器部署Python 本文章前半部分为部署过程&#xff0c;后半部分为部署中碰到的问题及解决方案&#xff0c;仅供参考&#xff01;&#xff01;&#xff01;&#xff0c;本文示例为部署py文件为例。 部署步骤&#xff1a; 登录centos7服务器后 1.查看python版本 py…

Kotlin 高阶函数详解

高阶函数 在 Kotlin 中&#xff0c;函数是一等公民&#xff0c;高阶函数是 Kotlin 的一大难点&#xff0c;如果高阶函数不懂的话&#xff0c;那么要学习 Kotlin 中的协程、阅读 Kotlin 的源码是非常难的&#xff0c;因为源码中有太多高阶函数了。 高阶函数的定义 高阶函数的…

CGAL 点云分类

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 点云分类一直是点云数据应用的永恒课题,它包含很多,如地面点分类、建筑物分类、植被分类等。CGAL中也为我们提供了一种点云分类的方式,其具体的计算过程如下所述: 首先,使用点云中所携带的一些几何特征来对数据…

三、数据库索引

1、索引介绍 索引是一种用于快速查询和检索数据的数据结构&#xff0c;其本质可以看成是一种排序好的数据结构。 常见的索引结构有&#xff1a;B数&#xff0c;B树&#xff0c;Hash和红黑树等。在MySQL中&#xff0c;无论是 InnoDB还是MyISAM&#xff0c;都使用了B树作为索引…

西班牙卡瓦起泡酒的风味搭配

卡瓦是一种对食物友好的西班牙起泡酒&#xff0c;它的制作方法和香槟一样&#xff0c;可以和类似的食物搭配。卡瓦食物搭配包括各种食物&#xff0c;从海鲜和鱼到火腿&#xff0c;以及不同类型的小吃&#xff0c;也可以将卡瓦酒与甜点、水果和奶酪搭配。 卡瓦酒是世界上最著名的…

IDEA常用插件之注解插件

文章目录 注解插件JavaDoc插件安装修改配置生成文档加入自己信息 Easy JavaDoc安装插件在线安装离线安装中文名自动转英文加注释默认快捷键&#xff08;可通过IDEA快捷键设置修改&#xff09; 注解插件 JavaDoc插件 安装 修改配置 生成文档加入自己信息 Easy JavaDoc 中文文…

一种pug与html相互转换的工具

有时候看pug很不方便&#xff0c;这个语言虽然简洁&#xff0c;但可读性与维护性较差&#xff0c;所以需要进行转换&#xff0c;这个是win工具&#xff0c;比较方便。 这个工具的下载地址如下&#xff1a; https://download.csdn.net/download/qq_40032778/88244980 解压后如下…

PDFPrinting.Net Crack

PDFPrinting.Net Crack 它能够轻松灵活地预测完美的打印结果以及用户文件的示例性显示。在.NET的PDF打印中&#xff0c;可以快速浏览最关键的元素。如果用户需要获得更详细的概述&#xff0c;那么他可以查看快速入门手册&#xff0c;甚至现有文档的详细概述参考。 在这种情况下…

atxserver bug记录

8. 解决无法点击屏幕 原因&#xff1a;remotecontrol_android.html为按比例自动缩放&#xff0c;play.html&#xff08;Django&#xff09;显示的屏幕大小不会随页面放大缩小。有个h265方式获取的宽高是720*448&#xff0c;电脑上显示的大小是545*339&#xff0c;这个对不上&am…

理解机制,再探单元工厂的实现原理

最近有点忙,好久没更新文章了,今天继续再研究一下单元工厂的实现机制。为什么我们要这么重视这一块的内容呢?因为用计算机的目的是为了处理大量数据,如果数据量不大,大多情况下用纸就好了,专门用个计算设备的便捷性也就体现不出来。而大量数据的呈现方式的多样性精髓就在…

cuda编程002—流

没有使用同步的情况&#xff1a; #include <stdio.h> #include <cuda_runtime.h>__global__ void test_kernel(){printf("Message from Device.\n"); } void test(){test_kernel<<<1, 1>>>(); } #include <cuda_runtime.h> #i…

蓝蓝设计-UI设计公司作品-博晖创新原子吸收光谱仪软件交互及界面设计

博晖创新原子吸收光谱仪软件交互及界面设计 图标设计 | 交互设计 | 界面设计 博晖公司拥有强大的自主研发实力&#xff0c;建立了专业的研发团队&#xff0c;通过不断的技术创新&#xff0c;形成了分子诊断、免疫诊断、原子吸收、原子荧光及质谱五大技术平台&#xff0c;并成功…

ESP8266显示gif动态图,使用U8g2库

一.代码 #include <U8g2lib.h> //实现gif火柴人跑步动画// 定义GIF动画的帧数据 const unsigned char frame1[] {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0…

安装docker服务及docker基本操作

一、docker安装&#xff08;yum安装&#xff09; 基于centos7 1.添加docker-ce 源信息 安装依赖包&#xff08;yum-utils 提供了 yum-config-manager &#xff0c;并且 device mapper 存储驱动程序需要device-mapper-persistent-data 和 lvm2&#xff09; yum install yum-…