【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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

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

    阅读完需:约 7 分钟

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

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


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


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


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


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


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


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


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


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


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


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


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


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


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




作者简介


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


2018-11-20 00:002065

评论 1 条评论

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

SecureCRT 9 for Mac(终端SSH工具)

展初云

App加固中的代码混淆功能,让逆向工程师很头疼

软件测试/人工智能丨知识图谱与模型驱动测试的软件测试进化

测试人

人工智能 软件测试

用Puppeteer优化项目本地开发流程:一键获取登录Token

陇锦

Vue 前端 Node puppeteer

多GPU训练大型模型:资源分配与优化技巧 | 英伟达将推出面向中国的改良芯片HGX H20、L20 PCIe、L2 PCIe

蓝海大脑GPU

准「AI 时代」下,如何衡量程序员的工作效率和生产力?

LigaAI

人工智能 研发管理 研发度量 AIGC 研发效能管理

AI创新下的生成式人工智能——Amazon Bedrock

淼.

提效神器!10%标注数据,比肩全量标注的模型效果!

飞桨PaddlePaddle

大模型 半监督 自动标注 模型蒸馏

SideNotes for Mac(即时笔记工具)

展初云

Mac 笔记软件 SideNotes

WorkPlus即时通讯app支持多种信创环境组合运行

WorkPlus

Sketchpad for Mac(几何教学工具)v5.06中文激活版

影影绰绰一往直前

让家人饮水不再瞎凑合 A.O.史密斯冷热即饮净水机健康又便利

科技热闻

PON网络是什么?

小魏写代码

数据库分类有哪些?

小齐写代码

使用DocumentBuilderFactory解析XML浅谈

EquatorCoco

Java XML文档 document

Unclutter for mac(下拉菜单隐藏工具) v2.2.4中文版

影影绰绰一往直前

苹果系统下载:macOS 12 Monterey v12.7.1正式版

加油,小妞!

苹果系统下载 macOS 12 Monterey

sublime text Mac前端代码编辑工具 支持M1

加油,小妞!

Sublime Text 4下载 Sublime Text 4注册版

JProfiler 14 for Mac(Java开发分析工具) 14.0激活版

影影绰绰一往直前

实时化与Serverless是开源大数据3.0时代的必然选择

阿里云大数据AI技术

开源

避免defer陷阱:拆解延迟语句,掌握正确使用方法

王中阳Go

Go golang 进阶 面试题 defer

Ulysses for Mac(Markdown) v33免激活版

展初云

Mac Ulysses 文本写作软件

特权账号管理之权限划分篇

尚思卓越

运维 网络安全 权限管理

mac录音软件:Audio Hijack for Mac v4.3.1直装版

影影绰绰一往直前

PDF Reader Pro for mac(专业的PDF阅读器)

影影绰绰一往直前

多屏幕媒体播放软件:ProVideoPlayer 3 Mac 激活版下载

iMac小白

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