NewsTesting

Test Automation Framework

21.09.2020

geschrieben von

Thomas Niedermeier

Seit Beginn der QualityMinds beschäftigen wir uns mit Testautomatisierung. Es ist längs nicht mehr eine nice-to-have Aktivität im Testprozess, sondern fester Bestandteil jedes Projekts. Spätestens seit der aktiven Nutzung von CI/CD hat jeder die Bedeutung und Mehrwert von automatisierten Tests verstanden. Anfangs (ca. 2012-2014) basierte die Mehrheit der Ansätze auf kommerziellen Werkzeugen. Das ist längst nicht mehr der Fall und Open Source basierte Frameworks gehören zum Standard in sehr vielen Projekten.

Da QualityMinds neben der Beratung für Testautomatisierungs-Strategie auch komplette Technologie für das Thema aufsetzt (vom Proof of Concept bis hin zu skalierbaren Architekturen), haben wir eine Challenge in der Community und Projektlandschaft identifiziert: Es fehlt eine kompakte Zusammensetzung der unterschiedlichen Testframeworks als “ready-to-use”. Deshalb haben wir ein solches Bundle erstellt und in vielen Kundenprojekten eingesetzt und erweitert. Da wir es nicht für uns behalten wollen, sondern nach dem Prinzip von Open Innovation zurückgeben möchten, ist das Projekt “Gherkin Test Automation Framework” seit neusten auf Github!

Es handelt sich um ein Bundle welches auf Behavioral-Driven Development (kurz BDD) ausgerichtet ist. Gherkin erlaubt das Spezifizieren von Testfällen in natürlicher Sprache. Unser modulares Gherkin Test Automation Java-Framework verbindet eine Reihe freier Automatisierungsframeworks für Front- und Backendtests. Das Ziel ist es, die gebündelten freien Frameworks vorkonfiguriert noch leichter nutzbar zu machen und geschickt miteinander zu kombinieren.

Die Testergebnisse werden mit Serenity BDD bis zu den Details der einzelnen Testschritte dokumentiert. Mit Hilfe von z.B. Selenium, Rest Assured, Datenbanktreibern, Thymeleaf als Templating Engine und eigener Komfort-Bibliotheken kann ihre Anwendung auf Herz und Nieren durchgetestet werden. Dies wird dann zum Testmanagement mit z.B. Jira (+XRay Plugin) und zur Testausführung mit z.B. Jenkins kombiniert, um eine auch für nicht-Entwickler*innen komfortabel nutzbare Testautomatisierungslösung zu erhalten. Durch die Kombination aus dem Stack für Testautomatisierung und Jenkins sind wir in der Lage auch asynchrone Tests mit zeitlicher Verzögerung ohne Probleme zu automatisieren. Das ist besonders hilfreich bspw. im Bereich Zahlungsverkehr großer Banken.

Das Projekt findet ihr auf Github (https://github.com/QualityMinds/gherkin-test-automation). Wir freuen uns auf das Feedback und beantworten gerne eure Fragen! Contribution zu dem Open Source Projekt ist natürlich jederzeit möglich.

 

English version

From the start of QualityMinds GmbH, test automation was always part of its portfolio. It started as an optional service feature but it soon became an essential part of every project we participated in. This shift could be contributed, among others, to the active application of CI/CD, which helped people realize the importance and added value of automated tests. Between 2012 and 2014 we mostly used commercial tools but this also changed with time and now open source frameworks are widely used in projects. Since QualityMinds offers thorough consulting services on test automation strategy as well as technological support – starting with the Proof of Concept up to scalable architectures – we noticed something was missing in the testing community as well as in our projects: there was still no “ready to use” combination of various test frameworks at hand. We created one, applied it in numerous projects and further developed it. And since we are all about the idea of open innovation, we would like to share the Gherkin Test Automation Framework with you via Github!

The framework is based on Behavioral-Driven Development (BDD). The application of Gherkin, the natural language, allows the specification of test cases in their “mother tongue”. Our modular Gherkin Test Automation Java framework combines several free automation frameworks for frontend and backend tests. The goal ist to make the combined free preconfigured frameworks easy and seamless to apply.

Every single testing step as well as test results are documented with Serenity BDD. The application can be thoroughly veted with Selenium, Rest Assured, database drivers, Thymeleaf (as templating engine) as well as an own resource library. Combined with Jira and its XRay plugin for test management and Jenkins for test execution, even non-developers won’t encounter any difficulty with getting test automation solutions. By pairing the stack for test automation and Jenkins we are also able to automate asynchronous tests with time delay. This feature is especially useful while dealing with payment transactions in big banks.

You can find the project at Github: https://github.com/QualityMinds/gherkin-test-automation

We are looking forward to your feedback and questions! Also we invite you all to contribute to this open source project as well.