On the effects of programming and testing skills on external quality and productivity in a test-driven development context

Background: In previous studies, a model was proposed that investigated how the developers' unit testing effort impacted their productivity as well as the external quality of the software they developed. Goal: The aim of this study is to enhance the proposed model by considering two additional factors related to the expertise of developers: programming and unit testing skills. The possibility of including such skills in a model that represents the relationship that testing effort has with the developer's productivity and the product's external quality was investigated. Method: Data collected from a test-first development task in academic setting was used in order to gauge the relationship between testing effort, external quality, and productivity. Furthermore, Analysis of Covariance (ANCOVA) was utilized to check the impact of developers' skills on productivity and quality. Result: The results obtained in previous studies were confirmed: there exists a positive effect of testing effort on productivity, but not on quality. Moreover, the developers' skills have an impact on productivity but none on external quality. Conclusion: Productivity improves with testing effort, a result consistent across previous, similar studies. The role of existing skills is a relevant factor in studying the effects of developers' unit testing effort on productivity. Nevertheless, more investigations are needed regarding the relationship between unit testing effort and external quality.

[1]  Andreas Höfer,et al.  An Empirical Study on the TDD Conformance of Novice and Expert Pair Programmers , 2009, XP.

[2]  Roberto Latorre,et al.  Effects of Developer Experience on Learning and Applying Unit Test-Driven Development , 2014, IEEE Transactions on Software Engineering.

[3]  Adam Kolawa,et al.  Automated Defect Prevention , 2007 .

[4]  Burak Turhan,et al.  A Replicated Experiment on the Effectiveness of Test-First Development , 2013, 2013 ACM / IEEE International Symposium on Empirical Software Engineering and Measurement.

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

[6]  J. G. Adair,et al.  The Hawthorne effect: A reconsideration of the methodological artifact. , 1984 .

[7]  Vojislav B. Misic,et al.  The Effects of Test-Driven Development on External Quality and Productivity: A Meta-Analysis , 2013, IEEE Transactions on Software Engineering.

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

[9]  Matthias M. Müller,et al.  The effect of experience on the test-driven development process , 2007, Empirical Software Engineering.

[10]  Larry Hirst,et al.  Transforming Engineering Education: Creating Interdisciplinary Skills for Complex Global Environments , 2010 .

[11]  A. Montenegro On sample size and precision in ordinary least squares , 2001 .

[12]  Lech Madeyski,et al.  The impact of Test-First programming on branch coverage and mutation score indicator of unit tests: An experiment , 2010, Inf. Softw. Technol..

[13]  Burak Turhan,et al.  On the role of tests in test-driven development: a differentiated and partial replication , 2013, Empirical Software Engineering.

[14]  Forrest Shull,et al.  What Do We Know about Test-Driven Development? , 2010, IEEE Software.

[15]  Daniel Sundmark,et al.  Test case quality in test driven development: A study design and a pilot experiment , 2012, EASE.

[16]  Adam Kolawa,et al.  Automated Defect Prevention , 2007 .

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

[18]  Audris Mockus,et al.  Test coverage and post-verification defects: A multiple case study , 2009, 2009 3rd International Symposium on Empirical Software Engineering and Measurement.

[19]  Daniel Sundmark,et al.  Factors Limiting Industrial Adoption of Test Driven Development: A Systematic Review , 2011, 2011 Fourth IEEE International Conference on Software Testing, Verification and Validation.

[20]  Eli M. Dow,et al.  The Emerging Role of Software Testing in Curricula , 2010, 2010 IEEE Transforming Engineering Education: Creating Interdisciplinary Skills for Complex Global Environments.

[21]  Burak Turhan,et al.  Conformance factor in test-driven development: initial results from an enhanced replication , 2014, EASE '14.