„Qualität wird nicht ertestet, sondern erzeugt“

Trotz der hehren Ziele jeder Entwicklungsabteilung, bereits in den Design- und Entwicklungsphasen fehlerfrei und normenkonform zu konfigurieren und zu programmieren, sind Software-Tests vor der Auslieferung wichtiger denn je.

Jeder Test verursacht Zeit und Kosten, so dass beim der Wahl des Testumfangs Augenmaß und Risikoabwägung nötig sind. Andererseits reicht es nicht aus, Einzelfälle in Umgebungen und mit Daten zu testen, die nicht der Produktivumgebung nahe kommen.

Als Testmanager setzen wir Hebel ein, um Software-Tests wirksam und effizient zu organisieren:

  • Testprozesse in den Entwicklungszyklus integrieren, z.B. durch agile Vorgehensmodelle wie Scrum, XP
  • Professionelle Testumgebung und Testdaten schaffen
  • Integrierte Tools zur Testfallerstellung, Testdokumentation und zum Fehlermanagement einsetzen
  • Testfälle automatisieren
  • Abgestufter Testumfang je nach Entwicklungsfortschritt, angefangen von Funktionstests, über Prozesstests, End-to-End-Einzeltests bis hin zu realitätsnahen Massentests.

Testmanagement – Beispiele:

Massentest-Koordination für End-to-End Prozesse
2016:
Im größten IT-Programm der Unternehmensgeschichte erneuert ein Energieversorgungsunternehmen seine komplette IT-Landschaft für die Vertriebs-, Netz-, Abrechnungs- und Metering-Prozesse. Mehrere verschiedene Systeme sind nötig um alle Prozessketten IT-seitig zu unterstützen und mehrere Millionen Zählpunkte, Anschlüsse und Kundenrechnungen abzuwickeln.

Noch während der Entwicklungsphase übernahmen wir die übergreifende Testkoordination und starteten zusammen mit den beteiligten Teilprojekten und Fachbereichen ein abgestuftes Testverfahren mit mehreren tausend Testfällen für Einzelprozesstests, systemübergreifendenden Tests, End-to-End-Prozesstests und schließlich der Simulation des Tagesbetriebs mit Testdaten aus dem Produktivbetrieb in einer Testlandschaft, die der Produktivumgebung nahekam.

Testdokumentation und Fehlermanagement wurden über eine integrierte SAP® Lösung (Solution Manager) abgewickelt. Die Teststeuerung und das Reporting erfolgten mit agilen Methoden (Daily’s, Kanban-Board, Burndown-Charts, Retrospektiven).

Über einen Zeitraum von neun Monaten wurden mehrere Testzyklen absolviert. Der Aufwand war beträchtlich, doch der Erfolg und das Feedback der Teilnehmer rechtfertigten den Einsatz: Der Produktivbetrieb nach dem Go-live konnte sehr schnell stabilisiert werden, auch dank der intensiven Beteiligung der Anwender während des Testzeitraums – eine wertvolle Einarbeitungs- und Gewöhnungsphase, die weit über den Effekt der Anwenderschulungen hinausging.

Koordination Go-live Test, Interimsbetrieb-Test, Rollback-Test
2016:
Im gleichen IT-Programm, das im vorhergehenden Beispiel beschrieben wurde, war es aufgrund eines sehr engen, zur Verfügung stehenden Zeitkorridors für den Umbau und den Start der produktiven Systeme notwendig, den Ablauf des „Go-live“ mit mehreren hundert Aktivitäten und Aufgaben und vielen beteiligten Organisationseinheiten minutiös zu simulieren. Zudem sollten auch die während der „Downtime“ bereitgestellten Prozesse und Funktionen für einen Interimsbetrieb, sowie der nicht völlig ausschließbare „Rollback-Fall“, also die Reaktivierung der bisherigen Systemlandschaft mehrfach geprobt werden. Unsere Aufgabe war die Koordination der Interimsbetriebs- und Rollback-Tests, sowie die Koordination von Teilsequenzen des Go-live Tests.

Bereits während der Entwicklungsphase wurden für die jeweiligen Szenarien ausführliche Drehbücher erstellt und die Einzelaktivitäten eine logische und zeitliche Abfolge gebracht.

Die Testdurchführung erfolgte realitätsnah, streng nach Drehbuch und mit der kompletten Mannschaft. Bei der Generalprobe wurden auch Nacht- und Wochenendzeiten genutzt, so wie es auch beim echten Go-live erforderlich war.

Jede Aktivität wurde ausführlich dokumentiert und anschließend in Team-Retrospektiven aufgearbeitet.

Der Lohn für diese sorgfältige Vorbereitung war eine hochkonzentrierte, sehr gut abgestimmte und ohne größere Störungen verlaufende Produktivsetzung, die jederzeit unter Kontrolle war und unter dem gesteckten Zeitrahmen blieb.