自动化测试如何实施落地?

简介: “自动化测试适用于重复度较高的工作,且不是一蹴而就即插即用就能解决问题的。需要相对稳定的业务需求迭代、比较成熟稳定的研发团队和一定的技术基础设施建设,以及较为规范的流程才能更好落地,达到提效的目的”。

640.jpg


前段时间《全链路压测从零开始系列》终于写完了,性能测试相关的差不多到此告一段落。


之前零零碎碎写过一些自动化测试相关的技术文章,现在回头翻看差漏很多,很多当时的观点现在看来都太过理想化。接下来打算写自动化测试和质量保障以及技术运营相关的文章,这篇文章算是自动化测试系列的第二篇吧。


前几天写了篇《你真的需要自动化测试吗》,算是我对自动化在工作中应用的一点思考。


这篇文章, 就聊聊项目如何落地,以及落地要面临和解决哪些问题。


落地前:分析因素


从我个人的工作实践经验来看,在决定是否引入新的技术框架或者开展技术项目前,足够详尽的分析调研必不可少。这样做的好处在于一方面可以避免重复建设;另一方面,尽可能确保投入的资源能获得足够的收益。落地自动化测试之前,主要有如下几点因素需要考量。


1、当前面临的痛点是什么?


引入自动化测试是为了解决工作过程中遇到的问题或痛点,所以在引入之前第一个要考虑的是当前面临的痛点是什么。


比如:线上功能bug频发,人力资源时间不足导致团队加班太多,版本迭代快/多版本并行等,且这些痛点都已经严重影响到了团队的日常工作效率和氛围。


先将面临的问题和痛点列出来,按照影响范围和优先级排序,然后分析背后的原因。


2、痛点背后的原因有哪些?


线上功能bug频发,可能的原因有漏测/case覆盖率不足/需求变更快/发布流程不规范等原因。


人力或者时间不足,背后的原因可能有团队同学能力不足/团队效率不高/管理混乱/缺乏提效手段和工具。


版本迭代快多版本并行的情况,背后的原因就更复杂了,涉及到流程/管理/业务成熟度/企业所处阶段等多种因素。


3、有什么可以解决问题的方案?


分析出团队面临的痛点以及背后的原因,我的建议是将原因列出来进行归类,比如:


资源问题:人手不足/工时评估不合理;

流程问题:研发交付流程混乱,发布不可控;

管理问题:团队效率不高,管理混乱,职责不清;

技术建设问题:缺乏CI/CD工具&需求/代码/case/bug管理工具,团队同学缺乏相关经验;


4、自动化是不是最合适的解决方案?


问题分类和排优先级之后,就是case by case的分析有哪些解决方案了。假设某部分问题可以通过自动化测试来解决或者改善,那就可以着手进行下一步分析。


5、当前的情况是否适合开展自动化测试?


“自动化测试适用于重复度较高的工作,且不是一蹴而就即插即用就能解决问题的。需要相对稳定的业务需求迭代、比较成熟稳定的研发团队和一定的技术基础设施建设,以及较为规范的流程才能更好落地,达到提效的目的”


举个例子:某创业公司,当前处于产品初创和快速迭代期,追求的是快速推出MVP产品推向市场,业务不稳定,人力资源紧张,技术基础设施很差,那这个时候是不适合做开展自动化测试的。


开展前:评估价值


罗列问题,分析原因,制定优化方案后,接下来就是项目立项及调研了。自动化测试的调研,主要关注如下几点:


工具框架选型:业内有哪些自动化测试工具或框架?功能是否满足需求?产品稳定性如何?社区活跃度如何?是否有足够详细的说明文档和使用案例。


选定试点范围:选择哪个业务或者团队进行试点?试点对场景覆盖范围和case的粒度要求是什么?


团队成员技术栈匹配度:如果工具需要一定的代码开发,团队成员编码能力如何?对哪种语言熟悉?培训和学习成本?


要投入多少人力时间资源:确定范围和case粒度后,预期需要投入多少人日/工时才能达到预期结果?


预期的投入产出比是多少:投入预期的人日/工时后,预期的效果如何?是否能解决当前面临的痛点问题?


落地过程:解决问题


其实到了研发落地阶段,只需要遇到问题解决问题即可。自动化工具或框架落地过程中,常见的问题有:


学习培训:工具或框架对于团队同学来说需要一定学习成本,建议提供使用说明手册并开展几次培训。


案例演示:其实自动化case或者脚本写起来很简单,但还是建议提供一些demo或者案例,能让其他同学更快速上手。


二次开发:很多开源的自动化工具已经具备了大部分常见功能,但落地过程中还是要解决一些定制化功能,或者修复开源工具的一些bug,这就需要一定的开发能力对工具进行二次开发或者优化。


构建效率:自动化测试并不是拿着工具把case写好就完事了,要考虑到自动化落地的初衷就是解决效率问题,因此落地后的构建执行效率是重点关注的因素。


构建成功率:除了关注构建执行效率,每次构建执行的成功率也要高度关注,否则会耗费大量时间在排查问题上。


推广运营:关注反馈&输出价值


项目落地后,真正的挑战才开始。


假设你是自动化测试落地的负责人,如何让其他团队的测试同学也能很好的用起来,并且真的解决他们的问题?如何衡量这个项目的投入和产出,用哪些指标度量?关于这点,我建议大家从下面两点去考虑:


业务运营:解决了业务什么痛点,对业务目标达成的促进;


技术运营:用户体验、交付效率、质量提升、用户满意度;


文末总结


关于项目落地推广,大体都可以遵循这个流程:需求分析——立项调研——研发落地——推广使用——持续运营。


我在前面的文章如何建立高效的质量保障机制》中,对于质量保障和效能有过详细的介绍,感兴趣的同学可以参考。

相关文章
|
6月前
|
设计模式 安全 测试技术
【软件设计师备考 专题 】系统实施:程序设计和系统测试
【软件设计师备考 专题 】系统实施:程序设计和系统测试
114 0
|
1月前
|
监控 安全 测试技术
在实施自动化和持续集成的过程中,如何确保代码的安全性和合规性
在实施自动化和持续集成的过程中,如何确保代码的安全性和合规性
|
8天前
|
监控 安全 测试技术
在实施自动化和持续集成的过程中,如何确保代码的安全性和合规性?
在实施自动化和持续集成的过程中,如何确保代码的安全性和合规性?
|
1月前
|
运维 监控 安全
构建高效运维体系:从监控到自动化的全面指南在当今数字化时代,运维作为保障系统稳定性和效率的重要环节,其重要性不言而喻。本文将深入探讨如何构建一个高效的运维体系,从监控系统的搭建到自动化运维的实施,旨在为读者提供一套完整的解决方案。
本文详细介绍了高效运维体系的构建过程,包括监控系统的选择与部署、日志分析的方法、性能优化的策略以及自动化运维工具的应用。通过对这些关键环节的深入剖析,帮助运维人员提升系统的可靠性和响应速度,降低人工干预成本,实现业务的快速发展和稳定运行。
|
6月前
|
敏捷开发 监控 测试技术
深入探索自动化测试框架的设计与实施
【5月更文挑战第23天】 在快速迭代的软件开发周期中,自动化测试已成为提升效率、确保质量的关键手段。本文将深入分析自动化测试框架的设计原则和实施策略,通过具体案例探讨如何构建一个既灵活又稳定的测试框架来支持持续集成和持续部署(CI/CD)的实践。文中不仅涉及框架选择、架构设计,还详细讨论了脚本开发、维护以及性能优化等方面的挑战与解决方案,旨在为读者提供一套系统化的自动化测试实施指南。
|
4月前
|
测试技术
软件测试自动化策略与实施:提升质量与效率的关键
【7月更文挑战第25天】软件测试自动化是提高软件质量和效率的重要手段。通过明确自动化测试目标、选择合适的测试工具、制定详细的测试计划、建立稳定的测试框架以及持续优化与迭代,企业可以构建高效、可靠的自动化测试体系。在实施过程中,注重与项目团队的沟通与协作,确保自动化测试与项目开发的紧密结合,共同推动产品质量的不断提升。
|
4月前
|
Devops jenkins 测试技术
如何在Visual Basic项目中实施单元测试以确保代码健壮性
【7月更文挑战第2天】本文探讨了如何在Visual Basic项目中实施单元测试以确保代码健壮性。单元测试基础包括验证代码单元的功能,促进重构和提高代码质量。MSTest、NUnit和xUnit是VB.NET的单元测试工具。遵循TDD原则,保持测试独立,关注单一功能,并确保快速执行。示例展示了如何为`Calculator`类的加法方法编写MSTest。持续集成与自动化测试工具如Jenkins和Azure DevOps辅助测试运行和代码质量检查。单元测试是提升软件质量和开发效率的关键实践,反映了良好的开发文化。
52 2
|
6月前
|
敏捷开发 监控 Devops
深入理解与实施软件测试中的持续集成策略
【5月更文挑战第29天】 在快速迭代的软件开发过程中,持续集成(CI)策略是确保产品质量和加速市场交付的关键实践。本文将探讨持续集成在软件测试中的应用,分析其对提高测试效率、降低缺陷率以及优化资源分配的影响,并讨论如何在现有的测试框架中有效地实施CI策略。通过案例分析和最佳实践分享,旨在为读者提供一套系统的方法论,以便更好地融入现代敏捷开发流程,实现软件测试工作的自动化和高效化。
|
6月前
|
安全 数据管理 测试技术
网络安全与信息安全:防范漏洞、加强加密与提升安全意识深入探索自动化测试框架的设计原则与实践应用化测试解决方案。文章不仅涵盖了框架选择的标准,还详细阐述了如何根据项目需求定制测试流程,以及如何利用持续集成工具实现测试的自动触发和结果反馈。最后,文中还将讨论测试数据管理、测试用例优化及团队协作等关键问题,为读者提供全面的自动化测试框架设计与实施指南。
【5月更文挑战第27天】 在数字化时代,网络安全与信息安全已成为维护国家安全、企业利益和个人隐私的重要环节。本文旨在分享关于网络安全漏洞的识别与防范、加密技术的应用以及提升安全意识的重要性。通过对这些方面的深入探讨,我们希望能为读者提供一些实用的建议和策略,以应对日益严峻的网络安全挑战。 【5月更文挑战第27天】 在软件开发周期中,自动化测试作为保障软件质量的关键步骤,其重要性日益凸显。本文旨在剖析自动化测试框架设计的核心原则,并结合具体案例探讨其在实际应用中的执行策略。通过对比分析不同测试框架的优缺点,我们提出一套高效、可扩展且易于维护的自动
|
6月前
|
敏捷开发 监控 数据管理
深入理解自动化测试:框架选择与实施策略
在软件开发的快速迭代周期中,自动化测试成为确保产品质量和加快交付速度的关键。本文将探讨自动化测试框架的选择标准以及如何有效实施自动化测试策略。文中不仅涉及框架的技术细节,还包括了构建强大自动化测试体系的实践建议。通过案例分析和最佳实践,为软件测试专业人员提供深入理解,并指导他们如何在不断变化的技术环境中做出明智的决策。