You are here


Real-Life Test Maintenance - Anti-Patterns, Refactoring and Reviews

Automated tests are code too, and as such, we're obliged to not only make them functionally correct, we need to maintain them. In TDD we're told that refactoring the code is an important step in the process. Refactoring tests is also part of the job.

In this session, we'll go over anti-patterns in automated tests. We'll talk about code smells in tests - things that probably shouldn't keep the way they are. Smells like duplication, inaccurate naming, inaccurate asserts, leaky tests and more. But mostly, we'll refactor them to make them more readable, accurate and understandable for other humans. After all, they are going to stay with us for a long time. Finally, we'll look at how to do proper test review. How to use the time we have, when and how to do it, what to fix as we're reviewing, and let's not forget the human aspect - be nice to each other.

Since we're investing so much in automated tests, we need to make sure that our teammates, not to mention our future selves, can continue using tests with ease. If "Test maintenance" is bringing you down, it's time to get your hands dirty.

Key takeaways:

  • Identify anti-patterns and smells in tests
  • Refactoring patterns to make the tests succinct, readable and maintainable
  • How to do a test review

BDD Test Automation in Java with Cucumber and Serenity BDD

Note: There are prerequisites for attending this workshop. Please see the prerequisites section.

Testing has become a team sport, where collaboration is just as important as automation. It is essential to be able to write high quality test automation that is both easy to maintain, easy to understand, and that gives accurate feedback not only to testers, but to the rest of the team as well.

In this workshop, learn how to use Behaviour Driven Development principles to describe acceptance criteria as executable specifications, and then automate them with clean, readable test automation code using Serenity BDD and the Screenplay pattern. The Screenplay Pattern is an innovative approach to writing BDD-style automated acceptance tests that are easier to understand, easier to extend and easier to maintain.

You will learn first-hand how easy it is to understand and extend a test suite built using the Screenplay pattern. And you will see for yourself how Serenity BDD turns the Screenplay tests into clear, living documentation.

Key takeaways:

  • Learn how to turn acceptance criteria into executable specifications with Cucumber
  • Learn how to write high quality, reusable test automation code using Serenity BDD and the Screenplay Pattern
  • Learn how to turn automated tests into living documentation that helps not only testers but also developers, BAs and product owners



Students will have to bring their own laptops and will need a reasonable knowledge of Java coding.


A Crash Course in Low Pressure Test Coaching

I remember the first time I was about to be “coached” as a tester; I was scared; worried that someone would make me look stupid. I also didn’t like the idea of feeling “less than an equal” to the coach.

Fast forward a couple of years and I was put in the position to coach a colleague. This time I felt frustrated because I didn’t know what to do. I suddenly felt all the pressure was put on the coach and the whole situation just made me uncomfortable.

Today I have a format that helps me initiate low pressure coaching sessions which makes the sessions actually happen and that’s what I will share in this short workshop.

  • Check in (<5 min)Quick assessment of what the participants’ preconception of coaching is.
  • Exercise (~15 min) In this exercise I will basically “tricks” participants to run a very simple coaching session, finished with a short debrief of the experience. The purpose is to show that test coaching doesn’t have to be formal or scary.
  • What is test coaching? (<5min) Very brief explanation mostly to explain that what they just did (the exercise) is a perfectly viable example of test coaching.
  • Ways to initiate coaching (5 min) The way we initiate coaching and the expectations set on these sessions are an important part of creating a low pressure environment. I’ll talk a bit about the “spontaneous talk”, how to use these techniques in scenarios not dedicated to coaching and other ways to help create a safe setting.
  • Additional tools (15 min) This part is primarily based on work done by me and Helena Jeret-Mäe. The purpose is to provide additional tools to the participants. I’ll bring up things such as various forms of roleplaying, concepts from innovation theory and “generally powerful questions” the participants can use.
  • Exercise using the additional tools (~20 min) Similar to the one I’ll start with but with the added tools as well as awareness from the participants that this is actually coaching. Just like in the beginning we’ll end with a debrief.


Key takeaways:

  • Realization: Test coaching doesn’t have to be mysterious, scary or complicated
  • Practical tools they can use in any conversation to turn it into a quick coaching session
  • Actual experience of coaching another tester

Tinkering with Arduinos and Python

Do you think Arduinos seem pretty nifty? Ever wondered what they are capable of if you throw some Python into the mix? This workshop is a fun hands-on tinkering session where you will learn how to combine python code with Arduinos! Control motors and power switches from your GUI buttons, or get your automated sensor readings on a dashboard. Or create an API. Code templates to expand and modify, as well as all necessary hardware will be provided (but at least 1 in 3 should bring a laptop).

Key takeaways:

  • Getting up and running with the whole chain from sensors&switches to GUI and API
  • Several examples of practical applications which you are likely to come across
  • Code templates to easily get started with several types of solutions
Subscribe to Epsilon