前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自动化测试框架选型和落地实践路径

自动化测试框架选型和落地实践路径

原创
作者头像
老_张
发布2024-06-14 14:00:50
760
发布2024-06-14 14:00:50
举报

有同学问了我这样一个问题:我想学习并且在工作中落地接口自动化测试,我该学Java还是Python,用哪个测试框架和工具更好?有什么推荐的学习资料和测试框架吗?

又是一个很典型的问题,也是新手最容易纠结的点。这篇文章分享一些我的经验和思考。

自动化测试框架选型

其实关于测试框架选型,要考量的无非是如下几点:

  • 个人技术基础如何,框架的学习难易曲线;
  • 框架功能是否丰富,官方文档是否详细,框架生态是否成熟;
  • 框架本身的扩展性如何,是否支持多语言,开源还是商业的;

如果个人技术基础比较薄弱,建议选择功能丰富开箱即用,且学习曲线比较平滑的。有些框架入门简单,但是进阶和落地难度就会特别高;有些框架入门难度稍微高点,但整体的学习难易曲线比较平滑,适合不断打怪升级,这点需要看个人适配程度和喜好。

第二点,功能丰富意味着落地实践阶段二次开发封装的成本投入较低。详细的官方文档可以帮助新手更快的入门,且其中也会有不少的案例。所谓的生态就是用这个框架的人多不多,用的多自然遇到的问题多,解决问题的方法也有更多人在前面趟坑。

至于第三点,就是选型后落地方面的考量。支持多语言,意味着和研发团队的技术栈以及被测应用更为匹配;开源意味着更低的直接成本,扩展性则是是否支持团队级别的定制化选项。

自动化测试落地实践路径

自动化测试框架和工具都很成熟了,落地实践的案例也不少,但具体落地过程肯定会遇到各种各样的问题,解决问题的过程需要考量具体的业务特性,基础设施建设,项目迭代频次等很多因素,很难说有普适性的通用案例可以参考。

我想换个角度,从自动化测试相关的面试题来聊聊它的落地路径,也许你能收获不一样的思路和方法。当然,下面列举的面试问题是由浅及深的,且会列出考察点和回答问题的逻辑,希望能对大家有所帮助。

1、自动化测试是如何做的?

回答思路:从问题出发,要解决什么问题,采用了什么工具/框架,原因是什么?自动化测试的流程,重点是哪些方面,要面临哪些挑战,如何解决的,是否有更好的方式。

2、选择自研框架和开源框架?

回答思路:这个问题考察两方面,一方面是对开源/商用框架优缺点的了解程度,以及和自身团队及业务的匹配性;另一方面则是自研框架和团队及业务的是配性更强,但成本更高。

3、自动化测试主要投入和产出是什么?

回答思路:同样考察两方面,一方面是前期的产出和效果肯定是低于成本投入的,自动化需要长期持续建设且项目相对稳定,才能在大后期收益覆盖成本。另一方面则要表达出自己对自动化测试的理解,比如自动化就是用来辅助测试,解决重复性高的执行工作,如果最开始奔着提升效率,那大概率最后会不了了之。

4、如何管理自动化测试数据?

回答思路:分阶段用不同的方法。单人或者刚开始落地,以简单易懂为主,比如Excel;规模稍微起来或者参与自动化测试工作的人多了,就要考虑配置文件或者函数生成方式;大规模覆盖阶段则要考虑造数工厂方式。

测试数据管理是自动化测试中特别重要的一环。特别是团队扩大,业务复杂度上升之后,如何高效合理管理测试数据,需要很深入的思考和大量的实践。 重要的是要有持续迭代和优化的做事方式,而不是从一开始就求大而全

5、自动化测试如何融入CICD交付流水线?

回答思路:单纯的做自动化测试,产出和价值并不高,自动化测试如果不能持续集成,融入到持续交付流水线中,那只能说是测试用例自动化执行。更好的方式是让自动化测试成为整个研发交付流程的一部分,为研发交付提供辅助和支撑。

当然,CICD的交付流水线是整个技术团队要发力做的事情,需要解决很多前置问题,比如编码规范、代码分支命名规范、版本管理、完善监控,也需要技术团队内部各团队协同配合。

回答这个问题,可以从推动和参与CICD流水线建设来讲,解决了哪些问题,最终达成了什么效果。

6、如果让你来负责整体的质量保障工作,你会从哪些方面入手?

回答思路:这个问题看似和自动化测试没有直接关联,但实际上很考验测试工程师的全局思维和技术视野,以及对业务和技术关系的理解。

在质量保障体系中,流程建设、需求/风险/进度管理、质量门禁、团队赋能、工具提效、人员培养、知识库沉淀等多个方面都需要进行建设,自动化测试是质量门禁、工具提效辅助和团队赋能的重要抓手。

7、从零开始从零开始落地自动化测试,你会如何做?列举重要的几个方面。

  • 前期摸底:业务情况、团队的技术基础设施、团队成员的技术能力等。
  • 调研对比:商用&开源&自研框架的优劣势,做demo,拿到数据支撑结论,然后出落地方案。
  • 分阶段落地:不同阶段的重点是什么,要解决什么问题,采用什么方法和手段,需要的资源和面临的挑战。
  • 更进一步思考:能否为测试团队赋能,怎么做?能否推动整个研发交付流水线流程,有什么好的想法和思路。

以上就是我在面试候选人时,关于自动化测试经常问的几个问题。至于自动化测试的落地路径,答案都在上面的几个问题中包含了。从我的角度来说,无论是面试回答问题,还是技术工程落地,注意如下几点即可。

  • 事前-分析和思考:逻辑清晰条理明确。
  • 事中-推动解决问题:合理的方法,以拿结果为导向。
  • 事后-持续复盘改进:跟随业务和团队的变化,不断改进,使之更符合团队需要。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 自动化测试框架选型
  • 自动化测试落地实践路径
相关产品与服务
持续集成
CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档