Craig a man of many talents, but no sense of how to use them. Craig could be out changing the world but would prefer to make software instead. He possesses a passion for software design, but more importantly software quality and designing systems that can achieve this in a technically diverse and constantly evolving tech world. 

When not playing with software I can often be found writing, designing board games, or running long distances for no apparent reason. 

Craig has published the book, Quality by Design and is a frequent blogger and writer on software architecture and quality-related topics. 

A Tester’s Guide to Unit Testing 

We talk a lot about the testing triangle and how we need to focus more on the lower level unit and component tests for most of our coverage. However, in my experience unit tests and how to effectively write them remains a mystery for many testers and in this workshop I want to unlock the idea behind unit tests, how to write them in an effective way that ensures a high coverage, mitigates the need for too many higher integration tests and most importantly, makes them easy to read and contribute to for testers. 

In this workshop  I want to share my experience as both a developer and a tester in highlighting the mind-sets of both and how through collaboration between developers and testers, software quality can be greatly improved through effective unit testing.  The talk will discuss the different unit testing approaches, provide tips on how to write unit tests in a simple way and cover things like mocking and coverage analysis to improve coverage and scope of unit tests.  

The workshop will be mostly technical, but also include a few soft skill tips to aid the communication and provide testers with more confidence to help change the unit testing culture in their teams.  

As someone who has filled the role of both developer and tester, I understand both viewpoints on unit testing.  In this workshop  would like to share my experience on how having a better understanding of unit tests can enhance a testers ability to test more effectively and contribute in helping catch defects earlier, while reducing the load on the tester at the end of any development cycle. This workshop will require testers to bring their own laptops, connect to Github and do some basic coding as they learn how to write unit tests and use this to better their testing elsewhere. The focus of the technical workshop will be in Java and require people to have JDK installed on their machines, along with Visual Studio Code or IntelliJ. The rest of the code will be supplied on GitHub where all the required libraries will be available.

Workshop Content

  1. Discussion – Why Tester’s Should Get Involved With Unit Testing 
  2. Discussion – What is Unit Testing and what scenarios should be covered by unit tests 
  3. Code Session 1 – Setup an environment for unit tests. Work through the basic structure of unit testing 
  4. Code Session 2 – Introduction to mocking 
  5. Code Session 3 – Writing some unit tests against a small application that features mocking 
  6. Q&A 

Lab Requirements

  • Laptop 
  • Code IDE 
  • NPM 
  • Node.JS 
  • Java 
  • Git 


None. This workshop will cater for beginners with no exposure to unit testing so they can come in with as little knowledge as possible. Having some foundational knowledge f programming will help though.