Using Large Language Models for Student-Code Guided Test Case Generation in Computer Science Education

Nischal Ashok Kumar,Andrew Lan
2024-02-11
Abstract:In computer science education, test cases are an integral part of programming assignments since they can be used as assessment items to test students' programming knowledge and provide personalized feedback on student-written code. The goal of our work is to propose a fully automated approach for test case generation that can accurately measure student knowledge, which is important for two reasons. First, manually constructing test cases requires expert knowledge and is a labor-intensive process. Second, developing test cases for students, especially those who are novice programmers, is significantly different from those oriented toward professional-level software developers. Therefore, we need an automated process for test case generation to assess student knowledge and provide feedback. In this work, we propose a large language model-based approach to automatically generate test cases and show that they are good measures of student knowledge, using a publicly available dataset that contains student-written Java code. We also discuss future research directions centered on using test cases to help students.
Software Engineering
What problem does this paper attempt to address?
The problem that this paper attempts to solve is the automatic generation of test cases in computer science education to accurately assess students' programming knowledge. Specifically, manually constructing test cases requires expert knowledge and is labor - intensive, and developing test cases for beginner programmers is significantly different from the requirements for professional software developers. Therefore, the researchers proposed a method based on large - language models (LLM) to automate the generation of test cases, aiming to overcome these challenges, provide a scalable way to assess students' programming knowledge, and give personalized feedback. The paper uses a public dataset of student Java code to verify the effectiveness of the proposed automatic test - case generation method.