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

ops/2024/12/15 22:22:39/

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

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

在这里插入图片描述

四类测试进行顺序

一、单元测试

1、汽车制造举例

在这里插入图片描述

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

2、测试工作中的理解

所谓的单元测试就是我们针对程序的最小单元先进行这个小规模的测试验证。

补充:单元测试也叫单侧,是针对代码的测试,一般是由【开发】来测试(单元开发完成后,开发自测)

二、集成测试

1、汽车制造举例

图片

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

2、测试工作中的理解

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

补充:

1)集成测试,也叫组装测试,常发生在"软件还没开发完,但部分单元模块已开发完”的这个阶段。

2)集成测试最简单形式,就是把两个已经测试过的单元组合成一个组件,测试他们的接口。

3)集成测试,一般也认为是接口测试。

三、系统测试

1、汽车制造举例
图片

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

2、测试工作中的理解

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

补充:

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

2、系统测试一般可以认为是功能测试。

四、验收测试

1、汽车制造举例

在这里插入图片描述

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

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

2、测试工作中的理解

在我们这款软件产品发布到用户之前,我们也会邀请不同的用户人群来进行测试反馈。

验收测试又分为内侧和公测。

举例游戏,所谓的内测,就是邀请少量的游戏重度使用用户,来进行游戏软件的使用反馈。

所谓公测,就是我们把这款软件产品发布到这个线上,让所有的用户来进行游戏产品的一个试用反馈。

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

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

五、写在最后

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

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

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

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

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

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

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

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

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


http://www.ppmy.cn/ops/142221.html

相关文章

代码随想录第43天

300.最长递增子序列 # Dynamic programming. class Solution:def lengthOfLIS(self, nums: List[int]) -> int:if not nums: return 0dp [1] * len(nums)for i in range(len(nums)):for j in range(i):if nums[j] < nums[i]: # 如果要求非严格递增&#xff0c;将此行 …

基于PLC的工业搬运机器人设计

摘要 随着科技的不断发展&#xff0c;自动化技术的智能化越来越能体现出在工业生产当中的重要性&#xff0c;提高了我们的生产效率。自动化控制的设备可以代替人工进行全天候不间断工作&#xff0c;很大程度上解放了劳动力降低了人工成本。机器人一直以来都是科技发展前沿自动…

【5】数据分析基础(series2)

前面&#xff0c;我们了解了Series这种数据结构&#xff0c;学习了如何创建一个Series。 接下来&#xff0c;我们学习访问Series的数据的两种方式&#xff1a; 1. 位置索引访问 2. 索引标签访问 访问Series的数据 1. 位置索引访问 这种访问方式和列表相同&#xff0c;是基于…

jvm结构介绍

Java虚拟机&#xff08;JVM&#xff09;是Java平台的核心组件&#xff0c;它负责将Java字节码转换为机器码 1. 类加载子系统&#xff08;Class Loading Subsystem&#xff09;&#xff1a; • 负责将Java类加载到JVM中。这包括从文件系统、网络或其他来源读取.class文件&#x…

六、nginx负载均衡

负载均衡&#xff1a;将四层或者七层的请求分配到多台后端的服务器上。 从而分担整个业务的负载。提高系统的稳定性&#xff0c;也可以提高高可用&#xff08;备灾&#xff0c;其中一台后端服务器如果发生故障不影响整体业务&#xff09;. 负载均衡的算法 round robin 轮询 r…

IDEA关闭注释折叠

参考&#xff1a;IDEA关闭注释折叠(注释doc的rendered view模式)_idea toggle rendered view-CSDN博客

ansible自动化运维(四)jinjia2模板

Jinjia2模板 前面说到playbook组成的时候&#xff0c;有介绍到template模块&#xff0c;而template模块对模板文件进行渲染时&#xff0c;使用的就是jinja2模板引擎&#xff0c;jinja2本身就是基于python的模板引擎&#xff0c;所以下面先来了解一下jinjia2模板的一些用法 基…

.NET中的JSON序列化库:Newtonsoft.Json与System.Text.Json对比与示例

在.NET生态系统中&#xff0c;存在多个用于JSON序列化的库&#xff0c;其中最为常用和知名的包括Newtonsoft.Json&#xff08;也称为Json.NET&#xff09;和System.Text.Json。以下是这两个库的区别&#xff1a; Newtonsoft.Json&#xff08;Json.NET&#xff09; 功能与灵活…