Skip to content
All posts
February 19, 20264 min read

When NOT to Automate Tests: The Cases Automation Makes Worse

Automation isn't always the answer. Here are the specific scenarios where automating your tests wastes time, creates false confidence, and makes your test suite harder to maintain.

TestingAutomationBest Practices
Share:

Everyone pushes automation. CI/CD pipelines, zero-manual-testing pledges, "if it's not automated it doesn't count." This is cargo cult QA.

Automation is a tool. Like any tool, using it in the wrong situation makes things worse, not better. Here's when to leave the test manual.


One-Time or Rarely-Used Features

If a feature runs once a quarter — an annual report export, a database migration tool, a one-time data cleanup wizard — automating it is likely a net negative.

The cost to write, maintain, and keep it passing exceeds the cost of manually checking it the two times a year it gets used.

The rule: If you'll run the test fewer times than it takes to write and maintain it, don't automate.


Highly Unstable UI Under Active Development

Automating a UI that's being redesigned weekly is setting yourself up for constant churn. Your selectors break. Your assertions fail because button text changed. You spend more time fixing tests than fixing bugs.

[!WARNING] Automating UI tests too early is one of the most common automation mistakes. Wait for the design to stabilize before investing in UI automation.

Write exploratory tests manually during active UI development. Automate once the UI is stable.


Exploratory and Usability Testing

By definition, exploratory testing can't be automated. You're probing the unknown — following hunches, testing edge cases you discovered mid-session, questioning assumptions.

Usability testing is even worse to automate. "Does this flow feel natural?" is not a question a script can answer.

These tests require human judgment. Automating them is impossible, and trying to approximate them with automation misses the entire point.


Tests That Require Human Senses

  • Does this color look accessible to color-blind users?
  • Does this audio notification sound at the right volume?
  • Does this animation feel smooth or janky?
  • Is this text readable on a dark background?

Automated visual regression tools catch obvious diffs but miss nuance. For qualitative checks, you need a human.


One-Off Bug Verification

You found a bug. You fixed it. You need to verify the fix. This is a five-minute manual check.

Writing an automation test for this specific bug before you know if it'll recur is premature. If the same bug pattern recurs three times, then automate it. One occurrence? Check manually, move on.


Tests That Require External Dependencies You Can't Control

If a test depends on:

  • A third-party API with rate limits
  • Hardware (specific device, specific sensor)
  • Network conditions (latency, packet loss simulation)
  • Real payment processing

...automating is painful. You'll spend more time dealing with test infrastructure than writing tests.

Mock where you can. But if the mock is so complex it's maintaining a second system, the test might belong manual.


When the Test Environment Is Unreliable

If your staging environment goes down weekly, your automation suite will have constant false failures. The team stops trusting the suite. Flaky tests get ignored. The whole point of automation disappears.

Fix the environment first. Automation running against an unstable environment produces noise, not signal.


Complex Setup With Unpredictable State

Some test scenarios require:

  • Specific database state that's hard to reproduce programmatically
  • Multi-user coordination (user A does X while user B does Y simultaneously)
  • Real physical device placement (location-based features)
  • Time-dependent behavior (what happens at midnight on Dec 31?)

These can sometimes be automated, but the setup complexity often exceeds the value. An experienced QA engineer can set these up faster manually.


The Decision Checklist

Before automating any test, ask:

QuestionIf No → Consider Manual
Will this run more than 10 times?Rare tests don't justify automation cost
Is the UI/API stable?Unstable code = constant test maintenance
Can I fully control all dependencies?External deps make automation fragile
Can pass/fail be determined programmatically?Requires human judgment → keep manual
Will the team trust the test results?Noisy environment → manual first

What to Do Instead

Manual doesn't mean undocumented. For tests that stay manual:

  • Write clear, repeatable test cases with steps and expected results
  • Group them in a session-based testing charter
  • Track when they were last run
  • Assign ownership (who checks this before release?)

Structure your manual tests the same way you'd structure automated ones — just executed by a human.


Takeaways

  • Automation coverage isn't a vanity metric to maximize — it's an investment with ROI
  • Unstable UI, one-time features, and exploratory testing are automation anti-patterns
  • A bad automated test is worse than no automated test — it creates false confidence
  • Manual tests should be structured and tracked, not random
  • Know why you're automating before you write a single line of test code
Share:
S

Sudarshan Chaudhari

AI Systems Builder / Product Engineer

Bangkok, Thailand

Solo Android developer with 13+ years in QA, building Android apps, AI automation systems, and developer tools at SudarshanTechLabs.

Stay updated

Get new posts on Android, Kotlin, and solo dev straight to your inbox.

Newsletter preferences

Building something? Available for Android dev and QA consulting.

Work with me

Comments — powered by Giscus