ABSTRACT
This paper describes Unci, a unit-testing language with a clean and minimal interface suitable for introducing beginning programming students to the ideas of unit testing and test-driven development. We detail why CppUnit, a common C++-based unit-testing framework, is not well-suited for beginners, and present Unci and explain how it addresses the weaknesses of CppUnit. Finally, we present a comparison of CS2 student performance in the two systems, showing that moving from CppUnit to Unci resulted in an approximate doubling in the proportion of students able to write an effective test suite for a lab assignment.
- K. Beck. Test-driven development: by example. Addison-Wesley, Boston, 2003. Google ScholarDigital Library
- CppUnit. Retrieved November 30, 2014 from http://freedesktop.org/wiki/Software/cppunit/.Google Scholar
- CxxTest. Retrieved November 30, 2014 from http://cxxtest.com.Google Scholar
- S. H. Edwards. Rethinking computer science education from a test-first perspective. In OOPSLA'03, Anaheim, 2003. Google ScholarDigital Library
- S. Hammond and D. Umphress. Test driven development: The state of the practice. In ACMSE'12, Tuscaloosa, 2012. Google ScholarDigital Library
- D. S. Janzen and H. Saiedian. Test-driven learning: intrinsic integration of testing into the CS/SE curriculum. In SIGCSE'06, Houston, 2006. Google ScholarDigital Library
- D. S. Janzen and H. Saiedian. Test-driven learning in early programming courses. In SIGCSE'08, Portland, 2008. Google ScholarDigital Library
- JUnit. Retrieved November 30, 2014 from http://junit.org.Google Scholar
- libunittest. Retrieved November 30, 2014 from http://libunittest.sourceforge.net.Google Scholar
- V. K. Proulx. Test-driven design for introductory OO programming. In SIGCSE'09, Chattanooga, 2009. Google ScholarDigital Library
- V. K. Proulx. Introductory computing: The design discipline. In I. Kala\vs and R. Mittermeir, editors, Informatics in Schools. Contributing to 21st Century Education, volume 7013 of Lecture Notes in Computer Science, pages 177--188. Springer Berlin Heidelberg, 2011. Google ScholarDigital Library
- Unit++ . Retrieved November 30, 2014 from http://unitpp.sourceforge.net/.Google Scholar
- UnitTest++. Retrieved November 30, 2014 from http://unittest-cpp.sourceforge.net.Google Scholar
- xUnit++. Retrieved November 30, 2014 from https://bitbucket.org/moswald/xunit.Google Scholar
Index Terms
- Unci: a C++-based Unit-testing Framework for Intro Students
Recommendations
Testing first: emphasizing testing in early programming courses
ITiCSE '05: Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science educationThe complexity of languages like Java and C++ can make introductory programming classes in these languages extremely challenging for many students. Part of the complexity comes from the large number of concepts and language features that students are ...
Testing first: emphasizing testing in early programming courses
The complexity of languages like Java and C++ can make introductory programming classes in these languages extremely challenging for many students. Part of the complexity comes from the large number of concepts and language features that students are ...
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 (...
Comments