← Nieuwste papers
🤖 AI

EvoGPT: Leveraging LLM-Driven Seed Diversity to Improve Search-Based Test Suite Generation

EvoGPT is een hybride systeem dat Large Language Models en evolutionaire algoritmen combineert om geautomatiseerde unit-testgeneratie te verbeteren door middel van expliciete diversiteitsbeheersing, wat resulteert in een gemiddelde verbetering van 10% in code-coverage en mutatiescore ten opzichte van bestaande methoden.

Oorspronkelijke auteurs: Lior Broide, Roni Stern, Argaman Mordoch

Gepubliceerd 2026-02-13
📖 5 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Lior Broide, Roni Stern, Argaman Mordoch

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 nieuwe auto bouwt. Voordat je de auto op de weg kunt zetten, moet je hem testen. Je wilt weten: Zet de remmen? Werkt de motor? Gaat de airbag open als er een crash komt?

In de softwarewereld noemen we dit unit testing. Maar het schrijven van al die tests is saai, tijdrovend en mensen maken fouten. Daarom hebben programmeurs twee soorten "robots" bedacht om dit voor hen te doen:

  1. De "Zoek-robot" (SBST): Deze robot probeert van alles en nog wat. Hij schudt de auto een beetje, duwt op de remmen, en kijkt of hij nog steeds rijdt. Hij is slim in het vinden van kleine foutjes door miljoenen kleine variaties te proberen, maar hij kan soms vastlopen in een patroon en denkt dat hij alles al heeft getest, terwijl hij belangrijke hoekjes over het hoofd ziet.
  2. De "Denk-robot" (LLM): Dit is een kunstmatige intelligentie die gelezen heeft over hoe auto's werken. Hij kan een test schrijven die klinkt als een mens: "Test of de airbag werkt bij een frontale botsing." Hij is creatief en begrijpelijk, maar soms droomt hij dingen in die niet bestaan (hallucinaties) of hij herhaalt steeds dezelfde ideeën.

Het Probleem

De "Zoek-robot" wordt vaak te snel tevreden en stopt te vroeg. De "Denk-robot" is creatief, maar mist soms de diepgang of wordt te voorspelbaar.

De Oplossing: EvoGPT

De auteurs van dit paper hebben een nieuwe robot gebouwd die de beste eigenschappen van beide combineert. Ze noemen hem EvoGPT.

Hier is hoe het werkt, vertaald naar een verhaal:

1. De Start: Een Divers Team van Creatievelingen

In plaats van één robot te sturen om tests te schrijven, stuurt EvoGPT vijf verschillende robots tegelijkertijd.

  • Robot A denkt: "Laten we kijken naar extreme situaties, wat gebeurt er als we nul invoeren?"
  • Robot B denkt: "Laten we kijken naar de randgevallen, wat als de lijst leeg is?"
  • Robot C denkt: "Laten we creatief zijn en proberen de auto te laten crashen op onmogelijke manieren."

Elke robot krijgt een andere "stem" (prompt) en een andere mate van "dwaasheid" (temperatuur). Dit zorgt ervoor dat ze heel verschillende tests schrijven. Het is alsof je vijf verschillende chefs vraagt om een gerecht te bedenken: de één maakt een Italiaanse pasta, de ander een Aziatische soep. Je krijgt zo een diverse startgroep in plaats van vijf keer dezelfde pasta.

2. De Reparatie: De "Probeer het nog eens"-lus

Soms schrijft een robot een test die niet werkt (bijvoorbeeld omdat hij een verkeerde naam gebruikt). In plaats van die test weg te gooien, geeft EvoGPT de robot een seintje: "Hé, dit werkt niet, probeer het nog een keer." De robot kijkt naar de foutmelding, past de test aan en probeert het opnieuw. Dit gebeurt een paar keer tot de test werkt.

3. De Evolutie: Het "Overleven van de Fittest"

Nu hebben we 25 verschillende sets tests. EvoGPT laat deze sets nu "vechten" tegen elkaar, net als in een evolutieproces:

  • De beste sets (die de meeste fouten vinden) krijgen "kinderen" (nieuwe tests die een mix zijn van de ouders).
  • De slechte sets worden weggegooid.
  • Er worden kleine willekeurige veranderingen aangebracht (mutaties) om te zien of dat iets nieuws oplevert.

Dit proces herhaalt zich steeds, waardoor de tests steeds beter en slimmer worden.

4. De "Noodknop": Als de Robot vastloopt

Soms stopt de evolutie. De robot denkt: "Ik kan niks meer verbeteren, ik zit vast." Dit noemen ze een plateau.
Hier komt de magie van EvoGPT: in plaats van te blijven proberen met dezelfde oude methoden, roept EvoGPT weer die vijf creatieve robots op! Maar nu vraagt hij hen specifiek: "Kijk eens naar die ene hoek van de code die we nog nooit hebben gezien. Schrijf iets nieuws daarvoor!"

Dit duwt de robot uit zijn comfortzone en zorgt dat hij weer nieuwe gebieden ontdekt die hij eerder had gemist.

Het Resultaat

De auteurs hebben EvoGPT getest op een grote verzameling echte softwareprojecten (Defects4J).

  • Vergelijking: Ze vergeleken EvoGPT met de beste "Zoek-robot" (EvoSuite) en de beste "Denk-robot" (TestART).
  • Uitslag: EvoGPT deed het 10% beter dan beide anderen. Het vond meer fouten, testte meer stukjes code en was beter in het vinden van verborgen bugs.

Waarom is dit belangrijk?

De kernboodschap is: Diversiteit is de sleutel.
Als je alleen maar vraagt aan één robot om tests te schrijven, krijg je vaak hetzelfde terug. Als je vraagt aan vijf robots met verschillende perspectieven, en die dan laat "evolveren" tot ze perfect zijn, krijg je een testpakket dat veel robuuster is.

Het kost wel iets meer tijd en geld (omdat je de "robots" moet betalen), maar de kwaliteit van de software die je levert is veel hoger. Het is alsof je in plaats van één inspecteur, een heel team van inspecteurs met verschillende specialisaties inzet om je auto te controleren voordat hij de weg op gaat.

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 →