IT-DIRECTOR: Herr Herschmann, welche Bedeutung schreiben Sie den Testverfahren in der Software-Entwicklung zu?
J. Herschmann: Obwohl Testverfahren so alt sind wie die Software-Entwicklung selbst, konnten sie sich erst vor kurzem als eigener Kompetenzbereich etablieren, das heißt als ein Bereich, dem man zubilligt, echte Wettbewerbsvorteile zu sichern. Diese neue Wahrnehmung in Verbindung mit der wachsenden Bedeutung von Software-Tests in einer Welt, die zunehmend von Software gesteuert wird, hat dazu geführt, dass Testverfahren und generell die Qualität von Software immer mehr in den Fokus rücken.
IT-DIRECTOR: Nach welchen Testarten wird differenziert?
J. Herschmann: Grundsätzlich lassen sich Arten wie Entwicklertest, Integrationstest, Regressionstest, dynamischer Test, Systemtest, Fehlertest oder Äquivalenzklassentest unterscheiden.
Die zunehmende Verbreitung automatisierter Testverfahren leistet auch einem "kontinuierlicheren" Ansatz in der Qualitätssicherung Vorschub. In der Vergangenheit konzentrierten sich Qualitätssicherungsmaßnahmen meist auf den Endspurt im Entwicklungsprozess – Tests wurden erst durchgeführt, wenn die Entwicklung abgeschlossen war. Verzögerungen und Nacharbeiten waren die Folge dieses späten Testens. Durch die Automatisierung von Testprozessen steht die Qualität von Anfang an im Vordergrund, und Probleme können ausgeräumt werden, bevor ihre Behebung zu komplex oder zu teuer wird.
IT-DIRECTOR: Wer führt die Tests normalerweise durch und welche Werkzeuge kommen zum Einsatz?
J. Herschmann: Die Hauptverantwortlichen für die Testdurchführung sind die Software-Tester. In der Regel gibt es in jedem Software-Entwicklungsunternehmen ein spezielles Team, das sich ausschließlich mit den Themen Testen, Qualitätssicherung und Qualitätskontrolle auseinandersetzt. Die Testfälle können aber auch durch Software-Entwickler, Produktmanager oder auch Kunden, etwa bei Abnahmetests, durchgeführt werden.
Micro Focus kann mit dem 2009 erfolgten Kauf der QA-Sparte von Compuware und der Übernahme von Borland eine umfassende Gesamtlösung für die Qualitätssicherung von unternehmenskritischen Applikationen anbieten. Die Lösung umfasst Werkzeuge für Anforderungsmanagement (Caliber), WhiteBox-Testing, Testmanagement (SilkCentral Test Manager), Testdatenmanagement, Testautomatisierung (SilkTest) sowie Last- und Performance-Test (SilkPerformer).
IT-DIRECTOR: Nach welchen Kriterien wird Software generell getestet?
J. Herschmann: Testen umfasst immer zwei Aspekte: zum einen die Fehlerfindung und zum anderen der Qualitätsnachweis. Beides ist wichtig, denn Fehler müssen so früh wie möglich erkannt werden, damit der Qualitätsnachweis sicherstellen kann, dass die Software den Anforderungen des Anwenders entspricht und im Zusammenspiel mit den anderen Systemen funktioniert.
Die Kriterien und Merkmale, die eine Software erfüllen soll, sind im Standard ISO/IEC 9126 klar definiert. Dazu gehören beispielsweise Funktionalität, Zuverlässigkeit oder Benutzbarkeit. Die Gewichtung dieser Merkmale in eine Software-Anwendung (Quality Baseline) ist ein unternehmensspezifisches Thema.
IT-DIRECTOR: Aus welchen Phasen/Stufen setzt sich ein Testprozess zusammen?
J. Herschmann: Der Testprozess kann in verschiedenen Testphasen unterteilt werden. Die in jeder Phase zu erledigenden Testaufgaben können Personen mit verschiedenen Rollen zugewiesen werden, beispielsweise Testmanagern, Testern oder Entwicklern. Die Testphasen sind nicht einheitlich festgelegt: In einem Entwicklungsmodell wie dem V-Modell sind die Testphasen definiert und werden sequentiell hintereinander geordnet. In der iterativen oder agilen Software-Entwicklung ist der Testprozess mehr "generisch". Der Testzyklus kann in solchen Modellen aus mehreren Iterationen bestehen, und die Software durchläuft bei jeder Iteration alle Testphasen.
IT-DIRECTOR: Mit welchen Daten wird bei den Tests gearbeitet?
J. Herschmann: Bei Software-Test dürfen nur Dummy-Daten verwendet werden, um Rückschlüsse auf Personen oder Unternehmen zu vermeiden. Trotzdem werden noch immer Originaldaten für Software-Tests verwendet, was bei Fehlern oder Lücken im Sicherheitskonzept verheerende Folgen haben kann.
IT-DIRECTOR: Falls mit Echtdaten getestet wird: Wie werden hierbei Sicherheit und Compliance gewährleistet, so dass keine Rückschlüsse auf Personen-/Firmendaten gezogen werden können?
J. Herschmann: Originaldaten haben in der Software-Entwicklung definitiv nichts zu suchen, und zwar nicht nur beim Outsourcing von Entwicklungsprojekten, sondern generell. Da aber für wirklichkeitsnahe Tests realistische Daten unverzichtbar sind, führt an einer systematischen Datenmaskierung kein Weg vorbei. Damit können Daten geliefert werden, die zwar den Originaldaten strukturell entsprechen, die aber dennoch keine Rückschlüsse auf die echten Daten erlauben.
IT-DIRECTOR: Wie viel Zeit nimmt i.d.R. die Testphase von Software-Modulen/Applikationen in Anspruch, ehe der Einsatz in der Produktivumgebung erfolgt?
J. Herschmann: Das ist von Kunde zu Kunde unterschiedlich, weil Testphasen von vielen Varianten abhängig sind, von den verfügbaren Testressourcen, der Time-To-Market-Strategie des Software-Unternehmens oder der Dringlichkeit eines Bugfixes. Zusätzlich zu diesen Varianten richtet sich die Dauer der Testphase auch an die Qualitätsziele und das verwendete Entwicklungsmodell.
IT-DIRECTOR: Wie groß ist die Fehlertoleranzgrenze beim Testen von Software?
J. Herschmann: Die Fehlertoleranzgrenze ist je nach Einsatzbereich und Komplexität der Software sehr unterschiedlich. Im Medizin-Bereich, wo ein Software-Fehler Menschenleben kosten kann, ist die Grenze sehr niedrig. In anderen Bereichen hingegen können Fehler in einem begrenzten Maß toleriert werden, weil hier natürlich auch der Aufwand der Fehlerbeseitigung betriebswirtschaftlich kalkuliert werden muss.
IT-DIRECTOR: Welche Software-Fehler treten am häufigsten auf?
J. Herschmann: Das unterscheidet sich stark nach der Art des Projekts. Generell sind Systemabstürze, unbehandelte Ausnahmen und fehlerhafte Funktionalitäten sehr häufig.
IT-DIRECTOR: Welchen Schaden können Software-Fehler anrichten?
J. Herschmann: Sowohl die finanziellen als auch die Imageschäden, die durch Software-Ausfälle entstehen, werden immer größer. Verfügbarkeit und Funktionalität werden unverzichtbar und dafür sorgen, dass Spitzenzugriffszeiten und Qualitätssicherungsprozesse weiter in den Fokus rücken. Organisationen haben keine andere Wahl, als zu testen, um sicher zu gehen, dass ihre Anwendungen auch unter Spitzenlasten funktionieren.
Einzelne Software-Fehler können einen sehr großen Schaden anrichten. Eines der bekanntesten Beispiele ist der Absturz einer Ariane-Rakete. Dabei entstand innerhalb von Sekunden ein Schaden von 500 Mio. Dollar für die Rakete und die Satelliten.