Aplícalo esta semana
Práctica · ejemplo: Regla de descuento
Aprender con TDD (cada prueba es una hipótesis)
Escribe la prueba de lo que crees que hará el código antes de escribirlo.
TDD también es un método de aprendizaje: la prueba es tu hipótesis sobre el comportamiento (t<0), el código es el experimento (t=0) y el resultado verde o rojo es la evidencia (t>0). Sirve para aprender una librería nueva escribiendo pruebas de aprendizaje sobre ella.
- Para quién
- Todos los niveles con algo de Python.
- Fuente
- Beck (2002), Test-Driven Development: By Example. Los estudios sobre productividad son mixtos (Fucci et al., 2017).
- Muy usada en la industria; poca investigación controlada.
El plan en el tiempo
Qué haces antes, durante y después. Mueve t y mira qué ya ocurrió.
Antes de encontrar el concepto t<0
- t=-1
Escribes la prueba de cómo crees que se comporta un descuento
Predicción · 5 min · Comprometerse con una predicción crea una expectativa que el resultado confirma o rompe.
El encuentro t=0
- t=0
Escribes el código mínimo y ves el rojo pasar a verde
Explicación · 30 min · El primer encuentro: alguien (o un texto) explica el concepto.
Después: consolidar t>0
- t=+1
Siguiente regla: nueva prueba roja, luego verde
Aplicación · 30 min · Usar el concepto en un problema nuevo construye transferencia.
- t=+3
Refactorizas con las pruebas como red
Aplicación · 30 min · Usar el concepto en un problema nuevo construye transferencia.
- t=+6
Analizas una prueba que falló cuando no esperabas
Análisis de errores · 15 min · Encontrar y explicar un error enseña los límites de una regla.
- t=+12
Revisas qué pruebas te enseñaron algo
Reflexión escrita · 10 min · Escribir qué esperabas y qué pasó convierte experiencia en criterio.
Trayectoria frente al método de control
Se aplica en la ruta
Úsala programando, no solo leyendo
Pruébalo ahora
Regla de descuento
Predice si cada prueba pasa o falla en un ciclo rojo, verde, refactor.
Paso 1 · rojo
Nueva prueba
1def test_frecuente_tiene_10_por_ciento(): 2 assert descuento(Cliente(frecuente=True), Producto(oferta=False)) == Porcentaje(10)
Todavía no existe descuento(). ¿La prueba pasa o falla?
Cuándo no usarla
Para explorar algo que no sabes ni qué hace: primero un prototipo descartable.
Señal de que funciona
Tus pruebas fallan cuando esperas y pasan cuando esperas.
Tu decisión
¿Aprender con TDD te hizo aprender?
Responde después de probar el ejemplo. Se guarda solo en este navegador.