写点什么

谁需要采购自动化测试工具

  • 2018-11-20
  • 本文字数:2142 字

    阅读完需:约 7 分钟

谁需要采购自动化测试工具

去年我尝试给一个挺传统的 IT 组织引入持续集成,谈到自动化测试的时候,对方的测试负责人问我,有什么好的自动化测试工具,他们想采购一套。这个看似寻常的问题,我在过去十五年中遇到太多次,以至于我已经很清楚,这个问题背后隐藏着一个怎样深不见底的坑。


简而言之,只要听到“想采购一套好的自动化测试工具”这个话,我就已经基本上知道,这个组织目前还干不成自动化测试,基本上也干不成持续集成。这个提问一出,我作为一个敏捷倡导者可以聊的话题基本上就终结了。


过去十五年的经历给我留下的这个条件反射,背后的逻辑细想起来是这样的:


首先,为什么一个 IT 组织会想要采购“自动化测试工具”?这个采购是由谁发起、给谁使用的?


一般来说,专门想采购“自动化测试工具”,如果被测的软件不是战斗机驾驶系统之类的冷门软件,而是很主流的比如说 Web 应用,那么 发起这个采购的原因一定是对测试的现状不满。那么,为什么“对软件质量的不满”会映射为“对测试的不满”,基本上,这说明 开发部和测试部是分离的,开发和测试不在一个全功能团队里。并且也只有这种情况下,测试部的领导才会认为可以买一套软件给所有测试使用。


再往下追问,即使需要一个自动化测试工具,这世界上开源的自动化测试工具汗牛充栋,为什么一定要采购一个商业软件?


这时候你就要去看这些商业的自动化测试工具在鼓吹什么卖点了。从录制测试脚本、到拖拽控件组合逻辑、到 AI 自动生成测试脚本,这些昂贵的工具无一例外都在鼓吹一个卖点,叫做“不用写代码”。于是你就知道了,这些工具对测试部领导有吸引力,是因为领导手下的测试人员全都不会写代码。


然而,很不幸,不会写代码的测试人员,不管有没有什么工具帮他生成测试脚本,他也只能从图形界面上模拟最终用户的操作,做界面的自动化测试。而 图形界面的自动化测试,无一例外地存在一些内生的困难:运行慢;流程大量重复;不稳定;难以调试;难以维护。因为有这些内生的困难存在,严重依赖图形界面自动化测试的团队,无一例外,刚开始,录制几个用例,看着界面唰唰的自动翻滚,挺开心,等到用例多了,跑一趟要几个小时,还随机出错,出了错半天找不到问题在哪,页面一改一堆测试失败。不用太久,我的个人经验,一般出不了半个月,这套用例就被废弃了。华为的一些团队执行力特别强,可以坚持三个月,得到一堆特别慢、特别不稳定、特别难维护的用例,浪费特别多的时间和精力。


现实很残酷。自动化测试也是程序。想把程序写好,办法很简单,第一你要让你的团队具备写好程序的能力,起码要会写程序;第二你要给他们一定的空间让他们写好程序。具体到自动化测试,这事情应该怎么做,至迟到 2010 年已有定论:架构好测试金字塔;多写单元测试,少些界面测试;界面测试遵循 BDD;设计好页面模型;随时重构测试代码;随时提取等效低成本测试。但要做到这些事,不仅需要会编程,还得相当会编程。很多组织不想做这些踏实的事,想取巧,想抄捷径,所以他们就想买一套工具解决自动化测试的问题。可惜,无一例外地,他们全都掉坑里了。


一个相当会编程的人,一眼就能看出,录制脚本这事太麻烦了,录制出来的脚本还得各种重构各种整理,还不如一开始把页面模型设计好,代码量少得多。更不要说拖拽控件组合逻辑,那玩意比编程慢太多,还没有 IDE,只有 6 岁小孩学编程的时候才会觉得拖拖拽拽的挺好用。这种工具的出发点就是预设了使用者是外行、是弱智。这些工具预设了这份工作是该外行、弱智来做的,你觉得用这些工具能把这工作做到多好?


真正需要自动化测试的团队,摸索来摸索去,最终总会找到这条正确的道路。比如阿里钉钉的团队,为了快速验证产品占领市场,2014 年的时候开始搞 Scrum,每个月对外发布一个新版本,每个星期发布一个阿里集团内部测试版。回归测试跟不上,怎么办,开发自己写自动化的回归测试。一个与业务目标对齐的全功能团队,必然会走到这条路上。


但讽刺的地方在于,有能力把自动化测试做好的团队,一定也有能力用开源工具组装出适合自己的测试技术栈,毕竟开源工具实在太丰富了。所以他们不需要人来给他们卖自动化测试工具。虽然 ThoughtWorks 有相当不错的自动化测试工具,他们也不会买。没必要,自己组装的功能也大差不差,用得还顺手,犯不着花那冤枉钱。他们可能会说,你们的工具基于什么开源软件做的呀,这几个功能还挺有意思的,要不我自己也做做看,我上次在某某技术大会听过你的演讲,讲得特别好,回头咱们多交流呀。


所以,这个市场上只有一种买家需要自动化测试工具这种商品,就是干不成自动化测试的那种。越是干不成,越是愿意掏着大笔钱买工具,幻想这次能买到“让不会写程序的人写出好程序”的神奇药水。而做这种工具的厂商,也就慢慢地都迎合着这些买家的幻想,炮制出一份又一份“不用写代码就能搞好自动化测试”的江湖打药。最新的江湖打药,据说是掺了 AI 在里面的。


所以,我一个敏捷倡导者,听到这么一个采购需求,还聊啥呢?聊人和交互重于流程和工具么?还是聊聊贵地有啥特色美食?友好地结束这个谈话吧。




作者简介


熊节,宝尊电商成都研发中心总经理,拥有十七年 IT 行业的从业经验,在金融、零售、政府、电信、物流等行业的信息化建设方面有着丰富经验,曾翻译过《重构》、《软件工艺》等多本软件研发领域的重要著作,是中国 IT 业敏捷浪潮的领军人物。


2018-11-20 00:002371

评论 1 条评论

发布
用户头像
你确定了解钉钉团队的测试流程?开发是自己写自动化回归?
2018-11-22 10:19
回复
没有更多了
发现更多内容

2025 年 AI 辅助工具精选:免费又好用,轻松提高开发效率

飞算JavaAI开发助手

YashanDB BOX2D类型

YashanDB

数据库 yashandb

MCP到底解决了谁的什么问题?

RockBot

开发者 MCP

京东商品详情API接口:搭建高效电商数据交互桥梁

tbapi

京东商品详情接口 京东API 京东商品详情API

LED全彩屏的“大脑”:驱动IC到底在做什么?

Dylan

屏幕亮度 LED LED display LED显示屏 颜色

YashanDB数据类型转换

YashanDB

数据库 yashandb

腾讯云EdgeOnePages上线MCPServer,一句话快速生成并部署HTML页面!

极客天地

免去繁琐的手动埋点,Gin 框架可观测性最佳实践

阿里巴巴云原生

阿里云 云原生 可观测

DeepSeek 给 API 网关上了一波热度

阿里巴巴云原生

阿里云 云原生 AI网关

《Operating System Concepts》阅读笔记:p490-p490

codists

操作系统

从 Copilot 到国产 AI 编程工具:中国开发者需要什么?

飞算JavaAI开发助手

OgCloud的SD-WAN方案保障企业网络的高可用性

Ogcloud

SD-WAN 企业组网 SD-WAN组网 sd-wan专线 SD-WAN厂家

TapData Oracle 日志解析性能全面领先:20秒处理1GB日志,效率提升100% ——释放数据潜能,驱动实时决策

tapdata

实时数据 日志解析 Oracle日志解析 日志解析性能对比 金融实时数据处理

推开双向之门,迎接万象奇境:探秘GPMI

脑极体

AI

JAVA 应用实现 APM 自动注入(Docker 篇)

观测云

Java Docker APM

鸿蒙栅格布局组件 GridRow 自学指南

李游Leo

HarmonyOS

Hyperliquid 遇袭「拔网线」、Polymarket 遭治理攻击「不作为」,从双平台危机看去中心化治理的进化阵痛

TechubNews

安全 去中心化 web3

IDEA + 飞算 JavaAI:Java 开发者工作台终极形态

飞算JavaAI开发助手

YashanDB 用户自定义类型

YashanDB

数据库 yashandb

《Operating System Concepts》阅读笔记:p489-p489

codists

操作系统

YashanDB ROWID UROWID类型

YashanDB

数据库 yashandb

京东广告创意:高质量创意生成和千人千面的创意推荐 | 京东零售技术实践

京东零售技术

京东零售技术专家亮相多场峰会,诚邀伙伴们共探前沿!

京东零售技术

Netty源码—编解码原理(二)

不在线第一只蜗牛

Netty

YashanDB ST_GEOMETRY类型

YashanDB

数据库 yashandb

SvelteKit 最新中文文档教程(13)—— Hooks

冴羽

Vue 前端 React Svelte SvelteKit

SvelteKit 最新中文文档教程(14)—— 错误处理

冴羽

Vue 前端 React Svelte SvelteKit

职场突围:后端开发者如何靠 AI 工具逆袭高薪?

飞算JavaAI开发助手

中小企业都能负担得起的组网:SD-WAN方案介绍

Ogcloud

SD-WAN 企业组网 SD-WAN组网 sd-wan专线 SD-WAN厂家

谁需要采购自动化测试工具_软件工程_熊节_InfoQ精选文章