Qualitätssicherung XING

Top 7 Best Practices in der Testautomatisierung

Die Testautomatisierung bietet zahlreiche Vorteile, hält aber auch einige Herausforderungen bereit.

Warum der Umfang der Tests vor der Tool-Fage steht und was "liebe deinen Nächsten" mit Dokumentaion zu tun hat? IT-Consultant Freddy Wong hat sieben Best Practices zur Testautomatisierung zusammengestellt.

Testautomatisierung ist in den letzten Jahren ein immer wichtigeres Thema in der Software-Qualitätssicherung geworden. Richtig eingesetzt kann sie aufwendige manuelle Testaktivitäten übernehmen und den Testprozess beschleunigen. Tester verbringen weniger Zeit damit, aufwendige, repetitive Tests manuell auszuführen und finden dadurch mehr Zeit für kreative Arbeiten, zum Beispiel für das Erstellen neuer Tests, um weitere Schwachstellen im System zu finden. Schnellere Ausführungen und präzisere Prüfungen sind weitere Pluspunkte, die mit der Testautomatisierung erreicht werden, um die geschäftskritischen Dimensionen Zeit, Kosten und Qualität zu optimieren. 

Oft wird in Softwareprojekten jedoch festgestellt, dass die Umsetzung der Testautomatisierung mit vielen Schwierigkeiten verbunden ist und nicht selten auch Automatisierungsprojekte nach großen Investitionen scheitern. Das kann zum Beispiel daran liegen, weil in der Planungs- und Design-Phase nicht optimale Entscheidungen getroffen werden und in späteren Phasen daraus schwerwiegende Probleme resultieren, deren Behebung sehr viel Aufwand und Kosten produzieren.

Ebenfalls kann das Fehlen von Fachkräften mit ausreichend Know-how für eine effektive Automationslösung ein weiterer Faktor sein, warum kein gutes Image von der Testautomatisierung im Unternehmen aufgebaut wird. Durch das Fehlen von guten Ansätzen und Techniken zur Umsetzung wird schließlich zu wenig Vertrauen unternehmensweit geschaffen. Insbesondere wird hier von der profi.com AG empfohlen, sich bereits entwickelte Lösungen zu bekannten Problemen und vor allem Best Practices zur Vermeidung von möglichen Schwierigkeiten zunutze zu machen.

In Anbetracht dessen stellt dieser Artikel eine Auswahl an Best Practices vor, die in einer hausinternen Umfrage bei der profi.com AG unter erfahrenen Consultants ermittelt wurden, damit die Testautomatisierung von Anfang an richtig umgesetzt wird. Die folgende Liste stellt die Top 7 Best Practices dar, welche die meisten Stimmen erhalten haben. Es gibt aber noch jede Menge weiterer Aspekte der Testautomatisierung, die bei der Befragung genannt wurden und worauf besonders geachtet werden sollte.

Diese werden hausintern in einem Sharepoint für die Kollegen bereitgestellt, wodurch wertvolles Wissen geteilt wird und gleichzeitig Erkenntnisse nicht verloren gehen - das Rad muss nicht stets neu erfunden werden. Auf der anderen Seite profitieren die Kunden der profi.com AG am meisten von dieser Know-how-Sammlung.


 

#1 Ohne Anforderungen kein Testen, ohne Testdokumentation kein Automatisieren
Sie sollten die Automatisierung erst beginnen, wenn Testfälle bereits sauber dokumentiert sind. Die Tester und Testautomatisierer sollten wissen, was und wie getestet werden soll. Natürlich sollten die Testfälle selbst auf dokumentierte Anforderungen referenzieren, sonst kann man viel testen, ohne irgendwelche Anforderungen zu erfüllen bzw. es ist nicht nachweisbar, dass kritische Anforderungen getestet wurden.

#2 Kommunikation ist das A und O 
Viele Fehler bei der Automatisierung entstehen dadurch, dass die Mitarbeiter (Fachexperten in ihrem Gebiet) nicht oder nicht ausreichend miteinander klar kommunizieren. Meistens entstehen aufgrund von mangelhafter Information viele Interpretationsannahmen, die zu falschen Ergebnissen führen. Bauen Sie daher klare und rechtzeitige Kommunikation fest in Ihren Testprozess ein und schaffen Sie eine Kommunikationsplattform, die alle im Projekt nutzen können. Hier können Schulungen der Mitarbeiter unterstützend wirken.

#3 Wartbarkeit früh einplanen, möglichst im Konzept verankern
Viele Testautomationsprojekte scheitern daran, weil der Automat irgendwann nicht mehr wartbar wird, zum Beispiel wird die Wartung zu teuer oder technisch zu schwierig. Planen Sie die Behandlung dieses Problems möglichst früh ein und überlegen Sie Techniken zur Maximierung der Wartbarkeit (z.B. Namenskonventionen, Modularisierung und Parametrisierung etc.).  

Wartungstechnisch macht es Sinn, Testdaten von der technischen Verarbeitungslogik zu trennen (siehe z.B. BPT, BDD-Gherkin). Noch wartbarer wird es, wenn zusätzlich noch die Erkennungsdefinitionen der GUI-Elemente abgekapselt werden (Object Repository, Page Object Pattern). Setzen Sie auch Code-Analysetools wie Resharper oder Sonarqube ein, um die Qualität von Quellcode effektiver zu prüfen.

#4 Testumfang und Testprozess vor der Toolfrage
Stellen Sie am Anfang zunächst die Frage, welche Testarten für die Testautomation gut geeignet sind und entscheiden Sie danach, was genau automatisiert werden soll, bevor unnötig Aufwand betrieben oder in Sackgassen reingelaufen wird, wo mehr Probleme geschaffen werden, als eigentlich mit der Testautomatisierung gelöst werden sollte.

Machen Sie sich anschließend Gedanken, wie der Testprozess sinnvoll und effektiv gestaltet werden kann. Viel zu oft werden Tool-Entscheidungen vor Prozess-Entscheidungen getroffen, um dann den Prozess an das Tool anzupassen. Dies führt regelmäßig zu Missmut beim IT-Betrieb und bei den Test-Analysten.

#5 Durchführbarkeit und Qualität der manuellen Tests vorher prüfen (QS der QS)
Die Testautomatisierung ist nur so gut wie die Vorlage selbst, d.h. ohne gutes Testdesign würde die Automation zu vielen Aktivitäten führen, die aber wenig Mehrwert zur Qualitätssicherung beitragen. Prüfen Sie daher jeden manuellen Test auch zunächst manuell, ob dieser noch gültig ist. Eventuell lässt sich da schon erkennen, ob sich der Test für die Automation tatsächlich gut geeignet ist, oder ob der Test selbst hinterfragt oder überarbeitet werden muss. Oft fehlt eine kontrollierende Instanz, die dafür sorgt, dass sämtliche erstellten Testfälle auch tatsächlich korrekt geschrieben sind bzw. das richtige testen - besteht ein Bezug zur Anforderung?

#6 Liebe deinen Nächsten und betreibe aktiv Dokumentation
Kennen Sie die Situation? Ein Mitarbeiter im Team verlässt das Projekt und nun sollen Sie seine Arbeit übernehmen. Alles gar kein Problem, wenn man nur wüsste was er denn nun bisher und wie gemacht hat. Leider fehlt oft eine ordentliche Dokumentation der erledigten Arbeit und des alltäglichen Ablaufs. Nicht nur bisherige Teamkollegen, sondern auch neue Mitarbeiter stehen dann vor der Situation, dass sie relevante Informationen für die Arbeit nicht mitbekommen und dadurch viel Aufwand zusätzlich betreiben müssen, um zunächst die Informationslücken zu füllen. Riskant wird es, wenn dann basierend auf ungeprüften Annahmen weitergearbeitet wird.

Seien Sie so nett und erstellen Sie Dokumentationen ihrer Arbeit sobald wie möglich. Idealerweise wird in Ihrem Projekt technische Hilfsmittel wie kollaborative Software oder Wikis eingesetzt. Vor allem planen Sie das Thema Dokumentation bereits früh im Management ein, um Klarheit zu schaffen, wann und wie dokumentiert wird.

#7 Proof of Concept korrekt und effektiv einsetzen
Im sogenannten Proof of Concept (PoC) wird vor der Durchführung eines Vorhabens (Prozess oder Konzept) zunächst eine Machbarkeitsstudie durchgeführt, um die prinzipielle Durchführbarkeit zu belegen. Wählen Sie für den PoC im Fall der Testautomatisierung ein fachlich simples, aber technisch „interessantes“ Beispiel für die Prüfung der Automatisierbarkeit. Achten Sie beim PoC vor allem erstmal darauf, dass die Umsetzung im Rahmen bestehender Konzepte und Prozesse durchgeführt wird.

Seien Sie sich bewusst, dass beim PoC die erforderlichen jedoch teilweise unabhängig voneinander operierenden Organisationseinheiten bzw. Abteilungen (Stakeholders) zum ersten Mal zusammengebracht werden, um das Thema Testautomatisierung kennenzulernen und sich darüber offen austauschen können.  

Nutzen Sie daher den PoC als Chance, um die verschiedenen Erwartungshaltungen frühzeitig zu klären und ein gemeinsames Verständnis für die Vorteile der Testautomatisierung zu schaffen. Dadurch wecken Sie das Interesse, gemeinsam an einer guten Automationslösung zu arbeiten, wovon alle profitieren können.

Sie haben weitere Best Practices, die Sie für die Testautomatisierung für wichtig erachten? Für Anregungen und Fragen stehen wir Ihnen gern zur Verfügung.

Autor

Frederick WongIT-Consultant
Frederick Wong