Test Driven Development and Its Impact on Program Design and Software Quality: A Systematic Literature Review
DOI:
https://doi.org/10.21015/vtcs.v11i1.1494Abstract
Test-Driven Development (TDD) is a methodology in software development that necessitates tests to be written before to the production code. This approach can be used in any software development paradigm that involves writing code, including Agile, Scrum, XP, and Lean. This research paper surveys the impact of TDD on software development with a specific focus on its effects on code coverage, productivity, internal and external software quality, and the affective reactions associated with TDD. The paper also identifies potential challenges and drawbacks of implementing TDD, such as increased overhead and time consumption, a learning curve for developers, and difficulty in testing certain types of code. The studies’ results suggest that TDD can improve code coverage, and code quality, reduce defects, increase productivity and developer satisfaction, improve internal and external software quality, and ultimately lead to higher customer satisfaction.References
K. Beck, "Test-driven development: by example." Addison-Wesley Professional, 2003.
M. T. Baldassarre, D. Caivano, D. Fucci, N. Juristo, S. Romano, G. Scanniello, and B. Turhan, "Studying test-driven development and its retainment over a six-month time span," Journal of Systems and Software, vol. 176, p. 110937, 2021.
B. Turhan, L. Layman, M. Diep, H. Erdogmus, and F. Shull, "How effective is test-driven development," Making Software: What Really Works, and Why We Believe It, pp. 207–217, 2010.
C. VersionOne, "2018 state of agile report," 2018.
M. Siniaalto and P. Abrahamsson, "A comparative case study on the impact of test-driven development on program design and test coverage," in First International Symposium on Empirical Software Engineering and Measurement (ESEM 2007). IEEE, 2007, pp. 275–284.
B. Kitchenham, O. P. Brereton, D. Budgen, M. Turner, J. Bailey, and S. Linkman, "Systematic literature reviews in software engineering–a systematic literature review," Information and software technology, vol. 51, no. 1, pp. 7–15, 2009.
A. Causevic, D. Sundmark, and S. Punnekkat, "Factors limiting industrial adoption of test driven development: A systematic review," in 2011 Fourth IEEE International Conference on Software Testing, Verification and Validation. IEEE, 2011, pp. 337–346.
F. Taufiqurrahman, S. Widowati, and M. J. Alibasa, "The impacts of test driven development on code coverage," in 2022 1st International Conference on Software Engineering and Information Technology (ICoSEIT). IEEE, 2022, pp. 46–50.
A. Santos, S. Vegas, O. Dieste, F. Uyaguari, A. Tosun, D. Fucci, B. Turhan, G. Scanniello, S. Romano, I. Karac et al., "A family of experiments on test-driven development," Empirical Software Engineering, vol. 26, pp. 1–53, 2021.
L. Madeyski and Ł. Szała, "The impact of test-driven development on software development productivity—an empirical study," in Software Process Improvement: 14th European Conference, EuroSPI 2007, Potsdam, Germany, September 26-28, 2007. Proceedings 14. Springer, 2007, pp. 200–211.
M. T. Baldassarre, D. Caivano, D. Fucci, S. Romano, and G. Scanniello, "Affective reactions and test-driven development: Results from three experiments and a survey," Journal of Systems and Software, vol. 185, p. 111154, 2022.
I. C. Nwandu, J. N. Odii, E. C. Nwokorie, and S. A. Okolie, "Evaluation of software quality in test-driven development: A perspective of measurement and metrics," Information Technology and Computer Science, vol. 6, pp. 13–22, 2022.
A. Tosun, O. Dieste, D. Fucci, S. Vegas, B. Turhan, H. Erdogmus, A. Santos, M. Oivo, K. Toro, J. Jarvinen et al., "An industry experiment on the effects of test-driven development on external quality and productivity," Empirical Software Engineering, vol. 22, pp. 2763–2805, 2017.
V. Bakhtiary, T. J. Gandomani, and A. Salajegheh, "The effectiveness of test-driven development approach on software projects: A multi-case study," Bulletin of Electrical Engineering and Informatics, vol. 9, no. 5, pp. 2030–2037, 2020.
A. Santos, S. Vegas, O. Dieste, F. Uyaguari, A. Tosun, D. Fucci, B. Turhan, G. Scanniello, S. Romano, I. Karac et al., "A family of experiments on test-driven development," Empirical Software Engineering, vol. 26, pp. 1–53, 2021.
W. Bissi, A. G. S. S. Neto, and M. C. F. P. Emer, "The effects of test driven development on internal quality, external quality and productivity: A systematic review," Information and Software Technology, vol. 74, pp. 45–54, 2016.
S. Mäkinen and J. Münch, "Effects of test-driven development: A comparative analysis of empirical studies," in Software Quality. Model-Based Approaches for Advanced Software and Systems Engineering: 6th International Conference, SWQD 2014, Vienna, Austria, January 14-16, 2014. Proceedings 6. Springer, 2014, pp. 155–169.
A. Cauevic, S. Punnekkat, and D. Sundmark, "Quality of testing in test driven development," in 2012 Eighth International Conference on the Quality of Information and Communications Technology. IEEE, 2012, pp. 266–271.
M. U. B. Pervez, L. Eman, and B. D. Abbas, "Test driven development: A review."
D. Staegemann, M. Volk, N. Jamous, and K. Turowski, "Exploring the applicability of test driven development in the big data domain," in ACIS 2020 Proceedings, 2020.
D. Staegemann, M. Volk, E. Lautenschläger, M. Pohl, M. Abdallah, and K. Turowski, "Applying test driven development in the big data domain–lessons from the literature," in 2021 international conference on information technology (ICIT). IEEE, 2021, pp. 511–516.
M. Siniaalto and P. Abrahamsson, "A comparative case study on the impact of test-driven development on program design and test coverage," in First International Symposium on Empirical Software Engineering and Measurement (ESEM 2007). IEEE, 2007, pp. 275–284.
L. Crispin, "Driving software quality: How test-driven development impacts software quality," IEEE software, vol. 23, no. 6, pp. 70–71, 2006.
D. Staegemann, M. Volk, M. Perera, C. Haertel, M. Pohl, C. Daase, and K. Turowski, "A literature review on the challenges of applying test-driven development in software engineering," Complex Systems Informatics and Modeling Quarterly, no. 31, pp. 18–28, 2022.
V. S. Bhadauria, R. K. Mahapatra, and S. P. Nerur, "Performance outcomes of test-driven development: an experimental investigation," Journal of the Association for Information Systems, vol. 21, no. 4, p. 2, 2020.
Downloads
Published
How to Cite
Issue
Section
License
Authors who publish with this journal agree to the following terms:
- Authors retain copyright and grant the journal right of first publication with the work simultaneously licensed under a Creative Commons Attribution License (CC-By) that allows others to share the work with an acknowledgment of the work's authorship and initial publication in this journal.
- Authors are able to enter into separate, additional contractual arrangements for the non-exclusive distribution of the journal's published version of the work (e.g., post it to an institutional repository or publish it in a book), with an acknowledgement of its initial publication in this journal.
- Authors are permitted and encouraged to post their work online (e.g., in institutional repositories or on their website) prior to and during the submission process, as it can lead to productive exchanges, as well as earlier and greater citation of published work (See The Effect of Open Access).
This work is licensed under a Creative Commons Attribution License CC BY