- 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.
Nachdem wir die Domänen- und UML-Modelle definiert haben, bauen wir erste Testfälle auf und beginnen mit dem Testen. Falls Sie sich jetzt wundern: Ja, wir erstellen Testfälle und führen Unit Tests durch, bevor wir Code entwickeln. Das ist test-driven Development!
Test first: Die – natürlich fehlschlagenden – Unit Tests teilen uns mit, was wir programmieren müssen. Wir gehen iterativ in kleinen, überschaubaren Zyklen vor, testen und programmieren jeweils nur eine einzelne Funktionalität. Jeder neue Test baut auf dem vorhergehenden auf und erweitert ihn unter Beibehaltung der schon vorhandenen Funktionalität.
Für dieses Vorgehen benötigen wir Testwerkzeuge, denn die Tests müssen beliebig wiederholbar und weitestgehend automatisiert sein. Tools oder die TYPO3 Extension für test-driven Development lassen den Entwickler auf einen Blick erkennen, ob sein Test erfolgreich war: Ein roter Balken steht für einen fehlgeschlagenen Test, ein grüner Balken für einen erfolgreichen Test. Wir starten also bewusst mit einem „roten“ Unit-Test und nehmen dann die notwendigen Code-Änderungen vor, damit der Test „grün“ wird. Ist dieses Ziel erreicht, führen wir für die nächste Funktionalität einen „roten“ Unit-Test – und die bisherigen Tests – durch, ändern wieder den Code und so weiter. Die Tests liefern uns ständiges Feedback, so dass wir Fehler und Mängel schon frühzeitig entdecken und beheben können.
Nach jedem erfolgreichen Unit-Test nehmen wir ein Refactoring vor. Wir restrukturieren und optimieren den Programmcode, um ihn an Code-Richtlinien anzupassen, Redundanzen zu entfernen etc. Die getestete Funktionalität wird dabei nicht verändert. Ziel ist ein schlichter, übersichtlicher und erweiterungsfähiger Code.
Anschließend führen wir noch einmal einen Unit Test durch, um zu gewährleisten, dass der Code sich nach der Restrukturierung noch gleich verhält und sich keine Fehler eingeschlichen haben.
Größere, integrierte Einheiten unserer Lösung prüfen wir mit bewährten System- und Akzeptanztests. Sie stellen sicher, dass die Komponenten die gewünschte Funktionalität korrekt, vollständig und performant ausführen und dem Anwender das bieten, was er sich erhofft.
Test-driven Development und Refactoring ergänzen sich in idealer Weise: Die Unit Tests sichern die funktionale Qualität, Refactoring die strukturelle Qualität unserer Softwarelösung.
Das beschriebene Vorgehen hat gleich mehrere Vorteile:
Wir erhalten so schlanken, strukturierten, ausgetesteten, gut wartbaren und „beweglichen“ – das heißt änderungs- und erweiterungsfreundlichen – Code.
|
Test-driven Development
Weitere Information |
Refactoring
Weitere Information |
congstar GmbH
Lesen Sie die Case Study: