Test-driven learning in early programming courses

  • Authors:
  • David Janzen;Hossein Saiedian

  • Affiliations:
  • California Polytechnic State University, San Luis Obispo, CA, USA;University of Kansas, Lawrence, KS, USA

  • Venue:
  • Proceedings of the 39th SIGCSE technical symposium on Computer science education
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Coercing new programmers to adopt disciplined development practices such as thorough unit testing is a challenging endeavor. Test-driven development (TDD) has been proposed as a solution to improve both software design and testing. Test-driven learning (TDL) has been proposed as a pedagogical approach for teaching TDD without imposing significant additional instruction time. This research evaluates the effects of students using a test-first (TDD) versus test-last approach in early programming courses, and considers the use of TDL on a limited basis in CS1 and CS2. Software testing, programmer productivity, programmer performance, and programmer opinions are compared between test-first and test-last programming groups. Results from this research indicate that a test-first approach can increase student testing and programmer performance, but that early programmers are very reluctant to adopt a test-first approach, even after having positive experiences using TDD. Further, this research demonstrates that TDL can be applied in CS1/2, but suggests that a more pervasive implementation of TDL may be necessary to motivate and establish disciplined testing practice among early programmers.