Lexikon

Testmanagement: Professionelles Testen

Herausforderungen in der IT

Die IT der Unternehmen steht heute vor der Herausforderung, dass durch dynamische Veränderungen im Markt bzw. in Unternehmen (z.B. Merger & Akquisitionen, Reorganisationen) häufig die Geschäftsanforderungen sowie Geschäftsprozesse angepasst werden und Anwendungen eine entsprechende Skalierbarkeit aufweisen müssen. Weiterhin steigen die Anforderungen an die Systeme z.B. durch die Umstellung auf neue Standards (IFRS), die Sicherstellung von Compliance Richtlinien (SOX, SEC, Basel 2, Solvency II), die erforderliche Revisionssicherheit und Dokumentationsverpflichtungen der Wirtschaftsprüfer. In meist heterogenen und immer komplexeren Anwendungslandschaften erhöht sich der Druck auf die IT durch immer kürzer gehaltene Systemeinführungen sowie der beschleunigten Taktung von Anpassungs- und Änderungszyklen (durch Upgrades, regelmäßige Patches, Support Packages, UNICODE Umstellungen). Trotz oder gerade wegen dieser fachlichen und technischen Herausforderungen werden, bei einem stetig steigenden Kostendruck, die Ansprüche an die Qualität [2] der Software immer höher.

Professionelles, strukturiertes Vorgehen im Test

Um diesen stetig steigenden Qualitätsanforderungen zu genügen ist eine gute Spezifikation mit entsprechender Architektur und Realisierung unbedingte Voraussetzung. Zum Nachweis und zur Sicherstellung der erforderlichen Qualität ist professionelles Testen [3, S. 12], das nicht nur den Fokus auf die Systemeinführung sondern auch auf die Qualitätssicherung des gesamten Anwendungslebenszyklus legt, unabdingbar. Der Test hierfür umfasst schnell 30-40% des Realisierungsaufwandes. Gerade bei großen Systemeinführungen oder regelmäßigen Releases großer Anwendungen lassen sich Aufwand und Kosten durch überlegtes, strukturiertes Vorgehen und insbesondere durch Automatisierung deutlich senken. Gleichzeitig kann die Zuverlässigkeit und Aussagekraft der Tests entscheidend erhöht werden. Ein überlegtes und strukturiertes Vorgehen ist gekennzeichnet durch eine frühzeitige Konzeption und Planung der Testaktivitäten. In einem Testkonzept wird der Testprozess in einzelne Teststufen (z.B. Unit-, Modul-, Integration- und Abnahmetest) unterteilt. Diesen werden jeweils die Testziele, die zu testenden Objekte, die qualitativen Anforderungen an die Testobjekte, die erforderliche Testorganisation, die Testinfrastruktur/–werkzeuge sowie die notwendigen Testmethoden zugeordnet.

Bereits während der Analyse- und Designphase eines Projektes erfolgt durch die Erstellung von Testfällen und die Identifikation von Testdaten eine Verifizierung der Anforderungen bzw. der Fachkonzepte. Dieses Vorgehen erleichtert die Testfallspezifikation, da die Ressourcen, die in die Fachkonzepterstellung involviert waren, verfügbar und die Kenntnisse noch am größten sind. Zudem werden hierdurch das Aufsetzen einer Top-Down-Vorgehensweise in der Testvorbereitung und der frühzeitige Start der Testaktivitäten, bereits während der Realisierungsphase, ermöglicht. Im Rahmen dieser Testaktivitäten liegt das Hauptaugenmerk auf der Überprüfung de

  • Funktionalität (Funktioniert die Anwendung richtig? Erfüllt Sie die Anforderung des Business?),
  • Performance (Ist die Performance für alle Nutzer ausreichend? Ist die Skalierbarkeit gewährleistet? Werden die SLAs im Betrieb eingehalten?) und
  • Sicherheit (Ist die Anwendung gegen alle Arten von Angriffen gesichert? Wird das 4-Augen-Prinzip sichergestellt?).

Ziel ist, Fehler bzw. Abweichungen zu spezifizierten Anforderungen frühzeitig aufzudecken, anhand von Fehlerdiagnosen eine strukturelle Verbesserung der Softwarequalität sicherzustellen und Aussagen darüber zu treffen, welche Risiken sich ergeben könnten, falls die spezifische Softwareversion in Produktion geht. Ein Fehler, der beispielsweise 10 x 5 Minuten täglich zu Systemausfällen führt, kann einem Unternehmen bis zu 10 Prozent der Produktivität seiner Anwender kosten [6, S. 7,8]. Dies entspricht mehr als die Gewinnmarge mancher Unternehmen.

Der Einsatz professioneller Testwerkzeuge im gesamten Testprozess trägt wesentlich dazu bei, die Transparenz zu erhöhen, und den manuellen Testaufwand erheblich zu reduzieren [7]. Hierzu gibt es eine Vielzahl von Werkzeugen zur Unterstützung des Testmanagements und der Testautomatisierung, die jeweils unterschiedliche Stärken aufweisen. In der Studie des Tool Evaluation Center von Software Quality Lab werden die wichtigsten Testmanagement- und Testautomatisierungswerkzeuge (z.B. HP/Mercury Quality Center und QuickTest Professional, Borland SilkCental Test Manager und SilkTest, Compuware QACenter Portal, QADirector und Testpartner, IBM ClearQuest Test Manager, Rational Functional Tester und Rational Manual Tester, Imbus TestBench) gegenübergestellt und anhand bestimmter Kriterien bewertet [1].

Da im Fachtest primär der Fachbereich in den Test eingebunden wird, sollte bei dem Einsatz von professionellen Testwerkzeugen sehr viel Wert auf die Anwenderfreundlichkeit gelegt werden. Je größer der erforderliche Schulungsaufwand und je komplizierter die Handhabung ist, desto größer ist der Initialaufwand und desto geringer die Akzeptanz.

Gegenüber dem traditionellen Testen erfolgt mit diesem professionellen, strukturierten Vorgehen eine bessere, zeitgerechte Verteilung, eine Verbesserung der Qualität, eine Verringerung der Anzahl der Support-Probleme sowie insgesamt eine Reduzierung des Testaufwands.

Effektives und effizientes Testen

Beim professionellen Testen ist es jedoch wesentlich, effektiv - das „Richtige“ zu testen - und effizient - mit den „richtigen Mitteln“ - vorzugehen.  Ansatzpunkte, um das „Richtige“ zu testen, liegen in der

  • Integration des Tests mit den erfassten Geschäftsanforderungen, um die Testfälle jeweils von den spezifischen Anforderungen abzuleiten,
  • Durchführung einer Change Impact Analyse, um den Schwerpunkt des Tests auf die Bereiche zu konzentrieren die durch eine Systemänderung bzw. evtl. Seiteneffekte betroffen sind und in der
  • Durchführung eines risikobasierten Testens, um den Schwerpunkt des Tests auf die Systemkomponenten zu legen, die für das Unternehmen am kritischsten sind bzw. eine hohe Komplexität (z.B. aufgrund komplizierten Rechenoperationen) aufweisen [8, S. 188ff].

Die „richtigen Mittel“ für ein professionelles Testen liegen in dem

  • Einsatz einer ganzheitlichen, integrativen Lösung für fachliche Tester und Testspezialisten, um den Testprozess [9, S. 16ff] im Bereich der Planung, Steuerung, Kontrolle und Analyse zu unterstützen bzw. zu automatisieren
  • Einsatz von Capture-Replay-Tools [6, S. 436ff] im Rahmen von funktionalen Regressionstests [9, Seite 68], um den manuellen Testaufwand zu minimieren und dem
  • Einsatz von Automatisierungswerkzeugen für die Testdatengenerierung bzw. Selektion von Testdaten aus dem Produktivumfeld, um ein Testsystem mit einer minimalen, jedoch ausreichenden Größe aufzubauen.

Aktuell wird in den Unternehmen das Thema Testautomation als wesentlicher Ansatz zur Effizienzsteigerung des Tests gesehen. Nach einer Zeit der Investitionszurückhaltung und Konsolidierung in den Unternehmen stieg die Anzahl der aufgesetzten Projekte, die wiederum eine Vielzahl fachlicher Ressourcen in den Test einbezog. Ziel ist die Reduktion des manuellen, wiederkehrenden Testaufwands und die Konzentration dieser Ressourcen auf konzeptionelle und problemlösende Tätigkeiten. Weiterhin gewinnt die Testautomatisierung für die Validierung, Verifikation und den Test der integrativ eingebetteten Systeme - da diese an Kritikalität und Komplexität zunehmen - eine immer stärkere Bedeutung. Da die Testautomatisierung jedoch anfänglich durch die Skriptierung zu Mehraufwänden führt, ist es wesentlich, von Beginn an einen effizienten und wartungsfreundlichen Ansatz zu wählen.

Klassische Testautomatisierung

Grundsätzlich entsteht bei der Automatisierung von Testfällen ein Testskript, das technisch gesehen aus Prozessinformationen und Testdaten besteht. Die Prozessinformationen dokumentieren den Navigationspfad, den der Tester – bei der Durchführung eines Testfalls – durch die Anwendung nimmt. Hierbei hält das Capture-Replay -Werkzeug [3, S. 364] die Navigationsinformationen - zu angesprochenen Masken, Reitern, Maskenfeldern - in Form einer Kodierungssprache bzw. Programmiersprache fest. Zusätzlich werden die vom Tester erfassten Testdaten dokumentiert.

Um das aufgenommene Testskript mit einer Vielzahl unterschiedlicher Testdatenkonstellationen abzuspielen, erfolgt im ersten Schritt eine Trennung der Testdaten von den Prozessinformationen. Die Daten werden durch Parameter ersetzt. Bei jedem Wiederholungslauf versorgt das Testautomatisierungswerkzeug die Parameter mit neuen Testdatenkombinationen. Zur Überprüfung von Abweichungen des Istergebnisses von den Sollergebnissen wird das Testskript mit entsprechenden Wertüberprüfungspunkten ergänzt. Somit ersetzt der automatisierte Testfall die Vielzahl von manuellen Regressionstests.

Testautomatisierung mit Hilfe eines Testframeworks

Probleme bei der Abarbeitung von Testskripts durch das Capture-Replay Tool entstehen jedoch dann, wenn sich Änderungen an Elementen der Benutzeroberfläche ergeben (z.B. Feldverschiebungen auf andere Masken oder Prozessablaufsänderungen). Ansätze zur Reduzierung des Anpassungs- bzw. Wartungsaufwandes liegen in der

  • Modularisierung der Testskripte, die oftmals ganze Testfallketten abbilden, und der
  • Flexibilisierung der Navigationsmuster bzw. -pfade bei dem Ablauf eines Testskripts.

Die technische Steuerung und Koordination dieser Modularisierung und Flexibilisierung wird durch ein Testframework sichergestellt. Die fachliche Beschreibung der zu testenden Prozesse (Navigationsinformationen), die hierfür relevanten Testdatenkombinationen sowie Wertüberprüfungsanweisungen werden z.B. in eine EXCEL-Datei ausgelagert. Im Rahmen der Testautomation startet das Testframework das Capture-Replay Tool, interpretiert die in der EXCEL-Datei hinterlegten Navigationsschrittinformationen, führt diese aus, füllt die angesteuerten Felder mit den in der Datei hinterlegten Testdaten und überprüft die Ergebnisse auf Basis der Wertüberprüfungsanweisungen. Erkannte Fehler werden automatisch in den Fehlerverfolgungsprozess eingesteuert. Aufgrund der Modularisierung der Navigationsschritte kann der Navigationspfad flexibel zusammengestellt und Änderungen schnell vorgenommen werden. Das Testframework übernimmt mit Hilfe des Capture-Replay-Tools die Interpretation der Navigationsschritte und das Befüllen bzw. Prüfen der Systemfelder zur Laufzeit. Mit dem gleichen Skript kann somit eine Vielzahl unterschiedlicher Testfallketten durchgeführt werden. Die Testfallketten bestehen aus einer Vielzahl von Navigationsschritten, die wie Puzzelteile miteinander verkettet werden. Wenn sich Änderungen in einem Navigationsschritt, der als Puzzleteil in mehreren Testfallketten eingebunden ist, ergeben, so wird die Anpassung nur in diesem Modul vorgenommen. Alle Testfallketten werden im Nachschritt automatisch gleichzeitig aktualisiert und können sofort mit Hilfe des Testframeworks abgearbeitet werden. Dies senkt, im Vergleich zur klassischen Testautomatisierung, den Anpassungs- und Wartungsaufwand für die Testskripte enorm.

Dieser Ansatz wurde konkret in einem Testframework der msg systems ag umgesetzt, wobei hier das Capture-Replay Tool HP QuickTest Professional zum Einsatz kommt [4]. Während das msg.Testframework im Rahmen eines beispielhaften Projekteinsatzes anfangs einen höheren Aufwand verlangt, spielt es schon nach kurzer Zeit seine Vorteile aus und wird deutlich günstiger als die klassische Automatisierung [5].

Aufbau einer Testautomatisierungs - Bibliothek

Betrachtet man den gesamten Lebenszyklus einer Anwendung, so macht es durchaus Sinn, eine Bibliothek auf Basis eines Testframeworks aufzubauen. Hier empfiehlt es sich, die Module in plattformabhängige Teile zu kapseln (z.B. SAP, Web, Windows, Terminal Emulation usw.). Bei integrativen Testfallketten lassen sich somit, im Rahmen automatisierter Regressionstests, plattformübergreifende Testfallketten zusammenstellen. Mit dem gleichen Konzept sollten die Testautomatisierung von non-GUI-Tests [3, S. 364] unterstützt werden (z.B. Schnittstelle zu Datenbanken, Web-Services und EAI-Komponenten). Somit können sowohl im Rahmen von Modultests Schnittstellen getestet als auch diese in Testfallketten eingebettet werden. Die Bibliothek auf Basis des Testframeworks kommt dann richtig zur Wirkung, wenn über den Lebenszyklus einer Anwendung hinweg wiederverwendbare, vorskriptierte Module entstehen, die in die Regressionstests einer Systemeinführung, den Patch-, Release- und Upgrade-Tests eingesetzt werden.

Fazit

Die Unternehmen erkennen im zunehmenden Maße den wachsenden Aufwand für das Management der Testaktivitäten und die Durchführung der Tests bei immer komplexer und immer kritischer werdenden Anwendungen. Durch ein strukturiertes Vorgehen und den Einsatz von professionellen Testwerkzeugen für das Testmanagement und die Testautomatisierung lässt sich, im Gegensatz zum klassischen Ansatz, der Test wesentlich effektiver und effizienter durchführen. Hierbei sollte der Blick auf den gesamten Lebenszyklus einer Anwendung gelegt werden. Gerade der Aufbau von Bibliotheken trägt entscheidend zur Wiederverwendbarkeit, Wiederholbarkeit und Wartungsfreundlichkeit im Test bei und ermöglicht somit eine enorme Aufwandsreduzierung.

Literatur

1. Hochrainer J, Aigner K, Bergsmann J (2008) Testmanagement- & Testautomatisierungswerkzeuge, Studie, Software Quality Lab Tool Studio, www.software-quality-lab.at
2. ISO (1994)
3. Koomen T, van der Aalst L, Broekmann B Vroon M (2008) TMap Next, dpunkt.verlag
4. msg systems (2008) Nachhaltige Kosten/Nutzen-Optimierung durch professionelles Testen, Broschüre Testmanagement, download von www.msg-systems.com/testmgmt
5. msg systems (2007) Die bewährte Lösung mit geringem Investitionsaufwand, Broschüre msg.Testframework, wird auf Anfrage vom Auto zugeschickt
6. Pol M, Teunissen R, von Veenendaal E (2002) Software Testing, Addison-Wesley
7. Schwaber C, Gualtieri M, Gilpin M, D’Silva D (2008) The Forrest Wave TM: Functional Testing Solutions, Q3 2008, Forrester
8. Spillner A, Rossner T, Winter M, Linz (2007) Software Testing Practice: Test Management, Rocky Nook Inc. 
9. Spillner A, Linz T (2004) Basiswissen Softwaretest, d.punkt.verlag

Autor und Copyright

Recardo Jackson
msg-systems 
Bereichsleiter Test- und Qualitätsmanagement 
E-Mail

© Springer-Verlag 2009