Zurück zur Übersicht


INF  Testen, Profiling und Metriken unter Java SGINF
Dozent : Prof. Dr.-Ing. Stefan Edlich   eMail | Homepage
Semester7
Einordnung : Informatik, Wahlpflicht Katalog IISWS3
Sprache : Deutsch Art V
Prüfungsart : PVL2  Credits
Prüfungsform : Seminararbeit 
Voraussetzungen :  
Querverweise :  
Vorkenntnisse : Kenntnisse im Bereich der objektorientierten Programmierung / Java 
Hilfsmittel und Besonderheiten :  
Lehrziele : 1. Spaß am Testen. 2. Kenntnisse der verschiedenen Testvarianten 3.Beherrschung der ganzen Pallette an Tools, um die verschiedenen Testverfahren, Metriken und Profilinginformationen anwenden zu können. 
Lehrinhalte :

Softwaretests sind seit den 70er Jahren eines der wichtigsten Forschungsgebiete des Software-Engineering. Dennoch klaffte bis Ende der 90er Jahre zu der Anzahl und Qualität der real durchgeführten Tests eine Lücke gigantischen Ausmaßes. Dies wird noch unerklärlicher, wenn man bedenkt, daß jeder Entwickler, Projektmanager und Kunde sofort mit dem Leben seiner Großmutter auf die Wichtigkeit von Qualität und Tests schwören würde.

Woran hat dies gelegen?

1. Software muß unter immer extremen Zeit- und Gelddruck entwickelt werden. Es gibt heute schon Bücher darüber, wie man Softwareprojekte mit extrem hohem Risiko hart an der Verlustgrenze anbietet. Früher fiel dabei das Testen unter den Tisch.

2.Softwaretest haben bisher kein Spaß gemacht.

Punkt 1 läßt sich leider nicht direkt entschärfen. Der Druck wird in der aktuellen wirtschaftslage Deutschlands ja eher noch schlimmer.

Gegen Punkt 2 ist aber spätestens seit Kent-Beck (XP) und Erich Gamma ein vierfaches Kraut gewachsen.

A) Um dem Testen einen Schub zu verleihen wurde von Kent-Beck im XP-Konzept das Testen vor (!) das Entwickeln gestellt.
B) Weiterhin haben beide JUnit entwickelt. Dieses sind Testklassen, die es ganz einfach erlauben, Tests zu schreiben und diese auszuwerten.
D) Fast alle Testtools setzen auf JUnit auf, d.h. alle Werkzeuge verwenden die gleiche Basisinfrastruktur.
C) Es gibt mittlerweile haufenweise Testtools als Eclipse PlugIns, von denen man kaum mehr die Finger lassen möchte.

Entscheidend für den Durchbruch dieser Ansätze war auch, daß selbst viele tausende von Tests einfach per rechtem Mausklick durchführen lassen und das das Ergebnis nicht mehr nur abertausende ErgebnisLogFiles sind, sondern einfach eine rote oder grüne Ampel.

Von dieser Thematik infiziert, werden wir folgende Themen / Tools ausschließlich praktisch bearbeiten und dabei die theoretischen Konzepte én passant erlernen:
1. Logging (1.4 und log4j)
2. Assertions (1.4)
3. Invarianten, Pre-/Post-Conditions: Entwicklung eines sauberen Programmierstiles.
4. JUnit (Voraussetzung: Refactoring)
5. HttpUnit, Cactus, jWebUnit, Bugkilla
6. Grinder, Opensta und JStress

Abschließend wird das Profiling (wo steckt die Laufzeit? Wo ist mein Programm langsam?) und Metriken (kann man automatisch Kennzahlen aus meinem Code ermitteln, die mir Aufschluß über die Qualität liefern?) auf dem Code ermittelt, den wir erstellt haben. Dazu verwenden wir viele hervorragende PlugIns und Tools wie z.B. den Eclipsecolorer oder JDepend4Eclipse.

 

Literatur : Java-Magazin Juni 2003, JUnit & Co, Johannes Link: Unit Tests mit Java 


Zurück zur Übersicht