04. Juli 2024
AccsoNet Day: Ein Rückblick auf die Fish-Bowl-Session „Nachhaltiges Testen "
Warum Nachhaltiges Testen?
Unsere Fish-Bowl-Session begann mit einer prägnanten Einführung in das Thema. „Nachhaltiges Testen“ bedeutet, sicherzustellen, dass Tests und das Qualitätsmanagement eines Softwareprodukts nicht nur kurzfristig, sondern dauerhaft robust und effektiv sind. Tests sollten nicht nur anfangs gut funktionieren, sondern auch in der Lage sein, Änderungen und Erweiterungen in der Software nahtlos zu unterstützen. Das Ziel ist es, eine Teststrategie zu entwickeln, die auch in Zukunft verlässlich und wartbar bleibt.
Im Folgenden möchten wir gerne die Erkenntnisse und Best Practices teilen, die die Teilnehmenden der Session diskutiert haben.
Die Ausgangslage: Software ohne Tests
Viele Unternehmen stehen vor der Herausforderung, ein Softwareprodukt ohne bestehende Tests zu betreiben. In solchen Fällen muss das Management überzeugt werden, die Bedeutung von Tests anzuerkennen und in ein umfassendes Qualitätsmanagement zu investieren. Fehlende Tests können zu schwerwiegenden Risiken führen, wie einem fehlerhaften Verhalten der Software, das hohe Kosten verursachen kann.
Das Management überzeugen
Ein häufiges Problem ist, dass das Management den Wert von Tests nicht erkennt oder sie als zu teuer ansieht. Ohne ein solches Verständnis können Code-Änderungen schnell zu einem Kontrollverlust führen. Ein anschauliches Beispiel verdeutlichte dies: Auf einer „grünen Wiese“ starten Entwickler:innen oft intuitiv mit dem Testen, doch mit fortschreitender Entwicklung wird diese Herangehensweise unzureichend. Automatisierte Tests werden unverzichtbar, um die Qualität zu sichern.
"Der Maler würde niemals eine Hausfassade ohne Sicherheitsgerüst streichen. Das Gerüst stellt der Maler zu seiner eigenen Sicherheit auf. Und darüber wird nicht diskutiert."Leitspruch zur Überzeugung des Managements:
So wie das Gerüst für den Maler unverzichtbar ist, sind Tests für Entwickler:innen unerlässlich, um die Qualität des Softwareprodukts sicherzustellen.
Risikoanalyse als erster Schritt
Ein Ansatz zur Einführung von Tests besteht darin, zunächst die größten Risiken zu identifizieren. Diese Risiken werden dann durch gezielte Tests abgedeckt. Dies hilft, das Management zu überzeugen, da die Investition zur Reduzierung spezifischer Risiken geführt hat. Eine andere Möglichkeit besteht darin, die für den Kunden wichtigsten Qualitätsmerkmale zu definieren und darauf basierend geeignete Tests zu implementieren, z. B. Lasttests für die Performance oder funktionale Tests zur Erfüllung der spezifizierten Anforderungen.
Die Arbeitsweise der Entwickler:innen verändern: Test Driven Development (TDD)
Ein zentraler Aspekt des nachhaltigen Testens ist die Arbeitsweise der Entwickler:innen. Hier wurde das Prinzip des Test Driven Development (TDD) hervorgehoben. Bei TDD schreiben Entwickler:innen die Tests vor der eigentlichen Implementierung. Dies erfordert ein gutes Anforderungsmanagement, da die Anforderungen klar sein müssen, bevor die Entwicklung beginnt. Der „Shift Left“-Ansatz betont, dass frühes Testen Kosten spart, da Fehler frühzeitig entdeckt und behoben werden können.
Anforderungen und Szenarien: Die Basis für Tests
Ein weiteres wichtiges Thema war das Anforderungsmanagement. Klare und präzise formulierte Anforderungen bilden die Grundlage für effektive Tests. Szenarien, die aus den Anforderungen abgeleitet werden, können strukturiert und in natürlicher Sprache formuliert werden, wie es beim Behaviour Driven Development (BDD) der Fall ist. Diese Szenarien – gegliedert in „Given/When/Then“ – helfen, die gewünschten Effekte und Eigenschaften der Software zu überprüfen.
Der Umgang mit Testdaten
Ein automatisierter Test ist nur so gut wie die Testdaten, die ihm zugrunde liegen. Die Bereitstellung geeigneter Testdaten ist entscheidend für die Ausführung sinnvoller Testszenarien. Es ist wichtig, Design-Patterns zu verwenden, die klar erkennen lassen, worum es im jeweiligen Test geht. Eine zentrale Empfehlung war die Nutzung des Builder-Patterns, um Testdaten auf allen Ebenen von Testarten effizient zu managen. Durch das Auslagern der Testdatengestaltung bleibt der Testcode übersichtlich und wartbar.
Unser Fazit
Die Diskussionen beim Accso-Net Day zeigten deutlich, dass nachhaltiges Testen mehr ist als nur eine Sammlung von Techniken. Es ist eine Denkweise, die sicherstellt, dass Qualität nicht nur ein kurzfristiges Ziel ist, sondern ein fortlaufender Prozess. Durch das Teilen von Wissen und Best Practices können wir gemeinsam sicherstellen, dass unsere Softwareprodukte ebenso zuverlässig sind wie unser täglicher Kaffee.
Lassen Sie uns weiterhin daran arbeiten, unsere Tests und unsere Software zukunftssicher zu gestalten!