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 de redacteur bent van een enorme, collaboratieve kookbundel. Duizenden chefs uit verschillende keukens hebben recepten bijgedragen. Na verloop van tijd merk je een probleem op: dezelfde instructies verschijnen steeds opnieuw, maar dan net iets anders geschreven.
Eén chef schrijft: "Voeg twee koppen bloem toe."
Een ander schrijft: "Voeg 2 koppen bloem toe."
Een derde schrijft: "Doe 2 koppen bloem in de kom."
In de wereld van softwaretesten worden deze instructies Gherkin-stappen genoemd. Dit zijn de "recepten" die een computer vertellen hoe hij software moet testen. Het probleem is dat wanneer deze instructies worden gedupliceerd of licht worden geparafraseerd, het een nachtmerrie wordt om ze te onderhouden. Als je een stap wilt aanpassen (zoals "voeg bloem toe" veranderen in "voeg amandelbloem toe"), moet je misschien duizenden kopieën opsporen en bewerken in plaats van er slechts één.
Dit artikel, getiteld "Déjà Vu at Scale," gaat over het bouwen van een superintelligent hulpmiddel om deze duplicaten te vinden, zelfs wanneer ze op een iets andere manier zijn geschreven, en het creëren van een enorme bibliotheek met voorbeelden om te bewijzen dat het hulpmiddel werkt.
Hier is de onderverdeling van wat ze hebben gedaan, met behulp van eenvoudige analogieën:
1. Het Probleem: Het "Déjà Vu"-effect
De auteurs ontdekten dat duplicatie overal voorkomt in de softwarewereld. Ze bekeken 347 verschillende softwareprojecten (zoals 347 verschillende kookboeken) en vonden meer dan 1,1 miljoen instructies.
- De Statistiek: Ze ontdekten dat 80% van deze instructies een exacte kopie is van iets anders.
- De Pijn: Als een bedrijf een typefout wil herstellen of een regel wil wijzigen, moeten ze misschien duizenden bestanden bewerken. Het is alsoals proberen een recept in een kookboek bij te werken waarbij dat recept op 1.000 verschillende pagina's in 1.000 verschillende boeken staat geschreven.
2. De Oplossing: Een "Slimme Bibliothecaris"
De auteurs bouwden een tool genaamd cukereuse. Zie dit hulpmiddel als een super-bibliothecaris die de instructies kan lezen en begrijpt dat "Voeg 2 koppen toe" en "Voeg twee koppen toe" hetzelfde zijn, zelfs als de spelling of de tussenruimte anders is.
Ze gebruikten niet slechts één trucje; ze gebruikten een vierlaags verdedigingssysteem om duplicaten te vangen:
- De Exacte Match: Als twee instructies identiek zijn tot op de laatste letter (zoals twee fotokopieën), vangt het systeem deze direct op.
- De "Bijna" Match: Als de instructies voor 90% hetzelfde zijn (zoals "Voeg 2 koppen toe" versus "Voeg twee koppen toe"), vangt het systeem ook die op.
- De "Betekenis" Match: Dit is het slimme gedeelte. Het gebruikt AI (genaamd Sentence Transformers) om de betekenis te begrijpen. Het weet dat "De gebruiker klikt op de knop" en "Klikken op de knop door de gebruiker" hetzelfde betekenen, zelfs als de woorden totaal anders zijn.
- De Hybride: Het combineert de "Bijna" en "Betekenis" controles om extra zeker te zijn.
3. Het Bewijs: De "Gouden Standaard" Test
Om te bewijzen dat hun bibliothecaris daadwerkelijk goed was, hebben ze niet gewoon geraden. Ze creëerden een enorme testset:
- Ze namen 1.020 paren instructies.
- Drie verschillende mensen (de auteurs) lazen ze handmatig en beslisten: "Zijn dit duplicaten of niet?"
- Ze zorgden ervoor dat iedereen het eens was over de antwoorden (een hoge score genaamd Fleiss' κ = 0.84, wat betekent dat een team van juryleden allemaal het eens is over wie een wedstrijd heeft gewonnen).
- Het Resultaat: Hun "Betekenis Match"-tool was erg goed, maar de "Bijna Match"-tool was de meest betrouwbare en eerlijke; deze identificeerde duplicaten ongeveer 82% van de tijd zonder in de war te raken door de testregels.
4. De Grote Ontdekking: De Besparingen door "Consolidatie"
Het meest opwindende deel van het artikel is de wiskunde die ze deden over de besparingen.
- Ze ontdekten dat je in een typisch softwareproject ongeveer 62,5% van de duplicaatinstructies kunt verwijderen en kunt vervangen door slechts één "meesterinstructie".
- De Analogie: Stel je voor dat je 100 pagina's van een kookboek hebt. Nadat je deze tool hebt gebruikt, besef je dat je slechts 37 unieke pagina's nodig hebt. De andere 63 pagina's zijn slechts kopieën. Je kunt ze weggooien, waardoor je boek veel dunner en makkelijker te beheren wordt.
- Ze koppelden dit aan ISO/IEC 25010, wat in feite een wereldwijde regelset is voor "goede software". Ze lieten zien dat het opruimen van deze duplicaten software makkelijker te wijzigen maakt (Onderhoudbaarheid) en minder snel kapot laat gaan (Betrouwbaarheid).
5. Wat Ze aan de Wereld Hebben Gegeven
De auteurs hebben hun bevindingen niet voor zichzelf gehouden. Ze hebben een "starterpack" uitgebracht voor iedereen die dit onderzoek wil doen:
- De Data: Een enorme collectie van 1,1 miljoen echte instructies uit publieke softwareprojecten.
- De Test: De 1.020 paren instructies met de "gouden standaard" antwoorden.
- De Tool: De eigenlijke softwarecode (cukereuse) die de duplicaten vindt.
- De Regels: Een handleiding over hoe zij hebben besloten wat een duplicaat is.
Samenvatting
Kortom, dit artikel zegt: "Instructies voor softwaretesten zitten vol met onnodige duplicaten, wat ze moeilijk te beheren maakt. We hebben een slimme tool gebouwd die deze duplicaten vindt (zelfs wanneer ze anders zijn geschreven), bewezen dat het werkt met een enorme, hoogwaardige test, en aangetoond dat het oplossen hiervan softwareteams een enorme hoeveelheid tijd en moeite kan besparen. We geven al onze tools en data gratis weg zodat anderen ze kunnen gebruiken."
Wat ze NIET hebben beweerd:
- Ze hebben niet precies gezegd hoeveel geld dit bespaart (omdat elk bedrijf zijn werknemers anders betaalt).
- Ze hebben niet gezegd dat dit alle softwarekwaliteitsproblemen oplost, alleen het specifieke probleem van duplicaatinstructies.
- Ze hebben niet beweerd dat hun tool werkt op private, geheime bedrijfsgegevens (aangezien ze alleen naar publieke data hebben gekeken).
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.