Suchen und Finden
Service
4 Automatisches Generieren von Unit Tests (S. 75-76)
Im Rahmen des Test Driven Developments (TDD) ist es selbstverständlich, Testfälle vor dem eigentlichen Coding zu erstellen. Es gibt Abstufungen zwischen diesem extremen Prinzip und dem Vorgehen, gar keine Tests zu erstellen. Das kann jederzeit durch Beobachtung kommerzieller Softwareprojekte veranschaulicht werden. Aber gerade in kommerziellen Projekten ist der Zeitplan oft so eng geschnürt, dass die Zeit für die Testfallerstellung offiziell nicht gewährt wird und der Entwickler diese Aktivität in seiner Verantwortung umsetzen muss. Umso höher ist die Hemmschwelle dafür. Deshalb gilt es, Tests so effizient wie möglich zu implementieren und dazu entsprechende Werkzeuge zur Hilfe zu nehmen.
Es hätte etwas von Magie, wenn sich Programme von selbst schrieben. Etwas realistischer erscheint die Aufgabe, Unit Tests für bestehenden Code durch ein Werkzeug erstellen zu lassen. Nichtsdestotrotz kann diese Aufgabe nicht beliebig automatisiert werden. Ganz verloren ist der auf Unterstützung hoffende Entwickler aber nicht. Zumindest in Grundzügen helfen zahlreiche Werkzeuge – viele davon aus dem Open Source-Sektor – bei der Erstellung von rudimentären Testfällen. Einige solcher dankenswerten Möglichkeiten werden an dieser Stelle diskutiert. Insbesondere besitzen manche Entwicklungsumgebungen eingebaute Funktionen zur Generierung von Testfällen. Es kann sich mitunter lohnen, für die Testfallerstellung eine andere Entwicklungsumgebung als die sonst verwendete einzusetzen.
24: Generieren von Testfällen mit JUnitDoclet
[JUnitDoclet] ist in erster Linie ein Code Generator, wenn auch ein etwas unkonventioneller. Er verwendet das Javadoc-Tool, um Informationen über die Struktur einer Klasse zu gewinnen.. Ein Javadoc-Kommentar ist ein Kommentar, der in einem durch die Zeichen /** und */ begrenzten Kommentarblock steht. Spezielle Javadoc-Tags beginnen innerhalb dieses Kommentars mit dem at-Symbol @.
JUnitDoclet verwendet die mit Java mitgelieferte Javadoc-Verarbeitung nun, um einen Quelltext auswerten und daraus Testfälle generieren zu können. Das Ergebnis ist ein automatisch erzeugtes Skelett von Testsuiten und Testfällen. Dem Entwickler wird die lästige Routinearbeit abgenommen, Testklassen anzulegen, mit der grundlegenden Infrastruktur zu versorgen und pro Geschäftsmethode mindestens eine Testmethode anlegen zu müssen. Weiterhin kann mit JUnitDoclet sichergestellt werden, dass sämtliche automatisch erstellten Testfälle auch in Testsuiten berücksichtigt werden.
Bei der automatisierten Testfallerstellung kann mitunter nicht kompilierbarer Programmcode entstehen. Daran wird deutlich, dass ein vollständig automatisch erzeugter Testfall im Allgemeinen und nach aktuellem Stand der Technologie nicht möglich ist. Jedoch erfährt der Entwickler eine enorme Arbeitserleichterung, bekommt er den essentiellen Rahmen doch generiert und muss sich nicht mehr um derartige „Trivialitäten" kümmern.
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.; Ersparnis im Vergleich zur Printversion
























