- Dokumentenkorb
-
- Der Dokumentenkorb ist leer.
Um ein Dokument in den Korb zu legen können Sie es per Drag'n'Drop von der Seite in den Korb ziehen
- Der Dokumentenkorb ist leer.
Bei herkömmlichen Vorgehensmodellen der Software-Entwicklung mit einer Testphase gegen Projektende bleibt für umfangreiches Testen oft nur wenig Zeit. Vor allem aber können Software-Änderungen, deren Notwendigkeit häufig erst in den Tests evident wird, nur mühsam und mit großem Aufwand noch in den Programmcode integriert werden. Kurz: Die Tests erfolgen viel zu spät.
Test-driven Development (testgetriebene Entwicklung), eine inzwischen bewährte Methode der Agilen Software-Entwicklung, geht einen anderen Weg. Hier sind der Aufbau von Testfällen und die Durchführung von Tests nicht Endpunkt der Entwicklung, sondern ihr Ausgangspunkt. Hat man die erforderlichen Modelle erstellt, leiten die Tests die Programmierung und nicht umgekehrt. Wie aber soll man Programmcode testen, der noch gar nicht existiert? Frank Westphal, Autor des Buches „Testgetriebene Entwicklung mit JUnit & FIT“, erläutert:
„Testgetriebene Entwicklung geht von einem fehlschlagenden Test aus. Software wird in kleinen sicheren Schritten entwickelt, die abwechselnd darauf abzielen, eine neue Anforderung zu implementieren (den fehlschlagenden Test also zu erfüllen) und das Design zu verbessern (und dabei weiterhin alle Tests zu bestehen).“
(Quelle: www.frankwestphal.de)
Die Software-Entwicklung ist demnach ein zyklischer Prozess, „Test – Develop – Test“, in kleinen inkrementellen Schritten: Jede funktionale Programmänderung wird durch einen Test motiviert; jeder neue Test baut auf dem vorhergehenden Test auf, erweitert und verbessert ihn unter Beibehaltung der schon vorhandenen Funktionalität.
Voraussetzung für dieses Vorgehen sind jederzeit wiederholbare, weitestgehend automatisierte Unit Tests – daher auch entsprechende Testwerkzeuge. Verschiedene Tools unterstützen das test-driven Development. Sie signalisieren einen erfolgreichen Test durch einen grünen Balken und einen fehlgeschlagenen Test durch einen roten Balken. Entwickler sprechen deshalb von „grünen“ und „roten“ Tests.
Nach jedem erfolgreichen Unit Test wird ein Refactoring durchgeführt. Das heißt, der Code wird restrukturiert und optimiert („aufgeräumt“), um ihn an Code-Richtlinien anzupassen, Redundanzen zu entfernen etc. Ziel ist ein schlichter, übersichtlicher und erweiterungsfähiger Code.
Die automatisierten Unit Tests liefern dem Entwickler ständiges Feedback und zugleich eine ausführbare Spezifikation (die Unit Tests dokumentieren jede neue Funktionalität). Eventuelle Fehler und Mängel werden frühzeitig erkannt und können sofort behoben werden; es werden auch keine Testfälle übersehen. Zusätzlich stellen – automatisierte – System- und Akzeptanztests sicher, dass die aufgebauten Softwarekomponenten als größere, integrierte Systemeinheiten die Kundenanforderungen exakt erfüllen.
Test-driven Development und Refactoring bringen dem Kunden Softwarelösungen mit schlanken, ausgetesteten, wartungs-, änderungs- und erweiterungsfreundlichen Anwendungen.
congstar GmbH
Lesen Sie die Case Study: