You are here

Workshops

Explicit Exploring Using Testopsies and Microheuristics

Prerequisite for attending the workshop: Attendees will need to bring their laptop.

In this workshop, you’ll learn more about what you’re doing when you’re doing exploratory testing. Through the exercises, you’ll gain understanding of:

  • Parallel threads and activities going on in your brain when you explore
  • How you make decisions what to do next based on what you’ve learned (microheuristics)
  • How to go about improving your own testing and teaching others about testing by using these techniques.

Exploratory testing is one of the key skills for the future. Come to this workshop to deepen your knowledge of it!

Never Assume Non-Testers Cannot Test

Some test professionals are of the opinion that “only testers can test” - I am not; I say that testers are specialists who can share their skills with others and in doing so promote respect for the testing profession.

You’re in a test team, you work on test projects and for your work you receive a wage and maybe bonuses, promotions and other benefits. So why involve non-testers (or less experienced testers) in the process? Maybe it’s a necessity for a beta release programme, perhaps it’s about a crowd-sourced testing project, or a occasion such as an exercise for a team away day to bring some new energy into the team.

From my experience of crowd-sourced testing and utilising the assistance of non-testers I would like to share critical factors for success:

  • When to use non-testers to enhance your test activities
  • How to engage and properly incentivise your non-tester assistants, whilst minimising “gaming” of the system that you put in place
  • Routine aspects of testing that need to be communicated - what is a bug? how do you report a problem? how do you take a screenshot on an specific mobile device? where do you find log files?

 

Key takeaways:

Testers have specialist skills but can utilise non-testers, or remote testers, to help with testing. Guide them instead to help with test activities and increase appreciation of the testing craft.

  • Using non-/remote testers to help with testing requires careful planning, incentivisation & support
  • Properly incentivised helpers can enhance and improve the testing process
  • A framework that can be taken into the workplace and used to start gamifying straight away
  • Involving non-testers in testing activities garners intra-team respect for the work that testers do

Better Estimation and Planning

When will it be done?

From the dawn of time, we're asking: How long will the project take, and when can we see something working. Especially in our Agile era when the market, technology and skills shift so quickly, we need to communicate estimates clearly and plan effectively, in a sea of uncertainty.

Over time, we've collected a few methods of estimation. We're going to discuss and experiment with them in this workshop, and taste what works and what doesn't. In addition, we're going to see what metrics we need to collect as we go, and how to interpret them to meaningful projection. Finally, we'll see if (and when) the NoEstimates method may be the right answer.

Topics covered in the workshop:

  • Why planning and estimation is important (and to whom)
  • Dealing with the uncertain and the unknown
  • Reducing risks in planning and reporting
  • Estimation methods (relative, story points, cumulative flow)
  • Pros and cons of the different methods
  • Estimating the unknown
  • Projection methods and meaning (Monte-Carlo simulations)
  • Getting real with NoEstimates

 

Key takeaways:

  • Why estimates suck
  • The priniciples behind using techniques like story points, velocity, flow, and principels planning poker that makes them effective (and what breaks them)
  • How to collect the right data to get better projection for the future
  • How to communicate effects effectively

Testing with Jest

Prerequisites for attending the workshop: Attendees will need to bring their laptop with the following setup done in advance:

 

 

Our front end is written in JavaScript & React, which is a JavaScript library for building user interfaces. Using Jest was an obvious testing choice for us, as Jest is an open source library used for testing JavaScript code & React applications. It requires zero configuration which meant testing sooner & delivering faster. Ideal for our microservices architecture. Jest is composed of many other packages like jest-snapshot, jest-validate etc, which makes Jest more than just a test runner with a built in assertion library. We used Jest Snapshot to test our UI components which works by taking a screenshot & compares it to a stored, reference image. The test fails if the two images do not match. We later realised that Jest Snapshot can be used for most JavaScript types including API responses, arrays, objects strings etc & not only UI components. If you are interested in learning more about Jest & Snapshot testing come join us.

Key takeaways:

  • Jest Snapshot testing
  • Component testing

Learning to Learn in a Mob

Prerequisites for attending the workshop: You will need to bring your laptop.

Mob programming, mob testing, or generally mobbing is a wonderful approach to uncover implicit knowledge and learn from each other. It’s “all the brilliant people, working on the same thing, at the same time, in the same space, and at the same computer“. But what if you introduce a new technology no one in the mob had worked with before? What if you suddenly need knowledge in the team that nobody has? Does mobbing still prove to be an efficient way of learning in that case? Join this experiment and learn something nobody in the mob has done before. Let’s see how far we get in mastering a new skill together!

Key takeaways:

  • Learn the basics of the mob approach and practice them hands-on
  • Experience the benefits of uncovering and sharing implicit knowledge to help everyone learn
  • See how having all brains in helps solve unknown challenges and get the best out of everybody

Don't Take It Personally

Receiving feedback can be tough. It can be hard to remember that it is meant to help improve work going forward, not to point out current flaws. This is even more prevalent in an industry packed full of introverts and especially in roles where it is your job to find issues and help fix them. It can be incredibly easy to take these kinds of feedback or comments personally in the workplace, but what is the impact when we do so?

When we personalize situations, we tend to lose sight of the bigger picture. It becomes easier to focus in on minute details and not look at the overall context in which the feedback is being given. The impacts of this lower level of focus can result in wasted time from; chasing the wrong issues, laying blame, making up excuses, refusing to ask for help, and ultimately avoiding discussions around the root cause and ways to improve.

This workshop will draw on experiences and examples of situations such as; testing debriefs (tester to tester interactions), bug discovery (tester to developer interactions), and inter team projects (team to team interactions) and discuss tactics for each on staying objective and productive. After going through what makes feedback and comments personal we will break into small groups to practice tactics for identifying linguistic traits that can make feedback personal and work on ways that we can bring our conversations back to a more productive and objective trajectory. When we look at feedback for what it truly is - a way to improve - we can build better relationships between communities and teams to make them stronger as a result.

Key takeaways:

  • Tactics for how to better identify situations where you may be personalizing 
  • Tactics to reorient thinking back to objectified view vs personalized view
  • Tactics for how to improve communication to avoid negatively received feedback both in one on one conversations and in group settings
  • Practiced, hands on experience will each of these tactics

Mobile Test Automation Using Cify Open-Source Framework

 

Prerequisites for attending the workshop: Attendees will need to bring their laptops with the following setup: 

  • Java 8 or higher
  • Appium (http://appium.io/)
  • IntelliJ IDEA (or similar IDE)
  • adb is installed (android-platform-tools)
  • Gradle
  • Xcode setup done - optional

 

Nowadays developing apps, or any other software, requires a smart testing approach. Because of that testers, test leads and any professionals in charge of a testing projects have to answers some basic questions before they start. What tools do use? How to automate on different platforms? What’s the smartest way to approach the project? Usually it means some form of compromise - changing a tool, framework or learning a different approach. What if it was possible not to make compromises, but instead use the skills and tools you know and love? 

It is.

FOB Solutions managed to run one test across simulators, emulators as well as android and iOSs devices using Cucumber and Cify open-source test automation framework. And now we are going to teach how to create cross-platform UI tests as well!

You can see a preview of what we will teach if you follow this webinar https://saucelabs.com/resources/webinars/cucumber-and-sauce-labs-a-non-compromise-duo

Key takeaways:

Building cross platform test automation framework

  • More similar user flows on software built on different platforms
  • For underlying technologies we chose to use open source components:
    • Appium
    • Selenium
    • Cucumber
    • Groovy/Java
    • Gradle

Using cross platform test automation framework

  • Behaviour driven approach - building tests using cucumber
  • UI types/different screen sizes

Executing cucumber level tests on cross device-farm approach using SauceLabs example

  • Executing same tests on different device farms (saucelabs/test object)
  • Integrating cucumber with saucelabs/testobject

CSS Selectors: From Zero to Awesome

When writing Selenium tests, you need to identify the page elements by using some kind of selectors. XPATH, although much more complicated than CSS, seems to be preferred by many. Either because testers have tools that automatically extract them, or because they seem to clearly specify the path of the element.

In this workshop i will go over the benefits of using CSS instead of XPATH. I will show a ton of examples (with Java), from the easiest and simplest, to the most complex or even impossible. The purpose of the workshop is to get hands-on experience with identifying the CSS selectors for a wide range of cases, which will lead to you dropping XPATH altogether.

Key takeaways:

  • The purpose of the workshop is to familiarize the participants with the concept of CSS selectors, and inspire them to use them (instead of Xpath selectors) in all their Selenium tests
  • The workshop focuses on identifying the CSS selectors, from the most basic and easy ones, to the most complex ones, and to use them as part of automated tests
  • This will be a technical workshop, with exercises that the participants can do on the stop, or they can follow as i do them. There will also be room for questions and exercises proposed by the participants

How Video Games Can Inspire Creative Testing

In my 10+ years in QA, I have built my career on unconventional testing. But that all started with a love for video games and identifying bugs in software before I knew what a bug report was. Video games can play a crucial part in becoming a more creative tester, regardless of what industry you are in.  In this presentation, I hope to showcase how video games can create a new way of thinking when looking at everyday apps.  Gaming and testing are both passions of mine and I am excited to showcase how these can be used hand in hand. 

  • Why would video games be applicable to what I do?
    • ​Video games require a heavy amount of critical thinking and exploration.  Games like Assassin's Creed and Breath of the Wild encourage users to think for themselves and find their own path.  This, in turn, induces immense creativity in finding new ways to explore.  For me, this helped me find bugs I never would have thought to look for.  My time in Assassin's Creed 3 sailing around the vast ocean in a ship helped me find one of my first "out of the box" bugs at Disney where I sailed on a boat and found a hole in the map after 2.5 hours of sailing. 
    • Additionally, some video games, such as Dark Souls and Bloodborne are linear but have an elevated difficulty.  Users have to learn constantly as they are defeated by the same enemies, causing them to rethink their strategy and get creative. 
  • Speak more to my experience of this, including examples of what I have been able to find using my gaming experience.  (Will flesh this out heavily for presentation submission)
  • Hands on practical learning via examples provided 
    • Activity 1: I will have game capture footage of an open world game (Breath of the Wild) and one linear game (Bloodborne) to show.  This will showcase points from the above regarding the need to explore or learn from mistakes.  I will prompt the audience to identify ways these scenarios that can help them build what they are currently doing in their day to day testing. 
    • Activity 2: QA a mobile app - Using the knowledge from Activity 1, I will display a mobile app (Super Mario Run) and prompt the audience to give ideas on how to find more creative ways to find a bug in the app. 
  • Both activities above will require audience participation. I will bring an Apple TV for airplay purposes. 
  • Questions

 

Key takeaways:

  • Learn how video games can provide a great creative outlook to taking the step in becoming an exceptional tester.

  • Participants will be able to challenge their normal testing process to rejuvenate their testing outlook.

  • Using the info provided, a new competitive edge for testing employment is introduced with the addition of critical and creative thinking skills.

  • Participants can use this knowledge in their every day lives, which may help them troubleshoot non-testing issues! 

Pairing Is Caring - Doing Quick Tours on Your Applications with the Power of Paired Exploratory Testing

Prerequisites for attending the workshop:

  • Everyone is requested to bring their laptop, with a text editor installed to take notes during exploratory testing session
  • Everyone is requested to have one smart phone or tablet

 

Have you ever been in a situation where:-Stakeholders come to you/your QA team and say “We have about 2 hours before we push the new version of the application into production. Could you do some high level acceptance tests and ensure our app is stable before we do it?". You have no idea where to start and what to do in these 2 hours.

You/your QA team has 3 days for testing the new version of the application. You have all these test ideas but do not know which one to do first, how to prioritize your testing and what kind of vulnerabilities to look out for?

I was one such Tester, who was in the above situation many times. Based on my experience testing various desktop, mobile and headless applications for several years now, I started categorizing various defects I have found and realized; there are some common testing approaches you could follow to quickly find vulnerabilities in your applications.

To take this one step further, I did a lot of research on Session Based Exploratory Testing (SBET) and realized the power of paired testing. In this session, you will learn different approaches to break applications by Pairing and doing SBET with live applications.

Key takeaways: 

  • Different testing approaches to break applications
  • What is Session Based Exploratory Testing (SBET)
  • Use the template I formed and do paired exploratory testing on a live application

Resilience Testing: Let the chaos begin!

Prerequisites for attending the workshop: Attendees need to bring their laptop with the following software installed in advance:

  • JDK 8 or newer
  • Virtual Box 6 

 

Nowadays we build applications via the microservice principles to make our applications easier to maintain, deploy, test and change. These microservices can easily be deployed on cloud platforms. Multiple microservices together form one application. But is that application resilient? What happens if one of the microservices fails? What happens if one microservice gets slower? 

So a resilient service: is a stable & reliable service, has high availability, and does not compromise the integrity of the service or the consistency of the data. But how to test this? 

That is what we will do during this workshop. Together with you we will test the resilience of a cloud application by creating chaos in the form of failures & disruptions, to see what happens to our application.

During this workshop we will tell you more about:

What is Resilience and how you test it; Microservices & Cloud platform; How to perform a load test; How to create chaos manually; How to create chaos automatically.

Key takeaways: 

  • Main statement: Resilience, Stress & Performance test your cloud environment!
  • Key learning 1: What is Resilience testing
  • Key learning 2: Executing your own Performance/Stress Tests
  • Key learning 3: Executing your own Resilience Tests
  • Key learning 4: Automated Resilience testing with Chaos Monkey

Save Time: Use Selenium Grid

Prerequisites for attending the workshop:

The attendees have to bring their laptop with Docker, Java and Apache Maven installed.

We know Automation Test bring value to the Quality of our project, but the projects are every day get more complex. We, as QA Automation Engeeniers, have to embrace complexity. One basic step to get an Automation Test Suite which bring real value is to parallelize our tests and reduce x2, x5, x10 the duration of them. 

In this workshop, we will cover the theory behind Selenium Grid (How is working, what is a hub, what is a node) in the first part. In the second one, we will put hands-on and teach how to configure and connect the Nodes with the Hub. Last part of the workshop will cover how to connect a basic Automation Test Suite (which we will provide) to the Hub.

Key takeaways: 

  • Theory about Selenium Grid.
  • Configure and connect the Nodes whit the Hub.
  • Run the Hub and Nodes on Docker Images.
  • Setup a Test Suite to run on the Nodes.
  • Tips and tricks to avoid usual mistakes.

Unit Testing for Non-Coders

Prerequisite for attending the workshop: You will need a computer with the pre-done setup - please follow the preparation instructions from HERE.

Unit testing is a fundamental part of software development, providing fast feedback and driving the design of the code. Despite that, in many places it is considered to be a “developers only” domain. The commonly ignored truth is that testers can contribute to unit tests and get a lot of value in return - even if they don’t code.

In this workshop  we’ll learn how to approach unit tests, how to scope our focus and and use our testing expertise to make them better. We’ll practice reading unit tests like English and review them for missing or excessive parts as well as some tricks to quickly add some tests to an existing suite.

Not convinced yet? Come and see how unit tests are also a great tool for code-review, for improving your coding skills and you’ll be surprised by the amount of  bugs that can be found and dealt with earlier than ever, leaving everyone around with more productive time.

During the workshop the participants will be going over (java) code, reviewing unit tests to spot multiple types of issues both in the unit tests and in the application code through it and even add some tests of their own. 

Key takeaways: 

  • Strategy for reading unit tests
  • What can a (non-coding) tester contribute, and how?
  • Why care about unit tests if I’m not a coder
Subscribe to Workshops