Web-CAT es un sistema de evaluación automatizado de ejercicios prácticos de programación. Dicho de otro modo: si estás enseñando a programar a un grupo de alumnos, les pides que resuelvan ejercicios prácticos y quieres que los puedan subir a una web y recibir feedback automáticamente, WebCat es lo que andabas buscando, en especial si el lenguaje de programación en el que solicitas los ejercicios es Java, dado que dispone de buenos plugins para integrar los tests sobre los ejercicios con JUnit, así como para la realización de tests de cobertura, de forma automática.
En mi caso, lo que buscaba era que los propios alumnos pudieran crear sus pruebas unitarias sobre las clases que deben de programar y que el sistema (WebCat en este caso), pasara dichos tests MÁS las pruebas JUnit que yo haya especificado (y que el alumno no dispone). WebCat es justo la herramienta que buscaba. Veamos el proceso de instalación.
Bajamos el .war desde SourceForge (un .war es un archivo de instalación automática de una aplicación web J2EE, para poder instalarla en dos clicks sobre por ejemplo, el servidor Tomcat).
Desde el Tomcat Manager (http://localhost:8080/manager), instalamos el .war recién descargado.
Desconozco la razón, pero desde que pulsamos el botón de instalar hasta que realmente se instala transcurren unos 2 minutos (¡en local!). ¿Tal vez se esté descargando dependencias? No lo sé, pero tras esos dos minutos, recibiremos un mensaje de OK.
Pulsamos a continuación sobre el enlace que lleva el nombre de la aplicación (/Web-CAT_1.4.0) para entrar en el asistente de configuración.
Vamos siguiendo los pasos, aceptamos la licencia, configuramos MySQL, le damos un nombre al sitio web, indicamos directorios de trabajo, dirección del servidor SMTP, email de administración, mecanismo de autenticación (built-in database, es decir, MySQL, o bien LDAP o bien a través de un plugin que especifiquemos), nombre de usuario administrador… hasta terminar por crear un semestre de prueba, con nombre de asignatura, cursos, etc.
Al terminar, el asistente nos felicitará por haber recorrido todos sus apartados correctamente y nos dejará en la pantalla de login. Nos identificamos con la cuenta de administrador que hayamos especificado previamente. Una vez autenticados, entraremos en la pantalla principal de WebCat.
Lo primero será ahora crear algún usuario/alumno (aparte del administrador), luego un curso (si no lo hemos hecho antes) y finalmente asociar usuarios/alumnos al curso. Para ello, pulsamos en la pestaña «Administer», «Edit database», y en la opción «User», seleccionamos el icono de la lupa ( < sarcastic mode > sólo me costó 15 minutos encontrar la opción en este panel tan intuitivo… < / sarcastic mode > ). Pulsamos el botón New (antes de rellenar los campos) y ahora sí, cumplimentamos los campos Authentication Domain – el nombre de tu centro – , username, password, email (son los únicos campos obligatorios) y pulsamos Save.
Crear el curso: pulsamos en Courses / New. Le damos un nombre al curso y siguiente. Ahora, elegimos «Manually add students» y elegimos a los estudiantes. Por ahora sólo tenemos uno, así que no hay mucho que pensar.
Crear ejercicios: pulsamos en Assignments, seleccionamos el curso, y pulsamos Next hasta que nos permita bautizar al nuevo ejercicio con un nombre, url, etc.
En el apartado Submission Rules, podemos indicar quién puntúa qué, plazos para aceptar los trabajos, si penalizamos por envíos tardíos, etc. Guardamos nuestras preferencias y volvemos a la página anterior.
Ahora podemos indicar que queremos usar el plugin JUnit en WebCat. Para ello, en el apartado Plugin, pulsamos el botón Add. Seleccionamos JavaTddPlugin, y a continuación pulsamos en el botón de edición del plugin.
En el apartado «JUnit Reference Test Class(es)», es donde podremos especificar los tests JUnit que queremos pasar a cada uno de los ejercicios que nos envíen los alumnos. En «Supplemental Classes for Assignment», podemos indicar clases auxiliares que WebCat deberá de incluir para compilar los ejercicios. Subimos un archivo .java con las pruebas unitarias que deseemos (se puede subir también un .zip con varios .java…)
Al terminar, no olvidarse de pulsar en «Publish it» o los alumnos no verán el ejercicio.