Conference
The Good, the Bad and the Ugly – Common Mistakes and Problems in Test Automation
Almost all projects nowadays have at least a few automated tests or even hundreds of thousands of them. But why is it still often more felt as a burden instead of something useful? Because although we should know better in a lot of cases still the same mistakes are made. In this talk some common mistakes will be shown what can be done wrong in either the code, the architecuture or the processes.
Target Audience: Architects, Developers, Testers, Project Leader, Test Managers
Prerequisites: Test in general, Test Automation
Level: Practicing
You will learn:
You will get to know or reminded about the most crucial mistakes done when automating tests. If you want to be successful when automating tests you should take care that these do not apply in your project.
Extended Abstract:
The anniversary of OOP is a good opportunity to have also a short look in the past. Regarding testing we hear every year a lot of theory and how things should be done.
But looking back at multiple projects the author has seen the common problems are not arising out of a lack of knowledge. They appear because very often the same patterns are applied which have a negative effect on testing and cause that testing itself is more felt as a pain instead of something which helps.
This talk will be less about the "good" things in testing. It will show some "bad" practices which can be applied and hurt and the really "ugly" ones which will cause you very likely to fail. And these can be seen in very large projects but also in very small ones.
Werkzeugkasten für agiles Testen
Die Konzepte des agilen Testens – also insbesondere eine umfassende Testautomatisierung – sind in den vergangenen Jahren im Markt angelangt. Zur Implementierung von automatisierten Tests im Rahmen agiler SE-Projekte eignet sich ein Vorgehen anhand der sogenannten Testpyramide. Wie könnte der konkrete Umsetzungsansatz für die jeweilige Ebene der Testpyramide aussehen? Welches Test-Werkzeug eignet sich auf welcher Ebene der Testpyramide für welchen Einsatzzweck? Welche Alternativen existieren?
Zielpublikum: Entwickler, Architekten
Voraussetzungen: Java-Kenntnisse, Grundverständnis agile Software-Entwicklung
Schwierigkeitsgrad: Fortgeschritten
Sie lernen:
- Etablierung von Integrationstests
- Automatisierung von Integrationstests
- Testen von lose gekoppelten Systemen
Zum Ende der Session ist der Teilnehmer in der Lage einen eigenen Werkzeugkasten für verschiedene Szenarien zusammenzustellen.
Erweiterte Beschreibung:
Die Konzepte des agilen Testens - also insbesondere eine umfassende Testautomatisierung - sind in den vergangenen Jahren im Markt angelangt. Zur Implementierung von automatisierten Tests im Rahmen agiler SE-Projekte eignet sich ein Vorgehen anhand der sogenannten Testpyramide. Hat man deren Aussagen verstanden und verinnerlicht, so stellt sich die Frage nach einer Umsetzungsstrategie im Projekt. Wie könnte der konkrete Umsetzungsansatz für die jeweilige Ebene der Testpyramide aussehen? Welches Test-Werkzeug eignet sich auf welcher Ebene der Testpyramide für welchen Einsatzzweck? Welche Alternativen existieren?
Diese Fragestellungen können auf den unteren Ebenen der Pyramide durch den Einsatz von Unit-und Mock-Frameworks meist im Konsens beantwortet werden. Die gängigen Praxisrealisierungen auf den höheren Ebenen der Pyramide adressieren obige Fragestellungen - wenn überhaupt - durch Einsatz ein und desselben Werkzeugs für unterschiedliche Szenarien - getreu dem Motto: „Wenn man einen Hammer hat, sieht alles wie ein Nagel aus". Hierbei entstehen unwartbare, instabile und komplexe Testsuiten, die dem Wunsch nach optimalem Feedback von Tests nur unzureichend gerecht werden.
Im Rahmen jahrelanger Projekterfahrungen im agilen Umfeld ist ein Werkzeugkasten entstanden, der verschiedenste Lösungsansätze für die gängigsten Testszenerien auf den höheren Ebenen der Testpyramide beinhaltet. Diese Werkzeuge zur Implementierung der Konzepte der Testpyramide werden wir vorstellen und Empfehlungen zur Umsetzung aussprechen. Hierzu wollen wir u.a. Themen wie den Einsatz von Isolierungstechniken und das Testen von lose gekoppelten Komponenten (z.B. Microservices) mittels Kontrakten beleuchten.
Zum Ende der Session ist der Teilnehmer in der Lage, einen eigenen Werkzeugkasten für verschiedene Szenarien zusammenzustellen.