Test-Driven Development
A software development methodology that requires developers to write failing test cases before writing the implementation code that makes those tests pass. This approach drives sound interface design and code quality by anchoring development around predefined test specifications.
Core Facts
In the traditional test case writing process, test engineers need to manually break down functional modules, devise test scenarios, and write operation steps and expected results.
A TDD test-driven approach can be adopted, having the AI write tests first and then write the implementation to pass those tests.
Timeline (last 90 days)
The Implement skill uses test-driven development (TDD) to carry out the actual implementation.
Formal methods, design by contract, and test-driven development are all essentially about transforming vague quality expectations into executable assertions.
Upfront constraints are similar to "test first" in test-driven development: first define "what counts as correct," then let the generation process converge in that direction.
Unlike traditional test-driven development, SDD moves acceptance criteria forward to the natural-language level, allowing non-engineering roles (product, security, compliance) to participate in review.
To remedy the problem of AI-generated code lacking boundary condition handling, one needs to explicitly state exception requirements in the prompt, or introduce test-driven development (TDD) to have the AI write tests first and then the implementation, thereby making boundary conditions explicit.
Tests should be based on specification rather than implementation.
TDD fails for AI agents because even when tests are written first, the agent still uses the same language model within the same context window to understand the requirements, making it impossible to separate the cognitive sources of the question-setter and the question-answerer.
The design philosophy behind Devin's self-testing capability is consistent with the test-driven development (TDD) concept in software engineering, with the executing subject shifting from human to AI.
A TDD test-driven approach can be adopted, having the AI write tests first and then write the implementation to pass those tests.
Matt believes a good codebase is one that is easy to test, and that test-driven development is a key skill that forces LLMs to slow down.
1 more timeline events
All Facts (12)
In the traditional test case writing process, test engineers need to manually break down functional modules, devise test scenarios, and write operation steps and expected results.
75%VerifiedA TDD test-driven approach can be adopted, having the AI write tests first and then write the implementation to pass those tests.
65%UnverifiedThe Implement skill uses test-driven development (TDD) to carry out the actual implementation.
50%UnverifiedFormal methods, design by contract, and test-driven development are all essentially about transforming vague quality expectations into executable assertions.
50%UnverifiedUpfront constraints are similar to "test first" in test-driven development: first define "what counts as correct," then let the generation process converge in that direction.
50%UnverifiedUnlike traditional test-driven development, SDD moves acceptance criteria forward to the natural-language level, allowing non-engineering roles (product, security, compliance) to participate in review.
50%UnverifiedTo remedy the problem of AI-generated code lacking boundary condition handling, one needs to explicitly state exception requirements in the prompt, or introduce test-driven development (TDD) to have the AI write tests first and then the implementation, thereby making boundary conditions explicit.
50%UnverifiedTests should be based on specification rather than implementation.
50%UnverifiedTDD fails for AI agents because even when tests are written first, the agent still uses the same language model within the same context window to understand the requirements, making it impossible to separate the cognitive sources of the question-setter and the question-answerer.
50%UnverifiedThe design philosophy behind Devin's self-testing capability is consistent with the test-driven development (TDD) concept in software engineering, with the executing subject shifting from human to AI.
50%UnverifiedMatt believes a good codebase is one that is easy to test, and that test-driven development is a key skill that forces LLMs to slow down.
50%UnverifiedThe Eval-Driven Development methodology of defining evaluation criteria and test sets before optimizing prompts is in the same spirit as Test-Driven Development (TDD).
50%