Tester-driven development
It is proposed that this article be deleted because of the following concern:
If you can address this concern by improving, copyediting, sourcing, renaming, or merging the page, please edit this page and do so. You may remove this message if you improve the article or otherwise object to deletion for any reason. Although not required, you are encouraged to explain why you object to the deletion, either in your edit summary or on the talk page. If this template is removed, do not replace it. This message has remained in place for seven days, so the article may be deleted without further notice. Find sources: "Tester-driven development" – news · newspapers · books · scholar · JSTOR Nominator: Please consider notifying the author/project: {{subst:proposed deletion notify|Tester-driven development|concern=Fails [[WP:GNG]]}} ~~~~ Timestamp: 20250329090530 09:05, 29 March 2025 (UTC) Administrators: delete |
This article relies largely or entirely on a single source. (March 2024) |
In software engineering, tester-driven development, or bug-driven development, is an anti-pattern where the requirements are determined by bug reports or test results rather than, for example, the value or cost of a feature. The concept is generally invoked facetiously, and comes with the implication that high volumes of computer code are written with little regard for unit testing by the programmers.
The term itself is a tongue-in-cheek reference to test-driven development, a widely used methodology in agile software practices. In test-driven development tests are used to drive the implementation towards fulfilling the requirements. Tester-driven development instead shortcuts the process by removing the determination of requirements and letting the testers (or the QA team) drive what they think the software should be through the testing (or QA) process.[1]
Projects that are developed using this anti-pattern often suffer from being extremely late. Another common problem is poor code quality.
Common causes for projects ending up being run this way are often:
- The testing phase started too early;
- Incomplete requirements;
- Inexperienced testers;
- Inexperienced developers;
- Poor project management.
Things get worse when the testers realize that they don't know what the requirements are and therefore don't know how to test any particular code changes. The onus then falls on the developers of individual changes to write their own test cases and they are happy to do so because their own tests normally pass and their performance measurements improve. Project leaders are also delighted by the rapid reduction in the number of open change requests.
See also
- Extreme programming
- Extreme programming practices
- Feature creep
- Requirements management
- Software prototyping – creating prototypes of software applications to get feedback from users early in a project
References
- ^ Ali, Junade (2016). Mastering PHP Design Patterns. Packt Publishing. p. 62. ISBN 9781785883422.