Using Software Testing Techniques for Efficient Handling of Programming Exercises in an E-Learning Platform

e-Learning has become a major field of interest in recent years, and multiple approaches and solutions have been developed. A typical form of e-learning application comprises exercise submission and assessment systems that allow students to work on assignments whenever and where they want (i.e., dislocated, asynchronous work). In basic computer science courses, programming exercises are widely used and courses usually have a very large number of participants. However, there is still no efficient way for supporting tutors to correct these exercises, as experience has shown that correction (and, beyond that, automatic grading) are difficult and time consuming. In this paper we present an enhancement of the xLx platform developed at the University of Muenster to efficiently support tutors in handling Java programming exercises electronically. The new component is based on concepts of automatic static and dynamic testing approaches, well known from software engineering, and provides an automatic precorrection of submitted solutions. In addition, a tutor is able to annotate solutions manually, by adding comments that are associated with the source code of the solution in an intelligent way. Static tests are based on a compilation of the sources to find syntactical errors, while dynamic tests use test cases defined by tutors during the creation of the exercises and have to be executed correctly on the solutions in order to receive credits for the exercises.