29.10.2013 Aufrufe

Schriftliche Ausarbeitung - Alexander Willner | Masterarbeit

Schriftliche Ausarbeitung - Alexander Willner | Masterarbeit

Schriftliche Ausarbeitung - Alexander Willner | Masterarbeit

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

5. Implementierung und Test<br />

Objektcode. Bug-Patterns werden ausführlich anhand der Programmiersprache Java in einem<br />

Buch von E. Allen[57] beschrieben.<br />

Verwendete Software<br />

Eine detaillierte Analyse verschiedener Softwaresysteme für statische Testverfahren findet<br />

sich in [58]. Die Tabelle 5.1 gibt einen komprimierten Vergleich der in dieser Arbeit verwendeten<br />

Software wieder. Die jeweiligen Anwendungen konnten in die Entwicklungsumgebung<br />

integriert werden, um, wie bei der Überprüfung auf Einhaltung der Kodierungsrichtlinien,<br />

auch hier während der Programmierung direkt den Entwicklungsprozess zu<br />

unterstützen.<br />

Tabelle 5.1.: Analysierte Fehlertypen. Angelehnt an [58].<br />

Kategorie Beispiel FindBugs JLint PMD Lint4J<br />

Allgemeines Nullzeigerreferenzierung x x x x<br />

Nebenläufigkeit Auftritt von Deadlocks x x x x<br />

Array Länge kleiner 0 x x o o<br />

Mathematik Division durch Null o x o o<br />

Bedingungen Unerreichbarer Code x o x x<br />

Zeichenketten Stringvergleich mittels == x x x x<br />

E/A-Ströme Nicht geschlossener Strom x o o o<br />

Ungenutzte Anw. Ungenutzte lokale Variable x o x x<br />

Entwurf Leerer Konstruktor x o x x<br />

Unnötige Anw. Unnötiger Rückgabewert o o x x<br />

Performance Objekterzeugung in Schleifen x o x x<br />

FindBugs. FindBugs 3 [59] ist ein Erkennungsystem von Bug-Patterns für Java. Es nutzt<br />

verschiedene Techniken, um Präzision, Effizienz und Benutzbarkeit zu vereinen. Ein Hauptmerkmal<br />

ist die Verwendung von abstrakten Syntax-Bäumen (ähnlich zu [60]), um verdächtige<br />

Quelltextabschnitte zu identifizieren. In vielen Fällen werden auch Datenflussanalysen<br />

durchgeführt, etwa um Nullzeigerreferenzierung zu entdecken.<br />

JLint. JLint 4 [61] analysiert syntaktisch, wie FindBugs, den Java Bytecode und überprüft<br />

den Datenfluss im Programm. JLint erstellt zusätzlich einen Graphen aller Blockierungen,<br />

um zyklische Wiederholungen in diesem zu entdecken. Dies ermöglicht die Aufdeckung<br />

3 http://findbugs.sourceforge.net<br />

4 http://jlint.sourceforge.net<br />

53

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!