Exploring influences on student adherence to test-driven development

Test-Driven Development (TDD) is a software development process with a test-first approach that shows promise for improving code quality. Our research addresses concerns raised in both academia and industry about a lack of motivation or acceptance in adopting TDD. In a CS2 class, we used an automated testing tool and post-class surveys to observe patterns of behavior in testing as well as changes in attitudes. We found significant positive outcomes for students following TDD. We also identified obstacles deterring students from adhering to TDD and discuss reasons and possible remedies.

[1]  R. Yerkes,et al.  The relation of strength of stimulus to rapidity of habit‐formation , 1908 .

[2]  Kent L. Beck,et al.  Embracing Change with Extreme Programming , 1999, Computer.

[3]  Elena García Barriocanal,et al.  An experience in integrating automated unit testing practices in an introductory programming course , 2002, SGCS.

[4]  Stephen H. Edwards,et al.  Improving student performance by evaluating how well students test their own programs , 2003, JERC.

[5]  Barry W. Boehm,et al.  Discipline and practices of TDD: (test driven development) , 2003, OOPSLA '03.

[6]  R. Rapee,et al.  More information from fewer questions: the factor structure and item properties of the original and brief fear of negative evaluation scale. , 2004, Psychological assessment.

[7]  Stephen H. Edwards,et al.  Using software testing to move students from trial-and-error to reflection-in-action , 2004, SIGCSE '04.

[8]  G. Melnik,et al.  A cross-program investigation of students' perceptions of agile methods , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[9]  David Hovemeyer,et al.  Experiences with marmoset: designing and using an advanced submission and testing system for programming courses , 2006, ITICSE '06.

[10]  William Pugh,et al.  Helping students appreciate test-driven development (TDD) , 2006, OOPSLA '06.

[11]  Nachiappan Nagappan,et al.  Evaluating the efficacy of test-driven development: industrial case studies , 2006, ISESE '06.

[12]  Mario Piattini,et al.  Evaluating advantages of test driven development: a controlled experiment with professionals , 2006, ISESE '06.

[13]  Richard Driscoll,et al.  Westside Test Anxiety Scale Validation. , 2007 .

[14]  Hossein Saiedian,et al.  A Leveled Examination of Test-Driven Development Acceptance , 2007, 29th International Conference on Software Engineering (ICSE'07).

[15]  David S. Janzen,et al.  A survey of evidence for test-driven development in academia , 2008, SGCS.

[16]  Stephen H. Edwards,et al.  Comparing effective and ineffective behaviors of student programmers , 2009, ICER '09.

[17]  David S. Janzen,et al.  Implications of integrating test-driven development into CS1/CS2 curricula , 2009, SIGCSE '09.

[18]  Ville Isomöttönen,et al.  ComTest: a tool to impart TDD and unit testing to introductory level programming , 2010, ITiCSE '10.