Ich berate Dich gerne.
Anneke Schmeer, Customer Success Managerin
von Tim Mittermüller
| zuletzt aktualisiert am 29.08.2024
- |
- Insights •
- Tools
Gute Software zeichnet sich dadurch aus, dass sie einfach zu bedienen ist und möglichst fehlerfrei funktioniert. Was sich einfach anhört, bedarf in der Realität einer ganzen Reihe fein abgestimmter Schritte.
Ein wesentlicher Schritt ist das sorgfältige Testen der Software, um sicherzustellen, dass sie einwandfrei funktioniert. Schließlich kann jeder Softwarefehler (auch Bug genannt) die Anwender:innen frustrieren. Mehr noch: Im schlimmsten Fall können betriebliche Abläufe gestört, Datenverluste oder Sicherheitslücken riskiert werden, während private Nutzer:innen mit Einschränkungen und Unzulänglichkeiten leben müssen.
In diesem Artikel möchten wir Dir einen Einblick in das Testmanagement geben, das eine zentrale Rolle im Software-Testing spielt.
Was ist Testmanagement? Definition und Aufgaben
Das Testmanagement umfasst die Planung, Organisation, Steuerung und Überwachung aller Testaktivitäten während des gesamten Softwareentwicklungsprozesses.
Ziel ist es, durch eine systematische Steuerung verschiedenster Testaktivitäten die dauerhafte Funktionstüchtigkeit einer Anwendung sicherzustellen. Das schließt manuelle Tests mit ein, vor allem aber Testautomatisierungen, die die Effizienz des Testmanagements maßgeblich erhöhen.
Das Testmanagement umfasst bei brainbits im Wesentlichen fünf Aufgaben:
Anforderungsgenauigkeit: Es gilt sicherzustellen, dass die Software genau den definierten Anforderungen mit Blick auf Funktionalität, Datenschutz und Sicherheit entspricht.
Fehlervermeidung: Die Mindestanforderung an eine benutzerfreundliche Softwarelösung ist, dass sie möglichst fehlerfrei funktioniert. Aufgabe des Testmanagements ist es, potenzielle Fehler in der Produktivumgebung zu vermeiden.
Entscheidungsunterstützung: Aus dem Testmanagement ergeben sich unzählige Daten, Informationen und Erkenntnisse, die bei einer fundierten Entscheidungsfindung für die Weiterentwicklung einer Software helfen können.
Usability: Testmanagement stellt einerseits die Funktionstüchtigkeit einer Software sicher und andererseits ihre intuitive Bedienung. So, dass Anwender:innen jederzeit wissen, was sie tun müssen, um ihr Ziel mit der Software zu erreichen.
Entwicklerentlastung: Das Testmanagement entlastet die Entwicklung, indem es diverse Aufgaben der Qualitätssicherung übernimmt und es den Entwickler:innen so ermöglicht, sich auf die Umsetzung neuer Funktionen zu fokussieren.
Warum Testmanagement? Vorteile für Dein Unternehmen
Viele Vorteile des Testmanagements ergeben sich bereits aus Definition und Aufgaben. Am Eindrucksvollsten lässt sich die Bedeutung des Testmanagements für Dein Unternehmen an der folgenden Zahl ablesen: Die Korrektur eines Fehlers ist nach dessen Release 640 Mal aufwendiger als beim Coding selbst. Wird der Fehler bei einem Unit Test – kurz nach dem Coding – bereits erkannt und behoben, ist der Aufwand nur viermal so hoch. Die Formel ist simpel: Je früher ein Fehler erkannt und behoben wird, desto geringer sind die aufzuwendende Zeit, Ressourcen und damit die Kosten dafür.
Die systematische Umsetzung eines Testmanagements setzt genau hier an und hat zum Ziel, Fehler möglichst früh zu erkennen und zu beheben und so die Kosten in der Softwareentwicklung erheblich zu senken.
Aber die Liste der Vorteile des Testmanagements ist noch länger:
Die Anzahl der Ausfälle verringert sich spürbar.
Dadurch steigt das Vertrauen der Anwender:innen in Dein Softwareprodukt.
Das führt wiederum zu einer erhöhten Kundenbindung und Neukundengewinnung.
Testmanagement ermöglicht eine hohe Transparenz der Entwicklungsfortschritte.
Die Daten und Transparenz unterstützen bei der Entscheidungsfindung.
Das Entwicklungsteam wird entlastet.
Es werden Ressourcen frei für die Weiterentwicklung von Softwarelösungen.
Professionelles Testmanagement erhöht die Benutzerfreundlichkeit von Softwareanwendungen, stärkt das Image Deiner Marke und senkt Deine Kosten in der Softwareentwicklung spürbar.
Auch wir wissen: Fehlerfreie Software ist Wunschdenken
Die Entwicklung vollständig fehlerfreier Software ist äußerst schwierig, um nicht zu sagen unmöglich. Der Prozess der Softwareentwicklung ist komplex und beinhaltet viele Variablen und Unwägbarkeiten. Fehler können durch verschiedene Faktoren verursacht werden, wie menschliche Fehler während der Entwicklung, unvorhergesehene Interaktionen zwischen verschiedenen Teilen der Software, unzureichende Testabdeckung und externe Einflüsse wie Hardwareprobleme oder Betriebssystemfehler.
Bei unseren Softwaretests wenden wir verschiedene bewährte Verfahren und Prozesse an, wie z. B. strenge Tests, Code-Reviews und Qualitätskontrollen, die dazu beitragen, die Anzahl der Fehler erheblich zu reduzieren und die Qualität der Software auf einem hohen Niveau zu halten.
Agiles Testmanagement in der Praxis
Johannes Schmidt ist Senior Test Manager bei brainbits und unter anderem verantwortlich für die Koordination unseres Testmanagementteams MyCroft. Wir haben ihn gebeten, uns seine Sicht auf die Bedeutung von Testmanagement im agilen Umfeld zu erläutern und die Herangehensweise seines Teams zu erklären.
„Testmanagement ist in agilen Umgebungen besonders wichtig“, startet Johannes. Und zwar, weil es eng mit den Grundprinzipien der agilen Entwicklung – Flexibilität, Geschwindigkeit und kontinuierlicher Verbesserung – verbunden sei. In agilen Umgebungen erfolgen Änderungen besonders häufig. In Scrum-Projekten beispielsweise geben die Sprints den Takt vor: Alle zwei bis vier Wochen wird eine neue Software-Version veröffentlicht. Trotz der hohen Entwicklungsgeschwindigkeit muss jede Version möglichst stabil und fehlerfrei sein. Und natürlich den Anforderungen entsprechen.
Dafür muss die Software am besten einmal vollständig durchgetestet werden. „Wenn Du das manuell erledigen möchtest, wirst Du auf Dauer wahnsinnig“, befürchtet Johannes. „Und wenn Du nicht verrückt wirst, kommst Du ab einem bestimmten Funktionsumfang auch ohne Schlaf bis zum nächsten Release nicht mehr durch alles durch.“ Doch genau das sei entscheidend, um die hohe Geschwindigkeit agiler Entwicklungszyklen zu ermöglichen.
Unit Tests als Basis des Testmanagements
Umfangreiche Softwareprojekte benötigen also eine clevere Teststrategie, die verschiedenste Maßnahmen kombiniert, um die Qualität der Software möglichst effizient überprüfen zu können.
Testmanagement fügt sich als Baustein in eine ganze Reihe von Qualitätssicherungsmaßnahmen in der agilen Softwareentwicklung ein. Damit schon bei der Entstehung von Code möglichst wenig Fehler eingebaut werden, erstellen die Entwickler:innen sogenannte Unit Tests. Sie werden von ihnen parallel zu den Funktionen mitentwickelt und können anschließend automatisiert und beliebig häufig ausgeführt werden.
Oft entstehen Folgefehler an Stellen im Code, die gar nicht direkt geändert wurden. Unit Tests schlagen in solchen Fällen unmittelbar Alarm. „Unit Tests sind ein zentrales Werkzeug des Test Drive Developments und bilden quasi die Basis unseres Testmanagements. Für uns als Testmanager:innen ist das eine essentielle Grundlage, auf der wir dann alle weiteren Maßnahmen aufbauen können“, erklärt Johannes.
Integrationstests für einwandfreies Zusammenspiel
Um sicherzustellen, dass alle Komponenten einer Entwicklung zusammenpassen und ein konkretes Feature vollständig fehlerfrei funktioniert, entwickelt das Team von Johannes sogenannte Funktionale- bzw. Integrationstests: „Hierbei betrachten wir also nicht mehr die einzelne programmierte Funktion, sondern schauen uns das Feature im Ganzen an und prüfen, ob es wie erwartet funktioniert.“ Auch diese Tests werden in der Regel automatisiert, so dass sie ohne manuellen Aufwand beliebig häufig durchlaufen werden können.
In den User hineinversetzt: Behavior-Tests
Noch einen Schritt weiter gehen die Behavior-Tests. „Dabei versetzen wir uns als Tester:in in die Lage der Endanwender:innen und arbeiten typische Szenarien ab, die die User in der Software durchlaufen“, schildert Johannes. „Wir testen also eine ganze Kette von Features aus der Sicht eines Anwenders.“
Derartige Testszenarien entwickeln die brainbits-Testmanager in enger Zusammenarbeit mit den Stakeholdern des Kunden, dem Entwicklungsteam und dem Product Owner der Lösung. Um die Zusammenarbeit zu vereinfachen, werden die Testszenarien in einer für alle Beteiligten verständlichen Sprache erstellt, die dann durch eine spezialisierte Testsoftware interpretiert und ausgeführt werden kann.
Optische Regressionstests für visuelle Komponenten
„Aber das ist immer noch nicht das Ende der Fahnenstange!“ grinst Johannes. „Sobald eine neue, lauffähige Version der Software auf dem Testsystem bereitgestellt ist, können wir mit Hilfe optischer Regressionstests feststellen, ob unerwünschte Nebeneffekte im Layout der Software auftreten.“ Technisch funktioniert das durch den Vergleich von Vorher-Nachher-Screenshots essenzieller Bereiche. Stimmen die Screenshots nicht mehr überein, schlägt der Test fehl.
Mit Mutationstests das Testmanagement prüfen
Um auch die Qualität der Tests an sich sicherstellen zu können, werden auch Tests getestet: „Klar, wir testen natürlich auch unsere eigene Arbeit“, versichert Johannes. „Dafür muss man allerdings ein bisschen ,ums Eck’ denken.“ Mithilfe sogenannter Mutationstests werden in den Quellcode der Software absichtlich kleine Änderungen (Mutationen) eingebaut, um so Fehler zu erzeugen. „Diese Fehler müssen dann durch unsere Testkette aufgedeckt werden. Fallen die Fehler nicht auf, wissen wir, dass wird eine Lücke in unserer Testabdeckung haben.“
Die letzte Prüfung bleibt manuell
Trotz aller Automatisierungen erfolgt die letzte Prüfung nach Veröffentlichung einer neuen Version immer noch manuell. „Es ist einfach ein beruhigendes Gefühl, ganz zum Schluss die wichtigsten Stellen einer Software noch einmal eigenhändig geprüft zu haben“, erzählt Johannes. „Unsere ,Smoke Tests’ folgen einem festen Prüfprotokoll, mit dem wir alle neuralgischen Punkte der Software testen. Anschließend geht es dann noch einmal mit einem möglichst naiven Blick querbeet durch die Anwendung – das ist der Blackbox-Test. So entdecken wir oft noch das ein oder andere Verbesserungspotential für die nächste Version.“
„Die Herausforderung besteht darin,“ sagt Johannes, „die verschiedenen Testtechniken sinnvoll zu orchestrieren und dimensionieren.“ Es gilt, das richtige Gleichgewicht zwischen Aufwand für die Erstellung und Pflege und dem gewonnenen Nutzen zu finden. „Hier kommt natürlich auch die Erfahrung ins Spiel: Wir haben meist schon ein ganz gutes Gespür dafür, welche Teststrategie gute Ergebnisse liefert.“ Dennoch ist auch das Software-Testing in der agilen Entwicklung eben agil. „Wir lernen kontinuierlich und passen die Teststrategie fortlaufend an.“
Damit das effizient funktioniert, arbeitet das Testmanagement Team eng mit den agilen Entwicklungsteams zusammen. „Wir sind von Anfang bis Ende in den Entwicklungsprozess eingebunden“, schildert Johannes. „So können wir schon bei der Konzeption eines Features auf mögliche Schwachstellen hinweisen und unsere Testszenarien entsprechend ausrichten.“
Professionelles Testmanagement ist eine Bedingung für kurzfristige und häufige Software-Releases und damit essenzielle Grundlage moderner, agiler Software-Produktentwicklung.
Testmanagement vs. Testautomatisierung
Die Begriffe Testmanagement und Testautomatisierung sind eng miteinander verwoben, gilt es aber dennoch zu unterscheiden. Testautomatisierung ist nämlich nur ein Bestandteil des Testmanagements, dafür aber ein ganz wesentlicher.
Das Testmanagement ist dabei für die Koordination aller Testaktivitäten verantwortlich. Es geht zunächst um die Frage, was getestet werden soll und wie intensiv. Die Tests müssen vorbereitet werden, Testfälle angelegt und schließlich durchgeführt werden. Es muss eine Bewertung der Tests stattfinden, eine Dokumentation und ein Reporting, das Aufschluss über die nächsten Schritte gibt.
Die Testautomatisierung betrifft in diesem Prozess nur die Testvorbereitung und -durchführung. Voraussetzung für die Automatisierung sind Tests, die wiederholt durchgeführt werden müssen. Die Grundlage für solche sogenannten Regressionstests schafft wiederum das Testmanagement durch die Absicherung von Testplänen, die Definition von Testfällen und die Einführung fester Prozesse.
Hochwertige Softwarelösungen dank Testmanagement und brainbits
Individuelle Software erfordert kontinuierliches Testing für eine hohe Produktqualität. Mit unserem Testmanagement und unserer Testautomatisierung stellen wir sicher, dass Deine Individualsoftware effizient, nachhaltig und mit dem höchsten Anspruch an Qualität umgesetzt wird. Dafür entwickeln wir zunächst umfassende Teststrategien, überwachen die Funktionalität der Software in allen Entwicklungsphasen, unterstützen bei der Fehlerbehebung, implementieren nützliche Tools und setzen Prozesse zur Testautomatisierung auf.
So entwickeln unsere Teams individuelle Softwarelösungen, die Dein Unternehmen prägen. Wir beraten Dich gerne zu unseren Methoden des Testmanagements und unterstützen Dich bei der Entwicklung hochwertiger Individualsoftware.