News
Tool-Tipp: Codeanalyse mit FindBugs

Die Information ist ein schnelllebiges Gut. Jeden Tag werden wir mit hunderten Informationen zugemüllt. Deshalb sind wir bestrebt uns auf das Wesentliche zu konzentrieren und nur substantiell nachhaltige Informationen bereitzustellen.

Icon Unternehmen

Im vorangegangenen Tool-Tipp thematisierten wir die Bedeutung von Softwaretests zur Erstellung (möglichst) fehlerfreier Software.

Neben den dynamischen Tests (Unit-, Integration-, UI-, Performance-, Lasttests) stehen dem Programmierer jedoch weitere Hilfsmittel zur Verfügung, um qualitativ hochwertige Software zu entwickeln. Die Rede ist von der statischen Codeanalyse.

Die statische Codeanalyse ist ein statisches Software-Testverfahren, bei dem im Gegensatz zu dynamischen Testverfahren die zu testende Software nicht ausgeführt werden muss – es wird der Quelltext oder Bytecode analysiert.

Diese Codeanalyse kann mit erheblichem Aufwand auch manuell geschehen; in der Regel bedient sich der Entwickler aber spezieller Tools wie FindBugs.

FindBugs ist eine Open Source Software, die Java-Programme nach Fehlermustern (den sogenannten Bug Pattern) durchsucht.

Diese Fehlermuster werden in folgende Kategorien aufgeteilt:

  • Bad Practice
  • Correctness
  • Internationalization
  • Malicious Code Vulnerability
  • Multithreaded Correctness
  • Performance
  • Security
  • Dodgy Code
  • Experimental

Eine vollständige Liste der Bugs kann unter http://findbugs.sourceforge.net/bugDescriptions.html eingesehen werden. Die Beschreibungen liefern größtenteils auch gute Hinweise, wie der Bug zu beheben ist.

FindBugs lässt sich auf verschiedene Arten integrieren:

Maven-Plugin

Die Verwendung des Maven-Plugins empfiehlt sich bei gleichzeitiger Nutzung der Reportingfunktionalität in Jenkins.
Hierfür wird der pom.xml unter plugins das Plugin hinzugefügt:

 

Die Ausführung erfogt mit

$ mvn findbugs: findbugs

Mit

$ mvn findbugs: gui

wird ein User Interface geöffnet, welches das Ergebnis der  Quellcodeanalyse optisch aufbereitet und vielfältige Bearbeitungs- und Analysemöglichkeiten bereitstellt.

 

Eclipse-Plugin

Das FindBugs-Eclipse-Plugin lässt sich über den Eclipse-Marketplace installieren.
Danach lässt es sich über die Projekteigenschaften konfigurieren...

 

 

... und kann über das Kontextmenü, beispielsweise des Package Explorers, auf eine bestimmte Quelle (Projekt, Paket, Klasse ...) angewendet werden.

 

Gefundene Bugs werden durch Käfersymbole am Rand des Editor-Fensters markiert. 

 

 Das Problems-Fenster liefert eine Beschreibung des Bugs.

 

Fazit

Auch wenn nicht jeder gefundene Bug wirklich ein Bug ist, so ist FindBugs ein sehr nützliches Werkzeug. Es erkennt eine Vielzahl an Fehlern und potentiellen Schwachstellen bereits während der Entwicklungsphase.