← Nieuwste papers
💻 computer science

Scaling Mobile Chaos Testing with AI-Driven Test Execution

Dit artikel presenteert een door AI aangedreven mobiel chaos-testingsysteem dat LLM-gebaseerde testuitvoering integreert met foutinjectie op serviceniveau om veerkracht automatisch op schaal te valideren, waarbij kritieke architecturale risico's succesvol zijn geïdentificeerd en de debugtijd voor de mobiele applicaties van Uber is verminderd.

Oorspronkelijke auteurs: Juan Marcano, Ashish Samant, Kai Song, Lingchao Chen, Kaelan Mikowicz, Tim Smyth, Mengdie Zhang, Ali Zamani, Arturo Bravo Rovirosa, Sowjanya Puligadda, Srikanth Prodduturi, Mayank Bansal

Gepubliceerd 2026-07-21
📖 5 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Juan Marcano, Ashish Samant, Kai Song, Lingchao Chen, Kaelan Mikowicz, Tim Smyth, Mengdie Zhang, Ali Zamani, Arturo Bravo Rovirosa, Sowjanya Puligadda, Srikanth Prodduturi, Mayank Bansal

Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer

Stel je het internet voor als een enorme, bruisende stad waar miljoenen kleine digitale boodschappers (apps) rondrennen om berichten, eten en ritten te bezorgen. Achter de schermen vertrouwen deze boodschappers op een massief, onzichtbaar web van diensten—zoals elektriciteitscentrales, verkeerslichten en magazijnen—om alles soepel te laten verlopen. Soms gaat een van deze onzichtbare onderdelen kapot of wordt het traag. Dit wordt een "failure" genoemd. In de wereld van software engineering is er een praktijk genaamd Chaos Engineering, wat in featies een vorm van gecontroleerd vernielen is: het is de kunst om opzettelijk dingen kapot te maken om te zien of het systeem kan overleven. Het is als een brandoefening voor een gebouw, maar in plaats van vuur simuleer je een stroomstoring om te zien of de noodverlichting werkt.

Het testen van mobiele apps (de apps op je telefoon) is echter lastig. In tegenstelling tot een eenvoudige website, heeft een telefoon-app te maken met duizenden verschillende steden, talen en gebruikersgewoonten. Als je zou proberen te testen op elke mogelijke manier waarop de app zou kunnen falen in elke stad, zou je miljoenen testscripts moeten schrijven. Het is alsof je elke deur in een stad ter grootte van New York wilt controleren om te zien of ze goed op slot gaan; dat is onmogelijk voor mensen om handmatig te doen. Dit artikel pakt dit onmogelijke wiskundige probleem aan door kunstmatige intelligentie (AI) te gebruiken voor het testen in plaats van mensen.

De onderzoekers bij Uber, een bedrijf dat mensen verbindt met chauffeurs en eten, hebben een systeem gebouwd dat twee krachtige hulpmiddelen combineert. Het eerste hulpmiddel is een AI-robot genaamd DragonCrawl. Denk aan DragonCrawl als een superintelligente, nieuwsgierige tiener die naar een telefoonscherm kan kijken, begrijpt wat hij ziet (zoals "Oh, dat is een knop om een pizza te bestellen") en uitzoekt waar hij op moet klikken zonder dat een mens voor elke knop een specifieke instructie hoeft te schrijven. Het tweede hulpmiddel is uHavoc, een systeem dat fungeert als een gecontroleerde saboteur. Het breekt opzettelijk delen van de backend (het onzichtbare web van diensten) af om te zien hoe de mobiele app reageert.

Normaal gesproken werkten deze twee tools apart. DragonCrawl testte of de app werkte wanneer alles perfect was, en uHavoc testte of de servers een crash konden verwerken. Maar de onderzoekers realiseerden zich dat als ze hen zouden combineren, ze een "chaos testing"-machine konden creëren die automatisch draait. Ze lieten DragonCrawl door de app navigeren terwijl uHavoc tegelijkertijd dingen in de achtergrond kapot maakte. Het doel was om te zien of de app kon blijven werken (zoals een rit boeken) zelfs wanneer de backend-diensten een slechte dag hadden.

Het artikel legt uit hoe ze dit systeem hebben gebouwd en wat er gebeurde toen ze het aanzetten. Ze gokten niet alleen; ze lieten het systeem meer dan 180.000 keer draaien vanaf het eerste kwartaal van 2024. Ze testten 47 kritieke flows (zoals een rit boeken of eten bestellen) binnen de Uber Rider-, Driver- en Eats-apps. De resultaten waren indrukwekkend. Het AI-gestuurde systeem vond 23 serieuze problemen die mensen over het hoofd hadden gezien. De meeste hiervan waren gevallen waarbij het falen van een kleine, onbelangrijke dienst zorgde voor het crashen van een grote, belangrijke functie (zoals het betalen voor een rit). Sterker nog, twee van de problemen die werden gevonden, zouden ervoor hebben gezorgd dat de app volledig zou bevriezen en crashen, iets wat alleen testen op een echte telefoon kon opvangen.

Een van de coolste onderdelen van hun ontdekking is hoe ze het "blame game" (het spel van de schuldvraag) oplosten. Wanneer een test faalde, duurde het voor ervaren engineers uren om uit te zoeken welke defecte dienst de telefoon-app liet haperen. Hun nieuwe systeem gebruikt AI om bewijsmateriaal te analyseren en de schuldige te raden. Het had de hoofdoorzaak in 88% van de gevallen correct geïdentificeerd binnen de top vijf suggesties. Dit verkortte de tijd die nodig is om problemen op te lossen van uren naar minuten.

Het artikel benadrukt ook dat dit geen theorie was. Ze bewezen dat het in de echte wereld werkt zonder echte klanten te schaden. Ze ontdekten dat de AI ongelooflijk betrouwbaar was en zelfs wanneer er op de achtergrond dingen kapot gingen, slaagde de AI voor 99% van de tests. Dit betekent dat het systeem robuust genoeg is om elke nacht te draaien en constant te controleren of de app klaar is voor een ramp. De auteurs stellen dat deze aanpak het "combinatorische explosie"-probleem oplost—het idee dat het aantal benodigde tests zo snel groeit dat het onmogelijk te beheren wordt. Door AI te gebruiken om zich in realtime aan het scherm aan te passen, hoefden ze geen miljoenen testscripts te schrijven; de AI ontdekte het gewoon terwijl hij bezig was.

Het artikel merkt echter voorzichtig op wat dit systeem niet kan doen. Het kan geen zaken testen zoals het doorknippen van internetkabels of het falen van diensten die buiten de controle van Uber vallen (zoals een externe kaartprovider). Het leunt ook op het feit dat het bedrijf zijn diensten correct gelabeld en getraceerd moet hebben, wat veel werk vereist om eerst op te zetten. Maar voor de problemen die het wel oplost, suggereert het artikel dat dit een enorme sprong voorwaarts is. Het verandert mobiele chaos-testing van een zeldzame, dure, handmatige gebeurtenis in een routinematige, geautomatiseerde veiligheidscontrole die elke nacht plaatsvindt, zodat wanneer je op je telefoon op "Bestellen" tikt, de app klaar is voor alles wat het internet erop loslaat.

Verdrinkt u in papers in uw vakgebied?

Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.

Probeer Digest →