Test-driven development
Test Driven Developmenttest-first developmentTDDTest-driven development (TDD)test-driven software developmentfake or mockTDD - Test Driven DevelopmentTest driventest suitetest-driven methodology
Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: requirements are turned into very specific test cases, then the software is improved so that the tests pass.wikipedia

161 Related Articles
Kent Beck
American software engineer Kent Beck, who is credited with having developed or "rediscovered" the technique, stated in 2003 that TDD encourages simple designs and inspires confidence.
Extreme and Agile methods are closely associated with Test-Driven Development (TDD), of which Beck is perhaps the leading proponent.


Magic number (programming)
magic numbermagic numbersMagic debug values
Thus, declaring is better than several occurrences of the 'magic value' in a test suite.
Software bug
bugsbugsoftware bugs
Programmers also apply the concept to improving and debugging legacy code developed with older techniques.
In test-driven development unit tests are written before the code and the code is not considered complete until all tests complete successfully.


Continuous integration
CIbuild serverintegration is done automatically
In XP, CI was intended to be used in combination with automated unit tests written through the practices of test-driven development.
Extreme programming
XPcollective code ownershipcourage in programming
Test-driven development is related to the test-first programming concepts of extreme programming, begun in 1999, but more recently has created more general interest in its own right.
Acceptance test–driven development
Acceptance test-driven development
Advanced practices of test-driven development can lead to acceptance test–driven development (ATDD) and Specification by example where the criteria specified by the customer are automated into acceptance tests, which then drive the traditional unit test-driven development (UTDD) process.
ATDD is closely related to test-driven development (TDD).
Behavior-driven development
Behavior driven developmentBDDbehavior-driven
BDD (behavior-driven development) combines practices from TDD and from ATDD.
It emerged from test-driven development (TDD).
Code refactoring
refactoringrefactoredrefactor
It is possible to write tests for low and easy maintenance, for example by the reuse of error strings, and this should be a goal during the code refactoring phase described above.
Mock object
mockingFake objectmock
The use of the mock object design pattern also contributes to the overall modularization of the code because this pattern requires that the code be written so that modules can be switched easily between mock versions for unit testing and "real" versions for deployment.
Programmers working with the test-driven development (TDD) method make use of mock objects when writing software.
Software testing
beta testingtestingbeta
A high number of passing unit tests may bring a false sense of security, resulting in fewer additional software testing activities, such as integration testing and compliance testing.
In contrast, some emerging software disciplines such as extreme programming and the agile software development movement, adhere to a "test-driven software development" model.


Design by contract
contractscontractdesign contract
This benefit is complementary to design by contract as it approaches code through test cases rather than through mathematical assertions or preconceptions.
Apache Ant
AntApache Ant build script
Because Ant made it trivial to integrate JUnit tests with the build process, Ant made it easy for willing developers to adopt test-driven development, and even extreme programming.
Assertion (software development)
assertionsassertionassert
Assertion constructs in a language allow for easy test-driven development (TDD) without the use of a third-party library.
Interface (computing)
interfaceinterfacescomputer interface
In another case, a fake or mock implementation may be substituted during testing.
XUnit
COBOLUnit
Developers may use computer-assisted testing frameworks, commonly collectively named xUnit (which are derived from SUnit, created in 1998), to create and automatically run the test cases.
Test case
test casestest-caseTest-case management software
Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: requirements are turned into very specific test cases, then the software is improved so that the tests pass.
Legacy code
legacy
Programmers also apply the concept to improving and debugging legacy code developed with older techniques.
Use case
use casesuse-caseUse case diagram
User story
user storiesstoriescustomer's story language

Duplicate code
code duplicationduplicated codeDuplication
