自动化测试的分层模型

241 篇文章 0 订阅
177 篇文章 0 订阅

2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)_软件测试刷题小程序-CSDN博客文章浏览阅读3.4k次,点赞86次,收藏15次。你知不知道有这么一个软件测试面试的刷题小程序。里面包含了面试常问的软件测试基础题,web自动化测试、app自动化测试、接口测试、性能测试、自动化测试、安全测试及一些常问到的人力资源题目。最主要的是他还收集了像阿里、华为这样的大厂面试真题,还有互动交流板块……_软件测试刷题小程序​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502icon-default.png?t=N7T8https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502

传统的软件架构设计讲究分层模型,而自动化测试也有一套自己的分层模型。这个模型是麦克科恩 (Mike Cohn) 在他的著作《Succeeding with Agile》一书中提出的测试金字塔。金字塔模型如下:

这个模型自底向上的测试顺序符合一个软件系统的开发顺序:最开始时开发人员写好每一个可测试的最小单位之后,就可以开展单元测试了。接下来,当多个完整的模块编写完成之后,就进入集成测试阶段,这其中主要包括不同服务之间的接口测试。当前后端接口联调完成后,就可以开展最后的UI测试了。这三层都可以用自动化的方式实现。这三者的详细比较如下:

1.UI自动化测试

UI自动化测试,主要关注模拟用户与应用程序的交互。这种测试模拟了用户在应用程序中的实际操作,包括点击按钮、输入文本、滚动页面等。UI自动化测试的目标是验证应用程序的界面元素是否按照预期工作,以及用户是否能够顺畅地完成特定的任务。

优点:

  • 能够最直观地验证用户交互流程。

缺点:

  • UI自动化测试的稳定性较低,这是UI自动化的一大难点。即使采用了很多技术手段,UI自动化测试也可能经常出现随机性的失败。

  • 运行速度是三种自动化测试中最慢的一种。这是因为要模拟用户的交互操作,而且为了定位到元素必须给操作增加必要的等待时间。

  • 受到界面变动的影响很大。如果软件的界面被频繁改动,UI自动化脚本也必须经常调整,在这种情况下脚本的维护成本是非常高的。

2. 接口自动化测试

接口自动化测试专注于测试系统之间的接口。它不关心用户界面,而是直接与后端服务进行交互,验证数据的交换、处理逻辑以及系统间的通信是否正确。

优点:

  • 用例编写和调试的效率高:接口自动化的用例编写有简单且规范化的流程,通常只需要关注接口的请求入参(以及前置操作)和响应数据(以及后置断言)即可。如果开发团队能提供详细的接口文档,那接口测试用例的编写将变得比较容易。

  • 落地成本低:对于一个小型测试团队而言,无需自己开发或者维护一个接口自动化测试框架。现在市面上很多接口管理工具如Postman, Apifox和YAPI等都有完善的接口自动化测试功能支持。如果开发团队已经采用了某一个接口管理工具,测试团队完全可以用同一套工具,写用例时开发已有的接口集合中直接一键导入需要的接口,极大方便了用例的编写。

  • 稳定性高:接口测试天然就是稳定的,不受前端界面变动的影响。

  • 维护成本低:虽然API改动意味着接口用例也要改动,但是很多成熟的接口自动化工具已经支持自动同步接口文档,自动更新接口规范。

  • 执行速度快:对于复杂的流程,用UI自动化测试可能需要数分钟,接口自动化测试可能几秒钟就完成了。

  • 接口测试天然支持并发,比UI自动化更适用于并发场景下的测试。

缺点:

  • 脱离了前端,不能直接验证用户界面的表现。

  • 如果开发团队无法提供详细的接口文档,测试人员就需要自己抓包解析接口请求,那么编写测试用例就比较麻烦了。而如果开发的接口设计很不合理,比如请求参数中夹杂了大量的冗余参数,那么编写接口用例的难度将成倍增加。

3. 单元测试

单元测试是自动化测试中粒度最细的一种,它针对程序中最小的可测试部分(通常是函数或方法)进行测试。单元测试的目的是验证单个单元的功能是否按照预期执行,不依赖于程序的其他部分。

优点:

  • 最大的优点就是可以快速定位代码中的错误。众所周知,缺陷被发现的时间越早,修复的成本就越低。单元测试就是从根源上预防缺陷、提升整体研发效率的重要手段。

  • 单元测试可以用来推动TDD(测试驱动开发),即促使开发人员在开发阶段就重视起代码的质量,有助于进一步提高开发人员“质量内建”的意识。

缺点:

  • 开发人员需要编写大量的测试用例。在这三者中,单元测试需要编写的测试用例数是最庞大的,而且最好是由开发自己而非测试人员去编写。这对于本就很忙碌的开发人员来说无疑增加了更大压力。

  • 只关注最小单位的可用性,每个单元之间是相互隔离的,无法直接反映单元组装起来之后是否可以正常工作。

比较了这么多,那自动化测试究竟该如何选型呢?这三种自动化分别在什么场景下适用?

1.UI自动化:如果有很多业务逻辑是在前端实现的,那这部分只能做UI自动化;对于一些端到端的、用户直接频繁交互的业务场景,更适合做UI自动化。

2.接口自动化:上面也分析到了,接口自动化的优点最多,性价比最高,因此被大量互联网企业广泛采用并成为自动化测试的重点。在现代的微服务体系架构下,接口自动化进一步显著突出了其优势和价值。

3.单元测试:虽然成本高,但能够从源头上提高代码质量,适用于一些最核心的且稳定的功能,比如公共的基础服务模块,或者对于质量要求最严格的场景,比如核心支付场景。

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群: 759968159,里面有各种测试开发资料和技术可以一起交流哦。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

​​​软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

  • 24
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值