Scaling Mobile Chaos Testing with AI-Driven Test Execution
Ce document présente un système de test de chaos mobile piloté par l'IA qui intègre l'exécution de tests basée sur les LLM avec l'injection de fautes au niveau du service pour valider automatiquement la résilience à grande échelle, identifiant avec succès des risques architecturaux critiques et réduisant le temps de débogage à travers les applications mobiles d'Uber.
Article original sous licence CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète
Imaginez l'internet comme une ville immense et bouillonnante où des millions de petits messagers numériques (des applications) courent partout pour livrer des messages, de la nourriture et des trajets. En coulisses, ces messagers s'appuient sur un vaste réseau invisible de services — comme des centrales électriques, des feux de signalisation et des entrepôts — pour que tout fonctionne sans accroc. Parfois, l'une de ces parties invisibles se casse ou ralentit. C'est ce qu'on appelle une « défaillance ». Dans le monde de l'ingénierie logicielle, il existe une pratique appelée l'Ingénierie du Chaos (Chaos Engineering), qui consiste essentiellement à casser intentionnellement des choses exprès pour voir si le système peut survivre. C'est comme un exercice d'incendie pour un bâtiment, mais au lieu d'un incendie, on simule une coupure de courant pour voir si les lumières de secours fonctionnent.
Cependant, tester les applications mobiles (les applis sur votre téléphone) est délicat. Contrairement à un simple site web, une application mobile doit composer avec des milliers de villes, de langues et d'habitudes d'utilisateurs différents. Si vous essayiez de tester toutes les manières possibles dont l'application pourrait tomber en panne dans chaque ville, vous devriez écrire des millions de scripts de test. C'est comme essayer de vérifier chaque porte d'une ville de la taille de New York pour voir si elles verrouillent correctement ; c'est impossible à faire manuellement pour des humains. Ce document s'attaque à ce problème mathématique impossible en utilisant l'Intelligence Artificielle (IA) pour effectuer les tests à la place des personnes.
Les chercheurs d'Uber, une entreprise qui met en relation passagers et chauffeurs ainsi que les gens avec la nourriture, ont construit un système qui combine deux outils puissants. Le premier outil est un robot d'IA nommé DragonCrawl. Considérez DragonCrawl comme un adolescent super intelligent et curieux qui peut regarder un écran de téléphone, comprendre ce qu'il voit (comme « Oh, c'est un bouton pour commander une pizza ») et comprendre ce qu'il faut cliquer ensuite sans qu'un humain ait besoin d'écrire une instruction spécifique pour chaque bouton. Le second outil est uHavoc, un système qui agit comme un saboteur contrôlé. Il casse intentionnellement des parties du backend (le réseau invisible de services) pour voir comment l'application mobile réagit.
Habituellement, ces deux outils fonctionnaient séparément. DragonCrawl testait si l'application fonctionnait quand tout était parfait, et uHavoc testait si les serveurs pouvaient supporter un crash. Mais les chercheurs ont réalisé qu'en les combinant, ils pouvaient créer une machine de « test de chaos » qui fonctionne automatiquement. Ils ont laissé DragonCrawl naviguer dans l'application pendant qu'uHavoc cassait simultanément des éléments en arrière-plan. L'objectif était de voir si l'application pouvait continuer à fonctionner (comme commander une course) même lorsque les services backend traversaient une mauvaise journée.
Le document explique comment ils ont construit ce système et ce qui s'est passé lorsqu'ils l'ont activé. Ils n'ont pas seulement deviné ; ils ont fait tourner le système plus de 180 000 fois à partir du premier trimestre 2024. Ils ont testé 47 flux critiques (comme réserver une course ou commander de la nourriture) à travers les applications Rider, Driver et Eats d'Uber. Les résultats sont impressionnants. Le système piloté par l'IA a trouvé 23 problèmes graves que les humains avaient manqués. La plupart étaient des cas où la défaillance d'un service petit et sans importance provoquait le crash d'une fonctionnalité majeure (comme le paiement d'une course). En fait, deux des problèmes trouvés auraient provoqué le gel complet et le crash de l'application, ce qui est une chose que seul un test sur un vrai téléphone peut détecter.
L'une des parties les plus cool de leur découverte est la façon dont ils ont résolu le « jeu de la responsabilité ». Lorsqu'un test échouait, il fallait auparavant des heures aux ingénieurs seniors pour comprendre quel service défectueux avait causé le dysfonctionnement de l'application mobile. Leur nouveau système utilise l'IA pour examiner les preuves et deviner le coupable. Il avait raison sur la cause principale 88 % du temps lorsqu'il examinait les cinq meilleures hypothèses. Cela a réduit le temps nécessaire pour corriger les problèmes de plusieurs heures à quelques minutes.
Le document souligne également que ce n'était pas seulement une théorie. Ils ont prouvé que cela fonctionne dans le monde réel sans nuire aux vrais clients. Ils ont constaté que l'IA était incroyablement fiable, réussissant 99 % des tests même lorsque des choses se cassaient en arrière-plan. Cela signifie que le système est assez robuste pour être exécuté chaque nuit, vérifiant constamment si l'application est prête pour une catastrophe. Les auteurs soutiennent que cette approche résout le problème de l'« explosion combinatoire » — l'idée que le nombre de tests nécessaires croît si vite qu'il devient impossible à gérer. En utilisant l'IA pour s'adapter à l'écran en temps réel, ils n'ont pas eu besoin d'écrire des millions de scripts de test ; l'IA a simplement compris au fur et à mesure.
Cependant, le document prend soin de noter ce que ce système ne peut pas faire. Il ne peut pas tester des choses comme des coupures de câbles internet ou des défaillances dans des services que Uber ne contrôle pas (comme un fournisseur de cartes tiers). Il repose également sur le fait que l'entreprise possède ses services correctement étiquetés et suivis, ce qui demande beaucoup de travail de mise en place au préalable. Mais pour les problèmes qu'il résout, le document suggère que ceci est un bond en avant massif. Cela transforme le test de chaos mobile d'un événement manuel, rare et coûteux, en un contrôle de sécurité automatisé et routinier qui se produit chaque nuit, garantissant que lorsque vous appuyez sur « Commander » sur votre téléphone, l'application est prête pour tout ce que l'internet pourrait lui lancer.
Noyé(e) sous les articles dans votre domaine ?
Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.