当前位置: 首页 > news >正文

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

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

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

在这里插入图片描述

一、单元测试

1、汽车制造举例

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

2、测试工作中的理解

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

二、集成测试

1、汽车制造举例


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

2、测试工作中的理解

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

补充:

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

三、系统测试

1、汽车制造举例


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

2、测试工作中的理解

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

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

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

四、验收测试

1、汽车制造举例

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

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

2、测试工作中的理解

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

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

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

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

五、写在最后

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

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

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

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

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

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

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

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

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

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

http://www.lryc.cn/news/212761.html

相关文章:

  • 数据结构(超详细讲解!!)第十八节 串(KMP算法)
  • 软考_软件设计师
  • 大数据之LibrA数据库系统告警处理(ALM-12004 OLdap资源异常)
  • 详解—数据结构《树和二叉树》
  • 菜单管理中icon图标回显
  • Postman如何导出接口的几种方法
  • Java进阶(Set)——面试时Set常见问题解读 结合源码分析
  • 【强化学习】12 —— 策略梯度(REINFORCE )
  • Kubernetes Taint(污点) 和 Toleration(容忍)
  • 使用cv::FileStorage时出错 Can‘t open file: yaml‘ in read mode
  • 代码之困:那些让你苦笑不得的bug
  • 【C语言初学者周冲刺计划】2.2用选择法对10个整数从小到大排序
  • c++系列——智能指针
  • 力扣日记10.30-【栈与队列篇】滑动窗口最大值
  • docker与宿主机共享内存通信
  • A股风格因子看板 (2023.10 第13期)
  • ORB-SLAM3算法2之EuRoc、TUM和KITTI开源数据集运行ORB-SLAM3生成轨迹并用evo工具评估轨迹
  • 【蓝桥杯选拔赛真题07】C++小球自由落体 青少年组蓝桥杯C++选拔赛真题 STEMA比赛真题解析
  • 期中考成绩一键私发
  • idea中Run/Debug Python项目报错 Argument for @NotNull parameter ‘module‘ of ...
  • 计算机网络第3章-TCP协议(2)
  • SQL注入——二次注入漏洞
  • 【c++|opencv】二、灰度变换和空间滤波---1.灰度变换、对数变换、伽马变换
  • 【vue3】子传父-事件总线-mitt(子组件派发事件,父组件接收事件和传递的参数)
  • 【杂记】java 大集合进行拆分
  • select...for update 锁表了?
  • 使用ControlNet生成视频(Pose2Pose)
  • 基于Docker使用Minikube
  • Stable Diffusion系列(一):古早显卡上最新版 WebUI 安装及简单操作
  • ruoyi框架前端vue部署生产环境教程