DragonCrawl: A Generative, Intent-Based Framework for Scalable Mobile End-to-End Testing
DragonCrawl 是一个由 AI 驱动、基于意图的移动端测试框架,它利用 GPT-4o 的多模态能力来实现高通过率、大幅缩短测试入驻时间并消除维护开销,通过在 CI/CD 流水线中验证特定的用户流,从而克服传统端到端测试的扩展性与脆弱性限制。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你正在建造一座由玻璃和光影构成的、庞大且瞬息万变的城市。每天,建筑师都会增加新的塔楼,画家会改变窗户的颜色,工程师会更换大门。这座城市就是一个移动应用程序(App),而生活在其中的人是数以百万计的用户。为了确保这座城市不会坍塌,你需要走遍每一条街道,打开每一扇门,检查每一个窗户是否依然正常工作。这被称为“测试”。但问题在于,这座城市变化得太快了,当你检查完一条街道时,建筑师已经把它重建了。如果你试图为每一扇门编写一份严格的、机器人式的清单,那么一旦画家换了一个门把手,你的清单就会失效,你不得不从头开始重写。这就是传统应用测试的噩梦:它缓慢、脆弱,并且需要成群结队的专业人员不断去修复那些损坏的清单。
于是,“AI侦探”的概念应运而生。与其是一个只知道门把手应该在精确位置的机器人,不如想象一个理解“门把手用途”的侦探。如果门把手移动了,侦探不会惊慌失措;他们只会寻找那个能打开门的东西,然后继续前行。由 Uber 工程师撰写的这篇论文介绍了一个名为 DragonCrawl 的新系统。它使用了一种超级聪明的智能人工智能(大语言模型)来充当那个侦探。DragonCrawl 不再死记硬背一张僵化的地图,而是像人类一样阅读 App:它观察屏幕,理解目标(比如“预订行程”),并自行推导下一步该做什么。论文表明,这种方法更快、更便宜,而且在 App 发生变化时不易崩溃,使公司能够在每次更新 App 时自动测试成千上万种不同的场景。
旧方法 vs. 新方法
在 DragonCrawl 出现之前,Uber 尝试过一种叫做 DragonCrawl V1 的方法。这就像是一个学生试图通过背诵路径的照片来解开迷宫。如果迷宫看起来和照片一模一样,学生就能走通。但如果墙壁稍微移动了一点,或者学生在迷宫的不同部分看到了相同的走廊,他们就会感到困惑并原地打转。这个系统处理简单任务还可以,但在面对复杂任务时却表现得一塌糊涂。这就像仅靠一张静态地图来导航城市;一旦城市扩张,地图就变得毫无用处。
全新的版本 DragonCrawl V2 则是一个彻底的规则改变者。它不再使用静态地图,而是使用了一个“生成式”的大脑。想象一位从未去过你所在城市的导游,但他了解城市运作的规律。你告诉导游:“我想去机场。”导游会观察当前的街道、交通标志和周围的人,然后决定:“好吧,我在这里左转。”如果路标变了,导游不会停下脚步;他只需观察新的路标并继续前进。这就是 DragonCrawl V2 的工作方式。它不仅仅是在匹配图像,而是在根据目标和当前所见进行推理。
它究竟是如何运作的
该系统建立在几个巧妙的技巧之上,使其感觉几乎像人类一样:
- 基于意图的大脑: 系统不再使用类似“点击按钮 A,然后点击按钮 B”的脚本,而是编写一个简单的句子:“从市中心到机场预订行程。”AI 阅读这个目标,然后观察屏幕。它会自问:“我看到了地图和一个‘去哪儿?’输入框。为了达成目标,我应该点击这个框。”它循序渐进地执行,并记住之前所做的一切,因此永远不会陷入循环。
- 视觉侦探: 当 AI 认为自己完成了任务时,它不会仅仅检查某个特定词汇是否出现。相反,它会对屏幕进行“截图”,并询问一个超级聪明的 AI(GPT-4o):“这张图片看起来像是成功预订了行程吗?”AI 会观察图像,看到收据或确认信息,然后回答:“是的,我们到了!”这种方式很难被破坏,因为它不在乎按钮移动了位置,也不在乎文字是从“确认”变成了“确定”。
- 时间旅行者(工具调用): 有时,为了测试某个功能,你需要设置一个虚假的场景。例如,要测试司机是否获得批准,你需要伪造一个司机刚刚上传了身份证件的情况。在过去,这简直是场噩梦。现在,DragonCrawl 可以直接与 App 的“后台”对话。它可以说:“嘿,假装这位司机刚刚获得了批准,”系统会立即改变状态以便测试继续进行。这就像导演喊一声“卡!”,然后瞬间切换演员的场景。
结果:更快、更聪明、更便宜
论文中的数据非常令人印象深刻。在此系统之前,工程师为单个功能创建测试大约需要 96 到 120 小时(也就是数周的工作量!)。有了 DragonCrawl V2,他们可以在 4 小时内完成测试设置。这是一个巨大的提速。
由于设置速度极快,团队能够将测试规模从仅有的 48 项测试 扩展到 1,013 项测试。每当有人更改代码时,这些测试都会自动运行。该系统极其可靠:在 iPhone 上的通过率为 91.6%,在 Android 上的通过率为 92.2%。这比旧系统有了巨大的飞跃,旧系统只能通过约 80% 的简单测试,而在复杂测试中则完全失败。
论文还强调了一个意想不到的好处:成本。尽管使用超级智能的 AI 在回答每个问题时都需要花钱,但该系统实际上为公司节省了一大笔钱。通过自动化原本需要人类花费数周才能完成的工作,他们估计节省了 27 个开发者年 的精力。这相当于多出了 27 个人整整工作一年,仅仅是通过让 AI 来承担繁重的体力活。
这对每个人意味着什么
你可能会想:“我为什么要关心一家公司是否更好地测试了它的 App?”好吧,回想一下你上次使用 App 时,它突然崩溃或无法让你完成购买。这通常是因为 App 发生了变化,而测试没有捕捉到错误。DragonCrawl 有助于防止这种情况发生。它确保当你打开 App 时,无论你使用哪种语言或身处哪个城市,按钮都能正常工作,支付能顺利完成,行程也能成功预订。
论文还指出,从业人员的角色正在发生转变。测试人员不再是仅仅遵循脚本的“点击者”,而是成为了教导 AI 如何思考的“指挥家”。他们把更多的时间从修复损坏的测试转向了构建新功能。它将测试从一项枯燥、重复的琐事变成了一项具有创造性和战略性的工作。
局限性与未来
当然,论文也坦诚地说明了 DragonCrawl 目前还不能做到的事情。它依赖于外部 AI 服务,这意味着如果该服务更改了规则或宕机,测试就会停止。此外,运行它需要成本,因此目前小型公司可能负担不起。虽然它在遵循路径方面表现出色,但并不完美;有时它可能会采取与预期略有不同的路线,不过系统设计旨在捕捉这些错误。
但核心结论是明确的:旧的 App 测试方法——编写僵化、脆弱的脚本——正在撞上天花板。App 太复杂,变化也太快。DragonCrawl 表明,通过利用 AI 去理解“意图”而非仅仅是“像素”,我们可以构建一个未来,让 App 的测试更加彻底、更加快速,且更少头痛。这不仅仅是一个更好的工具,更是一种关于如何确保我们的数字世界正常运转的新思维方式。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。