In der Softwareentwicklung ist Qualität kein Zufall, sondern das Ergebnis sorgfältiger Planung und Durchführung effektiver Teststrategien. Mit der zunehmenden Bedeutung von agilen Methoden und kontinuierlicher Integration ist es essenziell, Software schon in frühen Entwicklungsschritten effizient und nachhaltig zu testen. Doch wie stellt man sicher, dass die Tests umfassend, kosteneffizient und wartbar sind?

 

Hier kommt die Testpyramide ins Spiel, ein Konzept, das von Mike Cohn populär gemacht wurde. Die Testpyramide bietet ein strukturiertes Modell, um Testarten in der Softwareentwicklung sinnvoll zu priorisieren und zu organisieren. Sie hilft dabei, den Fokus auf die richtigen Tests zu legen, Entwicklungsressourcen effektiv zu nutzen und gleichzeitig ein hohes Maß an Softwarequalität zu gewährleisten.

 

Die Entwicklung der Testpyramide: Von der ursprünglichen Pyramide zum modernen Modell

Seitdem Mike Cohn im Jahre 2009 die Testpyramide bekannt gemacht hat, hat sie mehrere Bedeutungswandlungen durchlaufen. Es zeigte sich, dass die Pyramide mit ihren Teststufen und ihren grundsätzlichen Aussagen auf das spezifische Entwicklungsprojekt adaptierbar ist. Dies wiederum wirkt sich auf die Form der Pyramide aus.

 

Je nach Teststrategie haben sich die Module der Pyramide im Verhältnis zueinander geändert und die Form entwickelte sich beispielsweise zu einem Diamanten, einem Pokal oder zu einer Eiswaffel mit Eiskugel.

 

Eine Weiterentwicklung der Testpyramidenform ergibt sich nun auch durch die zunehmende Bedeutung des Testens im agilen Umfeld.

Der Shift-Left-Ansatz: Frühes Testen für höhere Effizienz

Seit 2023 gibt es für das standardisierte Testvorgehen nach dem International Software Testing Qualifications Board (ISTQB), das sich auf die Standardisierung von Wissen im Bereich Software Testing spezialisiert hat, einen neuen Foundation-Level-Lehrplan. Hier wird der Fokus verstärkt auf agile Methoden gelegt, insbesondere auf das Shift-Left-Konzept.

 

Shift-Left bezeichnet den Ansatz, das Testen so früh wie möglich im Entwicklungszyklus durchzuführen. Fehler entstehen für gewöhnlich in den frühen Phasen des Projekts. Tests und die Fehlerbehebung starten jedoch häufig, wenn die Entwicklung abgeschlossen ist. Das Shift-Left-Prinzip verdeutlicht, dass die Fehlerbehebung günstiger wird, je weiter sie in der Zeitschiene nach vorne beziehungsweise links rückt. Durch das Vorziehen der Testaktivitäten in die Anfangsphasen werden nicht nur Ressourcen gespart, sondern auch die Softwarequalität nachhaltig gesteigert.

 

Der Ansatz, die Fehlerbehebung so früh wie möglich stattfinden zu lassen, ergibt sich auch durch die Form der Testpyramide. Wird ein Fehler im isolierten Komponententest gefunden, ist seine Lokalisierung schneller und die Fehlerbehebung günstiger als das Debugging bei einem Fehler im End-to-End Test. Eine Analyse, ob ein Defekt durch zusätzliche Tests in einer der unteren Teststufen aufzufinden ist, shiftet die Fehlerbehebung nach links und sorgt dafür, dass die Testpyramide nicht invertiert, sondern ihre Form beibehält.

 

Auch durch den Test-First-Ansatz des Test-Driven-Development, in dem Tests dazu benutzt werden, die Softwareentwicklung zu steuern, wird der Shift-Left-Ansatz umgesetzt. Hierbei werden in den Unit-Tests die automatisierten Testfälle erstellt, bevor der Code geschrieben ist. Diese Shift-Left-Adaptierung spiegelt sich im Schwerpunkt der Testpyramide wider, den Unit-Tests.

Statische Tests: Ein neuer Fokus in der Teststrategie

Das Prinzip des frühen Testens ist seit jeher einer der sieben Grundsätze des Testens und wird in den Lehrplänen von ISTQB aufgegriffen. Das bekannteste Kapitel dazu ist über die „statischen Tests“. Hierunter versteht man eine Methode des Software Tests, bei der die Software ohne Ausführung des Programmcodes geprüft wird. Dies beinhaltet nicht nur die statische Analyse, sondern auch Reviews des Arbeitsergebnisses, wie Requirements, User Storys, Konzepten oder Code-Abschnitten.

 

Eines der ersten Arbeitsergebnisse, welches im Entwicklungszyklus produziert wird, ist das Schreiben der User Storys. Der ISTQB-Lehrplan legt in der aktuellen Version einen besonderen Fokus darauf und gibt vor, dass die Erstellung der User Stories nach dem INVEST-Prinzip zu erfolgen hat. Dies besagt, dass eine gut geschriebene User Story „testbar“ sein muss. Ob das Kriterium erfüllt ist, lässt sich durch entsprechende Reviews prüfen.

Eine weitere Thematik, welche die Bedeutung von statischen Tests hervorhebt, ist das der abnahmegetriebenen Entwicklung. Das ATDD-Konzept steht für Acceptance Test-Driven Development und ist ein agiler Entwicklungsansatz, der sich auf die Definition und Umsetzung von Akzeptanztests konzentriert, bevor die eigentliche Entwicklung beginnt. Es handelt sich dabei um eine kollaborative Methode, die sicherstellt, dass alle Beteiligten – einschließlich Developer, Tester und Fachabteilungen – ein gemeinsames Verständnis darüber haben, was die Software leisten soll. So werden beispielsweise User Storys in einem Spezifikations-Workshop einem Review unterzogen, mit dem Ziel, Abnahmekriterien zu erstellen.

 

Die Bedeutungszunahme der statischen Tests weicht von der ursprünglichen Idee der Testpyramide nach Cohn ab, da sich seine Pyramide auf die Testautomatisierung bezieht und Reviews hauptsächlich manuell durchgeführt werden. Im Sinne des frühzeitigen Testens gewinnen die statischen Tests enorm an Bedeutung, da die Fehlerbehebung bereits während der Konzeptions- und Entwicklungsphase stattfindet. Dieser Bedeutungssprung sollte sich auch in der Nutzung der Testpyramide wiederfinden, indem sie eine eigene Stufe „statische Tests“ erhält und so von der Testpyramide zur Qualitätsrakete wird.

 

So verbessern Sie Ihre Teststrategie mit der Qualitätsrakete

Aus der Qualitätsrakete ergeben sich folgende Handlungsempfehlungen für die Testoptimierung:

 

  1. Vermeiden Sie das Aufblähen der End-to-End-Tests: Jeder hier gefundene Fehler muss dahingehend analysiert werden, ob Testfälle in den unteren Stufen fehlen. Verschieben Sie Tests dorthin, wo Fehler tatsächlich auftreten, um Ressourcen effizient zu nutzen.
  2. Leben Sie den TDD-Ansatz: Setzen Sie den Test-Driven-Development-Ansatz (TDD) konsequent um. Schreiben Sie Testfälle, bevor Sie den Code entwickeln. Dies stellt sicher, dass keine Anforderungen vergessen und fehlerhafte Funktionen frühzeitig erkannt werden.
  3. Integration statischer Tests: Integrieren Sie statische Tests in Ihre Qualitätsstrategie. Prüfen Sie Anforderungen und User Storys bereits frühzeitig auf ihre Testbarkeit und vermeiden Sie spätere Korrekturaufwände.

 

Fazit

Die Testpyramide wird seit ihrer Einführung in unterschiedlicher Ausprägung genutzt, um den Ansprüchen moderner Testmethoden gerecht zu werden. Der Shift-Left-Ansatz und die Integration statischer Tests sind wesentliche Schritte, um die Qualität der Software frühzeitig zu sichern und Fehler effizient zu beheben. Durch die Anwendung dieser modernen Ansätze können Sie Ihre Teststrategie optimieren und die Qualität Ihrer Projekte erheblich steigern.

Geschrieben von

Silke Hertel
Senior Consultant

Silke Hertel machte ihr Staatsexamen in Informatik, Englisch und Spanisch. Seit über 10 Jahren ist sie als Testmanagerin tätig und leitete im öffentlichen und im privaten Sektor Testteams. Neben dem operativen Testmanagement liegt ihr Fokus auf dem Aufsetzen von Testprozessen und der Prozessoptimierung. Das Etablieren von nachhaltigen Testautomatisierungslösungen gehört ebenso zu ihren Aufgaben wie die nahtlose Einbindung der Qualitätssicherung in den Softwareentwicklung-Lifecycle.

Silke Hertel

Unsere Events

10.12.2024

PROCON IT@CONET Webinar: Moderne Datenarchitekturen & ihre Anwendungsfälle