Comparing Automated Tic Tac Toe GamePlay Implementations
TLDR; Comparing implementations is not done to criticise, it is done to learn, and understand that different motivations and end goals create different code. Different models of the application, lead to different code. The programmer implements models of the domain, and behaviour, as code.
Can we effectively use Thread.sleep?
TLDR; I use Thread.sleep as a tactic, not a strategy, unless I’m simulating random user pauses, in which case my implementation of that abstraction will involve a sleep.
When do you use Thread.sleep?
I avoid Thread.sleep as much as possible when automating.
How and Why to use Variation in Software Testing
TLDR; Variation is a useful tactic to apply to Software Testing. Often this is random variation within an equivalence class. We can also vary when performing Exploratory Testing. Consider varying order, data, state, timing.
I found what looks like a potential bug in LinkedIn regarding the hastag processing, and it made me think through how applying a Variation tactic could help.
Automate Playing Tic Tac Toe online game using JavaScript from the browser console.
TLDR; Study examples of automating a game in browser using JavaScript from the dev tools console, and an example of automating outside the browser using a standalone execution tool.
Tips for Presenting Online
TLDR; A collection of tips for presenting online presented on The Evil Tester Show Podcast Episode: get a decent microphone.
500+ videos of experience, crammed into one tiny blog post.
How to assess coverage of automation?
TLDR; Coverage requires some sort of model. We can organise code to support review against a mental model, and some models are executable. Other models we compare against the output of execution.
I was asked a series of questions: How can we document what an automated test does and covers without adding a lot of overhead? How do we know what is not covered by automation?
How to model data shared by Page Objects?
TLDR; use abstractions for precision and create new abstraction layers which model state and data flow rather than adding it to lower level classes.
This post was created as a response to a question I was asked over email regarding approaches for modelling data re-use in abstractions.
Overview of LEAPWORK Web Automating Tool
TLDR; LEAPWORK tool helps automate web applications and APIs using graphical building blocks instead of a programming language
An Introduction to API Based Documentation Automating
TLDR; The formal api documentation specifications ecosystems have tools that can help create documentation more easily and use the documentation to automatically validate e.g. Dredd, Swagger and StopLight
I’m working on an API for The Pulper, and I want to write documentation in a formal spec and use tools to validate it. Sounds Easy.
How to write a link checker in the browser with Vanilla JavaScript
TLDR; A simple link checker running from a snippet or console has some secondary advantages like jumping to the links and showing CSP and CORB errors


