你真的需要自动化测试吗?

简介: 先想清楚场景和价值

要不要做自动化测试?

其实自动化这个概念很早前就有了,最初主要应用于工业生产领域,指通过指令或软件控制机械工具完成一些重复度较高的工作。后来随着计算机技术的发展和互联网行业的蓬勃趋势,开始应用于软件开发和测试领域。

无论是我们比较熟悉的各种自动化测试如UI自动化、接口自动化甚至单元自动化测试或者是CICD,其本质都是通过借助工具帮我们完成日常工作中重复度较高,手动又比较费时的工作。

自动化测试的优势在于将重复度较高又比较费时的工作交给软件工具,解放人力资源去做其他更有创造性的工作,提升投入和产出的比率,用更少的成本投入创造更大的价值。

那么工作中要不要做自动化测试呢?答案是肯定的。

但是新的问题来了,自动化测试=适用于任何阶段任何团队的吗?并不一定。

什么时候做自动化测试?

我们都知道,软件测试(质量保障)其实追求的是2个目标:质量和效率。

本质来说,自动化测试是一种辅助的提效手段,而不是解决问题的目的,且并不是唯一的提效手段。

工作中什么时候开展自动化测试,如何开展,做什么类型的自动化测试,是否有足够的资源投入,都是需要经过慎密的调研评估,而非为了自动化而自动化,这样无异于舍本逐末。

我们日常的测试工作都是在软件工程的方法论指导下,遵循一定的流程规范来开展的。软件工程的方法论,其实本质来说就是三个词:成本+收益+风险。即尽可能用较低的成本投入获得更高的收益,且承担的风险可控

三者不可兼得,需要做一定的平衡和牺牲,以达到最终的质量和效率目的。

因此在评估是否要开展自动化测试之前,需要尽可能基于上述几点因素来考虑。

举个例子:

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

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

那么如果要落地自动化测试并达到提效的目的,需要考虑哪些因素呢?


落地自动化测试前要思考的

以我个人的实践经验来讲,落地自动化测试之前,需要思考下面一些因素:

  • 当前面临的痛点是什么?
  • 痛点背后的原因有哪些?
  • 有什么可以解决问题的方案?
  • 自动化是不是最好的解决方案?
  • 当前的情况是否适合开展自动化测试?
  • 开展自动化测试前要调研评估哪些因素?
  • 选定试点范围;
  • 自动化工具调研;
  • 团队成员技术栈匹配度;
  • 要投入多少人力时间资源;
  • 预期的投入产出比是多少;

就像群里一位同学说的一段话:“我昨天和业务部门开会,有部门领导提出来说全链路压测平台和商用的差距还很大,需要好好建设。我说,你们都基本没有全链路压测需求,我投入大量精力去做,但没人用啊”。

企业的本质是追求更大化的价值,其实并不关心用什么技术手段。自动化是一种辅助提效手段之一,并不是做事的目的。

不要为了自动化而自动化,看到钉子就想找锤子砸下去,相比于做什么,更需要考虑的是做这件事的原因和带来的价值。

这篇文章,我阐述的是一种思考问题的方式,而非具体的实践路径。

目录
相关文章
|
4月前
|
Web App开发 Java 测试技术
反了!居然让我教她自动化测试!
Selenium 大家应该都很熟悉了吧,简单说它就是个基于浏览器的 Web 自动化测试工具,基本上是自动化测试人员首选工具。因为相比其他工具,它有很多的优势: • 支持多种语言,比如 Python、Java、C或C#、ruby 等都支持; • 支持多种浏览器, 比如 IE、FireFox、Safari、Opera、Chrome 这些主流浏览器基本都支持; • 支持多种操作系统,比如 Windows、Mac、Linux 这个款主流操作系统。
31 0
|
6月前
|
缓存 运维 容灾
入行5年,谈谈我在阿里做测试开发的经验
作者在阿里一直从事测试开发相关工作,这几年学习很多、收获很多,作者希望给还在该方向摸爬滚打的同学一些启发和方向。
|
4月前
|
机器学习/深度学习 人工智能 测试技术
探索自动化测试的未来之路
随着软件开发行业的飞速发展,自动化测试已经成为确保软件质量和效率的关键手段。本文将深入探讨自动化测试的最新趋势、面临的挑战以及未来的发展方向,旨在为读者提供全面的视角,理解自动化测试如何适应不断变化的技术环境,并预测其对行业的影响。
python基础14题(入门必看)
python基础14题(入门必看)
python基础14题(入门必看)
|
6月前
|
文字识别 Devops 测试技术
什么是自动化测试?
什么是自动化测试?
112 0
|
6月前
|
监控 IDE jenkins
什么是自动化测试,看完你就懂了!
【1月更文挑战第2天】随着互联网技术的飞速发展,软件本身的规模和复杂度也是逐步增加,为了保证软件项目能够保质保量交付到客户手中,软件测试环节就显得非常重要了
|
5月前
|
jenkins 测试技术 持续交付
30个接口自动化测试面试题,赶紧收藏
接口自动化测试是使用工具验证接口功能、性能和安全性的自动化过程。它能提升测试效率,减少人工工作量,及时发现问题。常见工具包括Postman、SoapUI和JMeter。测试涉及需求分析、测试计划、用例设计、脚本编写、执行、报告生成及问题跟踪。测试用例涵盖输入数据、预期结果等,脚本包含请求和响应细节。断言验证接口正确性,数据驱动测试使用多数据验证,性能测试检查响应时间等,安全测试关注认证和加密,Mock测试模拟数据,集成测试验证接口交互,回归测试确保修改未破坏原有功能,异常处理确保测试稳定性,并发和压力测试检查系统负载,持续集成通过工具如Jenkins保证软件质量。
209 3
|
6月前
|
人工智能 监控 安全
一个测试开发的十年心路历程-从改变自己做起
作者天士从事测试开发十多年,期间经历不少角色转换,以下是他在测开成长升级、质量体系建设、专项建设方面的总结,以及职场上的一些思考。
|
5月前
|
存储 Oracle 关系型数据库
几种常见的数据同步方式
【6月更文挑战第18天】几种常见的数据同步方式
673 4
|
Web App开发 Java 测试技术
反了!居然让我教她自动化测试
一个做测试的居然让我教她怎么做自动化测试,真是反了……行吧,正好懂一些 Selenium,今天就来跟大家一起了解下 Python 如何使用 Selenium 进行自动化测试。
84 0
反了!居然让我教她自动化测试