Immer mehr Softwareprodukte werden nach agilen Methoden entwickelt, um dem Wandel des Marktes und den Kundenerwartungen gerecht zu werden. Die kürzeren Release-Zyklen erfordern ein sehr hohes Maß an Entwicklungsqualität. In den meisten agilen Teams werden Softwaretester:innen oft für die Qualität des Produktes verantwortlich gemacht.
Um den Release-Zyklen gerecht zu werden, müssen Entwicklungsteams automatisierte Tests entwickeln, um effektive, zuverlässige und wiederholbare Ergebnisse zu erzielen. Dabei sollten jedoch manuelle Tests nicht vernachlässigt werden. Warum? Das beschreibt der nachfolgende Artikel.
Wie viel Automatisierung ist sinnvoll?
Viele Unternehmen begehen einen schwerwiegenden Fehler. Von den Entwicklungsteams wird oft eine 100prozentige Abdeckung der Software mit Hilfe von automatisierten Tests verlangt. Dies mag in der Theorie plausibel sein, ist in der Praxis jedoch nahezu nicht umsetzbar.
Zwar erfordern kurze Release-Zyklen eine mindestens teilweise Automatisierung, der Aufwand für eine vollständige Testabdeckung aller Testebenen, von Unit bis UI-Tests, würde aber enorm viel Zeit und Geld kosten, die ein Unternehmen gezielter und effizienter einsetzen kann.
Manuelles Testing ist weiter notwendig
Automatisierte Tests sind keine Wunderwaffe. Sie können und werden manuelle Tests nicht vollständig ablösen. Ein Unternehmen muss stattdessen je nach Softwareprodukt einen effizienten Mix aus Automatisierung und manuellem Testen finden. Hierbei kann eine Risikoanalyse zu Beginn der Entwicklung sehr sinnvoll sein, um bereits vorab kritische Bereiche im Produkt zu definieren und eine entsprechende Testabdeckung mit sowohl automatisierten als auch manuellen Tests zu planen.
Ein weiterer Fehler, den Unternehmen und Entwicklungsteams begehen: Sie legen die Hauptverantwortung für die Qualität in die Hände der Softwaretester:innen. Von diesen wird erwartet, dass sie die automatisierten Tests schreiben, das manuelle Testing übernehmen sowie bereits bei der Anforderungsanalyse mitarbeiten. Betrachtet man die kurzen Release-Zyklen, sind diese komplexen Aufgaben unmöglich von nur einer Position im Team zu bewältigen.
Qualitätsgedanken ändern
Um diese Fehler zu vermeiden, müssen Unternehmen dafür sorgen, dass innerhalb der Organisation und insbesondere in den Entwicklungsteams eine Änderung des Qualitätskonzepts vollzogen wird. Softwaretester:innen dürfen nicht mehr allein im Team für die Qualität des Softwareproduktes verantwortlich sein. Alle Teammitglieder, vom Produktmanager über den Designer bis hin zum Entwickler, müssen zwingend einen hohen Qualitätsanspruch an ihre Arbeit haben. Dabei spielt Transparenz innerhalb des Teams eine sehr wichtige Rolle. Wenn jeder im Team den aktuellen Stand der Entwicklung kennt und über die nächsten Schritte informiert ist, kann das Team einen ganzheitlichen Qualitätsgedanken entwickeln.
Erste Schritte für mehr Qualität
1.
Das gesamte Team ist bei der Anforderungsanalyse des neuen Produktes dabei und gibt früh Feedback zur technischen Machbarkeit oder etwaigen Risiken.
2.
Der Produktmanager ist im stetigen Austausch mit dem Kunden und gibt Kundenrückmeldungen transparent an das Team weiter, um ein besseres Gefühl für die aktuelle Qualität ihrer Arbeit zu erlangen.
3.
Die Entwickler sind maßgeblich an der Entwicklung der automatisierten Tests beteiligt und helfen Softwaretester:innen eine stabile Regression Test Suite zu entwickeln.
4.
Software Tester/innen helfen dem Team den Qualitätsgedanken weiterzuentwickeln und sind für die Planung der Testaktivitäten zuständig.
5.
Das gesamte Team kann und sollte das Produkt manuell testen. Softwaretester:innen sollten dabei das Team in unterschiedlichen Testmethoden schulen.
Das ist nur ein Anfang, um den Qualitätsgedanken im Team zu etablieren. Es ist wichtig, diese Punkte und die Arbeitsweise im Team ständig zu verbessern, zu hinterfragen und in regelmäßigen Abständen zu prüfen, ob sie dem Markt und den Kundenerwartungen entsprechen.
Hat ein Unternehmen ein gutes Qualitätskonzept und Gedanken entwickelt, sollten die Entwicklungsteams einen starken Rückhalt erhalten, was den Umgang mit Problemen angeht. Fehler oder kritisches Feedback sollte genutzt werden, um die Teams in eine positive Richtung zu motivieren.
Ganzheitlichen Ansatz etablieren
Unternehmen, die eine 100prozentige Testabdeckung von ihren Entwicklungsteams verlangen, vergeuden wertvolle Zeit und Geld. Beides könnte stattdessen in einen ganzheitlichen Ansatz fließen, um eine gute Softwarequalität zu erreichen.
Vielmehr sollten Entwicklungsteams die Möglichkeit erhalten, mit der eigenen Vorgehensweise zu experimentieren, um zu schauen, wo die persönlichen und technischen Fähigkeiten am besten genutzt werden können.
Ein gesunder Mix aus automatisierten und manuellen Tests liefert oft bessere Ergebnisse als eine hohe Testabdeckung bei reiner Testautomatisierung. Beide Testarten sollten sich ergänzen und nicht als getrennte Aspekte innerhalb der Entwicklung angesehen werden.
Es ist es zwingend erforderlich, dass sowohl Entwicklungsteam als auch das Unternehmen einen sehr hohen Kundenfokus und Qualitätsgedanken haben, um den hohen Kundenerwartungen gerecht zu werden.
Ein ganzheitlicher Ansatz führt zu bester Softwarequalität und damit zu zufriedenen Kunden.