[分享创造] 移动端回归测试人手不够,我落地了一套 VLM 真机自动化方案,想听听大家意见

最近在公司里落地了一套移动端 AI 自动化回归方案,想拿出来和大家交流一下,也听听有没有类似场景的同学。 先说背景。 我们这边移动端有 Android 、iOS ,现在还有鸿蒙。业务迭代比较快,每次发版前都要做一些主流程回归。 比如: 登录 内容浏览 内容发布 视频播放 核心页面跳转 多端基础兼容验...
[分享创造] 移动端回归测试人手不够,我落地了一套 VLM 真机自动化方案,想听听大家意见
[分享创造] 移动端回归测试人手不够,我落地了一套 VLM 真机自动化方案,想听听大家意见

最近在公司里落地了一套移动端 AI 自动化回归方案,想拿出来和大家交流一下,也听听有没有类似场景的同学。

先说背景。

我们这边移动端有 Android 、iOS ,现在还有鸿蒙。业务迭代比较快,每次发版前都要做一些主流程回归。

比如:

  • 登录
  • 内容浏览
  • 内容发布
  • 视频播放
  • 核心页面跳转
  • 多端基础兼容验证

问题是,测试资源并不是特别充足。

不是没人测,而是没有一个专门的人长期维护复杂自动化。很多时候是测试同学过一遍主流程,开发自己再补一遍。

时间紧的时候,大家其实都知道一些边角路径覆盖不到,但也只能先保核心链路。


之前也看过传统自动化方案,比如 Appium 、xpath 、坐标、录制回放这些。

实际落下来,问题基本差不多:

页面一改,脚本就容易挂。

Android 、iOS 、鸿蒙三端表现不完全一样。

弹窗、权限、加载中、toast 、偶现卡顿这些情况,都要额外处理。

最关键的是,如果没有专门自动化测试同学长期维护,这套东西很容易变成:

刚开始能跑,过一段时间没人敢动。

所以我后来尝试了另一条路:

能不能把 case 写成人话,然后让模型看真实手机截图,自己判断下一步怎么操作。

比如一个 case 可能就是:

打开 App ,登录账号,进入首页,确认能看到推荐列表。

系统拿到这个 case 后,分配一台真机。

执行过程中,每一步截图给 VLM ,让模型判断当前页面状态、下一步点哪里、输入什么、是否已经完成。


这个方向我一开始也只是想验证一下。

但后面做着做着,发现单纯做一个本地 demo 意义不大。因为公司里真正要用,光能跑起来还不够。

所以后面我把它补成了一个偏平台化的东西,目前已经在公司内部落地使用。

大概流程是:

外部系统投递一批 case
        ↓
平台根据端类型寻找空闲设备
        ↓
真实手机开始执行
        ↓
每一步记录截图、模型判断、操作结果
        ↓
执行结束后生成报告
        ↓
case 结果和批次结果回传给业务系统

现在它可以覆盖 Android 、iOS 、鸿蒙三端真机。

不过我自己的感受是,这个东西真正有价值的地方,不是“AI 能点手机”。

单纯让模型看图点一下,其实很容易做成 demo 。

真正落地的时候,麻烦的反而是这些:

  • 页面是否已经稳定下来
  • 模型是不是一直卡在同一个页面
  • 弹窗、权限、广告、toast 这种临时 UI 怎么处理
  • 失败以后怎么复盘
  • 多台设备怎么调度
  • 结果怎么让内部系统消费
  • 怎么让开发和测试愿意相信这个报告

所以我后面做的时候,重点其实放在了执行链路上,而不只是模型本身。


当然,现在这个方案也不是没有问题。

稳定性肯定还不如写死脚本。

同一个 case 多跑几次,偶尔会出现模型判断不一致。

起始状态也很重要。账号状态、权限状态、弹窗状态如果不干净,模型很容易被带偏。

成本也要算。因为每一步都调 VLM ,跑多了肯定不是免费的。

另外像验证码、人脸、安全键盘、强风控这些场景,我也不觉得它适合硬做。

所以我现在对它的定位不是替代测试,也不是替代传统自动化。

更像是一个兜底工具。

比如:

  • 开发提测前,先跑一遍主流程
  • 发版前,跑几条核心冒烟
  • 晚上定时跑一批基础回归
  • Android 、iOS 、鸿蒙三端做主链路对比
  • 没有专门自动化测试岗位的团队,先把最痛的几个流程托管起来

目前我们内部已经用它跑了一些真实场景,确实能减少一部分重复点点点的工作。

但我也知道这个方向还不算成熟,所以想听听大家意见。


我比较想请教几个问题:

  1. 你们公司移动端回归一般是怎么做的?
  2. 如果没有专门自动化测试岗位,自动化最后通常是谁维护?
  3. VLM 看图操作真机这种方式,你们觉得最大的问题会是稳定性、成本,还是失败复盘?
  4. 如果只是用来兜底主流程冒烟,而不是做完整测试,你们觉得有没有价值?
  5. 这种方案要接进公司内部测试平台,你们最关心的是报告可信度、执行稳定性,还是环境隔离?

我把目前整理出来的版本开源了,项目叫 ai-phone:

https://github.com/dongxinsuperman/ai-phone.git

目前主力分支是 next/server-brainmain 分支已经归档冻结。

发出来主要不是想说这个方案已经多完善,而是因为它确实在公司里跑起来了,也踩到了一些传统自动化和 VLM 落地之间的问题。

想听听大家怎么看这个方向,欢迎提建议,也欢迎拍砖。

来源: v2ex查看原文