With The Ultimate Software Testing Course, Code Guide & Community.

Featuring React, Node.js, Chimp.js, Selenium,, Mocha, Meteor & more.


Just the right skills,
just when you need them

Learn the basics and improve quickly. Each chapter builds your knowledge as you continually deliver faster.

Front-End, Back-End
and End-to-End Test Coverage

Learn to be precise, fast and to skillfully create tests that shield your back and best-in-class testing tools.


All Inclusive,
Team-Wide Processes

Help your whole team embrace quality processes and harmonize Product, Engineering, Devops and QA.


© Copyright LLC




Get Notified

Available for
pre-order soon.

Sam Hatoum is known internationally as one of the foremost experts in software test automation, quality assurance and holistic quality delivery. Sam is the founder of and has led software delivery and test automation transformations for some of the world’s most respected brands, including Audi, BBC, Nike, Sky, Volkswagen and many more.
Sam has previously published the popular Meteor Testing Manual and is the architect behind several prominent testing technologies including Chimp.js and Velocity previously, the official E2E testing framework of Meteor JS.
Linked In: samhatoum 
Twitter: @sam_hatoum
Medium: @sam_hatoum
GitHub: @samhatoum
Notify Me When It Is Available!



Node JS
Chimp JS
Cucumber JS



Per person
one-time, no monthly fee

$79 / user

Written Guide

Code Library


Written & updated by experts, readable on any device.

Forkable test code samples, feat. React, NodeJS, Mocha & more.

Chat with and learn from a global community of quality enthusiasts.


Forkable Code Samples and Tutorials


About The Author


Quality Foundations

Software Delivery Fundamentals 
Value and quality are the underlying principles of all software delivery systems. Understanding the relationship between them is essential to understanding the purpose of automated testing. 


A Holistic Approach 
Applying quality is something that is done at every part of the software delivery life cycle. Here we present an end-to-end delivery approach that encourages feedback from everyone involved. 


Embracing Specifications 
The specification is arguably the most important part of creating valuable software. See how you can reduce the defect count of software by up to 50% before a single line of code is written. 


Quality Functions 
Learn what some of the various quality functions are and how they are essential to helping you create high-quality products. 


How to Use This Guide 
A description of the structure and approach used in this course, as well the reasoning behind the technology choices made within. 

Iteration 0 - Setup

What Is Iteration 0? 
Starting a new project is a great time to get things right. Let us show you how to create a setup that puts testing as a first-class citizen and achieve the holy-grail of continuous deployment. 


Local Development 
A lot of quality functions can be applied at the local development environment to allow you to delivery high quality features quickly. Creating a hyper-fast feedback loop is the key and this lesson shows you how to do that. 


Branching Strategy 
See how you can create parity between your development and project management practices using branches, and learn how to develop features in parallel without stepping on other developers toes. 


Continuous Integration 
Setup a server that can build and test integrated code from all the developers and that provides rapid feedback when there are issues. 


Continuous Deployment 
The "holy grail" where every build that passes the automated tests is immediately deployed to production. This chapter walks you through how to put it into practice.


Iteration 1

Learn how to create better stories by understanding and defining the business domain.  Learn the right way to write user stories and reap the benefits of easier estimation and quicker implementation. 


Design  - 1st Pass
Learn about the separation of concerns and how this important principle enables you to create more testable and maintainable systems.  Learn how domain driven design can help you tackle complexity in the heart of your software.


Actualize - 1st Pass
Using a combination of behaviour driven development, modeling by example and domain driven design, see how you can turn your business domain into a digital one that helps you better understand your business.  


Design - 2nd Pass
User interfaces can be complex and difficult to test. Here you will learn how to break down the complexity into manageable and easy-to-test parts.


Actualize - 2nd Pass
Learn the fundamentals of test driven development. Although this lesson starts from the very beginning, it's aimed at both teaching newbies and also to clear up any misconceptions that some more experienced developers may have.  


Learn how to measure throughput, identify bottlenecks and enable continuous improvement.

Iteration 2

More story writing techniques that shows how to create stories that are independent of one another, even where it seems there are dependencies between them. 


See how hexagonal architecture can centralize your business logic and build an application that stands the test of time. With a good architecture, testing and maintenance become easier and faster. 


Tweak your build process to accommodate the increasing complexity of your code.  In this lesson we improve the speed of the build through caching and parallelization to keep the end-to-end build and deploy duration under 10 minutes.  Discover the mock, stub and spy test double techniques, and how to practically use test-driven development in the right way to help drive out the design of your system.   


Continue to measure throughput, identify bottlenecks and enable continuous improvement.  

Iteration 3

Learn the art and science of organizing stories and a system that helps you to store, quickly find and limit scope of stories. 


Apply code coverage metrics in the form of unit, domain and end-to-end test runs to give a true reading of coverage. Mocks, stubs and spies are useful for testing units, but what about end-to-end tests? Find out how you can use fakes in these situations to create a predictable and stable test suite. 



Iteration 4

Specifications change over time and so should user stories. Learn how to modify stories, and when you should create new stories vs changing existing ones. 


Infrastructure and data optimization additions can be confusing to test. Find out how to add a caching layer and test these changes without compromising your tests or architecture. 


When your business domain is digitized, you can use it as a simulation to help you discover any issues and test your assumptions. This is a very powerful technique that helps prevent expensive defects from ever occurring.   When using external systems such as databases and caches it can be difficult to decide the level of testing and indeed the types of tests to use. This lesson focuses on developing a caching layer by driving its design through tests.