Inhalt Abbildung PDF Source Projektmanagement
 |<    <     *    >|  Generated by CoCoDiL

3 Die Werkzeuge klein aber mächtig

3.1 Junit

* JUnit ist das zentrale Tools für Unittests. Auf der Homepage von JUnit sind eine Vielzahl von Artikel über TestFirst Programming und viele zusätzliche Tools, die Junit ergänzen.

3.2 JDepend

* JDepend ist ein kostenlosses Tool das Java Source Code auf PaketEbene analysiert. Es misst die Abhängigkeiten zwischen Paketen und erkennt auch zyklische Abhängigkeiten.

3.3 CodeCoverage

Tools die den Source Code analysieren, sind eine gute Ergänzung zu manueller Codeinspektion. Beide Arten von Codeinspektionen können sich aber gegenseitig nicht ersetzen.

Das Ergebnis von automatisierten Codekritiken können Akzeptanzkriterien sein, und dies kann direkt in einem Vertrag hineingeschrieben werden. Allerding muss man einige Toleranzen offen halten. Nicht jede Kritik die ein Code Analyse Tool findet ist berechtigt, in einigen seltenen Fällen ist es auch sinnvoll bewusst gegen typische Regeln zu vertossen.

Wir können Code-Qualität garantieren und mit diesen Tools messbar nachweisen

In Java gibt es viele kommerzielle (und teure) Tools die den Source Code analysieren. Falls der Kunde diese besitzt und zur Verfügung stellt, sollten wir sie nutzen.

Inzwischen gibt es auch erste OpenSource Tools:

Auszug aus der Beschreibung:

PMD scans Java source code and looks for potential problems like:

PMD gibt es unter anderem fuer Eclipse, Forte und JBuilder

CPD ist ein Copy Paste Detector und baut auf PMD auf. Er sucht im Java Code nach identischen Code (fragmenten).

3.4 CoverageAnalyse

Eine Coverage Analyse gibt Hinweise auf Vollständigkeit der Tests. Eine Coverage Analyse protokolliert welcher Code bei einem Test mindestens einmal bzw. nie durchlaufen wurde.

Eine Coverage Analyse hilft toten Code und Lücken in den Tests zu finden. Man beachte daß 100% Testabdeckung noch keine Garantie für die Korrektheit des Programms gibt:

Test State Coverage, Not Code Coverage

int test( int a, int b){
    return a / (a + b);
}

In der XP-Community wird häufig * Clover empfohlen. Es ist leider nicht mehr Open Source. Das Preis, Leistungsverhältnis soll aber sehr gut sein.

Die Einsatzmöglichkeiten von * Clover beschreibt auch ein deutschsprachiger * Artikel der Firma * OIO

Ein anderer Weg geht * Jester . * Jester ändert einfach den Code und lässt alle Tests durchlaufen. Wenn immer noch alle Tests korrekt durchlaufen, wird der Teil des Codes den * Jester geändert hat nicht abgedeckt. * Jester ist Open Source

3.5 Versionsverwaltung

Das bekannteste ist sicherlich * CVS. Es lässt sich auch direkt in Eclipse einbinden.

3.6 Fehlerdatenbank

Ziel einer Fehlerdatenbank:

Tool - Vorschlag:

Inhalt Abbildung PDF Source Projektmanagement
 |<    <     *    >|  Generated by CoCoDiL