Test Driven Development and Its Impact on Program Design and Software Quality: A Systematic Literature Review

Authors

  • Dua Agha Department of Software Engineering, Mehran University of Engineering and Technology, Jamshoro, Pakistan
  • Rashida Sohail Department of Software Engineering, Mehran University of Engineering and Technology, Jamshoro, Pakistan
  • Areej Fatemah Meghji Department of Software Engineering, Mehran University of Engineering and Technology, Jamshoro, Pakistan
  • Ramsha Qaboolio
  • Sania Bhatti Department of Software Engineering, Mehran University of Engineering and Technology, Jamshoro, Pakistan

DOI:

https://doi.org/10.21015/vtcs.v11i1.1494

Abstract

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

2023-06-24

How to Cite

Agha, D., Sohail, R., Meghji, A. F., Qaboolio, R., & Bhatti, S. (2023). Test Driven Development and Its Impact on Program Design and Software Quality: A Systematic Literature Review. VAWKUM Transactions on Computer Sciences, 11(1), 268–280. https://doi.org/10.21015/vtcs.v11i1.1494