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

面试必问的7大测试分类!一文说清楚!

在日常测试工作中,我们经常会听到“单元测试,集成测试,系统测试”之类的词汇,大家都知道这是按照开发阶段进行测试活动的划分。

这种划分完整的分类,其实是分为四种“单元测试,集成测试,系统测试,验收测试"。这四类测试,其实是一种从局部到整体测试思想。

但是市面上对这些概念的理解常常很混乱,会和“白盒测试,黑盒测试,灰盒测试”纠缠在一起傻傻分不清,那么本文就针对这几类测试展开讲解,现在车载测试如火如荼,我们就以汽车生产测试的过程为例,来分别阐述下单元测试,集成测试,系统测试,验收测试。

在这里插入图片描述

单元测试

1、汽车制造举例

在这里插入图片描述

在汽车的生产制造过程中肯定是先针对零部件进行测试,比如先对上图的车身进行全面的一个测试,车身的这个测试就可以认为“单元测试”。

2、放到测试中的理解

单元测试是软件开发中非常重要的一部分,它允许开发者针对代码的最小可测试部分(通常是方法或类)进行验证,以确保它们的行为符合预期。

另外:单元测试也叫单测,是针对代码的测试即测试人员可以看到被测代码的内部结构和逻辑。

例子

假设我们有一个简单的函数,用于计算两个数的和:

在这里插入图片描述
我们可以编写一个单元测试来验证这个函数的行为:

在这里插入图片描述
在这个例子中我们使用了pytest测试框架来编写和运行测试。

我们定义了一个名为test_add_numbers的测试函数,其中包含了三个断言,每个断言都验证add_numbers函数的一个特定行为,然后,我们使用pytest命令行工具来运行测试。

如果所有断言都通过,那么测试就成功了。如果有任何断言失败,那么测试就会失败,并显示哪个断言失败了。

集成测试

1、汽车制造举例

在这里插入图片描述

车身测试通过之后,我们就要把车身和其它测试正常的零部件进行组装,比如把发动机装和车身进行组装。那么在组装后是不是也要进行测试?这就集成测试。

2、放到测试中的理解

集成测试,也被称为组装测试或联合测试,是软件测试过程中的一个重要环节。它是在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,然后进行测试。

这个过程旨在验证不同的软件模块之间的交互和协作是否正常,以确保整个软件系统的质量和可靠性。

另外:

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

2)集成测试最简单形式,就是把两个已经测试过的单元组合成一个组件,测试它们的接口。所以一般也认为是接口测试。

系统测试

1、汽车制造举例

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

2、放到测试中的理解

系统测试是对整个系统的测试,将硬件、软件、操作人员看作一个整体,检验它是否有不符合需求说明书的地方。

这种测试可以发现系统分析和设计中的错误,确保系统满足规定的需求,并能在实际运行环境中正常工作。

另外:

系统测试一般可以认为是功能测试,测试人员不需要看到被测代码的内部结构和逻辑,只需要关注系统的输入和输出。

验收测试

1、汽车制造举例

在这里插入图片描述

实车经历了前面的几轮测试后就能发布上市了吗?不会,通常车企还会邀请一些第三方专业汽车评测机构或者一些汽车大V测试和反馈,并根据测试反馈结果来判断是否满足既定需求,这就是验收测试。

大家要知道所有的产品最终面对的都是甲方和客户,只有他们说OK了那么才会认可该产品,也代表着满足了用户需求,这时候我们才能进行产品的发布和上市。

2、放到测试中的理解

验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。验收测试通常由最终用户或具有代表性的客户(称为验收测试团队)执行,以确保软件满足合同、用户需求或商业上的可接受性。

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

总结

很多人经常把“黑盒测试、白盒测试、灰盒测试”和“单元测试,集成测试,系统测试,验收测试”混为一谈,特别是招聘HR在询问应聘者会哪些测试时她们自个总是自己乱作一团。

其实这几个测试分类要区分清楚也很简单。可以按照两个维度来划分,按照开发阶段划分,就是:单元测试,集成测试,系统测试,验收测试;按照代码的可见度划分,就是:白盒测试、黑盒测试、灰盒测试。

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

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

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

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

希望通过这篇文章能够帮助大家,特别是初学者理清楚几种测试分类!

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:【文末小卡片领取】

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!


http://www.kler.cn/a/300147.html

相关文章:

  • NIO | 什么是Java中的NIO —— 结合业务场景理解 NIO (二)
  • QT调用OpenSceneGraph
  • 使用Websocket进行前后端实时通信
  • win32汇编环境,对多行编辑框添加或删除文本
  • VS Code AI开发之Copilot配置和使用详解
  • 在离线无管理员权限的情况下为Linux配置oh-my-zsh(zsh+oh my zsh+powerlevel10k)
  • [算法]单调栈解法
  • 一文说清什么是数据仓库
  • Linux之ebpf(3)uprobe与ebpf
  • Flex弹性布局常用的属性解析与分类
  • 解决 git 不是内部或外部命令,也不是可运行的程序
  • 828华为云征文|几分钟,即可在华为云Flexus X服务器部署安全稳定的——水果生鲜商城配送小程序
  • 在职研生活学习--20240906
  • 旅游景区生活污水处理设备处理工艺和用途
  • HarmonyOS开发5.0【骨架屏】 app界面制作
  • 测试微信发朋友圈:功能、界面/易用性、中断、网络、兼容性、安全性、性能测试
  • 性能测试经典案例解析——政务查询系统
  • k8s的应用
  • 基于Ant-Design-Vue设计的配置化表单
  • curl和ping
  • 【leetcode C++】 动态规划
  • lamp的脚本部署
  • 【CAPL实战】解决调用LIN函数不生效问题
  • [笔记]电参数测量的现有方案
  • Cesium 展示——视角漫游飞行效果
  • Linux系统本地化部署Dify并安装Ollama运行llava大语言模型详细教程