Grading student programs using ASSYST
SIGCSE '97 Proceedings of the twenty-eighth SIGCSE technical symposium on Computer science education
A gimmick to integrate software testing throughout the curriculum
SIGCSE '02 Proceedings of the 33rd SIGCSE technical symposium on Computer science education
Test Driven Development: By Example
Test Driven Development: By Example
IEEE Software
Rethinking computer science education from a test-first perspective
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
An easy-to-use toolkit for efficient Java bytecode translators
Proceedings of the 2nd international conference on Generative programming and component engineering
Testing first: emphasizing testing in early programming courses
ITiCSE '05 Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science education
Improving your software using static analysis to find bugs
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Helping students appreciate test-driven development (TDD)
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Bug Hunt: Making Early Software Testing Lessons Engaging and Affordable
ICSE '07 Proceedings of the 29th international conference on Software Engineering
The JavaFest: a collaborative learning technique for Java programming courses
Proceedings of the 6th international symposium on Principles and practice of programming in Java
Mutation analysis vs. code coverage in automated assessment of students' testing skills
Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
An experiment to test bug density in students' code (abstract only)
Proceeding of the 44th ACM technical symposium on Computer science education
Toward practical mutation analysis for evaluating the quality of student-written software tests
Proceedings of the ninth annual international ACM conference on International computing education research
Automatically assessing the quality of student-written tests
Proceedings of the ninth annual international ACM conference on International computing education research
Automated assessment of students' testing skills for improving correctness of their code
Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity
Proceedings of the 14th annual ACM SIGITE conference on Information technology education
Hi-index | 0.00 |
At SIGCSE 2002, Michael Goldwasser suggested a strategy for adding software testing practices to programming courses by requiring students to turn in tests along with their solutions, and then running every student's tests against every other student's program. This approach provides a much more robust environment for assessing the quality of student-written tests, and also provides more thorough testing of student solutions. Although software testing is included as a regular part of many more programming courses today, the all-pairs model of executing tests is still a rarity. This is because student-written tests, such as JUnit tests written for Java programs, are now more commonly written in the form of program code themselves, and they may depend on virtually any aspect of their author's own solution. These dependencies may keep one student's tests from even compiling against another student's program. This paper discusses the problem and presents a novel solution for Java that uses bytecode rewriting to transform a student's tests into a form that uses reflection to run against any other solution, regardless of any compile-time dependencies that may have been present in the original tests. Results of applying this technique to two assignments, encompassing 147 student programs and 240,158 individual test case runs, shows the feasibility of the approach and provides some insight into the quality of both student tests and student programs. An analysis of these results is presented.