Collaborative Exploratory and Unit Testing

Maaret Pyhäjärvi & Llewellyn Falco

How to harness the insights of bug discovery to protect your code.

Course length: 1 day
Registrations for this course are now closed.

Cross-functional teams have team members with specialized in-depth skills. Collaboration between team members has a significant impact on the team’s ability to deliver value efficiently. In this course, we teach you how to pull together a tester-facing discipline of Exploratory testing and the developer-facing discipline of Unit testing. To do this, we create insights into the product and code through exploring and leverage these insights via unit testing. This course invites testers and developers joining to learn to boost their collaboration to new level.

The course teaches from the premise of combining forces of machines and humans, leveraging developer and tester skill sets. Machines are particularly well suited for exploring large computational space. Machines enable us to cover variations, in cases where manually we would sample and potentially miss problems. In variations and repeating, computers will easily outperform humans. What they can’t do is have any insight or creative ideas. That’s where humans excel and testers in particular have refined the skill to creatively understand and use software to gain understanding and insight into its quality and weaknesses.

While the focus of the course is on harnessing the insights of bug discovery to protect your code with automation, you will also shape up your basic skills on how skilled testers think while exploring to effectively find problems with the product.

This is a hands-on course, where a laptop per pair is required.

What will participants be doing?

The course allows for a mix of managers, testers and developers to participate. We explore in pairs and implement unit tests in a mob with a style of pairing where the navigator on the keyboard gets to follow the instructions from the group (strong-style pairing). The facilitators help in getting the tasks done balancing the available skills in the group.

Why join?

Why should a developer join this course?

  • Improve understanding of experimenting with the product through exploratory testing
  • Boost ability to deliver value by collaborating well with testers
  • Improve ability to turn testing observations into useful ideas for unit testing
  • Get ideas on how to use ApprovalTests-framework to boost your unit testing capability; from spot checking to brute checking

Why should a tester join this course?

  • Become more helpful for developers by not only communicating bugs found but also ideas from exploration that could be used to improve unit tests
  • Build understanding of the connection of insights from exploring the product, to exploring the code to creating a unit test
  • Enhance skills in testing: from test cases to exploring with understanding of what information developers would find useful
  • Extend abilities to implement relevant checks

Why should anyone join this course?

  • Improve collaboration skills in paired and grouped hands-on work
  • Build mutual understanding and respect for developer and tester skill sets
  • Learn how to foster developer-tester collaboration in teams

About the instructors

Maaret Pyhäjärvi is a tester extraordinaire specializing in breaking illusions about software through means of exploratory testing. She is a software specialist with soft spots for hands-on testing, helping teams grow and building successful products and businesses.

Llewellyn Falco is a brilliant developer with the skill to bring out the best in others through pairing and facilitating group work. He specializes in technical agile practices on legacy code and excels in unit testing. He has created ApprovalTests as a means of supercharging unit tests with powerful asserts.