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

„Rot-grünes“ Testen zusammen mit „beweglicher“ Code

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:

  • Eine Funktionalität wird nur und genau dann entwickelt, wenn sie gebraucht wird (just in time).
  • Es werden keine Testfälle übersehen.
  • Nur das, was testbar ist, wird programmiert.
  • Nur das, was getestet ist, wird implementiert.
  • Die vorhandene Funktionalität ist gesichert, wenn der Code geändert oder erweitert wird.

Wir erhalten so schlanken, strukturierten, ausgetesteten, gut wartbaren und „beweglichen“ – das heißt änderungs- und erweiterungsfreundlichen – Code.

Lesen Sie mehr:
Test-driven Development

Weitere Information

Refactoring

Weitere Information

Case Study

congstar GmbH

  • 1Hochflexibles Templating System für maximale Designflexibilität.
  • 2Abstraktion der Shop Logik zur direkten Verzahnung mit dem CMS.
  • 3Umfangreiche Google Maps Integration im congstar Aufladefinder.

Lesen Sie die Case Study:

Besucher Historie