SonarQube ger dig koll på kvaliteten i ditt projekt

Det lönar sig att hålla en hög kvalitet på koden i projekt men det kan vara svårt att bibehålla den när projektet växer och kraven blir mer komplexa. Ett projekt med bra kodkvalitet är lättare att förvalta, har färre buggar och kommer att kosta mindre. Det finns många verktyg som kan hjälpa till att analysera koden och hitta problemområden såsom verktyg för statisk kodanalys, test coverage, kod-duplicering m.m. Dessa verktyg har ett stort värde i sig själva men det kan vara svårt att få en helhetsuppfattning. SonarQube hjälper till att samla in information från de olika verktygen och sammanställer en rapport som ger ett värde på hur mycket teknisk skuld som finns i systemet. SonarQube hjälper även till med att planera arbetet för att åtgärda kvalitetsbrister.

Genom att kontinuerligt analysera koden så kan SonarQube visa hur kvaliteten i projektet utvecklats över tid. Det går att bygga upp egna översiktsvyer med de värden man är intresserad av. Dessa översiktsvyer är ett bra sätt att visualisera den tekniska skulden i ett system. Det är enkelt att från översikten komma ned på detaljnivå och tillbaka.

 

Översiktsvy över teknisk skuld
Översiktsvy som visar vilken teknisk skuld som finns i systemet.

 

Detaljvy över problem
Detaljvy som visar vilka problem som hittats i projektet.

Det är viktigt att konfigurera SonarQube att analysera rätt saker. Om resultaten är för omfattande med irrelevant information så kommer utvecklare att tröttna. Se till att ta bort analys av tredjepartskod som du inte har möjlighet att påverka. En del automatgenererad kod följer inte alltid namngivningsregler (exempelvis en del händelsehanterare i .NET som har understreck i namnen). Det kan vara svårt att undanta automatgenererad från analys men man kan manuellt tala om att dessa händelsehanterare ska undantas från analys.

Mest nytta får man om man integrerar SonarQube med en ”Continuous Integration”-lösning. Continuous Integration är ett utmärkt sätt att kontinuerligt bygga, testa och analysera kod. SonarQube går att integrera med TeamCity, Jenkins m.fl.

Översiktsvy med förändringar
Översiktsvy som visar förändringar från föregående analys.

SonarQube är Open Source. Även om verktyget är baserat på Java så kan det användas för att analysera andra språk som C#, PHP, C/C++ m.fl. Det kan även analysera andra former av resurser som CSS, XML, HTML m.m. Det finns många plugins till systemet. De flesta är GPL-licensierade och därmed fria. Det finns dock några som har en kommersiell licens. Det framgår dock tydligt vilken licens som används av olika plugins.

Installationen av SonarQube är enkel. Du måste ha Java installerat och sedan packar du bara upp zip-filen på önskat ställe. Som standard används en inbyggd databas HSQL som fungerar bra för att testa och lära sig SonarQube men den rekommenderas inte för en skarp installation. Då måste man använda en riktig databas.

Ladda ned SonarQube