← Nieuwste papers
📊 statistics

An Upper Bound on the Probability That a User Encounters an Undiscovered Defect

Dit artikel stelt een distributievrije bovengrens voor op de waarschijnlijkheid dat een gebruiker een niet-ontdekte softwarefout tegenkomt, waarbij wordt aangetoond dat het fractie van defecten die tijdens de bètatest exact één keer zijn gerapporteerd (s/ns/n) dient als een conservatieve, modelonafhankelijke schatting die geschikt is voor releasebeslissingen.

Oorspronkelijke auteurs: Carlos M. Hernández-Suárez, Karla Hernández-Cuevas

Gepubliceerd 2026-07-21
📖 7 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Carlos M. Hernández-Suárez, Karla Hernández-Cuevas

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

De Grote Bug Hunt: Waarom het tellen van bugs niet genoeg is

Stel je voor dat je een chef-kok bent die een gigantisch banket gaat serveren aan duizenden gasten. Voordat je de deuren opent, heb je een team van proefproeverij-experts (je bètatesters) die het eten hebben gegeten en uitroepen: "Hé, deze soep is te zout!" of "Er zit een steen in deze cake!" Je lost de problemen op die zij vinden. Maar hier komt de angstaanjagende vraag: Als je nu de deuren opent, wat is dan de kans dat een willekeurige gast die binnenloopt, een steen bijt die jij hebt gemist?

Dit is de kern van een probleem in de informatica dat "softwarebetrouwbaarheid" wordt genoemd. Decennialang hebben ontwikkelaars geprobeerd dit te beantwoorden door te tellen. Ze vragen: "Hoeveel stenen liggen er nog in de keuken?" Ze gebruiken complexe wiskunde om het totale aantal verborgen bugs te raden. Maar er is een addertje onder het gras: weten dat er tien stenen over zijn, vertelt je niet of ze allemaal achterin de voorraadkast liggen (waar misschien maar één persoon ze vindt) of dat er één enorme rotsblok direct bij de voordeur staat (waar iedereen over struikelt). De oude methoden blijven vaak hangen in het proberen te tellen van de stenen, waarbij ze negeren dat sommige stenen veel gevaarlijker zijn dan andere vanwege de locatie waar ze zich bevinden.

Om dit op te lossen, moeten we stoppen met het tellen van stenen en beginnen met het tellen van mensen. We moeten weten wat de waarschijnlijkheid is dat een willekeurige persoon tegen een probleem aanloopt. Dit artikel behandelt precies die vraag: in plaats van te vragen "Hoeveel bugs zijn er nog over?", vraagt het: "Wat is de kans dat een gebruiker een bug tegenkomt die hij nog nooit eerder heeft gezien?" Het blijkt dat er een verrassend eenvoudige manier is om dit te raden, met een truc die kijkt naar hoe vaak testers dezelfde bug meer dan één keer vinden.


Het Grote Idee van het Papier: De "One-Time Wonder" Regel

De auteurs, Carlos M. Hernández-Suárez en Karla Hernández-Cuevas, stellen een slimme afkorting voor. Ze suggereren dat om de kans te raden dat een gebruiker een verborgen bug tegenkomt, je niet het totale aantal bugs hoeft te weten, hoe de software is gebouwd, of zelfs hoeveel mensen het gebruiken. Je hoeft alleen maar naar je bugrapporten te kijken en iets heel specifieks te tellen: de bugs die precies één keer zijn gerapporteerd.

Laten we een analogie gebruiken. Stel je voor dat je een detective bent die probeert uit te zoeken hoeveel verschillende soorten buitenaardse wezens je stad bezoeken. Je hebt een logboek met waarnemingen.

  • Als je "Zog" 50 keer ziet, weet je dat Zog een veelvoorkomende alien is.
  • Als je "Xyl" 3 keer ziet, is Xyl een beetje zeldzamer.
  • Maar als je "Blorp" precies één keer ziet, en nooit meer, wat zegt dat dan?

Het artikel betoogt dat deze "Blorps"—de bugs die precies één keer zijn gezien—de sleutel vormen. Ze noemen de fractie van deze enkelvoudige waarnemingen (ss) gedeeld door het totaal aantal waarnemingen (nn) een "conservatieve bovengrens". In gewone mensentaal: Het percentage bugs dat precies één keer is gerapporteerd, is een veilige, "worst-case" schatting voor het percentage gebruikers dat een gloednieuwe, ongeziene bug zal tegenkomen.

Waarom dit werkt (De "Gesloten Deur" Logica)

Je zou je kunnen afvragen: "Wat als er bugs verborgen zitten achter andere bugs? Zoals een geheime kamer achter een gesloten deur?" De auteurs gaan dit aan met een briljant stuk logica.

Stel je voor dat de software een groot landhuis is met veel kamers. Sommige bugs zitten in de gang (makkelijk te vinden). Sommige zitten in een geheime kamer achter een gesloten deur (moeilijk te vinden).

  • Als een gebruiker de gesloten deur raakt (een bug), kan hij niet in de geheime kamer erachter komen.
  • Daarom is het aantal mensen dat de geheime kamer kan bereiken altijd kleiner dan of gelijk aan het aantal mensen dat de gesloten deur raakt.

De auteurs laten zien dat, vanwege deze "geneste" structuur, je je geen zorgen hoeft te maken over de verborgen kamers. De "single-report" bugs die je wel hebt gevonden, dekken al het risico van de verborgen ones af. Als een bug één keer wordt gerapporteerd, fungeert deze als een "deur" die het risico van alles daarachter beperkt. Dus het tellen van de enkelvoudige rapportages is voldoende om het hele huis te dekken.

Wat ze deden en wat ze vonden

De auteurs hebben niet alleen gegokt; ze hebben een wiskundig model gebouwd genaamd de "Canonical Form" (denk aan een speciale soort urn of pot gevuld met gekleurde ballen). Ze hebben wiskundig bewezen dat als je je bugrapporten behandelt als het trekken van ballen uit deze pot, de fractie van de ballen die slechts één keer voorkomen (s/ns/n) de exacte maximum-likelihood schatting is voor de "missing mass" (de ongeziene bugs).

Cruciaal is dat ze hebben aangetoond dat deze schatting conservatief is. Dit betekent dat deze de kans de neiging heeft om de risico's te overschatten in plaats van te onderschatten.

  • Waarom dit goed is: Als je een ontwikkelaar bent die moet beslissen of je software gaat releasen, wil je veilig zijn. Als de wiskunde zegt "Er is een kans van 5% op een bug," en de echte kans is 3%, dan ben je veilig. Als de wiskunde 3% zei en de echte kans was 5%, dan zou je in de problemen zitten. Deze methode zorgt ervoor dat je altijd aan de veilige kant blijft, waarbij je uitgaat van voorzichtigheid.

Ze hebben dit idee getest met computer-simulaties (het creëren van fictieve populaties van bugs met bekende antwoorden).

  • In één test met 20 bugs ontdekten ze dat naarmate ze meer gebruikers "testten" (het vergroten van de steekproefomvang van 25 naar 400), hun schatting (s/ns/n) altijd hoger dan of gelijk aan het werkelijke aantal ongeziene bugs was.
  • Bijvoorbeeld, met 100 testgebruikers was het werkelijke ongeziene risico 0,0059, en hun schatting was 0,0063. De schatting was iets te hoog (conservatief), maar nooit te laag.

Wat dit NIET is (De regels van het spel)

Het papier is zeer duidelijk over wat deze methode niet kan doen, en het is belangrijk dit goed te begrijpen:

  1. Het is NIET bedoeld om bugs te tellen. Het vertelt je niet "Er zijn nog 50 bugs over." Het vertelt je "Er is een kans van 2% dat een gebruiker een bug tegenkomt."
  2. Het is NIET voor publieke buglijsten. De auteurs sluiten expliciet uit dat dit gebruikt kan worden op standaard bugdatabases (zoals die op internet). Waarom? Omdat in die lijsten een bug meestal één keer wordt gerapporteerd door één persoon, zelfs als 1.000 mensen hem hebben gevonden. De "telling" gaat verloren. Om deze methode te gebruiken, heb je data nodig die zegt: "Deze bug werd door 50 verschillende gebruikers geraakt," en niet alleen: "Deze bug is gerapporteerd."
  3. Het is GEEN magische kristallen bol voor de toekomst. Het geeft een momentopname van het risico op dit moment. Als je de bugs oplost en opnieuw test, moet je de berekening opnieuw uitvoeren.

De Kern van de Zaak

Dit artikel biedt een direct, no-nonsense antwoord op de beslissing om te releasen. Het zegt: "Maak je geen zorgen over hoeveel bugs er in het donker schuil de. Kijk gewoon naar hoeveel bugs je testers precies één keer hebben gevonden. Dat aantal, gedeeld door je totale tests, is je veilige, bovengrens-schatting voor hoeveel gebruikers vast komen te zitten op een bug die jij hebt gemist."

Het is een instrument dat een complexe, angstaanjagende onzekerheid omzet in een simpel, veilig getal, zodat ontwikkelaars een helder en conservatief beeld hebben van het risico voor hun gebruikers wanneer de software wordt uitgebracht.

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 →