Abstract
Background: Test-driven development (TDD) and pair programming are software development practices popularized by eXtreme Programming methodology. The aim of the practices is to improve software quality.
Objective: Provide an empirical evidence of the impact of both practices on package dependencies playing a role of package level design quality indicators.
Method: An experiment with a hundred and eighty eight MSc students from Wroclaw University of Technology, who developed finance-accounting system in different ways (CS — classic solo, TS — TDD solo, CP — classic pairs, TP — TDD pairs).
Results: It appeared that package level design quality indicators (namely package dependencies in an object-oriented design) were not significantly affected by development method.
Limitations: Generalization of the results is limited due to the fact that MSc students participated in the study.
Conclusions: Previous research revealed that using test-driven development instead of classic (test-last) testing approach had statistically significant positive impact on some class level software quality indicators (namely CBO and RFC metrics) in case of solo programmers as well as pairs. Combined results suggest that the positive impact of test-driven development on software quality may be limited to class level.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Beck, K.: Test Driven Development: By Example. Addison-Wesley, Reading (2002)
Williams, L., Kessler, R.: Pair Programming Illuminated. Addison-Wesley, Reading (2002)
Beck, K.: Extreme Programming Explained: Embrace Change, 2nd edn. Addison-Wesley, Reading (2004)
Nosek, J.T.: The case for collaborative programming. Communications of the ACM 41(3), 105–108 (1998)
Williams, L., Kessler, R.R., Cunningham, W., Jeffries, R.: Strengthening the case for pair programming. IEEE Software 17(4), 19–25 (2000)
Williams, L.: The Collaborative Software Process. PhD thesis, University of Utah (2000)
Nawrocki, J.R., Wojciechowski, A.: Experimental evaluation of pair programming. In: ESCOM 2001: European Software Control and Metrics, pp. 269–276 (2001)
Nawrocki, J.R., Jasiński, M., Olek, L., Lange, B.: Pair Programming vs. Side-by-Side Programming. In: Richardson, I., Abrahamsson, P., Messnarz, R. (eds.) EuroSPI 2005. LNCS, vol. 3792, pp. 28–38. Springer, Heidelberg (2005)
Williams, L., Maximilien, E.M., Vouk, M.: Test-Driven Development as a Defect-Reduction Practice. In: ISSRE 2003: Proceedings of the 14th International Symposium on Software Reliability Engineering, Washington, DC, USA, pp. 34–48. IEEE Computer Society, Los Alamitos (2003)
Maximilien, E.M., Williams, L.A.: Assessing Test-Driven Development at IBM. In: ICSE 2003: Proceedings of the 25th International Conference on Software Engineering, pp. 564–569. IEEE Computer Society, Los Alamitos (2003)
George, B., Williams, L.A.: An Initial Investigation of Test Driven Development in Industry. In: SAC 2003: Proceedings of the 2003 ACM Symposium on Applied Computing, pp. 1135–1139. ACM, New York (2003)
George, B., Williams, L.A.: A structured experiment of test-driven development. Information and Software Technology 46(5), 337–342 (2004)
Madeyski, L.: Preliminary Analysis of the Effects of Pair Programming and Test-Driven Development on the External Code Quality. In: Zieliński, K., Szmuc, T. (eds.) Software Engineering: Evolution and Emerging Technologies. Frontiers in Artificial Intelligence and Applications, vol. 130, pp. 113–123. IOS Press, Amsterdam (2005)
Müller, M.M., Hagner, O.: Experiment about test-first programming. IEE Proceedings - Software 149(5), 131–136 (2002)
Müller, M.M.: Are Reviews an Alternative to Pair Programming? In: EASE 2003: Conference on Empirical Assessment In Software Engineering (2003)
Müller, M.M.: Are Reviews an Alternative to Pair Programming? Empirical Software Engineering 9(4), 335–351 (2004)
Janzen, D.S.: Software Architecture Improvement through Test-Driven Development. In: OOPSLA 2005: Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pp. 222–223. ACM Press, New York (2005)
Kaufmann, R., Janzen, D.: Implications of Test-Driven Development: A Pilot Study. In: OOPSLA 2003: Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pp. 298–299. ACM Press, New York (2003)
Madeyski, L.: An empirical analysis of the impact of pair programming and test-driven development on CK design complexity metrics. Technical Report PRE I31/05/P-004, Institute of Applied Informatics, Wroclaw University of Technology (2005)
Chidamber, S.R., Kemerer, C.F.: A Metrics Suite for Object Oriented Design. IEEE Transactions on Software Engineering 20(6), 476–493 (1994)
Hulkko, H., Abrahamsson, P.: A Multiple Case Study on the Impact of Pair Programming on Product Quality. In: ICSE 2005: Proceedings of the 27th International Conference on Software Engineering, pp. 495–504. ACM Press, New York (2005)
Object Mentor, Inc.: Test Driven Development (2005), http://www.objectmentor.com/writeUps/TestDrivenDevelopment
Wikipedia, the free encyclopedia: Test-driven development (2005), http://en.wikipedia.org/wiki/Test_driven_development
Wikipedia, the free encyclopedia: Pair programming (2005), http://en.wikipedia.org/wiki/Pair_programming
Martin, R.C.: OO Design Quality Metrics, An Analysis of Dependencies (1994)
Martin, R.C.: Agile Software Development, Principles, Patterns, and Practices. Prentice-Hall, Englewood Cliffs (2004)
Wroclaw University of Technology, e-Informatyka and Tigris developers: aopmetrics project (2005), http://aopmetrics.tigris.org/
Briand, L.C., Wüst, J., Ikonomovski, S.V., Lounis, H.: Investigating quality factors in object-oriented designs: an industrial case study. In: ICSE 1999: Proceedings of the 21st International Conference on Software Engineering, pp. 345–354. IEEE Computer Society Press, Los Alamitos (1999)
Emam, K.E., Melo, W.L., Machado, J.C.: The Prediction of Faulty Classes Using Object-Oriented Design Metrics. Journal of Systems and Software 56(1), 63–75 (2001)
Wohlin, C., Runeson, P., Höst, M., Ohlsson, M.C., Regnell, B., Wesslén, A.: Experimentation in Software Engineering: An Introduction. Kluwer Academic Publishers, Norwell (2000)
Williams, L.A., Kessler, R.R.: All I really need to know about pair programming I learned in kindergarten. Commun. ACM 43(5), 108–114 (2000)
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)
Shadish, W.R., Cook, T.D., Campbell, D.T.: Experimental and Quasi-Experimental Designs for Generalized Causal Inference. Houghton Mifflin (2002)
Kitchenham, B., Pfleeger, S.L., Pickard, L., Jones, P., Hoaglin, D.C., Emam, K.E., Rosenberg, J.: Preliminary Guidelines for Empirical Research in Software Engineering. IEEE Transactions on Software Engineering 28(8), 721–734 (2002)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Madeyski, L. (2006). The Impact of Pair Programming and Test-Driven Development on Package Dependencies in Object-Oriented Design — An Experiment. In: Münch, J., Vierimaa, M. (eds) Product-Focused Software Process Improvement. PROFES 2006. Lecture Notes in Computer Science, vol 4034. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11767718_24
Download citation
DOI: https://doi.org/10.1007/11767718_24
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-34682-1
Online ISBN: 978-3-540-34683-8
eBook Packages: Computer ScienceComputer Science (R0)