Autores:
(1) Philipp Straubinger, Universidad de Passau, Alemania;
(2) Gordon Fraser, Universidad de Passau, Alemania.
2.2 Gamificación de las pruebas de software
3 Gamificación de la integración continua y 3.1 Desafíos en la enseñanza de pruebas de software
3.2 Elementos de gamificación de Gamekins
3.3 Elementos gamificados y plan de estudios de pruebas
4. Configuración del experimento y 4.1 Curso de pruebas de software
4.2 Integración de Gamekins y 4.3 Participantes
5.1 RQ1: ¿Cómo utilizaron los estudiantes Gamekins durante el curso?
5.2 RQ2: ¿Qué comportamiento de prueba exhibieron los estudiantes?
5.3 RQ3: ¿Cómo percibieron los estudiantes la integración de Gamekins en sus proyectos?
7 Conclusiones, agradecimientos y referencias
Las pruebas desempeñan un papel crucial en el desarrollo de software y es esencial que los estudiantes de ingeniería de software reciban una formación adecuada en este campo. Sin embargo, motivar a los estudiantes para que escriban pruebas y utilicen pruebas automatizadas durante el desarrollo de software puede ser un desafío. Para abordar este problema y mejorar la participación de los estudiantes en las pruebas cuando escriben código, proponemos incentivar a los estudiantes a que prueben más mediante la gamificación de la integración continua. Para ello, utilizamos Gamekins, una herramienta que se integra perfectamente en la plataforma de integración continua Jenkins y utiliza elementos de juego basados en confirmaciones en el repositorio de código fuente: los desarrolladores pueden ganar puntos al completar desafíos de prueba y misiones generadas por Gamekins, competir con otros desarrolladores o equipos en una tabla de clasificación y recibir logros por sus logros relacionados con las pruebas. En este artículo, presentamos nuestra integración de Gamekins en un curso de nivel universitario sobre pruebas de software. Observamos una correlación entre la forma en que los estudiantes prueban su código y su uso de Gamekins, así como una mejora significativa en la precisión de sus resultados en comparación con una iteración anterior del curso sin gamificación. Como indicador adicional de cómo este enfoque mejora el comportamiento en las pruebas, los estudiantes informaron que disfrutaban escribiendo pruebas con Gamekins.
CONCEPTOS DE CCS
• Software y su ingeniería → Pruebas y depuración de software; • Temas sociales y profesionales → Educación en ingeniería de software
PALABRAS CLAVE
Pruebas de software, gamificación, integración continua, educación
Formato de referencia ACM:
Philipp Straubinger y Gordon Fraser. 2024. Gamificación de un curso de pruebas de software con integración continua. En la 46.ª Conferencia internacional sobre ingeniería de software: Educación y formación en ingeniería de software (ICSESEET '24), del 14 al 20 de abril de 2024, Lisboa, Portugal. ACM, Nueva York, NY, EE. UU., 12 páginas. https://doi.org/10.1145/3639474.3640054
Las pruebas de software son un concepto bien establecido y se utilizan ampliamente en la industria [13]. Sin embargo, a pesar de la disponibilidad de varias herramientas que facilitan el proceso de prueba, como el soporte de pruebas en entornos de desarrollo integrados (IDE) [26] y la ejecución automatizada de pruebas en plataformas de integración continua (CI) [8], las pruebas a menudo se pasan por alto en la práctica. Las razones especuladas para esto incluyen la falta de motivación de los desarrolladores para participar en actividades de prueba y la falta de educación en pruebas de software [14, 30, 41, 49, 50]. Aunque el tratamiento a menudo inadecuado de las pruebas en la educación superior [41] se ha contrarrestado recientemente con un creciente reconocimiento de la importancia de las pruebas [9, 29, 35], esto se ve obstaculizado por los estudiantes, al igual que los desarrolladores, que tienden a percibir las pruebas como tediosas y aburridas [32]. Como resultado, la industria sufre pérdidas significativas debido a la calidad inadecuada del software y las pruebas insuficientes [31].
Las técnicas de gamificación brindan una oportunidad para motivar a los estudiantes a realizar pruebas a pesar de que perciben que son aburridas o tediosas. La gamificación implica incorporar elementos que se encuentran comúnmente en los juegos, como tablas de clasificación y logros, en contextos no lúdicos [15]. Se ha demostrado que este enfoque ayuda a involucrar a los estudiantes en la educación de ingeniería de software [24], por ejemplo, gamificando conferencias o herramientas para enseñar pruebas de software [7, 12, 16, 22, 36]. Sin embargo, para que los estudiantes internalicen las pruebas y las establezcan como una parte integral de su enfoque de desarrollo, sostenemos que es necesaria una integración perfecta de la gamificación de las pruebas en el proceso de desarrollo de software.
Para lograr esto, integramos la gamificación en los sistemas de integración continua (CI) utilizados por los estudiantes. En concreto, utilizamos Gamekins [47], un complemento diseñado para la plataforma de CI Jenkins [1], ampliamente utilizada, que integra perfectamente la gamificación en el flujo de trabajo de desarrollo de software. Al analizar el código fuente y los resultados de las pruebas, Gamekins identifica áreas en las que se pueden mejorar las pruebas en función de la cobertura del código [53] o el análisis de mutaciones [28] y luego incentiva la mejora utilizando conceptos de gamificación como desafíos y misiones, recompensando las buenas pruebas con puntos, logros y clasificaciones en la tabla de clasificación. Evaluamos los beneficios de integrar Gamekins en un curso de pruebas de software de pregrado, investigando su impacto en los objetivos de aprendizaje del curso y el comportamiento de los estudiantes. En detalle, las contribuciones de este artículo son las siguientes:
• Proponemos el uso de la gamificación como medio para incentivar y recompensar las actividades de prueba en CI.
• Presentamos Gamekins como una herramienta para ser utilizada en un curso de pruebas de software de nivel universitario.
• Evaluamos empíricamente los efectos de integrar Gamekins en el curso de pruebas de software, comparándolo con una cohorte anterior sin gamificación y encuestando a los estudiantes.
Los resultados del estudio demuestran una correlación entre el comportamiento de los estudiantes en las pruebas y el uso de Gamekins, así como una mejora significativa en los resultados correctos en comparación con la edición anterior del curso, en la que no se utilizó la gamificación en las mismas tareas. Si bien no todos los aspectos de Gamekins fueron del agrado de los estudiantes, en general disfrutaron de su uso durante todo el curso, lo que confirma que Gamekins es una herramienta de enseñanza viable.
Este artículo está disponible en arxiv bajo la licencia CC BY-SA 4.0 DEED.
[1] https://www.jenkins.io/