Does test-driven development improve class design? A qualitative study on developers’ perceptions
Background: Developers commonly affirm that writing unit tests improve internal quality of a software, besides a more obvious effect on external quality. This is particularly common among Test-Driven Development (TDD) pactitioners, who leverage the acting of writing tests to think about and improve class design. However, it is not clear how this effect occurs.
Methods: This study investigates the developers’ perceptions on how the practice of TDD influences class design, by means of a qualitative study with 25 participants from 6 different companies in Brazil. In this paper, we share their opinions and experience.
Results: According to them, the practice of test-driven development does not drive directly the design, but gives them a safe space to think, the opportunity to refactor constantly, and subtle feedback given by unit tests, are responsible to improve the class design.
Conclusions: We suggest developers to experiment the practice of TDD, as its effects look positive to software developers. As future work, tools may be developed to automatically warn developers about classes that have testability problems, or even to suggest them to practice TDD in specific parts of the code.
BibTeX:
@article{aniche-tdd-and-class-design, author = "Maurício Aniche and Marco Aurélio Gerosa", title = "Does test-driven development improve class design? A qualitative study on developers’ perceptions", journal = "Journal of the Brazilian Computer Society", year = 2015, doi = "10.1186/s13173-015-0034-z" }