You are here

Workshops

Automated Tests for Android Mobile with Java + Appium

Mobile apps are getting more popular by the minute. With that there has been a raise in the automated testing on Mobile. In this workshop we will go over the basic flow of writing automated tests for Android Mobile using Java + Appium.

Activities will include exploring the app for elements, writing tests against the app and running written tests.

Key takeaways:

  • This workshop will show how Mobile automation works and how it could be implemented in your team.
  • You get a working development setup on your machine where next automated tests could be written.

 

Prerequisites:

The workshop will assume a computer with development environment setup. The guide will be provided 2 weeks before the conference.

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

Effective End 2 End Testing with Codeceptjs

There are lots of testing frameworks in JavaScript. Let’s learn the one which makes testing a joy. A tool that makes tests easy to follow and easy to work. CodeceptJS allows you to concentrate on test scenario and not on implementation details. It provides page objects, page fragments out of box.

Key takeaways:

  • How to setup browser tests with CodeceptJS
  • How to debug CodeceptJS tests
  • How to write tests using PageObjects Data management in CodeceptJS
  • How CodeceptJS can be used for mobile testing

End to End Tests with Protractor

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

Most people will have heard that Protractor is an end-to-end test framework for AngularJS applications. But how does it differ when trying to test against Angular applications? How does using TypeScript change how our page objects should look? How should I setup the project? And where do promises fit into all this?

Join this workshop if you’ve been trying to navigate this landscape and learn how to get up to speed with writing tests with Protractor for Angular applications. The workshop will also cover how to write tests that are expressive, and provide guidance on how to keep them maintainable for the future.

Key takeaways:

  • Project setup for end to end tests with Protractor
  • How to create page objects in TypeScript to make a DSL
  • How to deal with promises
  • Other patterns and ideas for making your tests maintainable for the future

Prerequisites for the workshop

Approval Testing: Superpower Your Automation Feedback

How do we ensure the feedback we are getting from our automated tests is targeted and informative? What information are we throwing away in an attempt to check for specific data? How we design assertions and the tools we use to determine the value of our automated tests.

However, most of the time we neglect our assertions, relying on libraries such as Hamcrest, Chai and Assert. Enter approval testing, a different approach to assertions that can improve tests feedback loops. By increasing the scope of what is being asserted without sacrificing speed, reliability and maintenance, approval testing can help superpower your automated tests feedback.

In this practical workshop, attendees will learn the how and why of approval testing techniques by creating automated tests using approval testing against different application layers.

Key takeaways:

By the end of this workshop students will be able to: Discuss the goals of automated regression testing and feedback loops Describe how approval testing works and differs from traditional asserting Construct approval tests for different interfaces ranging from API to Visual Construct methods to ignore specific data during approval testing

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

 

Prerequisites:

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

 

Front Line Survival Guide

Performance Testing is an important part in today’s test missions. Putting load onto a system until it crashes is nothing new. But in practice, load or stress tests often go short because of time or budget constraints.

Gatling is a new tool to address this shortcoming allowing to efficiently write and maintain performance tests and include their execution into CI/CD pipelines.

In this workshop you will learn the foundations of performance testing, how to create and execute user scenarios and load models with Gatling's DSL. To juice up theoretical basics, you'll be faced with challenging practical exercises.

Key Takeaways:

Participants will learn how to: create performance scripts, define user scenarios load models and learn how to use the Gatling Load Testing framework efficiently.

Effective End 2 End Testing with Codeceptjs

There are lots of testing frameworks in JavaScript. Let’s learn the one which makes testing a joy. A tool that makes tests easy to follow and easy to work. CodeceptJS allows you to concentrate on test scenario and not on implementation details. It provides page objects, page fragments out of box.

Key takeaways:

  • How to setup browser tests with CodeceptJS
  • How to debug CodeceptJS tests
  • How to write tests using PageObjects Data management in CodeceptJS
  • How CodeceptJS can be used for mobile testing

 

 

Improving Subjective Testability with Fiddler

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

Most modern software is built as a communication between a local computer and a server. Web debugging proxy software such as Fiddler allows testers to take an active role in this communication. This workshop will teach participants how to see what information is being exchanged, as well as how to take control over what is being said - in other words, improving Visibility and Controllability that is available to the tester.

Fiddler is a free web debugging proxy, which can be used regardless of what other software you are using. The instructor is not associated with Fiddler or the company that is offering it in any way. Some other alternatives will also be mentioned.

Format:

Short introduction to http requests and the role of proxy servers. Several sets of live demos followed by open activity. Participants will be asked to form small groups in order to enable peer to peer learning and interaction. Participants are encouraged to share their own unique contexts, so that we may figure out how they could put what they have learned to use right away.

Key takeaways:

  • Learn to capture traffic between your app and the server.
  • Learn to change the communication that takes place.
  • Hear some of my favourite use cases that helped me supercharge my testing.

 

Prerequisites:

Bring a windows laptop, ideally with Fiddler installed. Fiddler is not guaranteed to work on Macs. However,  I will try to encourage paired work, so hopefully a few participants without a windows laptop should be ok.

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

(Re)Invent Your Test Strategy

Testing is a craft, but it is also and for many foremost a job. A job you do day in day out, evolving with all the rituals every employee develops over time. These rituals, together with all sorts of other external factors (deadlines, pressure, etc.) often means that we don’t have a formalised test strategy or that we are no longer reconsidering the strategies we set out from the start. Having the right strategy in testing is important to stay as efficient and effective as you can be. One of the hardest things you can ask a Tester is: "What is your current Testing Strategy?".

This workshop wants to reignite your strategic fire by placing you in small groups with your fellow testers. Together you will devise a strategy for a real life product which includes methods, tools and planning. However, just like in reality the context will change, and our strategy must change accordingly to aptly react to that change. The workshop will use the TestSphere cards as a support to spark discussions and for bolstering your strategy.

Key takeaways:

  1. You will work as a team to discuss and describe a strategy to tackle a real life case and problem.
  2. You will work out a proposal to convince your manager which can involve tools, methods and planning.
  3. You will use TestSphere as a tool to uncover unknown-unknowns and strengthen your strategy.

 

Subscribe to Workshops