Test-first Codierung

Inhaltsverzeichnis

Langfristig hohe Produktivität stellt sich nur ein, wenn Anforderungen stabil erfüllt werden. Eine Weiterentwicklung darf die bisherige Qualität nicht negativ beeinflussen. Veränderungen dürfen nicht zu Regressionen führen.

Zu jedem Zeitpunkt sollte deshalb ein Softwareteam die Frage beantworten können, ob aktuelle Änderungen die Stabilität kompromittiert haben, ob also die Software noch korrekt ist.

Gleichfalls sollte zu jedem Zeitpunkt ein Softwareteam die Frage beantworten können, ob eine aktuelle Veränderung schon den Anforderungen entspricht, so sie also “reif zur Auslieferung” ist.

Reife und Regressionsfreiheit lassen sich jederzeitig, nachvollziehbar, personenunabhängig und verlässlich nur mit automatisierten Tests feststellen.

Und automatisierte Tests werden verlässlich nur geschrieben, wenn das vor einer Veränderung des Produktionscodes geschieht, dessen Reife und dessen Einfluss auf die Stabilität sie überprüfen sollen.

Die test-first Codierung ist mithin ein Herzstück fachgerechter und verantwortungsvoller Softwareentwicklung.

Allerdings ist ein test-first Vorgehen nicht gleichzusetzen mit Test-Driven Development (TDD). TDD ist vielmehr nur eine Variante mit einem begrenzten Einsatzgebiet. Das hängt vom Schwierigkeitsgrad des zu lösenden Problems ab.

Das Training Test-first Codierung vermittelt deshalb nicht nur TDD, sondern verortet diesen vielbeachteten Ansatz als einen von mehreren im Rahmen eines Modells zur Beurteilung von Problemschwierigkeitsgraden. 

Wollen Sie die Reife und Korrektheit des Code in Ihren Projekten erhöhen? 📧Dann lassen Sie uns über eine Clean Code Schulung Test-first für Sie sprechen...

Inhalte der Clean Code Schulung

  • Die Kernphasen einer systematischen Softwareentwicklung im Überblick: Analyse, Entwurf, Codierung
  • Die Testmatrix: Vorgehensweisen für verschiedene Schwierigkeitsgrade
    • Triviale Probleme
    • Einfache Probleme
    • Komplizierte Probleme
    • Komplexe Probleme
    • Chaotische Probleme
  • Tests als Treiber der Modularisierung
  • Das Abhängige testen mit Surrogaten
  • Test-first Refaktorisierung

Lernziele

  • Probleme im Schwierigkeitsgrad richtig einschätzen und mit einem passenden test-first Ansatz bewältigen.
  • Module als Reaktion auf die Notwendigkeit eines test-first Vorgehens natürlich wachsen lassen.
  • Logik gezielt testbar machen durch eine prinzipiengeleitete Strukturierung.
  • Die Testmenge begrenzen, um Selbsteinschnürungen zu vermeiden: so viel wie nötig testen, aber auch nur so wenig wie möglich.
  • Ancient Code und Legacy Code nachträglich systematisch testbar(er) machen.

Schulungsformat

Die Clean Code Schulung findet in 9 online Sitzungen von 60-90 Minuten in einem inverted classroom statt:

  • Die erste Sitzung dient der Orientierung und dem gegenseitigen Kennenlernen.
  • Die weiteren Sitzungen dienen dem Feedback, dem Q&A und der spontanen Vertiefung.

Zwischen den Sitzungen eignen sich die Trainingsteilnehmer den Lernstoff im Selbststudium an. Das bedeutet, Lernmaterialien zu lesen und Übungsaufgaben zu lösen. Die Ergebnisse werden in der folgenden online Sitzung präsentiert und besprochen. Für das Selbststudium sind pro Lektion 3 bis 5 Stunden zu veranschlagen; der Aufwand ist von der Lektion und den persönlichen Erfahrungen und der gewählten Entwicklungsplattform abhängig.

Für die Lösung der Übungsaufgaben hat sich klar im voraus terminierte Gruppenarbeit als sehr hilfreich erwiesen. Diese Termine sollten tendenziell zeitlich nah an der Sitzung liegen, in der Feedback gegeben wird.

In einem eigens für das Training eingerichteten privaten online Forum können die Teilnehmer mir jederzeit Fragen stellen und sich austauschen.

Technische Voraussetzungen

  • Als online Plattform findet Microsoft Teams Einsatz.
  • Jeder Teilnehmende sollte während der Sitzungen in ungestörter Umgebung allein mit Headset und funktionstüchtiger Webcam am Computer sitzen.

Wollen Sie die Reife und Korrektheit des Code in Ihren Projekten erhöhen? 📧Dann lassen Sie uns über eine Clean Code Schulung Test-first für Sie sprechen...

This article was updated on 05.02.2021