statische analyse

zelfstandig naamwoord

Statische analyse onderzoekt broncode of gecompileerde code zonder het programma uit te voeren. De controle zoekt naar mogelijke fouten, kwetsbaarheden en afwijkingen van afgesproken coderegels.

De statische analyse waarschuwde voor een mogelijk onbereikbare regel code voordat de wijziging werd samengevoegd.

Bij statische analyse onderzoekt een tool de structuur van software zonder de applicatie te starten. De tool vergelijkt de code met regels over bijvoorbeeld types, gegevensstromen, veiligheid en programmeerafspraken. Woordenboek · In het kortlintingLinting is het automatisch controleren van broncode op mogelijke fouten en afwijkingen van afgesproken coderegels, zonder de applicatie uit te voeren. De tool die deze controle doet, heet een linter.Lees meer en typecontrole zijn bekende vormen van statische analyse.

Welke problemen kan statische analyse vinden?

Welke meldingen een tool geeft, hangt af van de programmeertaal en de ingestelde regels. Een eenvoudige controle vindt bijvoorbeeld ongebruikte variabelen, onbereikbare code of een waarde van het verkeerde type. Uitgebreidere tools volgen gegevens door de Woordenboek · In het kortcodebaseEen codebase is de verzameling broncode waaruit een softwareproduct of onderdeel wordt gebouwd en onderhouden.Lees meer en signaleren patronen die op een beveiligingsprobleem kunnen wijzen.

Een melding betekent niet automatisch dat de code fout is. De analyse kent niet altijd de volledige context en kan daarom een risico aanwijzen dat in de praktijk niet optreedt. Andersom kan een probleem buiten de ingestelde regels blijven. Developers moeten meldingen dus beoordelen en de regels afstemmen op het project.

Een controle vóór het uitvoeren

Statische analyse kan al in de editor draaien en wordt vaak opgenomen in Woordenboek · In het kortcontinuous integrationContinuous integration is een werkwijze waarbij ontwikkelaars kleine codewijzigingen regelmatig samenvoegen en automatisch laten controleren, zodat integratieproblemen vroeg zichtbaar worden.Lees meer. Zo krijgt een developer feedback tijdens het schrijven of voordat een wijziging wordt samengevoegd. Dat maakt de controle snel en herhaalbaar.

Een geautomatiseerde test voert code uit en controleert bepaald gedrag met gekozen invoer. Statische analyse bekijkt de structuur en gegevensstromen zonder zo'n uitvoering. De technieken vullen elkaar aan: Woordenboek · In het kortunit testEen unit test is een geautomatiseerde test die een klein, afgebakend onderdeel van software controleert, meestal los van externe systemen.Lees meer controleren concreet gedrag, terwijl statische analyse andere mogelijke fouten vroeg zichtbaar maakt. Ook een Woordenboek · In het kortcode reviewEen code review is de beoordeling van een codewijziging door een andere ontwikkelaar. Die controleert onder meer de werking, leesbaarheid en onderhoudbaarheid voordat de wijziging wordt samengevoegd.Lees meer blijft nodig voor keuzes die een tool niet uit de code kan afleiden.