Abstract
Test-Driven Development (TDD) has been claimed to increase external software quality. However, the extent to which TDD increases external quality has been seldom studied in industrial experiments. We conduct four industrial experiments in two different companies to evaluate the performance of TDD on external quality. We study whether the performance of TDD holds across the premises of the same company and across companies. We identify participant-level characteristics impacting results. Iterative-Test Last (ITL), the reverse approach of TDD, outperforms TDD in three out of four premises. ITL outperforms TDD in both companies. The larger the experience with unit testing and testing tools, the larger the difference in performance between ITL and TDD (in favour of ITL). Technological environment (i.e., programming language and testing tool) seems not to impact results. Evaluating participant-level characteristics impacting results in industrial experiments may ease the understanding of TDD’s performance in realistic settings.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
For simplicity’s sake, along the rest of the article we refer to external quality and quality interchangeably.
- 2.
The survey and its results were published elsewhere [36].
- 3.
For simplicity’s sake, we consider the variables measured along the survey as continuous. This approach is commonly followed in other disciplines [37].
- 4.
The normality assumption is met in all experiments according to the Shapiro-Wilk test [38].
- 5.
The regression lines for “Programming” and “Language” partially overlap and thus, only that of “Language” is visible.
References
Beck, K.: Test-Driven Development: By Example. Addison-Wesley Professional (2003)
ISO: ISO/IEC 25010:2011 (2011)
Munir, H., Moayyed, M., Petersen, K.: Considering rigor and relevance when evaluating test driven development: a systematic review. Inf. Softw. Technol. 56(4), 375–394 (2014)
Rafique, Y., Mišić, V.B.: The effects of test-driven development on external quality and productivity: a meta-analysis. IEEE Trans. Softw. Eng. 39(6), 835–856 (2013)
Bissi, W., Neto, A.G.S.S., Emer, M.C.F.P.: The effects of test driven development on internal quality, external quality and productivity: a systematic review. Inf. Softw. Technol. 74, 45–54 (2016)
Kollanus, S.: Test-driven development-still a promising approach? In: Seventh International Conference on the Quality of Information and Communications Technology (QUATIC), pp. 403–408. IEEE (2010)
Shull, F., Melnik, G., Turhan, B., Layman, L., Diep, M., Erdogmus, H.: What do we know about test-driven development? IEEE Softw. 27(6), 16–19 (2010)
Causevic, A., Sundmark, D., Punnekkat, S.: Factors limiting industrial adoption of test driven development: a systematic review. In: IEEE Fourth International Conference on Software Testing, Verification and Validation (ICST), pp. 337–346. IEEE (2011)
Mäkinen, S., Münch, J.: Effects of test-driven development: a comparative analysis of empirical studies. In: Winkler, D., Biffl, S., Bergsmann, J. (eds.) SWQD 2014. LNBIP, vol. 166, pp. 155–169. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-03602-1_10
McDaid, K., Rust, A., Bishop, B.: Test-driven development: can it work for spreadsheets? In: Proceedings of the 4th International Workshop on End-User Software Engineering, pp. 25–29. ACM (2008)
Maximilien, E.M., Williams, L.: Assessing test-driven development at IBM. In: Proceedings of the 25th International Conference on Software Engineering, pp. 564–569. IEEE (2003)
Sjoberg, D.I., et al.: Conducting realistic experiments in software engineering. In: Proceedings of the International Symposium on Empirical Software Engineering, pp. 17–26. IEEE (2002)
Sjøberg, D.I.K., et al.: Challenges and recommendations when increasing the realism of controlled software engineering experiments. In: Conradi, R., Wang, A.I. (eds.) Empirical Methods and Studies in Software Engineering. LNCS, vol. 2765, pp. 24–38. Springer, Heidelberg (2003). https://doi.org/10.1007/978-3-540-45143-3_3
Wohlin, C., Runeson, P., Höst, M., Ohlsson, M.C., Regnell, B., Wesslén, A.: Experimentation in Software Engineering. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-29044-2
George, B., Williams, L.: A structured experiment of test-driven development. Inf. Softw. Technol. 46(5), 337–342 (2004)
Geras, A., Smith, M., Miller, J.: A prototype empirical evaluation of test driven development. In: Proceedings of the 10th International Symposium on Software Metrics, pp. 405–416. IEEE (2004)
Tosun, A., et al.: An industry experiment on the effects of test-driven development on external quality and productivity. Empir. Softw. Eng. 22(6), 2763–2805 (2017)
Borenstein, M., Hedges, L.V., Higgins, J.P., Rothstein, H.R.: Introduction to Meta-analysis. Wiley, Chichester (2011)
Bannerman, S., Martin, A.: A multiple comparative study of test-with development product changes and their effects on team speed and product quality. Empir. Softw. Eng. 16(2), 177–210 (2011)
Siniaalto, M., Abrahamsson, P.: Does test-driven development improve the program code? Alarming results from a comparative case study. In: Meyer, B., Nawrocki, J.R., Walter, B. (eds.) CEE-SET 2007. LNCS, vol. 5082, pp. 143–156. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-85279-7_12
Bhat, T., Nagappan, N.: Evaluating the efficacy of test-driven development: industrial case studies. In: Proceedings of the 2006 ACM/IEEE International Symposium on Empirical Software Engineering, pp. 356–363. ACM (2006)
Ynchausti, R.A.: Integrating unit testing into a software development teams process. In: XP 2001, pp. 84–87 (2001)
Damm, L.-O., Lundberg, L.: Quality impact of introducing component-level test automation and test-driven development. In: Abrahamsson, P., Baddoo, N., Margaria, T., Messnarz, R. (eds.) EuroSPI 2007. LNCS, vol. 4764, pp. 187–199. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-75381-0_17
Nagappan, N., Maximilien, E.M., Bhat, T., Williams, L.: Realizing quality improvement through test driven development: results and experiences of four industrial teams. Empir. Softw. Eng. 13(3), 289–302 (2008)
Damm, L.O., Lundberg, L.: Results from introducing component-level test automation and test-driven development. J. Syst. Softw. 79(7), 1001–1014 (2006)
Lui, K.M., Chan, K.C.C.: Test driven development and software process improvement in China. In: Eckstein, J., Baumeister, H. (eds.) XP 2004. LNCS, vol. 3092, pp. 219–222. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-24853-8_27
Williams, L., Maximilien, E.M., Vouk, M.: Test-driven development as a defect-reduction practice. In: 14th International Symposium on Software Reliability Engineering, ISSRE 2003, pp. 34–45. IEEE (2003)
Dogša, T., Batič, D.: The effectiveness of test-driven development: an industrial case study. Softw. Qual. J. 19(4), 643–661 (2011)
Slyngstad, O.P.N., Li, J., Conradi, R., Rønneberg, H., Landre, E., Wesenberg, H.: The impact of test driven development on the evolution of a reusable framework of components-an industrial case study. In: The Third International Conference on Software Engineering Advances, ICSEA 2008, pp. 214–223. IEEE (2008)
Aniche, M.F., Gerosa, M.A.: Most common mistakes in test-driven development practice: results from an online survey with developers. In: Third International Conference on Software Testing, Verification, and Validation Workshops (ICSTW), pp. 469–478. IEEE (2010)
Sanchez, J.C., Williams, L., Maximilien, E.M.: On the sustained use of a test-driven development practice at IBM. In: Agile Conference (AGILE), pp. 5–14. IEEE (2007)
Dybå, T., Dingsøyr, T.: Strength of evidence in systematic reviews in software engineering. In: Proceedings of the Second ACM-IEEE International Symposium on Empirical Software Engineering and Measurement, pp. 178–187. ACM (2008)
Guyatt, G.H., et al.: Grade: an emerging consensus on rating quality of evidence and strength of recommendations. BMJ (Clinical research ed.) 336(7650), 924–926 (2008)
Gomez, O.S., Juristo, N., Vegas, S.: Understanding replication of experiments in software engineering: a classification. Inf. Softw. Technol. 56(8), 1033–1048 (2014)
Erdogmus, H., Morisio, M., Torchiano, M.: On the effectiveness of the test-first approach to programming. IEEE Trans. Softw. Eng. 31(3), 226–237 (2005)
Dieste, O., Aranda, A.M., Uyaguari, F., Turhan, B., Tosun, A., Fucci, D., Oivo, M., Juristo, N.: Empirical evaluation of the effects of experience on code quality and programmer productivity: an exploratory study. Empir. Softw. Eng. 22(5), 2457–2542 (2017)
Norman, G.: Likert scales, levels of measurement and the laws of statistics. Adv. Health Sci. Educ. 15(5), 625–632 (2010)
Field, A.: Discovering Statistics Using IBM SPSS Statistics. Sage (2013)
Burke, D.L., Ensor, J., Riley, R.D.: Meta-analysis using individual participant data: one-stage and two-stage approaches, and why they may differ. Stat. Med. 36(5), 855–875 (2017)
Fisher, D., Copas, A., Tierney, J., Parmar, M.: A critical review of methods for the assessment of patient-level interactions in individual participant data meta-analysis of randomized trials, and guidance for practitioners. J. Clin. Epidemiol. 64(9), 949–967 (2011)
Briand, L., Bianculli, D., Nejati, S., Pastore, F., Sabetzadeh, M.: The case for context-driven software engineering research: generalizability is overrated. IEEE Softw. 34(5), 72–75 (2017)
Kraemer, H.C.: Pitfalls of multisite randomized clinical trials of efficacy and effectiveness. Schizophr. Bull. 26(3), 533 (2000)
Cooper, H., Patall, E.A.: The relative benefits of meta-analysis conducted with individual participant data versus aggregated data. Psychol. Methods 14(2), 165 (2009)
Offutt, J.: Why don’t we publish more TDD research papers? Softw. Test. Verif. Reliab. 28(4), e1670 (2018)
Acknowledgments
This research was developed with the support of the Spanish Ministry of Science and Innovation project TIN2014-60490-P.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer Nature Switzerland AG
About this paper
Cite this paper
Santos, A., Järvinen, J., Partanen, J., Oivo, M., Juristo, N. (2018). Does the Performance of TDD Hold Across Software Companies and Premises? A Group of Industrial Experiments on TDD. In: Kuhrmann, M., et al. Product-Focused Software Process Improvement. PROFES 2018. Lecture Notes in Computer Science(), vol 11271. Springer, Cham. https://doi.org/10.1007/978-3-030-03673-7_17
Download citation
DOI: https://doi.org/10.1007/978-3-030-03673-7_17
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-03672-0
Online ISBN: 978-3-030-03673-7
eBook Packages: Computer ScienceComputer Science (R0)