• 0
  • 0
分享
  • 面试必问的7大测试分类!一文说清楚!——软件测试圈
  • 橙子 2024-08-05 10:34:29 字数 1999 阅读 663 收藏 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.需求调研阶段  1.1. 阶段概述  调研阶段的主要工作为:组建工作小组、项目创建、需求分析、模型构建、定制...
            0 2 5914
            分享
          •   背景:随着前后端分离、微服务等技术的广泛应用,接口测试在整个测试过程中扮演的角色越来越重要,如何更加高效地把接口测好、测得更加充分就成了一个亟待解决的难题。  当前在对具体的某一接口进行测试时,普遍采取的方法是测试人员按照接口文档中的字段取值规则使用接口测试工具(例如Postman等)手工来回修改接口报文中的某一个字段值来进行测试。  这种方法对于单个或者是简单接口相对比较友好,然而往往一个系统中会包含有大量的接口、接口逻辑复杂、接口里边包含有非常多的字段,这就给接口测试的开展带来了很多问题,比如费时费力、工作量大、漏测某些测试场景等。  同时还由于项目工期紧张等原因,在接口测试过程中一般...
            3 3 1652
            分享
          • 作为一名多年的测试人员,对测试这个岗位的存在,也有自己的一点拙见。纵观现在的互联网公司,不管是国际巨头,行业巨头,或初创型公司,测试的岗位都必不可少。但不同的公司之间,却又有很多的差异性,拿测试开发比来说:在 Google 公司,测试开发比为 1:10;但微软则能达到 1:1 甚至更高;笔者现在所在的公司,大概是到 1:3 左右。其实每个公司的配比,都是视本公司的业务形态/协作方式决定的,单纯靠配比来决定什么,也是不科学的。微软的一些测试人员需要写单元测试,相当于测试开发的角色,写出来的东西去测试开发写出来的代码,加之微软产品性质比如复杂操作系统,服务器产品之类的,需要的测...
            0 0 1866
            分享
          •   写在前面  这篇文章译自著名测试专家James Bach的《Test Automation Snake Oil》一文,是笔者在学习和研究探索性测试时偶然发现的一篇较有意义的文章,很好地解答了我们对自动化测试的疑惑。  比如万能的自动化测试是否可以替代一切,还给我们提供了可行性很强的建议。  正如作者所说:先思考测试,再思考自动化,切莫本末倒置。  案例分析  先看几个案例。  案例1  一个产品从开发运维人员传递到下一个。  新开发人员发现产品设计文档已经过时,构建过程被破坏了。经过一个月的分析,每个人都宣称自己的设计很差,并坚持重写大部分代码。再过几个月,开发人员要么辞职,要么被重新分配...
            0 0 1277
            分享
          • 都说“工欲善其事,必先利其器”。做软件测试行业,怎么能缺少好用的软件测试工具呢?对于很多小伙伴,尤其是新手来说,刚入行时,由于接触的工具比较少,会的工具可能也就那么几个,如果工作中再涉及不到使用新工具,那么后期想要能力上、职位上有所提升,肯定会是一件非常难的事情。为了避免这种情况的发生,最好的办法就是提前了解其他工具,利用业余时间开始学习接触新工具,才能有自己的发展之地。那么,时下IT行业里,主流的软件测试工具有哪些呢?笔者以为,主要有以下10类。具体大类如下:白盒测试工具、web测试工具、持续集成工具、C/S自动化工具、app自动化工具、代码扫描工具、测试管理工具、接口测试工具、性能测试工具...
            0 0 1570
            分享
      • 51testing软件测试圈微信