Resumen:
|
[ES] Este trabajo aborda la mejora del sistema ASys, originalmente desarrollado para la corrección automática y semiautomática de ejercicios de programación mediante un enfoque de análisis estático. Aunque ASys es eficaz ...[+]
[ES] Este trabajo aborda la mejora del sistema ASys, originalmente desarrollado para la corrección automática y semiautomática de ejercicios de programación mediante un enfoque de análisis estático. Aunque ASys es eficaz para identificar errores sintácticos y estructurales, carecía de la capacidad para evaluar la funcionalidad y lógica del código. Para solventar esta limitación, se ha integrado un sistema de análisis dinámico que genera y ejecuta automáticamente pruebas unitarias utilizando EvoSuite, una herramienta avanzada de generación y ejecución automática de pruebas unitarias. La generación se efectúa sobre el código del profesor, mientras que la ejecución se realiza sobre la solución del alumno, previamente corregida por el propio sistema, lo que reduce las diferencias sintácticas entre el código del alumno y el de los tests unitarios. Esto aumenta su efectividad y reduce problemas de compilación. Además, el nuevo sistema también ofrece una retroalimentación inmediata a los estudiantes, lo que les permite identificar y corregir sus fallos antes de reenviar sus ejercicios.
En este trabajo se ha llevado a cabo una evaluación exhaustiva de varias herramientas de generación de pruebas, determinando que EvoSuite era la opción más adecuada por su rendimiento y efectividad. No obstante, su integración con ASys supuso importantes desafíos que llevaron al descubrimiento de problemas no documentados y a la publicación de un artículo de investigación en la conferencia internacional VALID 2024. Otro aspecto relevante tratado fue el análisis de mejora de la precisión durante la corrección de un ejercicio, resultando en un algoritmo que identifica y aísla los errores de un método, evitando que sus fallos se propaguen y perjudiquen la evaluación.
Finalmente, la implementación de este sistema híbrido reduce la carga de trabajo de los profesores y mejora la experiencia de aprendizaje de los estudiantes. Con ello, ASys se posiciona como una herramienta avanzada para la enseñanza de la programación, proporcionando una evaluación justa, eficiente y completa. Además, este proyecto sienta las bases para futuras mejoras del sistema y ofrece una valiosa contribución al campo de la evaluación automática de código.
[-]
[EN] This work addresses the improvement of the ASys system, originally developed for the automatic and semi-automatic correction of programming exercises using a static analysis approach. Although ASys is effective at ...[+]
[EN] This work addresses the improvement of the ASys system, originally developed for the automatic and semi-automatic correction of programming exercises using a static analysis approach. Although ASys is effective at identifying syntactic and structural errors, it lacked the ability to evaluate the functionality and logic of the code. To overcome this limitation, a dynamic analysis system has been integrated, which automatically generates and executes unit tests using EvoSuite, an advanced tool for automatic generation and execution of unit tests. The test generation is based on the instructor's code, while the execution takes place on the student's solution, which has been previously corrected by the system, reducing syntactic differences between the student's code and the unit tests. This increases its effectiveness and reduces compilation issues. Additionally, the new system provides immediate feedback to students, allowing them to identify and fix their mistakes before resubmitting their exercises.
An exhaustive evaluation of various test generation tools was conducted in this work, determining that EvoSuite was the most suitable option due to its performance and effectiveness. However, its integration with ASys posed significant challenges, leading to the discovery of undocumented issues and the publication of a research paper at the VALID 2024 international conference. Another important aspect addressed was the analysis of accuracy improvements during exercise correction, resulting in an algorithm that identifies and isolates errors in a method, preventing their faults from spreading and affecting the evaluation.
Finally, the implementation of this hybrid system reduces the workload for instructors and improves feedback to students, allowing them to correct mistakes before resubmitting their solutions. This positions ASys as an advanced tool for programming education, providing a fair, efficient, and comprehensive assessment. Moreover, this project lays the groundwork for future system improvements and offers a valuable contribution to the field of automated code evaluation.
[-]
|