/ / Pruebas efectivas de soluciones de programación para múltiples estudiantes - c ++, pruebas unitarias, pruebas automatizadas

Pruebas efectivas de soluciones de programación de múltiples alumnos: c ++, pruebas unitarias, pruebas automatizadas

Como parte de mi conferencia en C ++, los estudiantesHay que resolver tareas. Cada solución implementará las mismas funciones con la misma funcionalidad y los mismos parámetros (nombre de la función, valor de retorno, parámetros de aprobación). Solo el código interno es diferente.

Así que estoy pensando en una forma de probar todas las soluciones.(alrededor de 30) de manera efectiva. Quizás la mejor manera es escribir una prueba de unidad, así como un script de shell (o algo similar) que compile cada solución una vez con la prueba de unidad y la ejecute.

Pero tal vez hay una solución diferente y mucho mejor para este problema.

Respuestas

1 para la respuesta № 1

La razón por la que las pruebas unitarias son una de las másLos tipos eficientes de pruebas automatizadas se deben a que el retorno de la inversión es relativamente pequeño (en comparación con otros tipos de pruebas), por lo que para mí tiene mucho sentido escribir un conjunto de pruebas de verificación.

Incluso podrías ir tan lejos como para darles a los estudiantes.El conjunto de pruebas en lugar de una especificación escrita en prosa. Esto podría introducirlos en el concepto de desarrollo impulsado por pruebas (aunque normalmente tendemos a escribir las pruebas de forma iterativa, y no en lotes).


1 para la respuesta № 2

Sí, las pruebas unitarias son la solución obvia para la mayoría de los casos.

Las advertencias del compilador y el análisis estático también son útiles.

cronometrar la ejecución del programa dado un conjunto de parámetros es otra opción bastante automatizada - depende de lo que le interese evaluar.

Creando clases base con buenos diagnósticos.(que puede cambiar la implementación para su evaluación si lo prefiere) es otra opción. También puede proporcionar interfaces que deben usar y mantener dos implementaciones. A continuación, ejecute los programas como de costumbre utilizando la implementación de diagnóstico. Depende de lo que estés buscando.


0 para la respuesta № 3

Tal vez me esté perdiendo algo obvio, pero ¿no sería suficiente simplemente ejecutar el código varias veces con valores de parámetros de prueba de límites?