ComTest: a tool to impart TDD and unit testing to introductory level programming

Research has noticed that imparting TDD-like testing to an early computing curriculum is challenging because it increases technical and cognitive load for the students. This paper addresses the challenge with a software-based solution constructed to facilitate the process of writing tests. The solution allows using a compact while efficient syntax for formulating tests, writing tests into JavaDoc comments, thus close to the source code that implements intended functionalities, and automates the generation of actual test code. The constructed solution -- the ComTest tool -- has now been used in four introductory level programming course offerings. The paper presents the tool and concludes with initial lessons learned.

[1]  David S. Janzen,et al.  Does Test-Driven Development Really Improve Software Design Quality? , 2008, IEEE Software.

[3]  David S. Janzen,et al.  Test-driven learning: intrinsic integration of testing into the CS/SE curriculum , 2006, SIGCSE '06.

[4]  Görel Hedin,et al.  Teaching extreme programming to large groups of students , 2005, J. Syst. Softw..

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

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

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

[8]  Victor R. Basili,et al.  Iterative and incremental developments. a brief history , 2003, Computer.

[9]  Reidar Conradi,et al.  The Impact of Test Driven Development on the Evolution of a Reusable Framework of Components – An Industrial Case Study , 2008, 2008 The Third International Conference on Software Engineering Advances.

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

[11]  Ville Isomöttönen,et al.  Test-driven development in education: experiences with critical viewpoints , 2008, SIGCSE 2008.

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

[13]  C. Dudley Girard,et al.  Tools and techniques for test-driven learning in CS1 , 2007 .

[14]  Rick Mugridge Challenges in Teaching Test Driven Development , 2003, XP.

[15]  Donald E. Knuth,et al.  Literate Programming , 1984, Comput. J..

[16]  C. Dudley Girard,et al.  Experiences Using Automated 4ests and 4est Driven Development in Computer 9cience I , 2007, Agile 2007 (AGILE 2007).

[17]  Dean Sanders Extreme Programming: The Student View , 2002, Comput. Sci. Educ..

[18]  Matthias M. Müller,et al.  Extreme Programming in Curriculum: Experiences from Academia and Industry , 2004, XP.

[19]  Pekka Abrahamsson,et al.  Improving Business Agility Through Technical Solutions: A Case Study on Test-Driven Development in Mobile Software Development , 2005, Business Agility and Information Technology Diffusion.

[20]  Martin Dick,et al.  Adopting XP practices for teaching object oriented programming , 2006 .

[21]  Brandon Carlson,et al.  An Agile Classroom Experience: Teaching TDD and Refactoring , 2008, Agile 2008 Conference.

[22]  C.A. Wellington Managing a project course using Extreme Programming , 2005, Proceedings Frontiers in Education 35th Annual Conference.

[23]  Amber Settle,et al.  Testing first: emphasizing testing in early programming courses , 2005, ITiCSE '05.