Der Mix macht’s. Effizientes Testing für hohe Softwarequalität

Daniel Knott Daniel Knott
Lesedauer: Minuten

Die richtige Balance von manuellen und automatisierten Tests bringt die besten Ergebnisse

Immer mehr Softwareprodukte werden nach agilen Methoden entwickelt, um dem stetigen Wandel des Marktes und den hohen Kundenerwartungen gerecht zu werden. Die immer kürzeren Release-Zyklen erfordern ein sehr hohes Maß an Entwicklungsqualität von Unternehmen und Entwicklungsteams. In den meisten agilen Entwicklungsteams finden sich gerade Software Tester/innen in einer sehr herausfordernden Position wieder, da sie oftmals für die Qualität des Produktes verantwortlich gemacht werden.

Um den kurzen 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 100%ige 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.

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, der immer wieder von Unternehmen und Entwicklungsteams begangen wird, ist die Tatsache, dass die Hauptverantwortung für die Qualität in die Hände der Software Tester/innen gelegt wird. Von Testern/innen 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 die genannten 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. Software Tester/innen dürfen nicht mehr alleine 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 darüber hinaus über die nächsten Schritte informiert ist, kann das Team einen ganzheitlichen Qualitätsgedanken entwickeln.

Erste Schritte für diese Änderungen können sein:

  • Das gesamte Team ist bei der Anforderungsanalyse des neuen Produktes dabei und gibt frühzeitig Feedback zur technischen Machbarkeit oder etwaigen Risiken

  • 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

  • Die Entwickler sind maßgeblich an der Entwicklung der automatisierten Tests beteiligt und helfen Software Testern/innen eine stabile Regression Test Suite zu entwickeln

  • Software Tester/innen helfen dem Team den Qualitätsgedanken weiterzuentwickeln und sind für die Planung der Testaktivitäten zuständig

  • Das gesamte Team kann und sollte das Produkt manuell testen. Software Tester/innen sollten dabei das Team in unterschiedlichen Testmethoden schulen

Die hier genannten Punkte sind nur ein Anfang um den Qualitätsgedanken im Team zu etablieren. Es ist dabei wichtig, die genannten 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 100% Testabdeckung von ihren Entwicklungsteams verlangen, vergeuden wertvolle Zeit und Geld Zeit und Geld, das in einen ganzheitlichen Ansatz zum Erreichen von guter Softwarequalität investiert werden kann. 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 dabei ergänzen und nicht als getrennte Aspekte innerhalb der Entwicklung angesehen werden.

Des Weiteren ist es zwingend erforderlich, dass das gesamte Entwicklungsteam und das gesamte 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.

Machine Learning für eine verbesserte Testautomatisierung

Ebook

Testautomatisierung ist gut. Eine Kombination mit maschinellem Lernen ist besser. In diesem E-Book erfährst du, wie ML automatisiertes Testing einfacher, schneller und effizienter macht.

Jetzt lesen

Das könnte dich auch interessieren: