Publication:
Generación automática de tests en DomJudge

Loading...
Thumbnail Image
Official URL
Full text at PDC
Publication Date
2016
Advisors (or tutors)
Editors
Journal Title
Journal ISSN
Volume Title
Publisher
Citations
Google Scholar
Research Projects
Organizational Units
Journal Issue
Abstract
Los jueces online están cobrando cada día más importancia, especialmente en el ámbito de la enseñanza. Su funciona-miento es simple, un juez/profesor sube un problema de programación con un enunciado y unos casos de prueba (entradas y salidas esperadas) al juez online. El alumno/concursante deberá subir el código que considera como solución al problema. Si el código del alumno devuelve las mismas salidas que las que se encuentran en los casos de prueba para las correspondientes entradas en los test-cases dada las mismas entradas, el código se considera correcto. En la Facultad de Informática de la Universidad Complutense de Madrid ha aparecido un juez virtual que cada vez está siendo más usado por los docentes como complemento a la hora de evaluar. Este juez online es DomJudge. DomJudge es un juez online desarrollado en la universidad de Utrecht con el fin de ser un juez virtual de concursos de programación. Su código es libre y se puede descargar y modificar, lo que lo hace ideal si se quiere adaptar su funcionamiento. Es bien sabido que generar casos de prueba de calidad es una tarea muy compleja. Existen diversas técnicas que ayudan a la generación automática de tests. Por ejemplo, la ejecución simbólica permite generar tests garantizando que todos los caminos de ejecución del programa son ejercitados hasta una cierta profundidad. El objetivo de este proyecto es hacer uso de estas técnicas de testing para generar casos de prueba de forma automática. Para que la autoevaluación realizada por estos jueces sea efectiva, los profesores deben proporcionar casos de prueba de calidad que son ejecutados automáticamente cuando los alumnos suben sus soluciones. Escribir estos casos de prueba resulta costoso y complejo, y es en este punto, donde el uso de jPET podría resultar muy útil. Los casos de prueba generados por jPET podrían servir como punto de partida a la hora de generar un conjunto de casos de prueba de calidad. Un aspecto muy interesante en este sentido, es que no es necesario que los programas de los alumnos uti licen el lenguaje Java. Lo único que sería necesario es que el profesor proporcione una solución escrita en Java. A partir de esta se podrían generar los casos de prueba iniciales. Si se diese el caso de que las soluciones de los alumnos viniesen escritas en Java, se podrían plantear enfoques más interesantes en los cuales los tests se forman a partir de ambas soluciones. La del alumno, para generarlos datos de entrada, y la del profesor, para chequear que las salidas para esas entradas son las correctas. Por eso hemos llevado a cabo no solo una traducción automática del xml generado por JPET en ficheros in y out. Sino una total integración con el sistema DomJudge para poder generar los casos de prueba sin intermediarios. Gracias a esta integración podemos facilitar el trabajo de los profesores a la hora de crear problemas en jueces online y conseguimos una generación automática de tests en DomJudge.
The online judges are becoming increasingly important, especially in the field of education. Its operation is simple, a judge / teacher uploads a programming problem with a statement and a test-cases to the online judge. The student / contestant must upload the code they think is right. If the student code returns the same outputs which are in the test-cases for the same inputs, the code works properly. At the Faculty of computer science of the Complutense University of Madrid has appeared a virtual judge that is being more used by teachers as a complement to the assessment. This online judge is DomJudge. DomJudge is an online judge developed at the University of Utrecht in order to be a judge of virtual programming contests. His code is free and you can download and modify, which makes it ideal if you want to adapt its operation. It is well known that generate quality test cases is a very complex task. There are several techniques that help the automatic generation of tests. For example, the symbolic execution can generate tests ensuring that all program execution paths are traversed to a certain depth. The aim of this project is to use these testing techniques to generate test cases automatically. For the self-assessment by these judges to be efective, teachers must provide quality test cases that are automatically executed when students upload their solutions. Write these test cases is costly and complex, and it is at this point where the use of Jpet could be very useful. Test cases generated by Jpet could serve as a starting point in generating a set of quality test cases. A very interesting aspect in this regard is that it is not necessary that the student's programs use the Java language. All that would be needed is that the teacher provide a solution coded in Java. From this code jPET can generate initial test cases. However if the solutions provided by the students are written in Java, it could pose more interesting approaches in which the tests are formed from both solutions. The student, to generate input data, and the teacher, to check that the outputs for those entries are correct. That is why we have carried out not only an automatic translation of the xml files generated in JPET into in and out files. But a full integration with the DomJudge system to generate test cases without intermediaries. With this integration we can facilitate the work of teachers when it comes to create problems in online judges and we achieve an automatic generation of tests in DomJudge.
Description
Trabajo de Fin de Grado en Ingeniería Informática (Universidad Complutense, Facultad de Informática, curso 2015/2016)
UCM subjects
Keywords
Citation