14-07-2020

PhD-onderzoek maakt automatisch debuggen van software stuk sneller

Deel dit bericht

Foutloze softwaresystemen zijn van cruciaal belang voor de veiligheid, beveiliging en zelfs de privacy van essentiële systemen. Statische code-analyse, waarbij softwareprogramma's automatisch worden gecontroleerd zonder ze daadwerkelijk te draaien, is een belangrijke techniek om veelvoorkomende (mogelijke) programmeerfouten op te sporen en te rapporteren. Gezien de effectiviteit en het nut van statische code-analyse, is er een breed scala aan hulpmiddelen voor ontwikkeld. Probleem is dat deze tools regelmatig valse alarmmeldingen geven. Tukaram Muske, promovendus aan de Technische Universiteit Eindhoven, heeft technieken ontwikkeld die de tijd en moeite die nodig zijn om deze meldingen handmatig te inspecteren, flink verminderen.

Het verminderen van het aantal statische analysemeldingen is een belangrijke uitdaging, waar zowel de academische wereld als de industrie aan werkt. Eén mogelijke oplossing is het negeren van een subset van de meldingen, maar dat is niet ongevaarlijk, omdat je zo kritische fouten kan missen. Muske pakt het probleem van de grote aantallen meldingen daarom anders aan: hij analyseert ze nadat ze zijn gegenereerd, door middel van postprocessing.

Deze technieken werken onafhankelijk van de gebruikte statische-analysetool en slagen erin om het aantal alarmmeldingen met 36 procent te verminderen, en de tijd die nodig is om fout-positieven automatisch te elimineren met 60 procent. Dit kan een belangrijke tijd- en kostenbesparing opleveren en een snellere en nauwkeurigere reactie op softwarefouten mogelijk maken.

Postprocessing
Postprocessing vermindert het aantal meldingen dat moet worden gecontroleerd en de inspanning die nodig is om ze handmatig te inspecteren. Muske en zijn collega’s hebben bestaande technieken geëvalueerd en vastgesteld waar deze kunnen worden verbeterd. Vervolgens hebben zij op basis van die evaluatie werktechnieken gecreëerd en deze geëvalueerd op verschillende industriële en open source-systemen. De nieuwe technieken waren beter in het groeperen van vergelijkbare alarmen en het automatisch elimineren van valse alarmmelding. Ze presteerden ook beter in het onderdrukken van meldingen die werden gegenereerd bij continu veranderende code.

Een andere verbetering werd gerealiseerd in de inspectie van meldingen die worden gegenereerd op code die deel voor deel wordt geanalyseerd: de technieken kunnen identificeren of het alarm uniek is en wordt geactiveerd binnen één software-partitie, of een dubbel alarm, dat wordt geactiveerd als gevolg van de onderliggende code die door verschillende partities wordt gebruikt.

De belangrijkste manier waarop Muske de bestaande technieken heeft verbeterd was door rekening te houden met waar de tools worden gebruikt en op welk soort toepassingen ze worden gebruikt. De resultaten laten een enorme verbetering zien, die mogelijk nog verder kan worden verbeterd door zijn nieuwe technieken te combineren met bestaande.

Partners