The Clean Test Automation Monthly is a monthly blog post that shares interesting or useful test automation content which I consumed during the current month. This blog post is always published on the first day of the "next" month.
Let's begin!
Test Design
How to Keep Your Smoke Testing Useful argues that we should keep our smoke test suite as small (and fast) as possible and concentrate on testing things that matter.
The Big TDD Misunderstanding argues that we should write our tests from the user's perspective and provides four tips that help us to write good tests.
A Field Guide to Not Overengineering Test Automation describes how we can avoid writing an over-engineered test framework that requires more maintenance than our application.
When you outsource testing to the AI, you lose the ability to understand your system explains that if we outsource testing to AI, we will loose our mental model of the application because we don't get the understanding that's traditionally gained by writing tests and reading code.
Why AI won't save your Flaky Tests argues that if we use AI for fixing flaky tests, we will only hide the architectural issues which cause our tests to fail randomly.
Lessons I Wish I Knew When I Started in Test Automation identifies five lessons the author would have wanted to learn sooner.
Refactoring the RestAssured.Net code with Claude Code describes how the author used Claude Code to refactor the codebase of the RestAssured.Net project and explains what the author learned from this experiment.
Backend
Why We Should Not Mock Collections With Mockito explains why we should use real collections instead of mock objects when we are writing tests for code that uses collections (this a good advice for model objects as well).
Data Driven API Testing in Java with Rest-Assured and TestNG: Part 1, Part 2, Part 3, Part 4, and Part 5 describes how we can write data-driven tests with Rest Assured and TestNG (use the friend link if you don't have a Medium account).
UI / End-to-End
How I solved SMTP Timeouts with Mailpit and JavaMail explains how the author solved a DNS resolution issue which caused test failures when the system under test tried to send an email to localhost.
Testing Error Boundaries by Breaking Contracts, Not Code argues that we should test our frontend applications by intercepting successful API responses and injecting "contract violations" (such as missing fields or unexpected data types). This helps us to ensure that our UI degrades gracefully instead of crashing.
Using agent skills to write Playwright tests describes how the author generates end-to-end tests by leveraging AI agents.