skip to main content
research-article

Test-driven learning in early programming courses

Published: 12 March 2008 Publication History

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.

References

[1]
E. Allen, R. Cartwright, and B. Stoler. Drjava: a lightweight pedagogic environment for java. In SIGCSE '02: Proceedings of the 33rd SIGCSE technical symposium on Computer science education, pages 137--141, New York, NY, USA, 2002. ACM Press.
[2]
K. Beck. Extreme Programming Explained. Addison-Wesley Longman, Inc., 2000.
[3]
K. Beck. Test Driven Development: By Example. Addison-Wesley, 2003.
[4]
S. Edwards. Rethinking computer science education from a test-first perspective. In Proceedings of the 18th Annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications: Educators' Symposium, pages 148--155, 2003.
[5]
S. H. Edwards. Using software testing to move students from trial-and-error to reflection-in-action. In SIGCSE '04: Proceedings of the 35th SIGCSE technical symposium on Computer science education, pages 26--30, New York, NY, USA, 2004. ACM Press.
[6]
D. Janzen and H. Saiedian. Test-driven development: concepts, taxonomy and future directions. IEEE Computer, 38(9):43--50, Sept 2005.
[7]
D. Janzen and H. Saiedian. On the influence of test-driven development on software design. In Nineteenth Conference on Software Engineering Education & Training, pages 141--148. IEEE-CS, 2006.
[8]
D. Janzen and H. Saiedian. Test-driven learning: Intrinsic integration of testing into the cs/se curriculum. In Proceedings of the 37th SIGCSE Technical Symposium on Computer Science Education, pages 254--258. ACM Press, 2006.
[9]
D. Janzen and H. Saiedian. A leveled examination of test-driven development acceptance. In ICSE '07: Proceedings of the 29th International Conference on Software Engineering, pages 719--722, Washington, DC, USA, 2007. IEEE Computer Society.
[10]
R. Jeffries and G. Melnik. Tdd - the art of fearless programming. IEEE Software, 24(3):24--30, 2007.
[11]
M. Kolling and J. Rosenberg. Guidelines for teaching object orientation with java. In Proceedings of the 6th Annual Conference on Innovation and Technology in Computer Science Education, pages 33--36. ACM Press, 2001.
[12]
J. Spacco, D. Hovemeyer, W. Pugh, J. Hollingsworth, N. Padua-Perez, and F. Emad. Experiences with marmoset: Designing and using an advanced submission and testing system for programming courses. In ITiCSE '06: Proceedings of the 11th annual conference on Innovation and technology in computer science education. ACM Press, 2006.
[13]
C. Wellington, T. Briggs, and C. D. Girard. Experiences using automated tests and test driven development in computer science i. In Agile 2007, pages 106--112, Washington, DC, USA, 2007. IEEE Computer Society.
[14]
L. Williams, M. Maximillien, and M. Vouk. A structured experiment of test-driven development. Information and Software Technology, 46(5):337--342, 2003.

Cited By

View all
  • (2023)Analysis of Students' Pre-Knowledge of Computer Programming over Time2023 32nd Annual Conference of the European Association for Education in Electrical and Information Engineering (EAEEIE)10.23919/EAEEIE55804.2023.10181910(1-5)Online publication date: 14-Jun-2023
  • (2023)A Model of How Students Engineer Test Cases With FeedbackACM Transactions on Computing Education10.1145/362860424:1(1-31)Online publication date: 20-Oct-2023
  • (2023)Metacodenition: Scaffolding the Problem-Solving Process for Novice ProgrammersProceedings of the 25th Australasian Computing Education Conference10.1145/3576123.3576130(59-68)Online publication date: 30-Jan-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGCSE Bulletin
ACM SIGCSE Bulletin  Volume 40, Issue 1
SIGCSE 08
March 2008
549 pages
ISSN:0097-8418
DOI:10.1145/1352322
Issue’s Table of Contents
  • cover image ACM Conferences
    SIGCSE '08: Proceedings of the 39th SIGCSE technical symposium on Computer science education
    March 2008
    606 pages
    ISBN:9781595937995
    DOI:10.1145/1352135
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 12 March 2008
Published in SIGCSE Volume 40, Issue 1

Check for updates

Author Tags

  1. cs1
  2. pedagogy
  3. test-driven development
  4. test-driven learning

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)42
  • Downloads (Last 6 weeks)6
Reflects downloads up to 07 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Analysis of Students' Pre-Knowledge of Computer Programming over Time2023 32nd Annual Conference of the European Association for Education in Electrical and Information Engineering (EAEEIE)10.23919/EAEEIE55804.2023.10181910(1-5)Online publication date: 14-Jun-2023
  • (2023)A Model of How Students Engineer Test Cases With FeedbackACM Transactions on Computing Education10.1145/362860424:1(1-31)Online publication date: 20-Oct-2023
  • (2023)Metacodenition: Scaffolding the Problem-Solving Process for Novice ProgrammersProceedings of the 25th Australasian Computing Education Conference10.1145/3576123.3576130(59-68)Online publication date: 30-Jan-2023
  • (2023)Classroom Practice with Learning Support System for Program Design Using Mock Technique Based on TestabilitySN Computer Science10.1007/s42979-023-02096-24:5Online publication date: 17-Aug-2023
  • (2021)The effect of Test-Driven Development and Behavior-Driven Development on Project Success Factors: A Systematic Literature Review Based Study2020 International Conference on Computer, Control, Electrical, and Electronics Engineering (ICCCEEE)10.1109/ICCCEEE49695.2021.9429593(1-9)Online publication date: 26-Feb-2021
  • (2021)Students' Background Knowledge Influence on Learning Computer Programming2021 30th Annual Conference of the European Association for Education in Electrical and Information Engineering (EAEEIE)10.1109/EAEEIE50507.2021.9530882(1-4)Online publication date: 1-Sep-2021
  • (2019)Pragmatic Software Testing EducationProceedings of the 50th ACM Technical Symposium on Computer Science Education10.1145/3287324.3287461(414-420)Online publication date: 22-Feb-2019
  • (2017)Teaching test-drive development using DojoJournal of Computing Sciences in Colleges10.5555/3055338.307904932:4(106-112)Online publication date: 1-Apr-2017
  • (2017)Prof. CI: Employing continuous integration services and Github workflows to teach test-driven development2017 IEEE Frontiers in Education Conference (FIE)10.1109/FIE.2017.8190589(1-8)Online publication date: Oct-2017
  • (2016)Enhancing CS1 curriculum with testing conceptsJournal of Computing Sciences in Colleges10.5555/2835377.283538431:3(36-43)Online publication date: 1-Jan-2016
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media