Empirical Evaluation of Test-Driven Development on Code Quality and Developer Productivity

Authors

Eleonora Massimo
Software Engineering Researcher, Italy.

Keywords:

Test-Driven Development, code quality, productivity, empirical study, agile development, software testing, developer efficiency

Synopsis

Test-Driven Development (TDD) is an agile methodology that emphasizes writing tests before writing production code. This empirical study investigates the impact of TDD on software quality and developer productivity by comparing teams using TDD with those using traditional development methods. Using key metrics such as defect density, code coverage, and development time, we analyze performance outcomes from multiple case studies. Results show that while TDD improves code quality significantly, its effect on productivity remains mixed.

References

[1] Janzen, D.S., Saiedian, H.: Test-driven development: Concepts, taxonomy, and future direction. Computer 38(9), 43–50 (2005)

[2] George, B., Williams, L.: A structured experiment of test-driven development. Information and Software Technology 46(5), 337–342 (2004)

[3] Müller, M.M., Hagner, O.: Experiment about test-first programming. IEE Proceedings Software 149(5), 131–136 (2002)

[4] Sirimalla, A. (2022). End-to-end automation for cross-database DevOps deployments: CI/CD pipelines, schema drift detection, and performance regression testing in the cloud. World Journal of Advanced Research and Reviews, 14(3), 871–889. https://doi.org/10.30574/wjarr.2022.14.3.0555

[5] Pančur, M., Ciglarič, M.: Impact of test-driven development on productivity, code and tests: A controlled experiment. Information and Software Technology 53(6), 557–573 (2011)

[6] Erdogmus, H., Morisio, M., Torchiano, M.: On the effectiveness of the test-first approach to programming. IEEE Transactions on Software Engineering 31(3), 226–237 (2005)

[7] Madeyski, L.: The impact of test-first programming on branch coverage and mutation score indicator of unit tests: An experiment. Information and Software Technology 52(2), 169–184 (2010)

[8] Bissi, W., Scanniello, G., Romano, S.: A comparative evaluation of test-driven and non-test-driven development using professional developers. Empirical Software Engineering 21(1), 1–35 (2016)

[9] Rafique, Y., Mišić, V.B.: The effects of test-driven development on external quality and productivity: A meta-analysis. IEEE Transactions on Software Engineering 39(6), 835–856 (2013)

[10] Sirimalla A. Autonomous Performance Tuning Framework for Databases Using Python and Machine Learning. J Artif Intell Mach Learn & Data Sci 2023 1(4), 3139-3147. DOI: doi.org/10.51219/JAIMLD/adithya-sirimalla/642

[11] Kaufmann, S., Janzen, D.S.: Teaching test-driven development using agile practices. In: Agile 2006 Conference, pp. 135–142. IEEE (2006)

[12] Fucci, D., Turhan, B., Münch, J.: On the effects of programming and testing skills on external quality and productivity in a test-driven development context. Empirical Software Engineering 21(5), 2042–2071 (2016)

[13] Siniaalto, M., Abrahamsson, P.: A comparative case study on the impact of test-driven development on program design and test coverage. In: ESEM 2007, pp. 275–284. IEEE (2007)

[14] Williams, L., Maximilien, E.M., Vouk, M.A.: Test-driven development as a defect-reduction practice. In: Software Engineering Notes 28(5), pp. 1–7. ACM (2003)

[15] Abrahamsson, P., Salminen, M., Warsta, J.: Agile software development methods: Review and analysis. VTT Publications 478, Technical Research Centre of Finland (2002)

[16] Erdogmus, H.: On the effectiveness of test-first programming. In: Proceedings of the First International Conference on Software Engineering and Knowledge Engineering, pp. 113–121 (2004)

[17] Canfora, G., Cimitile, A., Garcia, F., Piattini, M.: Evaluating test driven development using controlled experiments. In: International Symposium on Empirical Software Engineering (ISESE), pp. 364–373. IEEE (2006)

Published

December 26, 2024