CovAgent: Overcoming the 30% Curse of Mobile Application Coverage with Agentic AI and Dynamic Instrumentation
CovAgent is een nieuw agentisch AI-framework dat de beperkte dekking van bestaande Android GUI-testtools overwint door gedecompileerde code te analyseren om complexe activatievoorwaarden te identificeren en dynamisch te voldoen, waardoor de activiteit-, klasse-, methode- en regeldekkingsgraad aanzienlijk wordt verhoogd in vergelijking met de huidige state-of-the-art baselines.
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 voor dat je een enorme, complexe Android-app hebt, zoals een digitaal pretpark met honderden attracties (schermen) en geheime tunnels (codepaden). Je doel is om elke attractie te bezoeken om te controleren of ze veilig werken.
Jarenlang waren geautomatiseerde testtools als blinddoek-gidsen die door dit pretpark renden. Ze botsten willekeurig tegen muren aan, drukten op knoppen en probeerden nieuwe attracties te vinden. Maar hoe lang ze ook renden, ze kwamen altijd op dezelfde plek vast te zitten: ze konden slechts ongeveer 30% van de attracties bezoeken. De overige 70% bleef afgesloten achter onzichtbare deuren.
Waarom zijn deze deuren vergrendeld?
- Sommige attracties gaan alleen open als je een specifieke sleutel hebt (zoals een serverrespons of een specifely gebruikersaccount).
- Sommige vereisen dat je op een specifieke locatie bent (zoals een GPS-coördinaat).
- Sommige vereisen dat je een specifiek voorwerp in je zak hebt (zoals een SD-kaart die in de telefoon zit).
- Sommige zijn verborgen achter een bewaker die controleert of je eerst een specifieke reeks acties hebt uitgevoerd.
Bestaande tools zijn te dom om deze regels te begrijpen. Ze blijven maar tegen de vergrendelde deuren aan beuken.
Maak kennis met CovAgent: De "Slimme Detective" met een Meestersleutel
Het paper introduceert CovAgent, een nieuw systeem dat werkt als een superintelligente detective gepaard met een magische gereedschapskist. In plaats van blind rond te rennen, gebruikt CovAgent Agentic AI (een AI die kan denken, plannen en tools kan gebruiken) om het puzzelstukje op te lossen van waarom die attracties vergrendeld zijn.
Zo werkt het, stap voor stap:
1. De Verkenner (Initiële Exploratie)
Eerst stuurt CovAgent een standaard, "domme" robot (een fuzzer zoals APE of Fastbot) om rond te rennen in de app. Deze robot brengt alle attracties in kaart die hij wel kan vinden en markeert de attracties die hij niet kan bereiken. Het is als een verkenner die zegt: "Ik heb de hoofdingang gevonden, maar ik kan niet bij de achtbaan in de achtertuin."
2. De Detective (Statische Analyse Agent)
Zodra de verkenner een vergrendelde attractie heeft gemarkeerd, stapt de Detective AI naar voren. Deze kijkt niet alleen naar de deur; hij kijkt naar de blauwdrukken van het pretpark (de code van de app).
- Hij leest de "Smali-code" (de instructiehandleiding van de app).
- Hij vraagt zichzelf af: "Waarom is deze attractie vergrendeld? Heeft het een signaal van een server nodig? Heeft het een SD-kaart nodig? Is er een bewaker die een wachtwoord controleert?"
- Met behulp van een techniek genaamd Chain-of-Thought breekt de AI het probleem af: "Oké, de attractie start niet omdat de code controleert of er een SD-kaart is aangesloten. Als de kaart er niet is, sluit de attractie onmiddellijk af."
3. De Magiër (Dynamische Instrumentatie Agent)
Nu de Detective de regel kent ("We hebben een SD-kaart nodig"), komt de Magician AI in actie. Deze agent is een tovenaar die de werkelijkheid kan herschrijven binnen de app terwijl deze draait.
- Hij gebruikt een tool genaamd Frida (een krachtig framework voor dynamische instrumentatie).
- In plaats van te proberen fysiek een SD-kaart in te pluggen (wat de robot niet kan doen), schrijft de Magician een klein script dat de app voor de gek houdt.
- Het script vertelt de app: "Doe alsof er een SD-kaart is aangesloten."
- Plotseling ziet de bewaker bij de deur de "kaart", opent het hek en begint de attractie te draaien.
4. De Proefrit (Validatie)
Voordat het systeem de robot weer loslaat, test het deze nieuwe "magische truc" in een veilige, virtuele omgeving (een emulator). Als de truc mislukt (bijv. de app crasht), stuurt het systeem de foutmelding terug naar de Magician, die het script herschrijft en het opnieuw probeert. Zodra het werkt, wordt het script opgeslagen.
5. De Grote Rondleiding (Gereinstrumenteerde Exploratie)
Ten slotte draait de standaard robot (de fuzzer) opnieuw. Maar dit keer is de app geladen met de scripts van de Magician. De robot klikt op een knop, en dankzij de "magie" kan hij onmiddellijk teleporteren naar de eerder onbereikbare attractie. Hij kan nu de 70% van het park verkennen dat voorheen een mysterie was.
De Resultaten: Het Breken van de Vloek
Het paper beweert dat deze aanpak de "30%-vloek" volledig verbrijzelt.
- Oude Tools: Bezochten ongeveer 17% tot 30% van de attracties.
- CovAgent: Bezocht 49% tot 86% van de attracties (afhankelijk van de specifieke app en de gebruikte tool).
- In sommige gevallen verbeterde het de dekking met 179% vergeleken met de oude methoden.
De Analogie Samengevat
- De App: Een pretpark met vergrendelde attracties.
- De Oude Tools: Blinde apen die dart pijlen gooien in het park. Ze raken de makkelijke onderdelen, maar kunnen de vergrendelde deuren niet openen.
- CovAgent: Een team bestaande uit een Detective (die de blauwdrukken leest om de toegangscode van het slot te vinden) en een Magiër (die een spreuk gebruikt om het slot direct te kraken).
- Het Resultaat: De apen kunnen nu elke attractie in het park bezoeken, niet alleen de attracties die dicht bij de ingang liggen.
Het paper benadrukt dat dit niet alleen gaat over het vinden van meer bugs, maar over het zien van het hele plaatje. Door AI te gebruiken om te begrijpen waarom code onbereikbaar is en vervolgens coderegeling (code injection) te gebruiken om deze barrières te omzeilen, stelt CovAgent geautomatiseerd testen eindelijk in staat om de "donkere hoeken" van mobiele apps te bereiken.
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.