Tester Driven Development
Encyclopedia
Tester-driven development is an anti-pattern
Anti-pattern
In software engineering, an anti-pattern is a pattern that may be commonly used but is ineffective and/or counterproductive in practice.The term was coined in 1995 by Andrew Koenig,...

 in software development
Software development
Software development is the development of a software product...

. It should not be confused with test-driven development
Test-driven development
Test-driven development is a software development process that relies on the repetition of a very short development cycle: first the developer writes a failing automated test case that defines a desired improvement or new function, then produces code to pass that test and finally refactors the new...

. It refers to any software development project where the software testing
Software testing
Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software...

 phase is too long. The testing phase is so long that the requirements may change radically during software testing. New or changed requirements often appear as bug
Software bug
A software bug is the common term used to describe an error, flaw, mistake, failure, or fault in a computer program or system that produces an incorrect or unexpected result, or causes it to behave in unintended ways. Most bugs arise from mistakes and errors made by people in either a program's...

 reports. Bug tracking software usually lacks support for handling requirements. As a result of this nobody really knows what the system requirements are.

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
    Project management
    Project management is the discipline of planning, organizing, securing, and managing resources to achieve specific goals. A project is a temporary endeavor with a defined beginning and end , undertaken to meet unique goals and objectives, typically to bring about beneficial change or added value...

    .


Things get worse when the testers realise 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.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK