Automated Student Code Assessment with Symbolic Execution and Java PathFinder

The assessment of student code is a necessary part of most programming courses. However, many ways of assessing the correctness of student code can be very time-consuming and may be error-prone. This paper presents JSymTester, a tool which uses the symbolic execution framework of the Java PathFinder...

Full description

Bibliographic Details
Main Author: Bell, Karl
Format: Others
Published: DigitalCommons@CalPoly 2012
Online Access:https://digitalcommons.calpoly.edu/theses/891
https://digitalcommons.calpoly.edu/cgi/viewcontent.cgi?article=1942&context=theses
Description
Summary:The assessment of student code is a necessary part of most programming courses. However, many ways of assessing the correctness of student code can be very time-consuming and may be error-prone. This paper presents JSymTester, a tool which uses the symbolic execution framework of the Java PathFinder to find test inputs for student code and uses these inputs to extensively compare its functionality to a reference implementation. This allows for automatic testing of student code, relying only on the reference implementation and the student's own implementation, eliminating the need to manually write tests. This tool was tested on small assignments for an introductory computer science course, and performed similarly to the existing, more traditional approaches of unit testing and output comparison. This shows that automated test generation techniques may, in general, be useful in the area of student code assessment.