【AICon】AI 大模型超全落地场景&最佳实践 了解详情
写点什么

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

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

    阅读完需:约 7 分钟

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

AI 大模型超全落地场景&金融应用实践,8 月 16 - 19 日 FCon x AICon 大会联诀来袭、干货翻倍!

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


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


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


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


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


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


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


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


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


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


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


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


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


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




作者简介


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


2018-11-20 00:002096

评论 1 条评论

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

Flink精粹:可能是关于Flink知识点最密集的文章

Joseph295

【C语言深度剖析】深入理解C语言中的移位操作符(代码+图解)

Albert Edison

C语言 9月月更 左移操作符 右移操作符

关于 HBase

Joseph295

关于AWS Aurora

Joseph295

Python基础(三) | Python的组合数据类型

timerring

Python. 9月月更

从程序员的视角看待Linux操作系统

Joseph295

HDFS Block状态转移详解

Joseph295

Java基础语法知识点 1

喜羊羊

9月月更

架构实战营模块七作业

zhihai.tu

近期对前端性能优化的总结

南城FE

性能优化 前端 性能 性能提升

Elasticsearch聚合学习之一:基本操作

程序员欣宸

Elastic Search 9月月更

还能把浏览器当作 Web 服务器?骚操作,学废了~

掘金安东尼

前端 9月月更

关于 Java Stream 以及lambda

Joseph295

Kubernetes: 关于云原生,我知道的一切都在这里了

Joseph295

Java基础知识之数组

喜羊羊

9月月更

『数据结构与算法』之时间复杂度与空间复杂度,看这一篇就够啦

喜羊羊

9月月更

Qt实现文本编辑器(二)

中国好公民st

c++ qt 9月月更

性能:顶尖高手必备

Joseph295

数据治理(十五):Ranger 管理 Hive 安全

Lansonli

数据治理 9月月更

面向对象、DDD与设计模式

Joseph295

【Vue】Vue项目需求--实现搜索框输入防抖处理

Sam9029

JavaScript Vue 前端 9月月更

Kafka 最重要的 10 issues 详解

Joseph295

OpenHarmony源码的编译构建

坚果

OpenHarmony 9月月更

美团前端二面高频面试题合集

loveX001

JavaScript 前端

腾讯前端二面面试题(附答案)

beifeng1996

JavaScript 前端

库调多了,都忘了最基础的概念《Mysql相关知识》

知识浅谈

MySQL 9月月更

分布式系统的一致性算法导论

Joseph295

关于 DynamoDB

Joseph295

分布式事务解决思想以及实现方案

想要飞的猪

3PC 2PC注意事项 TCC 本地消息表

SpringCloud Feign 远程调用(史上最详细讲解)

SpringCloud Fegin 9月月更

基于阿里云GPU云服务器的AIACC助力UC搜索业务性能提效380%,每年节省数千万成本

阿里云弹性计算

神龙 加速引擎 TensorRT QTC

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