• 0
  • 0
分享
  • 面试必问的7大测试分类!一文说清楚!——软件测试圈
  • 橙子 2024-08-05 10:34:29 字数 1999 阅读 1166 收藏 0

  在日常测试工作中,我们经常会听到“单元测试,集成测试,系统测试”之类的词汇,大家都知道这是按照开发阶段进行测试活动的划分。这种划分完整的分类,其实是分为四种“单元测试,集成测试,系统测试,验收测试"。这四类测试,其实是一种从局部到整体测试思想。但是市面上对这些概念的理解常常很混乱,会和“白盒测试,黑盒测试,灰盒测试”纠缠在一起傻傻分不清,那么本文就针对这几类测试展开讲解,现在车载测试如火如荼,我们就以汽车生产测试的过程为例,来分别阐述下单元测试,集成测试,系统测试,验收测试。

14-1.png

  一、单元测试

  1、汽车制造举例

14-2.png

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

  2、放到测试中的理解

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

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

  例子

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

14-3.png

  我们可以编写一个单元测试来验证这个函数的行为:

14-4.png

  在这个例子中我们使用了pytest测试框架来编写和运行测试。我们定义了一个名为test_add_numbers的测试函数,其中包含了三个断言,每个断言都验证add_numbers函数的一个特定行为,然后,我们使用pytest命令行工具来运行测试。如果所有断言都通过,那么测试就成功了。如果有任何断言失败,那么测试就会失败,并显示哪个断言失败了。

  二、集成测试

  1、汽车制造举例

14-5.png

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

  2、放到测试中的理解

  集成测试,也被称为组装测试或联合测试,是软件测试过程中的一个重要环节。它是在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,然后进行测试。这个过程旨在验证不同的软件模块之间的交互和协作是否正常,以确保整个软件系统的质量和可靠性。

  另外:

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

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

  三、系统测试

  1、汽车制造举例

14-6.png

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

  2、放到测试中的理解

  系统测试是对整个系统的测试,将硬件、软件、操作人员看作一个整体,检验它是否有不符合需求说明书的地方。这种测试可以发现系统分析和设计中的错误,确保系统满足规定的需求,并能在实际运行环境中正常工作。

  另外:

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

  四、验收测试

  1、汽车制造举例

14-7.png

  实车经历了前面的几轮测试后就能发布上市了吗?不会,通常车企还会邀请一些第三方专业汽车评测机构或者一些汽车大V测试和反馈,并根据测试反馈结果来判断是否满足既定需求,这就是验收测试。大家要知道所有的产品最终面对的都是甲方和客户,只有他们说OK了那么才会认可该产品,也代表着满足了用户需求,这时候我们才能进行产品的发布和上市。

  2、放到测试中的理解

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

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

  五、总结

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

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

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

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

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

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


作者:有房车的直男    

来源:http://www.51testing.com/html/71/n-7801971.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 前言例如:测试工程师面试题目1、软件的生命周期有哪些阶段?① 需求阶段分析和学习阶段,团队去查看这个需求是不是可测的。② 计划阶段辨别出哪些活动和资源和测试的目标时匹配的,辨别并追踪这些测试的指标、计划。③ 分析阶段通过需求文档等条件辨别测试条件,追溯到需求。④ 设计阶段概述测试条件;获取测试数据;搭建环境;跟踪测试指标。⑤ 编码阶段创建详细的测试用例,进行编码。⑥ 运行和维护阶段⑦ 总结阶段检验完成度和用户满意度。2、测试的整个流程有哪些① 需求评审阅读需求,理解需求,查看是否有不符合逻辑的需求,明确测试周期。② 测试计划根据项目计划和开发人员的时候指定测试计划,包含测试内容、测试规划、测试...
            1 1 3074
            分享
          • 软件测试职业发展方向,大体上可以分为管理路线、技术路线、管理+技术路线。软件测试,是技术主导的职业;不管选择哪条发展路线,都是需要一定的技术沉淀,只是相对来说,管理路线对技术方面要求不高而已。那么我们就先挑重头的技术路线展开讨论。一般来说,一个普通的测试工程师刚入行,3个月左右熟悉企业的工作流程和模式,那么今后的工作内容趋于平稳。然而社会是残酷的!如果单单停留在测试工程师的阶段,若干年后,相信你再也竞争不过那个时候的应届毕业生,当你的工作技能和职业素质趋于与那些朝气蓬勃的年轻人相当时,企业会毫不留情的选择他们,而release你,因为你的成本消耗要比他们高,这是大实话!然而现实又是公平的!因为...
            15 15 1283
            分享
          • 一、移动端的认识:1、什么是移动端狭义:智能手机、品牌电脑;广义:所有可移动的设备(例如:点菜设备、移动的机器人、pos机、扫码枪)2、移动端操作系统IOSAndroidWindows PhoneSymbian(塞班)Windows MobileBlackberry(黑莓)3、测试的分类传统手机测试:测试手机本身,如抗压、抗摔、抗疲劳、抗低温高温等,也包括手机本身的功能、性能等测试。手机应用软件测试:是基于手机操作系统之上开发出来的软件,做这样测试,就叫手机应用软件测试。4、移动应用的认识狭义:原生APP(纯粹的使用app开发语言开发的软件)广义:混合的App(融合Web应用、小程序)5、移动...
            14 13 2945
            分享
          •   前言  在做Web端自动化中,经常会使用到JS语法来辅助我们定位元素或者来修改元素的一些属性,从而达到自动化用例正常编写,今天安静来介绍下JS通过Selenium在Web端自动化中常用到的场景。  JavaScript  在介绍场景时,先介绍下什么是JS,即JavaScript的简写。一种具有函数优先的轻量级,解释型或即时编译型的编程语言。它是作为开发Web页面的脚本语言而出名。  调用JS元素  既然JS语法可以在Selenium中进行使用,是通过什么来实现的呢?通过WebDriver中的execute_script()的方法来实现JS语法的操作。  那么JS元素在Web端自动化中具体的...
            13 13 2043
            分享
          •   目前大部分mysql和elasticsearch同步机制使用的插件实现的,常用的插件包为:logstash-input-jdbc,go-mysql-elasticsearch, elasticsearch-jdbc、canal。  插件优缺点对比  1. logstash-input-jdbc  logstash官方插件,集成在logstash中,下载logstash即可,通过配置文件实现mysql与elasticsearch数据同步  优点  ·能实现mysql数据全量和增量的数据同步,且能实现定时同步。  ·版本更新迭代快,相对稳定。  ·作为ES固有插件logstash一部分,易用。...
            3 3 1441
            分享
      • 51testing软件测试圈微信