ABSTRACT
This data-driven paper quantitatively evaluates software testing behaviors that students exhibited in introductory computer science courses. The evaluation includes data collected over five years (10 semesters) from 49,980 programming assignment submissions by 883 different students. To examine the effectiveness of software testing behaviors, we investigate the quality of their testing at different stages of their development. We partition testing behaviors into four groups according to when in their development they first achieve substantial (at least 85%) test coverage.
The study reveals significant results regarding effective and ineffective testing behaviors. A within-subjects comparison finds that higher coverage in early development is associated with higher quality code and with completing work earlier. Post-hoc analysis also suggests that the relationship between early testing and positive outcomes is independent of time management and effects of individuals' abilities. However, roughly 76% of students exhibit different testing behaviors on different assignments, demonstrating an opportunity to foster better, more consistent testing habits among computer science students.
- ABET (2013). "Criteria for Accrediting Computing Programs, 2013--2014." Retrieved May, 2013, from http://www.abet.org/DisplayTemplates/DocsHandbook.aspx?id=3148.Google Scholar
- Anderson, L. W., D. R. Krathwohl, et al. (2001). A taxonomy for learning and teaching and assessing: A revision of Bloom's taxonomy of educational objectives, Addison Wesley Longman.Google Scholar
- Barriocanal, E. G., M.-Á. S. Urbán, et al. (2002). "An experience in integrating automated unit testing practices in an introductory programming course." SIGCSE Bull. 34(4): 125--128. Google ScholarDigital Library
- Beck, K. (1999). "Embracing change with extreme programming." Computer 32(10): 70--77. Google ScholarDigital Library
- Beck, K. (2003). Test-Driven Development by Example, Addison Wesley. Google ScholarDigital Library
- Bhat, T. and N. Nagappan (2006). Evaluating the efficacy of test-driven development: industrial case studies. Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering. Rio de Janeiro, Brazil, ACM: 356--363. Google ScholarDigital Library
- Buffardi, K. and S. H. Edwards (2012). Exploring influences on student adherence to test-driven development. Proceedings of the 17th ACM annual conference on Innovation and technology in computer science education. Haifa, Israel, ACM: 105--110. Google ScholarDigital Library
- Buffardi, K. and S. H. Edwards (2012). "Impacts of Teaching Test-Driven Development to Novice Programmers." International Journal of Information and Computer Science 1(6): 9.Google Scholar
- Canfora, G., A. Cimitile, et al. (2006). Evaluating advantages of test driven development: a controlled experiment with professionals. Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering. Rio de Janeiro, Brazil, ACM: 364--371. Google ScholarDigital Library
- Desai, C., D. Janzen, et al. (2008). "A survey of evidence for test-driven development in academia." SIGCSE Bull. 40(2): 97--101. Google ScholarDigital Library
- Edwards, S. H. "Web-CAT." 2013, from https://web cat.cs.vt.edu.Google Scholar
- Edwards, S. H. (2004). "Using software testing to move students from trial-and-error to reflection-in-action." SIGCSE Bull. 36(1): 26--30. Google ScholarDigital Library
- Fenwick, J. B., Norris, C., Barry, F. E., Rountree, J., Spicer, C. J., and Cheek, S. D. Another look at the behaviors of novice programmers. In Proc. 40th ACM Tech. Symp. Computer Science Education, ACM, New York, NY, 2009, pp. 296--300. Google ScholarDigital Library
- Fraser, S., D. Astels, et al. (2003). Discipline and practices of TDD: (test driven development). Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications. Anaheim, CA, USA, ACM: 268--270. Google ScholarDigital Library
- Jadud, M. A first look at novice compilation behaviour using BlueJ. Computer Science Education, 15(1):25--40, March 2005.Google Scholar
- Janzen, D. S. and H. Saiedian (2007). A Leveled Examination of Test-Driven Development Acceptance. Proceedings of the 29th international conference on Software Engineering, IEEE Computer Society: 719--722. Google ScholarDigital Library
- Lappalainen, V., J. Itkonen, et al. (2010). ComTest: a tool to impart TDD and unit testing to introductory level programming. Proceedings of the fifteenth annual conference on Innovation and technology in computer science education. Bilkent, Ankara, Turkey, ACM: 63--67. Google ScholarDigital Library
- Melnik, G. and F. Maurer (2005). A cross-program investigation of students' perceptions of agile methods. Proceedings of the 27th international conference on Software engineering. St. Louis, MO, USA, ACM: 481--488. Google ScholarDigital Library
- Murphy, C., Kaiser, G., Loveland, K., and Hasan, S.. Retina: helping students and instructors based on observed programming activities. In Proc. 40th ACM Tech. Symp. on Computer Science Education, ACM, New York, NY, 2009, pp. 178--182. Google ScholarDigital Library
- Spacco, J. and W. Pugh (2006). Helping students appreciate test-driven development (TDD). Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications. Portland, Oregon, USA, ACM: 907--913. Google ScholarDigital Library
- Spacco, J., D. Hovemeyer, et al. (2006). "Experiences with marmoset: designing and using an advanced submission and testing system for programming courses." SIGCSE Bull. 38(3): 13--17. Google ScholarDigital Library
Index Terms
- Effective and ineffective software testing behaviors by novice programmers
Recommendations
Priority based data flow testing
ICSM '95: Proceedings of the International Conference on Software MaintenanceSoftware testing is an expensive component of software development and maintenance. For data flow testing, test cases must be found to test the def-use pairs in a program. Since some of the def-use pairs identified through static analysis may be ...
Agile Testing: A Systematic Mapping across Three Conferences: Understanding Agile Testing in the XP/Agile Universe, Agile, and XP Conferences
AGILE '13: Proceedings of the 2013 Agile ConferenceUnit and acceptance testing are central to agile software development, but is that all there is to agile testing? We build on previous work to provide a systematic mapping of agile testing publications at major agile conferences. The analysis presented ...
A Classification System for Testing, Part 2
This article looks at what happens when you combine the four goal-driven approaches to testing classification (requirements-driven, structure-driven, statistics-driven, and risk-driven) with the three phase-driven approaches (unit testing, integration ...
Comments