AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

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

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

    阅读完需:约 7 分钟

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

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


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


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


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


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


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


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


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


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


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


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


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


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


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




作者简介


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


2018-11-20 00:002224

评论 1 条评论

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

重磅 | 基金会为白金、黄金、白银捐赠人授牌

kk-OSC

开放原子全球开源峰会

推荐算法的三大研究热点

博文视点Broadview

elasticsearch实战三部曲之一:索引操作

程序员欣宸

Java elasticsearch 7月月更

原型链继承和构造函数继承的 “毛病”

掘金安东尼

JavaScript 前端 设计模式 7月月更

C# 使用数据库对ListView控件数据绑定

IC00

C# 7月月更

开放原子开源基金会黄金捐赠人优博讯携手合作伙伴,助力OpenHarmony破圈!

极客天地

重磅 | 2022 开放原子全球开源峰会在北京开幕

kk-OSC

开放原子全球开源峰会

重磅 | 开放原子校源行活动正式启动

kk-OSC

开放原子全球开源峰会

怎么样的框架对于开发者是友好的?

MASA技术团队

.net 云原生 软件架构

如何消减敏捷开发协作中的「认知偏差」?| 敏捷之道

LigaAI

程序人生 产品经理 LigaAI 敏捷开发流程 研发协作

一键搭建博客:如何使用WordPress插件搭建专属博客

hum建应用专家

Wordpress 部署 Wordpress 博客部署

又快又稳!Alibaba出品Java性能优化高级笔记(全彩版)震撼来袭

冉然学Java

编程 程序员 分布式 性能优化 java 14

架构实战营模块八作业

Geek_Q

重磅 | 开放原子算法大赛拉开帷幕

kk-OSC

开放原子全球开源峰会

敢看系列?Python字体反爬实战案例之实习那僧,继续挖坑

梦想橡皮擦

Python 爬虫 7月月更

高效能7个习惯学习笔记

JefferLiu

高效能人士的七个习惯

12代酷睿处理器+2.8K OLED华硕好屏,灵耀14 2022影青釉商务轻薄本

科技热闻

开放原子开源基金会秘书长孙文龙 | 凝心聚力,共拓开源

kk-OSC

开放原子全球开源峰会

专访 | 阿里巴巴首席技术官程立:云 + 开源共同形成数字世界的可信基础

kk-OSC

开放原子全球开源峰会

聊聊性能测试环境搭建

老张

性能测试 环境搭建

专访 | 软通动力高级副总裁秦张波:开源驱动创新,推动操作系统产业生态建设

kk-OSC

开放原子全球开源峰会

即学即用的问题解决思维,给无意识的生活装上“后视镜”

图灵教育

SiC功率半导体产业高峰论坛成功举办

极客天地

CSP直通车 | 在线直播认证培训双周末班 火热报名中

ShineScrum

Scrum 敏捷 CSP-SM 敏捷专家 敏捷大师

云图说丨华为云区块链引擎服务:高安全的区块链技术服务平台,轻松部署,快速上链

华为云开发者联盟

区块链 华为云 引擎 BCS

AI全流程开发难题破解之钥

华为云开发者联盟

人工智能 华为云

Alluxio为Presto赋能跨云的自助服务能力

Alluxio

数据架构 presto 跨云 Alluxio

转转push的演化之路

转转技术团队

push

开源峰会抢先看 | 7 月 29 日分论坛 & 活动议程速览

kk-OSC

开放原子全球开源峰会

用户身份标识与账号体系实践

Java 架构 业务设计 IDMapping 数据映射

JAVA编程规范之二方库依赖

源字节1号

软件开发 程序员‘

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