MASTOR: A Multi-Agent Approach to Semantic Test Oracle Generation for RESTful APIs
MASTOR is een multi-agent framework dat broncodeanalyse en een challenger-agent reviewproces benut om semantische testoracles voor RESTful API's te genereren, waarmee het bestaande baselines aanzienlijk overtreft in het detecteren van schendingen van de bedrijfslogica en een mutatiescore van 75,4% bereikt.
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 team inspecteurs inhuurt om een enorme, complexe fabriek te controleren die digitale producten (API's) produceert. De fabriek heeft honderden verschillende machines (endpoints) die inputs accepteren en producten uitspugen.
Traditioneel, wanneer deze machines worden getest, controleren inspecteurs alleen het verzendlabel. Ze vragen: "Is de machine aangezet? Heeft hij een 'Success'-sticker teruggegeven (HTTP 200)? Heeft de doos de juiste vorm?" Als de sticker groen is en de doos er goed uitziet, zegt de inspecteur: "Alles in orde!"
Het Probleem:
Het artikel stelt dat dit gevaarlijk is. Een machine kan van binnen kapot zijn en het verkeerde product produceren, maar nog steeds een perfect "Success"-label op de doos plakken en de juiste vorm behouden. Het label vertelt je niet of het product in de doos daadwerkelijk is wat de klant heeft besteld. Dit is een "semantische" fout — de logica klopt niet, ook al ziet de buitenkant er goed uit.
De Oplossing: MASTOR
De auteurs hebben een nieuw systeem gebouwd genaamd MASTOR (Multi-Agent Approach to Semantic Test Oracle Generation). In plaats van alleen naar het verzendlabel te kijken, stuurt MASTOR een team van gespecialiseerde agenten naar de fabrieksvloer, die de blauwdrukken (broncode) lezen en precies begrijpen hoe elke machine zou moeten werken.
Hier is hoe MASTOR werkt, onderverdeeld in eenvoudige stappen:
1. De Blauwdruklezer (Bronanalyse)
Voordat de tests beginnen, stuurt MASTOR een Source Extraction Agent naar de fabriek.
- Wat het doet: Het kijkt niet naar slechts één machine; het volgt elke draad, pijp en instructiehandleiding die met die machine verbonden is (een "transitive import closure").
- Het resultaat: Het creëert een gedetailleerde "Source Context" voor elke machine. Dit is als een spiekbriefje dat zegt: "Als je een getal kleiner dan 2 invoert, moet de machine een 'Bad Request'-fout teruggeven. Als je een geldige naam invoert, moet hij de specifieke hoofdstad teruggeven."
2. Het Inspectieteam met twee sporen (Oracle Generatie)
Zodra de spiekbriefjes klaar zijn, splitst MASTOR het werk op in twee parallelle teams:
- Team A (Single-Operation Path): Deze agenten kijken naar één machine tegelijk. Ze vragen: "Als ik deze machine een defecte input geef, crasht hij dan correct met de juiste foutcode? Als ik een goede input geef, geeft hij dan exact de juiste gegevensvelden terug?" Ze gebruiken vier verschillende strategieën (zoals het controleren van grenswaarden en het omdraaien van de logica) om er zeker van te zijn dat ze niets missen.
- Team B (Multi-Operation Path): Deze agenten kijken naar hoe machines met elkaar communiceren. Bijvoorbeeld: Machine A maakt een gebruiker aan en geeft deze een ID. Machine B heeft die ID nodig om het profiel van de gebruiker op te halen. Team B controleert: "Heeft Machine A die ID daadwerkelijk correct opgeslagen, zodat Machine B deze later kan vinden?" Dit vangt fouten op die optreden wanneer machines samenwerken.
3. De Strenge Redacteur (Challenger Agent)
Dit is het geheime ingrediënt. Nadat de teams hun inspectieregels (oracles) hebben geschreven, leveren ze deze niet zomaar in.
- De Controle: Een toegewezen Challenger Agent (een strenge redacteur) leest elke regel. Het vraagt: "Weet je het zeker? Heb je de blauwdruk echt gelezen, of ben je aan het gokken?"
- De Correctie: Als de redacteur een zwakke regel of een gok vindt, stuurt hij deze terug naar het oorspronkelijke team met de opmerking: "Ga terug en verbeter dit specifieke deel." Het team herschrijft dan alleen dat deel. Dit zorgt ervoor dat de uiteindelijke regels ijzersterk zijn en gebaseerd op echt bewijs, niet op hallucinaties.
4. Het Eindrapport (Normalisatie & Output)
Ten slotte ruimt het systeem de regels op, verwijdert de regels die niet zinvol zijn en zet ze om in drie bruikbare formaten:
- Uitvoerbare Code: Klaar om automatisch te draaien in een CI/CD-pipeline (zoals een robot die elke nacht de fabriek controleert).
- Postman Scripts: Klaar voor ontwikkelaars om handmatig te testen.
- Menselijk leesbaar: Een beschrijving in gewone mensentaal, zodat een mens kan lezen en begrijpen waarom een test bestaat.
De Resultaten (Het Scorebord)
De auteurs hebben MASTOR getest op 13 echte fabrieksprojecten (met meer dan 250.000 regels code en 296 verschillende machines).
- De Score: MASTOR ontdekte 75,4% van de verborgen bugs (mutaties) die in de code waren geplant.
- Vergelijking:
- Vergeleken met het simpelweg vragen aan een slimme AI om de regels te raden op basis van het verzendlabel (Direct Prompting), was MASTOR 30% beter.
- Vergeleken met een tool die alleen de officiële handleiding leest (SATORI), was MASTOR 49% beter.
- Waarom? Omdat SATORI en Direct Prompting vertrouwen op wat er opgeschreven staat of wat wordt geraden. MASTOR vertrouwt op wat er daadwerkelijk gecodeerd is. Als de handleiding zegt "Geef een lijst terug", maar de code zegt "Geef een lijst alleen terug als de gebruiker een admin is", dan weet MASTOR de waarheid omdat het de code heeft gelezen.
De Kosten
Het systeem is iets duurder om te draaien dan een simpele gok (het kost gemiddeld ongeveer $0,56 per API), maar de auteurs stellen dat dit de moeite waard is omdat het de diepe, verborgen logische fouten vindt die andere tools missen.
Samenvattend:
MASTOR is als het inhuren van een team van deskundige detectives die niet alleen de verpakking van een product controleren, maar ook de interne bedrading van de fabriek lezen om er zeker van te zijn dat het product in de doos precies is wat het hoort te zijn. Ze controleren elkaar om er zeker van te zijn dat er geen fouten doorheen glippen, wat resulteert in een veel hogere kwaliteit veiligheidsnet voor software.
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.