You are here



Come and play some fun (board) games!

Selenium Tests, the Object Oriented Way

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

When you are writing Selenium tests to check for elements on your page, by taking the classic approach (checking for each element’s properties at a time), you might get to a large number of assert steps, one per each property you are checking. This increases the lines of code your tests have, make the tests difficult to maintain and tricky to read.

Wouldn’t it be nice if the actual checking part of the test would be small, perhaps one line of code? With the approach I am going to present, you can do just that. Hence your tests will be small and clean. All you will need to do is model the pages/modules/items by using an Object Oriented approach within your actual tests.

A workshop on Selenium and Java.

Key takeaways: 

  • Representing the modules or pages to test as Java objects;
  • Generating the expected and actual results for your tests based on these objects;
  • Comparing the actual objects with the expected ones will lead to a very short number of assertions in your tests.



Participants are required to bring a laptop with appropriate software setup - please see instructions from here:

How to Build a Robust API Checking Framework

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

The rise of new architecture styles such as SaaS and microservices leads to an increase in popularity of API testing. With this, automating the API testing is a natural next step. Yet, how to manage this properly so that the benefits outweigh your general equivalent WebDriver solution in terms of ease and stability? Join this workshop to learn how to put together the basics of an API checking framework that is robust, easy to read, and eliminates the brittleness in your checks. The workshop covers making GET, POST and more advanced HTTP requests, setting custom request headers, easily building payloads and parsing responses, and tying all this together in scenario-based checks.

Key takeaways: 

Participants will learn:

  • How to build a framework that can execute a series of HTTP requests that can be asserted on
  • How to use DRY techniques when structuring the framework to build a framework that is robust and easy to maintain
  • How to execute complex scenarios that require multiple HTTP requests and sharing data across requests


Participants are required to bring a laptop.

De-Mystifying Mobile Application Testing - a Hands on Approach

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

As mobile devices, tools, operating systems, and web technologies rapidly evolve, testers must quickly adapt their thinking in this changing domain. Testers often struggle to find important vulnerabilities and bugs in mobile applications due to lack of guidance, experience, and the right resources. During my career in the mobile testing field, I've come across numerous bugs related to mobile native applications. Looking at these bugs, I started categorizing them, and have since come up with a mind map. This mind map helps to do a quick tour of your mobile application and find vulnerabilities as quickly as possible ( ). This could be used for doing smoke testing, acceptance testing or even production testing after your application is live on the different App stores. This session will give attendees hands-on experience by using these mobile testing approaches in real applications to get quick feedback.The different topics covered and format of the workshop would be as follows (There will be hands-on exercises in different sections of this workshop)

  • Basics of the mobile eco system 
  • Will quickly cover what are web, native and hybrid apps with live examples
  • Testing Approaches to get quick feedback on the mobile application 
  • Will cover the following testing approaches with exercises and screenshots of real life defects
  • Interrupt testing
  • Wi/Fi 4g switching
  • Testing end user scenarios
  • How to use logs and what kind of information we can get in both iOS/Android
  • Looking for Consistency
  • What are different types of keypads in mobile applications and how to identify these differences
  • How to do performance testing in iOS/Android
  • Why are User Reviews important and what kind of issues can be uncovered
  • Installation Testing
  • Battery Life/Storage
  • Will touch upon the following topics 
  • Mobile security
  • How to make apps smarter
  • Automation tools available for free
  • Will cover Appium framework on a high level
  • Show a demo of an app automated using Appium and how it works
  • De-mystifying Internet of Things
  • Cool things coming up in mobile and how it can impact our testing

Questions will be handled throughout the session in an interactive manner.

Pre-requisites for the workshop

NOTE: If you face problems, in any of the above setup steps, do not worry, as attendees will be in groups and can sit with people who have the above pre-requisites.

Refactoring JUnit Tests

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

Code that grows over time without refactoring can get quite messy and hard to test. The same applies for to test code, and curiously, they often appear together. Not always is it possible to fix the design problems first, creating a need to write clean tests for hard to test code.

In this workshop, participants will learn some techniques to clean up messy JUnit tests to make them more readable and easier to change.

After a short introduction and an example refactoring, participants will work in pairs to refactor some example unit tests and learn how to write better ones from scratch.

Key takeaways: 

  • create complex objects easily with the builder pattern
  • use hamcrest matchers to improve your assertions
  • discover the power of JUnit rules



Please install the latest IntelliJ Community edition ( which is available for Mac, Windows and Linux, and have Java and JUnit running from within this.

Creating True Value Using UX

According to the Standish group, most IT-projects fail to deliver true value. Roughly a third are discarded before completion or never used. The top reasons for this, according to statistics, is failure from the business side to be truly engaged and failure to understand the users and their needs - this is often simplified as bad requirements. The core values of UX is to truly understand the problem before we start building solutions and then creating lots of hypothesis and (in)validating them fast. A bit simplified this includes four distinct steps - often called design thinking:

1. Building empathy:

  • understanding the business side - using workshops and interviews
  • understanding users by interviewing them and observing them


2. Defining the problem

  • using models like the user journey
  • working continually with requirements in the form of user stories and various graphic models


3. Ideation

  • starting out with rough paper sketches to explore all possibilities
  • continuing with interactive prototypes using one of the many cheap or free tools available. Like powerpoint/keynote or to mention a few


4. Getting instant feedback using rapid user testing techniques. Yes you can all fairly easily master the basics 

I truly believe that a lot of testers may have a great career combining UX and testing in their roles in a project. Testers are curious of nature and have a lot of the skills needed to become great researchers or user testers. It also may relieve a lot of tension being able to actively participate in the process of understanding the true problem and not only testing the product that is created.    

Subscribe to Epsilon