The Impact of Pair Programming and Test-Driven Development on Package Dependencies in Object-Oriented Design - An Experiment

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.

[1]  Laurie A. Williams,et al.  Pair Programming Illuminated , 2002 .

[2]  Laurie A. Williams,et al.  Strengthening the Case for Pair Programming , 2000, IEEE Softw..

[3]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[4]  Laurie A. Williams,et al.  Assessing test-driven development at IBM , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[5]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[6]  Alistair Cockburn,et al.  Agile Software Development , 2001 .

[7]  Matthias M. Müller,et al.  Experiment about test-first programming , 2002, IEE Proc. Softw..

[8]  Boby George,et al.  A structured experiment of test-driven development , 2004, Inf. Softw. Technol..

[9]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

[10]  Robert C. Martin Agile Software Development, Principles, Patterns, and Practices , 2002 .

[11]  Robert R. Kessler,et al.  The collaborative software process(sm) , 2000 .

[12]  Shari Lawrence Pfleeger,et al.  Preliminary Guidelines for Empirical Research in Software Engineering , 2002, IEEE Trans. Software Eng..

[13]  Jerzy R. Nawrocki,et al.  Pair Programming vs. Side-by-Side Programming , 2005, EuroSPI.

[14]  L. Williams The Collaborative Software Process , 1999 .

[15]  John T. Nosek,et al.  The case for collaborative programming , 1998, CACM.

[16]  David Janzen Software architecture improvement through test-driven development , 2005, OOPSLA '05.

[17]  W. Shadish,et al.  Experimental and Quasi-Experimental Designs for Generalized Causal Inference , 2001 .

[18]  Kent Beck,et al.  Extreme Programming Explained: Embrace Change (2nd Edition) , 2004 .

[19]  David S. Janzen,et al.  Implications of test-driven development: a pilot study , 2003, OOPSLA '03.

[20]  Kent L. Beck,et al.  Test-driven Development - by example , 2002, The Addison-Wesley signature series.

[21]  Marco Torchiano,et al.  On the effectiveness of the test-first approach to programming , 2005, IEEE Transactions on Software Engineering.

[22]  Lech Madeyski Preliminary Analysis of the Effects of Pair Programming and Test-Driven Development on the External Code Quality , 2005, Software Engineering: Evolution and Emerging Technologies.

[23]  Lionel C. Briand,et al.  Investigating quality factors in object-oriented designs: an industrial case study , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[24]  Laurie A. Williams,et al.  Test-driven development as a defect-reduction practice , 2003, 14th International Symposium on Software Reliability Engineering, 2003. ISSRE 2003..

[25]  Boby George,et al.  An initial investigation of test driven development in industry , 2003, SAC '03.

[26]  Javam C. Machado,et al.  The prediction of faulty classes using object-oriented design metrics , 2001, J. Syst. Softw..

[27]  Adam Wojciechowski,et al.  Experimental Evaluation of Pair Programming , 2001 .

[28]  Laurie A. Williams,et al.  All I really need to know about pair programming I learned in kindergarten , 2000, Commun. ACM.

[29]  M MüllerMatthias Are Reviews an Alternative to Pair Programming , 2004 .

[30]  H. Hulkko,et al.  A multiple case study on the impact of pair programming on product quality , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..