← Nieuwste papers
💻 computer science

MR-Adopt: Automatic Deduction of Input Transformation Function for Metamorphic Testing

Het artikel introduceert MR-Adopt, een methode die met behulp van Large Language Models en data-flow analyse automatisch input-transformaties afleidt uit hard-gecodeerde metamorfe relaties, waardoor deze herbruikbaar worden en de testadequaatheid aanzienlijk verbetert.

Oorspronkelijke auteurs: Congying Xu, Songqiang Chen, Jiarong Wu, Shing-Chi Cheung, Valerio Terragni, Hengcheng Zhu, Jialun Cao

Gepubliceerd 2026-04-14
📖 4 min leestijd☕ Koffiepauze-leesvoer

Oorspronkelijke auteurs: Congying Xu, Songqiang Chen, Jiarong Wu, Shing-Chi Cheung, Valerio Terragni, Hengcheng Zhu, Jialun Cao

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 supersterke testautomaat hebt die een stuk software (een "SUT") controleert. Deze automaat werkt volgens een slimme regel: "Als ik de invoer een beetje verander op een specifieke manier, dan moet de uitvoer ook op een voorspelbare manier veranderen."

In de wereld van softwaretesten noemen we dit een Metamorfische Relatie (MR). Het is als een recept: "Als je de temperatuur met 10 graden verhoogt, moet de cake 5 minuten sneller gaar zijn."

Het Probleem: De "Vaste Waarden" Valstrik

De onderzoekers ontdekten iets vreemds. Veel ontwikkelaars schrijven deze tests, maar ze doen het op een heel stijve manier. Ze schrijven in hun code:

"Test met datum A (1 januari) en datum B (2 januari). Als B één dag na A is, moet het resultaat ook één dag later zijn."

Het probleem? Ze hebben de getallen 1 januari en 2 januari letterlijk in de code "ingebakken" (hard-coded).
Stel je voor dat je een bakker bent die alleen weet hoe hij een taart moet maken als je precies 200 gram meel gebruikt. Als je hem vraagt om een taart met 250 gram meel, zegt hij: "Ik kan dat niet, want mijn recept zegt alleen '200 gram'."

Omdat de "transformatie" (hoe je van 1 naar 2 gaat) niet als een algemene regel is geschreven, maar als twee vaste getallen, kan de test niet worden gebruikt voor andere data. Het is een eenmalig kunstje, geen herbruikbaar gereedschap.

De Oplossing: MR-Adopt (De Slimme Vertaler)

Deze paper introduceert MR-Adopt. Dit is een systeem dat een Grote Taalmodel (LLM) – denk aan een super-slimme AI die alles over code weet – gebruikt om het geheim te ontrafelen.

Het doel is simpel: Hoe kunnen we de AI vragen om de "receptregel" te schrijven die de ontwikkelaar eigenlijk bedoelde?

Hoe werkt MR-Adopt? Het is alsof je een detective bent die een raadsel oplost:

  1. De Eerste Gok (Analogie): De AI krijgt het voorbeeld (1 januari -> 2 januari) en zegt: "Oké, ik snap het patroon. Laten we nog een paar voorbeelden bedenken om zeker te zijn." De AI bedenkt zelf nieuwe paren: "Wat als we 10 januari nemen? Dan moet het 11 januari zijn." Of "Wat als het 31 december is? Dan moet het 1 januari zijn."

    • Metafoor: Het is alsof je een kind leert tellen. Je zegt niet alleen "1, 2", maar je vraagt: "Wat komt er na 10? En na 100?" Zo leer je het kind het principe, niet alleen de getallen.
  2. De Schone Schijf (Refinement): Soms maakt de AI fouten. Het kan zomaar een zinnetje toevoegen als "En vergeet niet de lichten uit te doen," wat niets met de datum te maken heeft. MR-Adopt kijkt als een strenge redacteur door de code en snijdt alle onnodige, verwarrende stukken eruit. Alleen de pure logica blijft over.

  3. De Proef (Validatie): De AI schrijft nu een functie: maakVolgendeDag(datum). Maar werkt die echt? MR-Adopt pakt nieuwe, willekeurige data (bijv. 29 februari) en test of de functie het juiste antwoord geeft. Als het werkt, is de transformatie gevonden!

Waarom is dit geweldig?

Vroeger waren die tests "dode" code die je maar één keer kon gebruiken. Met MR-Adopt worden ze "levend".

  • Voorheen: De test deed alleen iets met 1 januari.
  • Nu: De test kan worden gebruikt voor elke datum die je maar wilt. De AI heeft de "geest" van de test begrepen en vertaalt die naar een algemene regel.

De Resultaten in het Kort

De onderzoekers hebben dit getest op 100 echte voorbeelden.

  • Succes: In 72% van de gevallen lukte het om een perfecte, algemene regel te vinden die voor alle mogelijke invoer werkt.
  • Verbetering: Dit is 33% beter dan als je gewoon vraagt aan een standaard AI (zonder deze slimme stappen).
  • Effect: Door deze nieuwe regels toe te voegen aan bestaande software, vonden ze 18% meer fouten dan voorheen. Het is alsof je met een nieuwe, scherper lantaarnpaal door een donker huis loopt en ineens veel meer stofkorrels ziet liggen.

Conclusie

MR-Adopt is als een vertaler die de "geheime taal" van een ontwikkelaar (die alleen met vaste getallen werkt) vertaalt naar een universele taal (algemene regels). Hierdoor kunnen oude, nuttige tests opnieuw worden gebruikt om software veel grondiger te testen, zonder dat mensen handmatig alles opnieuw hoeven te schrijven. Het maakt software veiliger en betrouwbaarder, met minder menselijke inspanning.

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 →