Automatisk kodgranskning

för automatisk kodgranskning kontrollerar källkoden för överensstämmelse med en fördefinierad uppsättning regler eller bästa praxis. Användningen av analytiska metoder för att inspektera och granska källkod för att upptäcka buggar eller säkerhetsproblem har varit en standardutvecklingspraxis i både öppen källkod och kommersiella programvarudomäner. Denna process kan utföras både manuellt och på ett automatiserat sätt. Med automatisering ger mjukvaruverktyg hjälp med kodgranskning och inspektionsprocessen. Granskningsprogrammet eller verktyget visar vanligtvis en lista med varningar (brott mot programmeringsstandarder). Ett granskningsprogram kan också tillhandahålla ett automatiserat eller ett programmeringsassisterat sätt att korrigera de problem som hittats. Detta är en komponent för att enkelt bemästra programvara. Detta bidrar till Software Intelligence -praxis. Denna process brukar kallas "linting" eftersom ett av de första verktygen för statisk kodanalys hette Lint .

Vissa statiska kodanalysverktyg kan användas för att hjälpa till med automatisk kodgranskning. De jämförs inte positivt med manuella granskningar, men de kan göras snabbare och mer effektivt. [ citat behövs ] Dessa verktyg kapslar också in djup kunskap om underliggande regler och semantik som krävs för att utföra denna typ av analys så att den inte kräver att den mänskliga kodgranskaren har samma sakkunskap som en expert på mänsklig auditör. Många integrerade utvecklingsmiljöer tillhandahåller också grundläggande funktionalitet för automatisk kodgranskning. Till exempel Eclipse och Microsoft Visual Studio IDE en mängd plugins som underlättar kodgranskning.

Utöver verktyg för statisk kodanalys finns det också verktyg som analyserar och visualiserar mjukvarustrukturer och hjälper människor att bättre förstå dessa. Sådana system är mer inriktade på analys eftersom de vanligtvis inte innehåller en fördefinierad uppsättning regler att kontrollera programvara mot. Vissa av dessa verktyg (t.ex. Imagix 4D , Resharper, SonarJ, Sotoarc , Structure101, ACTool) tillåter en att definiera målarkitekturer och framtvinga att målarkitekturbegränsningar inte kränks av den faktiska mjukvaruimplementeringen.

Automatiserade verktyg för kodgranskning

Se även