TY - JOUR
T1 - Does test-driven development improve class design? A qualitative study on developers’ perceptions
AU - Aniche, Maurício
AU - Gerosa, Marco Aurélio
N1 - Publisher Copyright:
© 2015, Aniche and Gerosa.
PY - 2015/12/10
Y1 - 2015/12/10
N2 - 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.
AB - 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.
KW - Agile methodologies
KW - Class design
KW - Test-driven development
KW - Unit testing
UR - http://www.scopus.com/inward/record.url?scp=84941197766&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84941197766&partnerID=8YFLogxK
U2 - 10.1186/s13173-015-0034-z
DO - 10.1186/s13173-015-0034-z
M3 - Article
AN - SCOPUS:84941197766
SN - 0104-6500
VL - 21
JO - Journal of the Brazilian Computer Society
JF - Journal of the Brazilian Computer Society
IS - 1
M1 - 15
ER -