Test with confidence, code with clarity

Your home for mastering Test-Driven Development through real-world katas and expert guidance.

TDD Buddy Logo
Latest Property-Based Tests Are the Guardrail Agents Need

Kata Catalog

Practice TDD with a curated set of real-world katas, each with clear requirements and test cases.

Browse Katas

Guides & References

Learn best practices, naming conventions, and advanced TDD techniques from industry experts.

Explore Guides

Interactive Learning

Discover the TDD Gears model and learn how to apply TDD principles in real-world scenarios.

Learn More

Why TDD Matters More in the AI Era

The bar for "good tests" just moved. Agents made it non-optional.

  • The lookup-table attack is already in the public record. Agents hardcode the specific values the examples name and return defaults for the rest. The visible tests pass. The behavior the examples were supposed to specify is absent outside the enumerated points.
  • A property quantifies over inputs the agent did not see at code-write time. The implementation that satisfies three named cases does not satisfy an assertion drawn from a generator at run time. The quantifier is the guardrail, and the generator is what keeps the guardrail steep.
  • The fuzzer is the reviewer that never gets bored. The shrinker is the one that reports clearly. Property-based frameworks search thousands of inputs per run and hand back the minimal failing case. Tirelessness pointed at finding violations is what review always needed and almost never had.
  • Properties are one layer in the enforcement stack, not the whole stack. The guardrail holds when the generator covers a large space, the seed varies across runs, and mutation testing checks whether the lower layers constrain anything. Remove any of those and the gap the quantifier opens closes again.

Read the argument: Property-Based Tests Are the Guardrail Agents Need

The Bar Moved

Old bar

Tests exist and pass. Good enough for humans with context.

New bar

Scenario names · builders · domain types · ubiquitous language. The test suite is the interface agents operate against.

TDD Gears

Shift gears based on context, not habit

TDD Gears model showing Low, Medium, High, and Reverse gears for test-driven development

Low Gear

New territory. Build context. Small steps. Learn the shape of the problem before solving it.

Medium Gear

Patterns emerge. Apply design principles. Let the tests guide you toward better abstractions.

High Gear

Known patterns. Follow existing architecture. Move fast because the structure is already proven.

Reverse Gear

Wrong direction. Back up. Delete the test. Try a different approach. This isn't failure — it's steering.