Testing

Anti-patterns in test strategy, test architecture, and quality practices that block continuous delivery.

These anti-patterns affect how teams build confidence that their code is safe to deploy. They create slow pipelines, flaky feedback, and manual gates that prevent the continuous flow of changes to production.


Manual Testing Only

Zero automated tests. The team has no idea where to start and the codebase was not designed for testability.

Manual Regression Testing Gates

Every release requires days or weeks of manual testing. Testers execute scripted test cases. Test effort scales linearly with application size.

Testing Only at the End

QA is a phase after development, making testers downstream consumers of developer output rather than integrated team members.

Inverted Test Pyramid

Most tests are slow end-to-end or UI tests. Few unit tests. The test suite is slow, brittle, and expensive to maintain.

Code Coverage Mandates

A mandatory coverage target drives teams to write tests that hit lines of code without verifying behavior, inflating the coverage number while defects continue reaching production.

QA Signoff as a Release Gate

A specific person must manually approve each release based on exploratory testing, creating a single-person bottleneck on every deployment.

No Contract Testing Between Services

Services test in isolation but break when integrated because there is no agreed API contract between teams.

Rubber-Stamping AI-Generated Code

Developers accept AI-generated code without verifying it against acceptance criteria, allowing functional bugs and security vulnerabilities to ship because “the tests pass.”

Manually Triggered Tests

Tests exist but run only when a human remembers to trigger them, making test execution inconsistent and unreliable.