Vor zwei Tagen habe ich in München an der diesjährigen „Trends in Testing“, einer Fachveranstaltung für Softwaretester teilgenommen, die seit 2009 jährlich von der imbus AG organisiert wird. Schwerpunkt der in diesem Jahr auf einen ganzen Tag verlängerten Veranstaltung war das Thema Testautomatisierung. Dazu waren auch Produktexperten von Microsoft, Ranorex und Borland da, die Testautomatisierungstools vorstellten und an einer Podiumsdiskussion zu Thema Testautomation teilnahmen.
Die noch nicht wirklich ausgestandene Finanz- und Wirtschaftskrise hat in vielen Unternehmen die Aufmerksamkeit auf alles gelenkt, womit sich rationalisieren und Geld sparen lässt. Dazu zählt auch die Automation von Softwaretests. Doch wie so oft, muss auch hier erst mal mehr investiert und mehr nachgedacht werden, bevor zu einem späteren Zeitpunkt Einsparungen wirksam werden können. Manager hören so etwas nicht gern. Doch wer zunächst am Hirn spart, wird im weiteren Verlauf dement, nicht wohlhabend.
Demnach widmete sich der erste Fachvortrag dem Investitionsaspekt der Testautomation. Letztlich bilden beim Testen wie in jedem anderen Projekt Zeit, Kosten und Qualität die drei Rahmenfaktoren des Vorhabens. „Mehr für weniger“ kann auf Dauer jedoch nur dann funktionieren, wenn man gezielt und firmenspezifisch die Aufwandstreiber in der Softwareentwicklung identifiziert und angeht. Meist sind das Dinge wie
• die Anzahl an zu testenden Varianten (GUIs, Mehrsprachigkeit, Produkteigenschaften, regulatorische Sonderaufwände).
• die notwendigen Testzyklen (vom Modultests bis zur Produktabnahme), die mit jedem Entwicklungszyklus erneut durchlaufen werden.
• die Releasehäufigkeit (häufigere Releases kosten mehr Geld) einschließlich zu testender Zwischenreleases, Patches und Bugfixes etc. pro Zeitraum.
Bei der Kostenbetrachtung für Testautomationsprojekte gilt es daher einmalige und laufend anfallende Kosten wie Lizenzkosten für Tools, den Schulungsbedarf für die Mitarbeiter, den Aufbau von speziellem Tester-Know-how, sowie die Programmierung (und Pflege) von Automatisierungsskripten zu betrachten. Auch können die Aufwände für manuelles Testen nach einiger Zeit zwar beträchtlich reduziert aber nicht ganz auf Null gebracht werden.
Testautomation kostet also zunächst mal mehr als manuelles Testen. Allerdings wird unternehmens- und einsatzabhängig nach einer gewissen Zeit ein Break-even erreicht ab den Einsparungen ausgabewirksam werden und die Gesamtkosten des Testens abnehmen.
Damit lenkte der zweite Vortrag die Aufmerksamkeit auf das Thema Architekturen von Testautomationstools. Deren gibt es grundsätzlich vier, nämlich Capture & Replay, datengetriebene, schlüsselwortbasierte und modellbasierte Testautomation. Der für eine Wirtschaftlichkeitsbetrachtung relevante Punkt ist der, dass sich die vier Basisarchitekturen sehr deutlich in den Eigenschaften Robustheit, Einfachheit, Wartbarkeit, kurzfristige Kostengünstigkeit, langfristige Kostensparsamkeit, Werkzeugunabhängigkeit und Arbeitsteiligkeit unterscheiden. Man muss also vorher überlegen, bei welchen Eigenschaften man hohe Ausprägungen braucht und welche generellen Teststrategien man mittelfristig verfolgen will, bevor man in Tools, Lizenzen und Schulungen investiert. Sonst besteht das Risiko von Investitionsruinen, die schon kurze Zeit später nicht mehr zu den fachlichen Anforderungen passen, während der Break-even noch in ferner Zukunft liegt.
Testautomation enthält Teilaspekte professioneller Softwareentwicklung. Das bedeutet, man benötigt Tester mit Entwickler-Know-how dafür, die keine Berührungsängste beim Umgang mit Entwicklerwerkzeugen wie Versionsverwaltungen, Konfigurationsdatenbanken, Quellcode-Repositories oder Debugger in integrierten Entwicklungsumgebungen haben.
Gleichzeitig hat die zunehmende Komplexität moderner Software-Systeme dazu geführt, dass zwei Testerrollen entstanden sind, deren Aufgaben sich unterschiedlich ausdifferenzieren und auseinanderlaufen: Der Fachtester (Domänentester) und der technische Tester (Testanalyst), der auch die Testautomation übernimmt. Insbesondere für den Fachtester, der allenfalls am Rande mit IT-spezifischen Themen zu tun hat, gilt es Werkzeuge bereitzustellen, die es ihm ermöglichen, rasch und mit geringem Einarbeitungsaufwand seinen Beitrag zum Projekt liefern zu können.
Dieses „Auseinanderwachsen“ der beiden Testerrollen wurde auch als Trend in der Podiumsdiskussion angesprochen. Weitere Trends, die die Toolanbieter in ihren jeweiligen Märkten identifizieren konnten, sind die Nachfrage nach SAP-Tests, die Virtualisierung von Testumgebungen, die zunehmende Integration von Testing-Tools in Entwicklungsumgebungen sowie das Zusammenwachsen der Bereiche Requirements Management, Bugtracking, Versions- und Codeverwaltung durch entsprechend integrierte Werkzeuge und Umgebungen.
Außerdem betonten sie die Auswirkungen, die sich aus der Verbreitung agiler Entwicklungsmethoden ergeben. Die dadurch veränderte Arbeitsorganisation in Softwareentwicklungsprojekten erfordert auch ebenso agiles Testen, d.h. auch dort entsprechende Anpassung der Arbeitsorganisation. So benötigt z.B. ein Scrum-Team das in Sprints denkt, die jeweils rechtzeitige Bereitstellung der Testfälle zu dem im jeweiligen Sprint zu implementierenden Funktionalitäten.
Ebenso wirkt sich die zunehmende Bedeutung von Normen, Standards und Reifegradmodellen mit deren Hilfe die Planbarkeit, Verlässlichkeit und Reproduzierbarkeit von Prozessen in der Softwareentwicklung verbessert werden kann, auch auf das Testmanagement als Bestandteil der Entwicklung aus. Nicht umsonst sehen Testerzertifizierungen bereits seit längerem entsprechende Inhalte in ihren Curricula vor.
Der dritte Fachvortrag richtete das Augenmerk auf das Thema Wartbarkeit und Wiederverwendbarkeit in der Testautomation. Dabei geht es hauptsächlich um eine gemeinsam und durchgängig genutzte Sprache für Fachtester und Testautomatisierer, den Umgang mit zentralisierten Testfallbibliotheken sowie die möglichst medienbruchsfreie Migration manueller Tests in die Testautomationsumgebung.
Alles in allem war die „Trends in Testing“ auch in diesem Jahr wieder eine lohnenswerte Veranstaltung, die einen guten Überblick über den Stand der Technik beim Thema Testautomation bot.