Archiv der Kategorie: Test Automatisierungs Strategien

About efficiency in test-automation


With GUI-based test-automation (e.g. with Selenium) you establish a system of checkpoints (=testcases/ =scenarios (in terms of gherkin)) for the functionality of the software. The functionality is a set of features. Features have 0..n checkpoints. Beside the system as a whole, every checkpoint is ressource-consuming. That’s because you have to establish and maintain them – the latter in case of the feature changing. Hence the checkpoints shouldn’t be uniformly-distributed over the software for logical reasons. There are 3 main criteria for deciding about the density of checkpoints and which influence the efficiency of your test-automation efforts:
1.) criticality of the feature: How important is the feature for the over-all-functionality of the software – ask the manager!
2.) fragility of the feature: How frequently bugs have appeared in relationship with the feature in the near past – ask the developer!
3.) persistence of the feature: How probable are changes to the feature in the near future and as a consequence a ressource-consuming maintenance – ask the manager!
With these criteria you can make a lightweight plan, where to start the test-automation.
Over the time you add more and more checkpoints as new features come and as you learn about the “organism” of the software.
Learning should result in heuristic rules like “make a new checkpoint for every new bug”.

ROI der Testautomatisierung

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