An “objects first, tests second” approach for software engineering education

Since unit testing is a skill required of professional software developers, lecturers have to develop this skill in their software engineering students. Therefore, we introduce the approach of “objects first, tests second”, which incorporates unit testing into introductory programming classes. We discuss requirements that teaching materials must meet to effectively support this approach, and present a concept for assessing the quality of student written tests. An analysis of students' results illustrates the effectiveness of this teaching approach.

[1]  David S. Janzen,et al.  Test-driven learning in early programming courses , 2008, SIGCSE '08.

[2]  Stephen H. Edwards Rethinking computer science education from a test-first perspective , 2003, OOPSLA '03.

[3]  Joshua Kerievsky,et al.  Refactoring to Patterns , 2004, XP/Agile Universe.

[4]  Diomidis Spinellis Debuggers and logging frameworks , 2006, IEEE Software.

[5]  Nobuo Funabiki,et al.  A Java programming Learning Assistant System using test-driven development method , 2013 .

[6]  Axel Böttcher,et al.  Der frühe Tester fängt den Bug , 2014, GI-Jahrestagung.

[7]  C. Wellington,et al.  Work in Progress: A Test-First Approach to Teaching CS1 , 2006, Proceedings. Frontiers in Education. 36th Annual Conference.

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

[9]  Michael Kölling,et al.  The BlueJ System and its Pedagogy , 2003, Comput. Sci. Educ..

[10]  Petri Ihantola,et al.  Mutation analysis vs. code coverage in automated assessment of students' testing skills , 2010, SPLASH/OOPSLA Companion.

[11]  Andrew Hunt,et al.  Pragmatic Unit Testing in Java with JUnit , 2003 .

[12]  Michael Kölling,et al.  Introducing unit testing with BlueJ , 2003, ITiCSE '03.

[13]  Jeff Langr Agile Java¿: Crafting Code with Test-Driven Development , 2005 .

[14]  Petri Ihantola,et al.  Review of recent systems for automatic assessment of programming assignments , 2010, Koli Calling.

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

[16]  Stephen H. Edwards,et al.  Comparing test quality measures for assessing student-written tests , 2014, ICSE Companion.