Scaling Mobile Chaos Testing with AI-Driven Test Execution
本文提出了一种由人工智能驱动的移动端混沌测试系统,该系统将基于大语言模型的测试执行与服务级故障注入相结合,以实现大规模的自动化弹性验证,成功识别了关键架构风险,并缩短了 Uber 移动应用的调试时间。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,互联网就像一座巨大且繁忙的城市,数以百万计的小型数字信使(应用程序)在其中奔跑,传递着信息、食物和行程。在幕后,这些信使依赖于一个庞大且无形的网络服务——就像发电厂、红绿灯和仓库一样——来维持一切平稳运行。有时,这些无形的部分会发生故障或变慢。这被称为“失效”(failure)。在软件工程领域,有一种实践叫做混沌工程(Chaos Engineering),它本质上是故意通过破坏来观察系统是否能够生存下来的艺术。这就像是建筑物的消防演习,只不过模拟的不是火灾,而是停电,以此观察应急灯是否能正常工作。
然而,测试移动应用(手机上的 App)是非常棘手的。与简单的网站不同,手机应用必须应对成千上千种不同的城市、语言和用户习惯。如果你试图测试应用在每种城市中可能出现的每一种故障方式,你需要编写数百万个测试脚本。这就像试图检查一座像纽约这样规模的城市里每一扇门是否都能正常上锁一样;靠人工完成是不可能的。这篇论文通过使用人工智能(AI)代替人类进行测试,解决了这个不可能完成的数学难题。
Uber(一家连接乘客与司机以及人们与食物的公司)的研究人员构建了一个结合了两种强大工具的系统。第一个工具是一个名为 DragonCrawl 的 AI 机器人。可以将 DragonCrawl 想象成一个聪明且充满好奇心的青少年,他可以观察手机屏幕,理解他所看到的内容(例如:“哦,这是一个订购披萨的按钮”),并弄清楚下一步该点击哪里,而不需要人类为每一个按钮编写特定的指令。第二个工具是 uHavoc,它是一个扮演“受控破坏者”角色的系统。它会故意破坏后端(即那层无形的网络服务)的部分内容,以观察手机应用如何反应。
通常情况下,这两个工具是分开工作的:DragonCrawl 会测试在一切完美时应用是否正常运行,而 uHavoc 则会测试服务器是否能承受崩溃。但研究人员意识到,如果将它们结合起来,就可以创造出一个自动运行的“混沌测试”机器。他们让 DragonCrawl 在操作 App 的同时,让 uHavoc 在后台同步破坏某些部分。其目标是观察即使在后端服务状态不佳的情况下,应用是否仍能保持正常运作(例如:继续下单叫车)。
论文解释了他们是如何构建这个系统以及开启系统后发生了什么。他们不仅仅是在凭空猜测;他们在 2024 年第一季度开始,运行了该系统超过 180,000 次。他们测试了 Uber Rider、Driver 和 Eats 应用中的 47 个关键流程(如预订行程或订餐)。结果令人印象深刻。这个由 AI 驱动的系统发现了 23 个严重问题,而这些问题是人类此前未能察觉的。其中大多数情况是由于一个微不足道的小型服务失效,导致了一个重要的核心功能(如支付行程费用)崩溃。事实上,其中两个问题会导致应用完全冻结并崩溃,而这种问题只有在真实手机上进行测试才能捕捉到。
他们最酷的发现之一是解决了“推诿游戏”(blame game)。以前,当测试失败时,资深工程师需要花费数小时才能弄清楚到底是哪个损坏的服务导致了手机应用的异常。他们的新系统利用 AI 来分析证据并猜测“罪魁祸首”。在查看前五个猜测结果时,该系统对头号原因的判断准确率达到了 88%。这使得修复问题所需的时间从数小时缩短到了几分钟。
论文还强调了这不仅仅是一个理论。他们证明了这在现实世界中是行之有效的,且不会伤害到真实的客户。他们发现,即使在后台发生故障时,该 AI 也表现得极其可靠,通过了 99% 的测试。这意味着该系统足够健壮,可以每晚运行,持续检查应用是否已为灾难做好准备。作者们认为,这种方法解决了“组合爆炸”(combinatorial explosion)问题——即测试数量增长过快以至于无法处理的问题。通过使用 AI 实时适应屏幕变化,他们不需要编写数百万个测试脚本;AI 会在运行过程中自行摸索。
然而,论文也谨慎地指出,这个系统无法做到的事情。它无法测试诸如光缆被切断,或者 Uber 无法控制的服务(如第三方地图提供商)发生故障的情况。此外,它依赖于公司拥有对其服务进行正确标记和追踪的能力,而这在最初设置时需要大量的工作。但对于它所解决的问题,论文表明这是一种巨大的飞跃。它将移动端混沌测试从一种罕见、昂贵且依赖人工的活动,转变为一种常规的、自动化的安全检查,每天晚上都在运行,确保当你点击手机上的“下单”时,应用已经准备好应对互联网可能抛给它的任何挑战。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。