Forráskód audit¶
Forráskód audit alatt a forráskód elemzését értjük, amelynek célja az általános, illetőleg az adott teamre egyedileg jellemző kódolási szabályok megsértésének detektálása.
- Legtöbbször automatizáltan, erre a célra fejlesztett szoftverek támogatásával hajtjuk végre
- A szabályok alapján az elemzés szintaktikailag és szemantikai értelemben is megtörténik
- Hivatalos (valamely szervezet által elfogadott) és egyedi szabályok alkalmazása
A szabálysértésekre az egyes eszközök jelzést adnak és legtöbbször egy részletes leírást, sokszor példát is linkelnek. Többségük segítségével riportok is készíthetők, valamint integrálhatók az ismert fejlesztői környezetekbe.
Java eszközök¶
PMD¶
"PMD is a static source code analyzer. It finds common programming flaws like unused variables, empty catch blocks, unnecessary object creation, and so forth. It’s mainly concerned with Java and Apex, but supports six other languages."
Tehát a PMD egy statikus kód elemző program java nyelvre, amely képes hibákat találni a programkód futtatása nélkül.
Képes megtalálni a:
- Nem használt változókat
- Üres catch blokkokat
- Fölösleges objektum létrehozásokat
- stb.
A csomaghoz a fejlesztők egy alap szabálygyűjteményt biztosítanak. A PMD szabálykészlete bővíthető, Java és/vagy XPath segítségével definiálhatók saját szabályok.
PMD szabályok
- Alapvető szabálycsoportok: Basic, Braces, Clone, Code Basic, Braces, Clone, Code size, Controversal, Coupling, Design, Finalizer, Import, Javabean, JUnit, Java Logging, Naming, Optimization, Strict Exception, String and StringBuffer, Security, Type resolution, Unused code (…)
- Testreszabhatók
- Severity: 1-2 (error), 3-4 (warning), 5 (info).
- 1: hiba
- 2: potenciális hiba
- 3: zavaró kód, javítása erősen javasolt
- 4: jó ízlést sértő
- 5: nice to have
Letöltése:
Windowson:
- Tötltsük le a pmd-bin-6.33.0.zip állományt.
- Csomagoljuk ki az zip archívumot, például a C:\pmd-bin-6.33.0 útvonalra.
- A C:\pmd-bin-6.33.0\bin elérési útvonalat helyezzók el a PATH környezeti változóba:
- Végleges módon - rendszerbeállítások
- Ideiglenesen - parancsorban adjuk ki a SET PATH=C:\pmd-bin-6.33.0;%PATH% parancsot
- Használata parancssorban: pmd.bat -d c:\src -R rulesets/java/quickstart.xml -f text
Linuxon:
Az alábbi parancsokat hajtsuk végre:
- cd $HOME
- wget https://github.com/pmd/pmd/releases/download/pmd_releases%2F6.33.0/pmd-bin-6.33.0.zip
- unzip pmd-bin-6.33.0.zip
- alias pmd="$HOME/pmd-bin-6.33.0/bin/run.sh pmd"
- pmd -d /usr/src -R rulesets/java/quickstart.xml -f text
Telepítés
Használat
Checkstyle¶
"Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. It automates the process of checking Java code to spare humans of this boring (but important) task. This makes it ideal for projects that want to enforce a coding standard."
Tehát Java kódot tudunk elemezni vele. Nagyon konfigurálható, szinte akármilyen szabályt megadhatunk neki amire figyelnie kell. Pl. commitolás előtt hasznos lehet bekötni a git precommit hookjába, mert ha az adott szabályok nem teljesülnek akkor nem enged commitálni.
Jellemzők:
- Szabálysémákat definiál, ezek testre szabhatóak (XML alapú leírás)
- A szabályok gyűjteményekbe szervezhetők (configuration)
- Saját szabályszerkesztővel rendelkezik
Szabályok
- Saját gyűjteménye van: Javadoc Comments, Naming conventions, Imports, Size Violations, Whitespace, Modifiers, Blocks, Coding Problems, Class Design, Duplicates, Metrics, Miscellaneous
- Paraméterezhető szabályok, amelyek XML-ben állíthatók: pl. maximális sorméret
- Severity: error, warning, info, ignore
Letöltése:
Szedjük le a legújabbat a checkstyle releaseiből vagy keressünk rá a Maven centralon
Telepítés
Használat
Demonstráció¶
Az órához kapcsolódó projekt demonstrációs feladat itt érhető el.
Feladat¶
- Futtassuk le a PMD-t saját projektünkön!
- Futtassuk le a Checkstyle-t saját projektünkön!
- Elemezzük a kapott eredményeket! Melyek a kritikus és nem kritikus issuek?
- Vizsgáljuk meg a SonarQube által adott audit eredményeket!