¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Probar código generado antes de usarlo

Después de esta lección: Puedo escribir casos de prueba que comprueban código generado.

Lección de 60 min3 comandosLaboratorio de agente de programación con IA: usa opencode para explicar y corregir código, y comprueba su trabajo

Probar código generado es comprobarlo con casos tuyos

Probar código generado es ejecutarlo con ejemplos y casos límite que escribes tú, antes de usarlo. Una prueba que pasa te da confianza, y una que falla te ahorra un problema.

Una tienda de Zaragoza pide a un asistente una función con el coste de envío por peso. La función parece correcta, pero nadie la ha puesto a prueba.

Al final de esta lección

Nota

Puedo escribir casos de prueba que comprueban código generado.

Palabras clave

PalabraQué significaEjemplo
Caso de pruebauna entrada con su resultado esperado
Valor límiteel dato justo en el borde de una regla5 kg
Valor esperadoel resultado correcto que escribes antes
Prueba que fallauna prueba que descubre un defecto
Regresiónalgo que funcionaba y deja de funcionar

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Escribe los casos antes de ver el código

Escribe cada valor esperado a partir del enunciado, no a partir del código. Si lo sacas de ejecutar la función, la prueba siempre pasa y no prueba nada.

Empieza por lo normal, sigue por los bordes y acaba por lo raro: cero, vacío, un dato que sobra.

Ejemplo: casos para el coste de envío

Tipo de casoPesoEsperadoPor qué sirve
Normal0,5 kg4,00La regla más común
Límite1 kg4,00El borde: hasta 1 kg incluido
Límite5 kg6,50El otro borde
Justo después5,1 kg9,90Dónde empieza la tarifa alta

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Pon la función a prueba con la tabla

Código: python
# Un envío cuesta 4,00 euros hasta 1 kg incluido, 6,50 hasta 5 kg y 9,90 después.
def envio(peso):
    if peso < 1:
        return 4.0
    elif peso <= 5:
        return 6.5
    return 9.9

casos = [[0.5, 4.0], [1, 4.0], [5, 6.5], [5.1, 9.9]]
for caso in casos:
    peso = caso[0]
    esperado = caso[1]
    obtenido = envio(peso)
    if obtenido == esperado:
        print(peso, "bien")
    else:
        print(peso, "falla: esperaba", esperado, "y da", obtenido)
# Cambia el 1 de la lista por 0.9 y mira qué cambia.

Un borde descubre el defecto oculto

El peso 0,5 y el peso 5 pasan, y el código parece bien. Pero 1 kg sale a 6,50 en lugar de 4,00. La regla dice "hasta 1 kg incluido" y el código escribe < en vez de <=.

Un solo ejemplo del medio no lo habría visto. Los bordes son donde se esconden los fallos.

Un error frecuente

Advertencia

Mucha gente cree que, si el asistente escribe las pruebas y pasan, el código es correcto. Puede ser un error repetido: la prueba y el código parten de la misma idea equivocada. Escribe tú los casos, o revisa los suyos contra el enunciado.

Guarda las pruebas para detectar regresiones

Cuando el código pasa, conserva las pruebas. Si mañana un asistente cambia la función, ejecutas las pruebas y sabes si algo dejó de funcionar.

Eso es una regresión: algo que andaba y se rompió. Las pruebas guardadas la avisan en un segundo.

Mira qué pruebas trae el proyecto

El proyecto de la cantina trae sus propias pruebas. Estas órdenes solo las cuentan y comprueban un resultado que ya sabes, sin cambiar nada. Ejecutar todas las pruebas, y buscar qué falla, es la tarea del laboratorio y la haces tú.

Cuenta las pruebas del proyecto

Comando
docker exec -w /home/node/project agent grep -c "^test(" shop.test.js

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Comprueba un resultado conocido

Comando
docker exec -w /home/node/project agent node -e "console.log(require('./shop').asPounds(180))"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Prueba un solo producto

Comando
docker exec -w /home/node/project agent node -e "console.log(require('./shop').total(['apple']))"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Sobre este laboratorio y su código: Laboratorio de agente de programación con IA: usa opencode para explicar y corregir código, y comprueba su trabajo

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.