The goal of this survey was to explore what teams that have adopted test driven development (TDD) are doing in practice in addition to TDD to explore requirements, to explore design, and to test their solutions. TDD is an approach that combines test-first development (TFD) and refactoring. With TFD you write a single test and then just enough production code to fulfill that test. Refactoring is a strategy where you improve the quality of something (source code, your database schema, your user interface) by making small changes to it that do not change its semantics - in other words refactoring is a clean-up activity that makes something better but does not add or subtract functionality. Because you write a test before you write the code the test in effect does double duty in that it both specifies and validates that piece of code. A test-driven approach can be applied at both the requirements level and at the design level.
Some findings include:
Figure 1. Requirement practices in addition to ATDD/BDD.
Figure 2. Design practices in addition to TDD.
Figure 3. Testing strategies in addition to TDD.
The Survey Questions
Raw Data
Summary Presentation
You may use this data as you see fit, but may not sell it in whole or in part. You may publish summaries of the findings, but if you do so you must reference the survey accordingly (include the name and the URL to this page). Feel free to contact me with questions. Better yet, if you publish, please let me know so I can link to your work.
I'm sharing the results, and in particular the source data, of my surveys for several reasons: