Automating Detection and Root-Cause Analysis of Flaky Tests in Quantum Software

Dit artikel presenteert een geautomatiseerde pipeline die Large Language Models (LLMs) gebruikt om flakke tests in quantumsoftware te detecteren en hun oorzaken te analyseren, waarbij het bestaande dataset met 54% wordt uitgebreid en Google Gemini de beste prestaties levert met een F1-score van 0,9420 voor detectie.

Janakan Sivaloganathan, Ainaz Jamshidi, Andriy Miranskyy, Lei Zhang

Gepubliceerd Wed, 11 Ma
📖 4 min leestijd☕ Koffiepauze-leesvoer

Each language version is independently generated for its own context, not a direct translation.

🎲 De "Gokende" Software: Hoe AI Flinke Foutjes in Quantum-Programma's Opspoort

Stel je voor dat je een nieuwe auto bouwt. Je wilt testen of de remmen werken. In een normale auto (klassieke software) werkt dit simpel: je drukt op de rem, en de auto stopt. Als hij niet stopt, is er een probleem.

Maar quantum-software (de software voor de superkrachtige quantumcomputers van de toekomst) werkt anders. Het is alsof je een auto bouwt die soms stopt en soms niet, puur op basis van willekeur. Soms werkt de rem perfect, soms niet, zelfs als je niets aan de auto hebt veranderd.

Dit noemen onderzoekers "flaky tests" (wankelende tests). Het is alsof je een dobbelsteen gooit om te zien of je auto veilig is. Als je 10 keer gooit en 9 keer valt hij op een 6 (werkt) en 1 keer op een 1 (faalt), is dat verwarrend. Is de auto kapot? Of was het gewoon pech?

🕵️‍♂️ Het Probleem: De "Geest" in de Machine

Voor ontwikkelaars is dit een nachtmerrie.

  • Verkeerde signalen: Als een test faalt door toeval, denken ontwikkelaars dat er een fout in de code zit. Ze gaan uren zoeken naar een probleem dat er niet is.
  • Verborgen fouten: Als een test per ongeluk slaagt (door geluk), kan een echt defect onopgemerkt blijven.
  • Dure tijd: Om te bewijzen dat een test "wankel" is, moet je hem honderden keren herhalen. Op echte quantumcomputers kost dit veel geld en tijd (alsof je een dure taxi urenlang laat rijden om te zien of hij soms vastloopt).

Tot nu toe moesten mensen dit handmatig doen: ze lasen duizenden meldingen en probeerden te raden welke tests "wankel" waren. Dat is als zoeken naar een speld in een hooiberg, met een blinddoek op.

🤖 De Oplossing: Een Slimme AI-Detective

De auteurs van dit papier (Janakan, Ainaz, Andriy en Lei) hebben een automatische detective gebouwd. Ze gebruiken de nieuwste AI-modellen (zoals de slimme chatbots die je misschien kent, maar dan gespecialiseerd in code).

Hun werkwijze is als volgt:

  1. De Verzameling uitbreiden: Eerst hadden ze een lijstje van 46 bekende "wankelende" tests. Met hun nieuwe systeem hebben ze er 25 nieuwe bijgehaald. Dat is een groei van 54%! Ze hebben een database gemaakt die nu 71 voorbeelden bevat.
  2. De AI Opleiden: Ze hebben de AI gevoed met voorbeelden van:
    • Wat er in de meldingen staat (bijv. "Deze test faalt soms zonder reden").
    • De daadwerkelijke code (de instructies die de computer geeft).
  3. De Diagnose: De AI leest nu nieuwe meldingen en code en zegt: "Aha! Dit lijkt op de vorige gevallen. Dit is een wankelende test!"
  4. De Oorzaak vinden: De AI gaat nog een stap verder. Hij zegt niet alleen dat het fout is, maar ook waarom.
    • Vergelijking: Het is alsof een monteur niet alleen zegt "De auto doet raar", maar ook: "Het is de toevalsgenerator die de remmen soms laat blokkeren."

🧠 Wat hebben ze ontdekt?

De AI was verrassend goed. Het beste model (Google Gemini 2.5 Flash) had een succescijfer van 94%. Dat betekent dat hij bijna altijd goed kon zeggen of een test wankel was of niet.

Ze ontdekten ook de meest voorkomende oorzaken:

  • Willekeur (Randomness): Dit is de nummer 1 boosdoener. Quantum-computers zijn van nature willekeurig. Soms vergeten ontwikkelaars om de "willekeur" vast te zetten (een soort startnummer), waardoor het resultaat elke keer anders is.
  • Netwerkproblemen: Soms faalt een test omdat de verbinding met de quantumcomputer even trager is dan anders.
  • Fouten in de omgeving: Soms werkt een test wel op jouw computer, maar niet op de server van de ontwikkelaar.

🛠️ Waarom is dit belangrijk?

Stel je voor dat je een fabriek hebt waar elke dag duizenden auto's worden getest. Als de testapparatuur zelf onbetrouwbaar is, moet je elke auto tweemaal testen. Dat kost tijd en geld.

Met deze AI-tool kunnen ontwikkelaars:

  1. Sneller vinden welke tests "ziek" zijn.
  2. Minder tijd verspillen aan het zoeken naar fouten die er niet zijn.
  3. Beter begrijpen waarom het misgaat, zodat ze de code kunnen repareren (bijvoorbeeld door de willekeurige generator vast te zetten).

🚀 Wat komt er nog?

De onderzoekers zeggen: "Dit is pas het begin." In de toekomst willen ze de AI zo slim maken dat hij niet alleen de fout vindt, maar zelf de oplossing bedenkt en de code corrigeert. Alsof je een AI hebt die zegt: "Ik zie dat je remmen soms vastlopen. Ik heb het startnummer al aangepast, de auto werkt nu perfect."

Kortom: Quantum-software is lastig omdat het soms "gokt". Deze nieuwe AI-tool helpt ontwikkelaars om die gokken te herkennen, te begrijpen en te fixen, zodat de quantum-revolutie soepeler kan verlopen.