![]()
2025年Stack Overflow开发者调查有个诡异断层:前端Flutter/React Native(跨端框架)、后端Supabase/Firebase(云原生数据库)、CI/CD用GitHub Actions——每层都是2019年后出生的现代工具。唯独测试层,80%团队还在用2011年的Appium。同一批工程师,左边用着2024年的技术栈,右边维护着比Instagram还老3岁的测试框架。
这像什么?像你家全屋智能家居,但门锁还是插钥匙的。
20万美元买了个"假失败"报警器
我花了6个月聊移动工程师,听到同一套剧本:测试环节能量骤变。Appium测试套件靠脆弱的XPath和Thread.sleep()硬撑,Android用Espresso、iOS用XCUITest——同一套用户流程写两遍、维护两遍。真实设备的 flaky 率(不稳定测试比例)常年15%-20%,高峰期冲到25%。
一位移动端负责人算了笔账:每年20万美元工程时间砸在测试维护上。不是修bug,是修选择器——有人改了无障碍标签、组件层级深了一层,测试就崩。设计师重命名个ID,测试挂;促销banner把布局顶下去,超时错误。
![]()
这些失败不代表应用坏了,代表定位器匹配不上了。这是纯 busywork(无效忙碌),不是QA。
有些团队干脆不写了。关键流程退回人工测试。不是不想自动化,是每天早上被假失败轰炸,比没自动化还折磨。
架构级缺陷:测试在查"户口本"而非"看脸"
核心问题不是Appium不能用,是架构过时。基于选择器(selector-based)的测试把用例和实现细节焊死了。你的测试不说"点登录按钮",而是说"找到 //android.widget.Button[@resource-id='com.app:id/login_btn'] 并点击"。
Vision AI测试正在填这个坑。不查元素树,直接看渲染后的屏幕——用户看到什么像素,它就识别什么。工具如Drizz用视觉找"Login"按钮,底层是Button、TouchableOpacity还是自定义View带onPress,一概不管。
![]()
实际效果:Appium里30多行Java代码,带显式等待和XPath,Vision AI里6行 plain English(纯英文描述)。覆盖率一样,双端通用无需重写。UI变了——按钮移位、文字更新、组件重构——测试照过,因为它不绑DOM。
5%对20%:早期数据里的代差
跑这套的团队给到的数字:flaky率压到5%以下,对比行业平均15-20%。测试创建从小时级降到分钟级。最意外的是非工程师——PM、设计师——开始写测试用例了,因为不用写代码。
我访谈的40多个工程师里,有个比喻很准:Appium像让测试员背下每个按钮的"身份证号"去操作,Vision AI像让测试员直接看屏幕操作。前者身份证号一变就崩盘,后者只要按钮还在那儿,管你换没换户口。
这不是要你现在撕了Appium。成熟团队的测试资产是沉没成本,迁移有窗口期。但新项目的选型窗口正在收窄——2025年启动的项目,2026年上线,测试层的技术债会跟着还两年。
有个细节我印象很深:一位工程师说,他们PM现在自己补回归测试,因为"终于不用求开发帮忙改XPath了"。测试从工程部门的专属苦力,变成了产品团队的日常工具。这个权限转移,可能比flaky率数字更说明问题。
你的团队测试层是哪一年的?如果Appium比你司最老的员工在职时间还长,这是技术保守,还是某种集体拖延?
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.