© Bakhtiar Zein/Shutterstock.com
Teil 3: Clean Test Automation Code

Testautomation mit Protractor


Protractor ist das perfekte Werkzeug für die Testautomation von AngularJS-Anwendungen. Es kann aber durchaus von einigen Best Practices profitieren, um eine Testsuite und seinen Code überschau- und wartbarer zu machen. Im dritten und letzten Teil dieser Artikelserie beschäftigen wir uns mit Prinzipien von Clean Coding und der Umsetzung mittels Page Objects, Bevor- und After-Anweisungen, Testsuites und Data-driven Tests.

Wer erfolgreich Testautomation implementieren will, muss dieses Vorhaben wie jedes andere Softwareentwicklungsprojekt behandeln. Es braucht Planung, ein angemessenes Design und Testautomationsentwickler, die wissen, wie guter Code entwickelt wird. Warum sollte man sich um den Code der Testautomation nicht in gleicher Weise kümmern wie um den Produktionscode?

Wie jeder andere Code, der im Rahmen des Softwareentwicklungslebenszyklus entwickelt wird, muss auch der Testautomationscode verständlich und wartbar sein. Unter Wartbarkeit ist zu verstehen, dass andere Entwickler in der Lage sind, den Testautomationscode einfach zu warten und zu erweitern. Grundsätzlich gilt: Testautomation ist Softwareentwicklung, oder wie es Aristoteles ausgedrückt hätte: „Testautomation is not an act, Testautomation is a habit!“

Page Objects

Das Page Object Pattern ist eine Entwicklungspraxis, mit der ein Object Repository für Web-UI-Elemente erstellt wird. In dieser Bibliothek gibt es für jede HTML-Seite in der Anwendung eine Abstraktion der Seite in Form einer Codeklasse, dem sogenannten PageObject. In dieser Klasse befinden sich sowohl die Definitionen der Webelemente mit den entsprechenden Locators als auch die Methoden, die die Operationen (Click, Select, Input ...) auf diesen Webelementen ausführen. So wird die Definition der Benutzeroberfläche von den Workflows der eigentlichen Testfälle getrennt. Dadurch ist der Code sauberer und einfacher zu verstehen. Zusätzlich ist das Object Repository unabhängig von den Testfällen, sodass das gleiche Object Repository unter Um...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang