Test-Driven Development (TDD) Methodology
Jump to navigation
Jump to search
A Test-Driven Development (TDD) Methodology is a agile software development methodology that involves test case creation before the actual software creation.
- Context:
- It can result in a suite of automated tests that can be used for regression testing.
- It can help to clarify the requirements before the implementation begins which may reduce the need for code refactoring.
- It can contribute to higher software quality and code coverage.
- It can be more time-consuming in the short term but tends to lead to fewer bugs and better software maintainability in the long term.
- It can encourage continuous integration and continuous delivery practices.
- It can be challenging to integrate with legacy systems which were not developed under TDD practices.
- …
- Example(s):
- ...
- Counter-Example(s):
- a Waterfall Software Development Methodology, where the process flows sequentially from requirement analysis to design and implementation, with testing occurring almost exclusively at the end.
- an Ad-Hoc Development Approach, where code is written without formal specification or without writing tests beforehand.
- a Big Bang Integration Approach, where all parts of a system are integrated at one time and only then tested.
- See: Domain-Driven Design, Behavior-Driven Development, Unit Test, Test Case, Legacy Code, Code Refactoring, Continuous Integration, Software Testing, Extreme Programming.
References
2020
- (Wikipedia, 2020) ⇒ https://en.wikipedia.org/wiki/test-driven_development Retrieved:2020-5-18.
- 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 code is improved so that the tests pass. This is opposed to software development that allows code to be added that is not proven to meet requirements.
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.
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.[1]
Programmers also apply the concept to improving and debugging legacy code developed with older techniques.[2]
- 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 code is improved so that the tests pass. This is opposed to software development that allows code to be added that is not proven to meet requirements.
2012
- (Hammond & Umphress, 2012) ⇒ Susan Hammond, and David Umphress. (2012). “Test Driven Development: The State of the Practice.” In: Proceedings of the 50th Annual Southeast Regional Conference. ISBN:978-1-4503-1203-5 doi:10.1145/2184512.2184550
- QUOTE: Test-Driven Development has been a practice used primarily in agile software development circles for a little more than a decade now.
2011
- http://en.wikipedia.org/wiki/Test-driven_development#Requirements
- QUOTE: Test-driven development requires developers to create automated unit tests that define code requirements (immediately) before writing the code itself. The tests contain assertions that are either true or false. Passing the tests confirms correct behavior as developers evolve and refactor the code. Developers often use testing frameworks, such as xUnit, to create and automatically run sets of test cases.