单元测试,集成测试,系统测试的区别是什么?

实际的测试工作当中,我们会从不同的角度对软件测试的活动进行分类,题主说的“单元测试,集成测试,系统测试”,是按照开发阶段进行测试活动的划分。这种划分完整的分类,其实是分为四种“单元测试,集成测试,系统测试,验收测试"。这四类测试,其实是一种从局部到整体测试思想。

为了给题主以及各位同学介绍清楚这4类测试的区别,我以汽车生产测试的过程为例,来分别阐述下单元测试,集成测试,系统测试,验收测试。

在这里插入图片描述

一、单元测试

1、汽车制造举例

在这里插入图片描述
在汽车的生产制造器过程当中,要先针对汽车的零部件进行测试。比如说我们可以把轮胎进行全面的一个测试。轮胎的这个测试就可以认为“单元测试”。

2、测试工作中的理解

所谓的单元测试就是我们针对程序的最小单元先进行这个小规模的测试验证。
补充:单元测试也叫单侧,是针对代码的测试,一般是由【开发】来测试(单元开发完成后,开发自测)

二、集成测试

1、汽车制造举例


上面的轮胎测试通过之后,我们就要轮胎和其他测试正常的零部件进行组装。比如说我们把轮胎和车架这两个部分进行了组装,那么在组装后是不是也要进行测试?这就集成测试。

2、测试工作中的理解

集成测试,就是把通过单元测试的各个小模块,组装成更大的模块后,进行测试验证的过程。

补充:

1)集成测试,也叫组装测试,常发生在"软件还没开发完,但部分单元模块已开发完”的这个阶段。
2)集成测试最简单形式,就是把两个已经测试过的单元组合成一个组件,测试他们的接口。
3)集成测试,一般也认为是接口测试。

三、系统测试

1、汽车制造举例


当所有的汽车零部件都组装完毕之后,也就是形成了整车。我们还需要进行整车测试验证。整车测试就是系统测试。

2、测试工作中的理解

系统测试,就是把我们整个软件系统开发完毕之后,在模拟的真实环境下进行全面测试的过程。
补充:

1)系统测试是,软件开发完成,整理架构上的测试。

  1. 系统测试一般可以认为是功能测试。

四、验收测试

1、汽车制造举例

在这里插入图片描述
实车的测试验证之后,车企是不是就可以直接进行汽车的发布上市了?还不会,通常车企还会进行一些第三方专业汽车评测机构的测试,或者邀请一些汽车大V使用,进行试用反馈。这就是验收测试。

最终通过这四个测试环节,我们把汽车生产过程当中发现的所有问题都进行解决,才能保障汽车产品它的质量是符合最终的一个需求。这时候我们才能进行产品的发布和上市。

2、测试工作中的理解

在我们这款软件产品发布到用户之前,我们也会邀请不同的用户人群来进行测试反馈。
验收测试又分为内侧和公测。

举例游戏,所谓的内测,就是邀请少量的游戏重度使用用户,来进行游戏软件的使用反馈。
所谓公测,就是我们把这款软件产品发布到这个线上,让所有的用户来进行游戏产品的一个试用反馈。

通过这个内测和公测,最终我们的软件的问题解决完毕之后,才会进行正式版本的一个对外发布。

补充:验收测试,虽说是邀请用户来测试,但测试人员也需要全程跟踪参与。

五、写在最后

很多人经常把“黑盒测试、白盒测试、灰盒测试”和“单元测试,集成测试,系统测试,验收测试”搞在一起。

其实这几个测试分类要区分清楚也很清楚。

按照开发阶段划分,就是:单元测试,集成测试,系统测试,验收测试。

按照代码的可见度划分,就是:白盒测试(没有界面,只看见代码)、黑盒测试(只有界面,看不见代码)、灰盒测试(既看不到界面,又不深入代码)。

为什么这两类测试经常混在一起呢?原因是

白盒测试是代码级的测试,也就是单元测试。

黑盒测试,没有代码,只有界面测试,可认为是点点点的功能测试,这就是系统测试。

灰盒测试,看不到界面(非界面),又不深入代码,只是在代码的交界处(接口层)进行的校验,就是接口测试,也是集成测试。

希望今天的文章,0基础的同学能彻底清楚这几个测试分类概念。

Python接口自动化测试零基础入门到精通(2023最新版)

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

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

相关文章

618京东到家APP-门详页反爬实战

一、背景与系统安全需求分析 1. 系统的重要性 上图所示是接口所属位置、对电商平台或在线商店而言,分类查商品都是很重要的,通过为用户提供清晰的商品分类,帮助他们快速找到所需产品,节省浏览时间,提升购物效率,是购物结算产生GMV的核心环节。那么电商平台为什么都很看重…

Kubernetes - 一键安装部署 K8S(附:Kubernetes Dashboard)

问题描述 不知道大伙是如何安装 K8s,特别还是集群的时候,我上一次安装搭建的时候,那个恶心到我了,真的是一步一个脚印走完整个搭建流程,爬了不少坑。 于是,才有了今天的文章,到底有没有可以一…

第16章总结

.1.1:访问构造方法 反射: 1.class类 2.获取构造方法 3.获取成员属性 4.获取成员方法 注解 1.内置注解 2.反射注解 3 创建Class对象的三种方式 1.使用getClass()方法 object str new object()…

javascript原生态xhr上传多个图片,可预览和修改上传图片为固定尺寸比例,防恶意代码,加后端php处理图片

//前端上传文件 <!DOCTYPE html> <html xmlns"http://www.w3.org/1999/xhtml" lang"UTF-8"></html> <html><head><meta http-equiv"Content-Type" content"text/html;charsetUTF-8;"/><title…

腾讯云国际-如何使用对象存储COS在 CKafka 控制台创建数据异步拉取任务?腾讯云代充

操作场景 Datahub 支持接入各种数据源产生的不同类型的数据&#xff0c;统一管理&#xff0c;再分发给下游的离线/在线处理平台&#xff0c;构建清晰的数据通道。 本文以 COS 数据为例介绍如何在 CKafka 控制台创建数据异步拉取任务&#xff0c;并对任务进行修改配置&#xf…

Windows 和 Linux 这2个系统在进行编程实现的时候的一些区别:

很惭愧&#xff0c;学了很多年才意识到&#xff0c;噢&#xff0c;原来这两个系统实现一些功能的时候会使用到不同的库&#xff0c;使用不同的函数。 那么&#xff0c;也会延伸出一些问题&#xff1a; 比如&#xff0c;如何实现版本的迁移。一个在Linux上运行的代码如何可以比…

蓝桥杯 Java k倍区间

前缀和的一个神奇算法&#xff0c;这道题暴力是遍历前缀和的差&#xff0c;也就是遍历所有区间和看他是不是能不能正好除尽k 这道题的技巧是将所有前缀和和k求余 按照求余的结果放在一个数组中 那么余数为0的前缀和a一定满足要求&#xff08;[0,a]&#xff09; 余数相同的两两…

数据结构与算法之矩阵: Leetcode 134. 螺旋矩阵 (Typescript版)

螺旋矩阵 https://leetcode.cn/problems/spiral-matrix/ 描述 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 示例 1 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]] 输出&#xff1a;[1,2,3,6,9,8,7,4,5]示…

【0基础学Java第一课】-- 初始Java

目录 1. 初识java1.1 Java是什么1.2 Java应用领域1.3 Java语言发展简史1.4 Java语言特性1.5 JRE与JDK1.6 Java开发环境1.6.1 安装JDK1.6.2 配置环境变量 1.7 初始Java中main函数1.7.1 JDK、JRE、JVM之间的关系 1.8 注释1.9 标识符1.10 关键字 1. 初识java 1.1 Java是什么 Jav…

嵌入式1.1 单片机基础总结

单片机基础总结 https://blog.csdn.net/weixin_40414160/article/details/124526924?utm_mediumdistribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-1-124526924-blog-123451395.235^v38^pc_relevant_default_base3&spm1001.2101.3001.4…

【Javascript】json

目录 什么是json&#xff1f; 书写格式 json 序列化和反序列化 序列化 反序列化 什么是json&#xff1f; JSON(JavaScript Object Notation)是⼀种轻量级的数据交换格式&#xff0c;它基于JavaScript的⼀个⼦集&#xff0c;易于⼈的编写和阅读&#xff0c;也易于机器解析…

如何绘制【逻辑回归】中threshold参数的学习曲线

threshold参数的意义是通过筛选掉低于threshold的参数&#xff0c;来对逻辑回归的特征进行降维。 首先导入相应的模块&#xff1a; from sklearn.linear_model import LogisticRegression as LR from sklearn.datasets import load_breast_cancer from sklearn.model_selecti…