Es gibt zwei grundsätzliche Herangehensweisen eine Internet-Anwendung zu testen: manuell oder automatisch. Da die Internet-Anwendungen immer umfangreicher und komplexer werden, gleichzeitig aber auch die Testautomatisierungslösungen immer raffinierter werden, lohnt sich für jeden IT-Entscheider die Beschäftigung mit dem Thema Return On Investment (ROI) der Testautomatisierung.
Grundsätzlich gibt es drei Kriterien, die Einfluss auf die Rentabilität der Testautomatisierung haben: Stabilität des Testobjektes (wird der darunterliegende Code oft oder selten geändert?), Häufigkeit der Testausführung (bei Continous Integration findet die Testausführung mindestens täglich statt) und Kritikalität des Testobjektes (wie kritisch wäre es, wenn bei einem manuellen Test ein Bug übersehen wird). Das Software Quality Lab hat dies hier (Seite 3) weiter ausgeführt.
Der ROI wird berechnet aus dem Gesamtnutzen der Testautomatisierung / Gesamtkosten der Testautomatisierung.
Die Gesamtkosten der Testautomatisierung sind mit Selenium WebDriver relativ schnell skizzierbar.
1.) Die Testautomatisierungslösung Selenium WebDriver ist Open Source und damit kostenlos (siehe auch meinen letzten Blogpost Selenium ist und bleibt Open Source.
2.) Infrastrukturinvestitionen sind ebenfalls nicht nötig – also insbesondere muss keine Hardware angeschafft werden und auch kein Experte für die Installation von diversen Programmsuiten angeheuert werden. Es gibt nämlich bereits zuverlässige Cloudanbieter, die die komplette benötigte Infrastruktur zur Verfügung stellen und (all-inclusive warten), beispielsweise http://www.cloudbees.com. Selbst deren Enterprise-Variante kostet monatlich lediglich $100 und darin sind knapp 7 Tage Laufzeit/Monat inklusive, was für die meisten Internetanwendungen bei Weitem ausreichen sollte. In der Kostenlos-Variante sind 5 Stunden Laufzeit / Monat inklusive, was bereits für einen Proof of Concepts genügt.
3.) Bleiben lediglich noch die Kosten für einen auf Selenium spezialisierten Test Automation Engineer. Da produktives Arbeiten mit einer Testautomatisierungslösung generell einiges an Knowhow und Erfahrung erfordert, ist es empfehlenswert sich einen Experten ins Boot zu holen – zumindest für die initiale Testautomatisierungs-Phase. Ich kenne wenige Bereiche in der IT, die besser für Outtasking und Remote-Working geeignet wären, als der Bereich Testautomatisierung. Fallen also keine Hotel-, Bewirtungs- und Reisekosten an, die klassische On-site-Freelancer natürlich in Ihre Stundensätze einkalkulieren müssen – auch muss kein Arbeitsplatz zur Verfügung gestellt werden. Ebenso fallen keine Mitarbeiternebenkosten an – wobei es ohnehin fraglich ist, ob sich kleinere Projekte/Unternehmen/Abteilungen einen „ganzen“ Test Automation Engineer leisten möchten. Schreiben Sie mir einfach eine E-Mail, was eine Test Automation Engineer-Stunde bei IT Kosmopolit kostet und Sie werden sicher positiv überrascht sein.
Beim Gesamtnutzen der Testautomatisierung wiegt v.a. der Wegfall der unzähligen manuellen Teststunden. Kalkulieren Sie hierbei jedoch nicht nur die Stunden der offiziellen Tester ein, sondern auch die der Entwickler und anderen Mitarbeiter, die ebenfalls (inoffiziell) mittesten.
Natürlich ermüden manuelle Tester mit der Zeit durch ihre monotone Tätigkeit und natürlich können beim manuellen Testen nicht annähernd so viele Testfälle akkurat durchgetestet werden, wie das bei einer Testautomatisierungslösung der Fall ist. Testautomatisierung sorgt damit nachhaltig für eine gesteigerte Softwarequalität. Beispielsweise kann ich mit Selenium mit wenigen Handgriffen den aktuellen Chrome und den aktuellen Firefox in die Testsuite hinzuschalten, dann werden alle Testfälle automatisch und ohne weiteres Zutun komplett auch für diese Browser durchgetestet.
Natürlich testet Selenium wesentlich schneller als sein menschlicher Kollege und auch gerne nachts oder am Wochenende – dadurch ist die Time-To-Market neuer Features deutlich verkürzt.
Moderne Softwareentwicklungsmethoden (Agile Development, wie bsp.weise SCRUM) werden schließlich durch Testautomatisierung überhaupt erst möglich.
Das folgende Diagramm zeigt die Kostenentwicklung des manuellen Testens im Vergleich zur Testautomatisierung eines nicht untypischen Projektverlaufs.
Der rote Kurvenverlauf der monatlichen Kosten (manuelles Testen): Die Kosten fallen mit Projektbeginn an, auch wenn hierfür nicht immer ein Kostenbewusstsein bei den Verantwortlichen besteht. Der Verlauf ist konstant steigend, da die Anzahl der Features und die Komplexität der Internetanwendung kontinuierlich steigt und damit auch die Anzahl der Testfälle und der Umfang der manuellen Tests.
Der grüne Kurvenverlauf der monatlichen Kosten (automatisches Testen): Den manuellen Kosten werden als Alternative die Kosten automatischen Testens gegenübergestellt. Nicht selten entsteht das Kostenbewusstsein bzgl. des Testaufwands bei den Verantwortlichen erst nach gewisser Zeit. Darum wurde der Beginn der Testautomatisierung in diesem Diagramm auf den Anfang des zweiten Jahres gelegt. (Klar, dass die konsequente Testautomatisierung bereits zu Projektbeginn Kostenvorteile gegenüber dem manuellen Testen hat.) Zwei kostenreiche Monate im Zuge der Automatisierung aller bis dahin spezifizierten Testfälle. Danach die konstant niedrigen Kosten für die Pflege der bestehenden Testprogramme und die Erweiterung der Testsuite um neue Features.
Die gelbe Kurve zeigt schließlich den Gesamt-ROI eines Umstiegs von manuellem Testen hin zu automatisiertem Testen – ein deutlicher Anstieg – Ihr Gewinn!
Weitere, wissenschaftliche Artikel zu diesem Thema:
1.) Software Test Automation in Practice: Empirical Observations
2.) Veröffentlichungsliste von Jussi Pekka Kasurinen