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.