ABSTRACT
Many academic and industry professionals have called for more testing in computer science curricula. Test-driven development (TDD) has been proposed as a solution to improve testing in academia. This paper demonstrates how TDD can be integrated into existing course materials without reducing topic coverage. Two controlled experiments were conducted in a CS1/CS2 course in Winter 2008. Following a test-driven learning approach, unit testing was introduced at the beginning of the course and reinforced through example. Results indicate that while student work loads may increase with the incorporation of TDD, students are able to successfully develop unit tests while learning to program.
- E. Barriocanal, M. Urban, I. Cuevas, and P. Perez. An Experience in Integrating Automated Unit Testing Practices in an Introductory Programming Course. ACM SIGCSE Bulletin, 34(4):125--128, December 2002. Google ScholarDigital Library
- C. Desai, D. Janzen, and K. Savage. A survey of evidence for test-driven development in academia. ACM SIGCSE Bulletin, 40(2):97--101, 2008. Google ScholarDigital Library
- S. Edwards. Using Test-Driven Development in the Classroom: Providing Students with Automatic, Concrete Feedback on Performance. In Proc. Int'l Conf. on Education and Information Systems: Technologies and Applications (EISTA), August 2003.Google Scholar
- S. Edwards. Using Software Testing to Move Students from Trial-and-Error to Reflection-in-Action. ACM SIGCSE Bulletin, 36(1):26--30, March 2004. Google ScholarDigital Library
- H. Erdogmus, M. Morisio, and M. Torchiano. On the Effectiveness of the Test-First Approach to Programming. IEE Trans. Software Eng., 31(3):226--237, March 2005. Google ScholarDigital Library
- D. Janzen and H. Saiedian. Test-Driven Development: Concepts, Taxonomy, and Future Direction. IEEE Computer, 38(9):43--50, September 2005. Google ScholarDigital Library
- D. Janzen and H. Saiedian. Test-Driven Learning: Intrinsic Integration of Testing into the CS/SE Curriculum. In Proc. 37th Technical Symposium on Computer Science Education (SIGCSE), pages 254--258, ACM, 2006. Google ScholarDigital Library
- D. Janzen and H. Saiedian. Test-Driven Learning in Early Programming Courses. In Proc. 38th Technical Symposium on Computer Science Education (SIGCSE), pages 532--536, ACM, 2008. Google ScholarDigital Library
- R. Jeffries and G. Melnik. TDD: The Art of Fearless Programming. IEEE Software, 24(3):24--30, May-June 2007. Google ScholarDigital Library
- K. Keefe, J. Sheard, and M. Dick. Adopting XP Practices for Teaching Object Oriented Programming. In Proc. 8th Australian Conf. Computing Education, volume 52, pages 91--100, 2006. Google ScholarDigital Library
- M. Müller and W. Tichy. Case Study: Extreme Programming in a University Environment. In Proc. 23th Int'l Conf. on Software Eng. (ICSE), pages 537--544, May 2001. Google ScholarDigital Library
- T. Shepard, M. Lamb, and D. Kelly. More Testing Should be Taught. Commun. ACM, 44(6):103--108, 2001. Google ScholarDigital Library
- S. Yenduri and L. Perkins. Impact of Using Test-Driven Development: A Case Study. Software Engineering Research and Practice, pages 126--129, 2006.Google Scholar
Index Terms
- Implications of integrating test-driven development into CS1/CS2 curricula
Recommendations
Test-driven learning in early programming courses
SIGCSE '08: Proceedings of the 39th SIGCSE technical symposium on Computer science educationCoercing 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 (...
Test-driven learning in early programming courses
SIGCSE 08Coercing 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 (...
Teaching CS1 with web applications and test-driven development
Teaching client/server web application development in CS1 can help increase student motivation without introducing a heavy curriculum footprint. This paper summarizes the author's experience teaching CS1 for several years using a web application focus. ...
Comments