← Nieuwste papers
💻 computer science

Flaky Tests in a Large Industrial Database Management System: An Empirical Study of Fixed Issue Reports for SAP HANA

Dit artikel presenteert een op LLM gebaseerde aanpak om de grondoorzaken van flakiness in tests binnen het SAP HANA databasesysteem automatisch te categoriseren, waarbij wordt onthuld dat concurrency-problemen de meest voorkomende oorzaak zijn en de noodzaak voor mitigatiestrategieën die zijn afgestemd op verschillende typen tests wordt benadrukt.

Oorspronkelijke auteurs: Alexander Berndt, Thomas Bach, Sebastian Baltes

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

Oorspronkelijke auteurs: Alexander Berndt, Thomas Bach, Sebastian Baltes

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 chef bent die een enorme, luxe restaurant (SAP HANA) runt. Elke dag heb je een team van sous-chefs (ontwikkelaars) die nieuwe recepten (code) schrijven. Voordat deze recepten naar de klanten gaan, moeten ze een smaaktest doorstaan (softwaretesten).

Normaal gesproken is een smaaktest simpel: het gerecht is óf heerlijk (geslaagd) óf aangebrand (mislukt). Maar soms is de test onbetrouwbaar (flaky). Dit betekent dat als je hetzelfde gerecht drie keer achter elkaar proeft, het de eerste keer perfect kan smaken, de tweede keer aangebrand is en de derde keer weer perfect smaakt. Dit is verwarrend! Het keukenteam weet niet of het recept eigenlijk goed is of dat de test zelf kapot is.

Dit artikel is een detectiveverhaal over hoe de SAP HANA-keuken ontdekte waarom hun smaaktests zo onbetrouwbaar waren, door gebruik te maken van een nieuw soort "superrobot-assistent" (Large Language Models) om hen te helpen duizenden klachten te sorteren.

Hier is de uitsplitsing van hun onderzoek:

1. Het Probleem: De "Misschien"-tests

In een enorme industriële keuken kun je het je niet veroorloven om te gokken. Als een test onbetrouwbaar is, komt de keuken tot stilstand. De hoofdchef (de ontwikkelaar) moet wachten, de test opnieuw uitvoeren en tijd verspillen. Het tast het vertrouwen aan; het personeel begint de testresultaten te negeren omdat ze onbetrouwbaar lijken.

2. Het Detectivewerk: Gebruik van Robot-assistenten

De onderzoekers hadden een berg van 559 "klachtentickets" uit de keuken. Elk ticket beschreef een onbetrouwbare test en wat de ontwikkelaars dachten dat er mis was. Het handmatig lezen van al deze tickets zou eeuwen duren.

Dus probeerden ze een nieuwe truc: ze vroegen drie verschillende AI "robot-assistenten" om de tickets te lezen en ze in categorieën in te delen (zoals "Timing-probleem", "Slecht Recept" of "Kapotte Oven").

  • De Strategie: Ze vroegen de vraag niet slechts één keer. Ze vroegen elke robot vijf keer hetzelfde. Als een robot 4 van de 5 keer hetzelfde antwoord gaf, vertrouwden ze het. Vervolgens lieten ze de drie robots over de resultaten "stemmen".
  • Het Resultaat: De robots waren het goed met elkaar eens, en ze stemden voor 63% overeen met menselijke experts. Dit bewees dat robots mensen kunnen helpen om enorme stapels gegevens snel en nauwkeurig te sorteren.

3. De Grote Ontdekking: Het "Spitsuur"-probleem

Na het sorteren van de tickets ontdekten de onderzoekers de meest voorkomende boosdoener: Concurrency (gelijktijdigheid) (23% van alle gevallen).

De Analogie: Stel je een drukke keuken voor waar twee chefs precies tegelijkertijd dezelfde blender proberen te gebruiken. De ene chef grijpt hem, de ander duwt hem weg, en plotseling gaat de blender kapot of raakt de smoothie in de war. In software wordt dit een "race condition" genoemd. Omdat SAP HANA een database is die duizenden verzoeken tegelijkertijd afhandelt (als een zeer drukke keuken), komen deze "botsingen" vaak voor.

4. De Twee Soorten Chefs: Unit Tests vs. System Tests

De keuken heeft twee soorten testers, en zij hebben verschillende problemen:

  • De "Micro-proevers" (Native Unit Tests): Deze chefs testen kleine, specifieke ingrediënten (zoals alleen het zout of alleen het meel).
    • Hun Onbetrouwbare Probleem: Ze falen vaak door Platform-problemen (de specifieke kookplaat die ze gebruiken gedraagt zich anders) of Isolatie (één test heeft per ongeluk een vuile lepel achtergelaten die de volgende test heeft verpest).
  • De "Volledige Maaltijd Proevers" (System Tests): Deze chefs testen de gehele maaltijd van begin tot eind.
    • Hun Onbetrouwbare Probleem: Ze falen vaak door Timeouts (de maaltijd deed er te lang over om te koken en de oven ging uit) of Oracle Brittleness (de test was te kieskeurig; het verwachtte dat de saus exact 3,0 gram was, maar het was 3,01 gram, waardoor de test faalde).

5. Het "Groepsfalen"-patroon

De onderzoekers keken ook naar tickets waarbij meerdere tests tegelijkertijd faalden.

  • De Bevinding: Wanneer veel tests samen falen, is het bijna altijd een Concurrency-probleem (de hele keuken heeft haast) of een Platform-probleem (de stroom in het hele gebouw knippert).
  • De Trend: In de loop van de tijd daalde het aantal "Timeout"-klachten aanzienlijk nadat de keuken haar regels had gewijzigd om een enkele, globale tijdlimiet voor al het koken in te stellen. Dit laat zien dat het aanpassen van de regels de onbetrouwbaarheid kan oplossen.

6. De Conclusie: Het is Niet Slechts Eén Ding

De grootste les is dat onbetrouwbare tests zelden door slechts één simpele oorzaak worden veroorzaakt. Soms faalt een test door een race condition en een specifieke computerinstelling en een traag netwerk, allemaal tegelijkertijd.

Het artikel suggereert dat we, in plaats van te proberen één "grondoorzaak" te vinden (zoals alleen het zout de schuld geven), moeten accepteren dat deze fouten een multi-label probleem zijn — een complexe mix van ingrediënten die samen misgaan.

Kortom: De onderzoekers gebruikten AI-robots om duizenden foutrapporten te lezen en ontdekten dat in dit enorme databasesysteem de grootste oorzaak van verwarring "te veel dingen die tegelijkertijd gebeuren" (Concurrency) is. Ze leerden ook dat verschillende soorten tests om verschillende redenen falen, en dat het oplossen van onbetrouwbaarheid vereist dat men deze complexe, overlappende oorzaken begrijpt.

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 →