<i>THE</i> <i>G-BLOG</i>
<i>THE</i> <i>G-BLOG</i>

THE G-BLOG

5 Regeln für erfolgreiches Testmanagement



Mehr als jeder zweite Softwarefehler, der nach Produktivschaltung einer Änderung entdeckt wird, entsteht durch Mängel im Testmanagement.

Bei den meisten Firmen mangle es an einem systematischer Vorgehenskatalog für das Testen von Software. Dieser sei nicht vorhanden oder noch im Aufbau. Meist würden die Verantwortlichen erst am Projektende entscheiden, welche Funktionen der Software überprüft werden sollen, und führen lediglich unsystematische Stichprobentests durch. Häufig fallen Tests aber auch dem Termindruck zum Opfer. IT-Firmen würden dem Wunsch ihrer Kunden folgen und sich gegenseitig mit immer kürzeren Release-Zyklen unterbieten. Gleichzeitig stellen enger getaktete Umsetzungsfristen bei Gesetzesanpassungen die IT-Abteilungen ebenfalls auf die Probe.

Damit wird genau an der falschen Stelle gespart und geschlampt: Würden Fehler erst kurz vor Aufnahme des Regelbetriebs auftauchen, dauere die Korrektur meist deutlich länger und benötige mehr Mitarbeiter, als wenn Tests frühzeitig geplant und eingebaut werden. Der Mehraufwand für eine nachträgliche Fehlerbeseitigung beträgt nach Schätzung der Analysten etwa das Fünffache.

Effektives und effizientes Testing ist mehr als nur die fehlerfreie Lauffähigkeit von Software sicherzustellen. Welche "5 Testregeln" als Grundsätze für das Software-Testing zu beachten sind.

Integration der Testprozesse in den gesamten Software Development Lifecycle


Der Test Lifecycle bewegt sich parallel zum eigentlichen Entwicklungsprozess. Testing geht dabei ebenfalls von den Anforderungen aus, definiert die Testvorgehensweise und die daraus resultierenden fachlichen und technischen Testfälle. Die Testfälle werden in der Regel parallel zur Software-Konzeption und Umsetzung erstellt. Die eigentliche Testphase sollte dabei nicht nur die fehlerfreie Lauffähigkeit der Software sicherstellen. Zum Testen gehört heute ebenfalls die Prüfung, dass alle geplanten Anforderungen fachlich und technisch vollständig sowie korrekt umgesetzt werden. Dieses Ziel kann unter Effizienzgesichtspunkten nur erreicht werden, wenn Testing-Aspekte schon sehr früh in den Entwicklungsprozess einfliessen – im Idealfall beginnend mit dem Review der Dokumentation der Anforderungen.

Integrierte Toolunterstützung im gesamten Test Lifecycle


Der Test Lifecycle umfasst die Verwaltung der Anforderungen, das Management der Testfälle, das Planen der Tests, die Testdurchführung sowie Test Reporting und Defect Management. Integrierte Testmanagementwerkzeuge unterstützen dabei, Anforderungen zu erfassen und zu verwalten. Aus den Anforderungen werden Testfälle abgeleitet und zugeordnet. Auf der Basis der Testfälle erfolgt die Testplanung, die in einem Testlauf durchgeführt werden sollen. Die Ergebnisse jedes Testlaufs werden in der Testmanagement-Software hinterlegt. Die Verknüpfung von Defect Management, Testdurchführung, Testfällen und den Anforderungen stellt sicher, dass Auswirkungen von Fehlern auf die betroffenen Anforderungen jederzeit nachvollziehbar sind. Dies ist insbesondere für den Umgang mit bekannten Problemen wichtig, so genannten Known Issues. Anders herum lassen sich bei Änderungen in den Anforderungen die betroffenen Testfälle schnell und ohne großen Aufwand identifizieren, anpassen und zu neuen Testläufen zusammenstellen.

Ein wichtiger Faktor für effizientes Testen ist die Testautomation. Die Automatisierung reicht von der Erstellung der Vorbedingungen, der Durchführung der einzelnen Testschritte, dem Vergleich mit dem erwarteten Ergebnis, der Wiederherstellung des Anfangszustandes bis hin zum Reporting. Um die automatisierte Testdurchführung direkt aus der Testmanagement-Software zu starten und die Ergebnisse dort zentral zu verwalten, sollten die Automatisierungs-Werkzeuge in die Testmanagement-Software integriert werden.

Professionelle Testumgebungen und Testdaten


In einer Entwicklungsumgebung werden Testdaten und Umsysteme in der Regel durch den Entwickler nur rudimentär zur Verfügung gestellt. Als Folge entstehen in der späteren Integration hohe Reibungsverluste. Denn häufig reagieren die Umsysteme anders als erwartet, oder die Testdaten werden in ungewohnter Konstellation angetroffen. Erfolgreiches Testen benötigt somit durchgängige, konsistente Testdaten und geordnete Umsysteme in definierten Zuständen. Das Release Management und Configuration Management ist am besten eng mit dem Test Management verzahnt. Die Testumgebungen sollten den Release- und Datenständen der Produktion so früh wie möglich entsprechen. Insbesondere die Testdatenbewirtschaftung rückt verstärkt in den Fokus, da Massendatenverarbeitung für CRM- und Business Intelligence-Systeme realistische Abbilder der Produktionswelt benötigen.

Testing als Management-Disziplin


Qualitätssicherung ist der letzte Schritt vor dem Rollout im Entwicklungszyklus. Nur durch ein striktes Management kann sichergestellt werden, dass mögliche Terminverschiebungen in Vorphasen nicht zu Lasten der Qualitätssicherung gehen, weil keine Zeit mehr zum Testen übrig bleibt. Zudem wird Software immer komplexer und die abgebildeten Prozesse immer kritischer. Damit steigt die Bedeutung der Qualitätssicherung weiter an. Diese Relevanz muss sich auch in den Organisationsstrukturen der Projekte und der Linienorganisation widerspiegeln. Es sollte in jeder Projektorganisation schon mit Beginn der Planungsphase einen Testmanager geben, der auf derselben Ebene agiert, wie ein Entwicklungsleiter. Nur mit einem entsprechenden Einfluss werden die erforderlichen Testingmassnahmen im Projektmanagement angemessen berücksichtigt.

Industrialisierung der Testprozesse


Mit der Standardisierung der Testprozesse ist die allgemeine Festlegung der Vorgehensweise gemeint. Dazu zählen beispielsweise die Erstellung und Verwendung von Templates für die Erstellung von Ergebnistypen und die Definition des Testablaufs über die verschiedenen Teststufen hinweg. Somit stellen sich eine Reihe von Fragen nicht mehr, beispielsweise: "Wie gehe ich beim Testen vor?" und "Welchem Prozess folge ich?". Stattdessen steht die inhaltliche Arbeit von Beginn an im Fokus. Industrialisierte Testprozesse sind der Schlüssel zum Realisieren von Optimierungspotenzialen. Durch die Standardisierung lassen sich Durchlaufzeiten erheblich verkürzen. Dazu trägt die Wiederverwendbarkeit von Artefakten bei, zum Beispiel von Testfällen und Testdaten, sowie die Möglichkeit zur arbeitsteiligen Vorgehensweise.

Optimales Sourcing-Modell


Gleichzeitig ist die Industrialisierung Voraussetzung für die Auslagerung von Testprozessen. Durch Outsourcing bestimmter Testbereiche, beispielsweise Regressionstests, Testautomation, Testfall-Management, oder das Auslagern des vollständigen Testprozesses an IT-Dienstleister können Unternehmen Skaleneffekte erzielen und so Kosten signifikant senken. Je nach Qualitätsanforderungen und Kostenzielen sollten Unternehmen den für sie optimalen Sourcing-Ansatz bestimmen. Die IT-Dienstleister bieten verschiedene Modelle an. Durch die Verlagerung der Test-Dienstleistung in Local-, Nearshore- und Offshore-Testcenter sind zusätzliche Kostenreduktionen möglich.

Quelle: heise.de