GuíaIntermedio

Guía de Property-Based y Testing Avanzado

Aprende property-based testing con Hypothesis: en vez de escribir tests para los ejemplos que se te ocurrieron, defines una propiedad (un invariante) que debe cumplirse para TODA entrada, y dejas que Hypothesis genere y busque el caso que la rompe. Esta guía cubre el primer test con `@given` y las estrategias básicas, cómo describir el espacio de entradas con estrategias compuestas (`@st.composite`), los patrones para encontrar propiedades (invariante, round-trip, oráculo, metamórfica, idempotencia), el shrinking (cómo Hypothesis reduce un caso que falla al ejemplo mínimo), property-based testing con estado con `RuleBasedStateMachine`, y un ramo de técnicas avanzadas adicionales (fixtures parametrizadas, una probada de mutation testing, fuzzing). Cierra con un proyecto capstone: encontrar y corregir un bug real de Reservo usando property-based testing.

64
lecciones
8
módulos
Inglés · Español
disponible en
certificado
Gratis
acceso
NIEVA

Resultados

Lo que vas a poder hacer

  • Distinguir los tests por ejemplo de property-based testing: probar un invariante para TODA entrada, no solo las que imaginaste
  • Escribir el primer test con Hypothesis usando `@given` y estrategias básicas (`st.integers`, `st.floats`, `st.text`, `st.datetimes`)
  • Describir el espacio de entradas con estrategias compuestas: `@st.composite`, `map`/`filter`/`flatmap` y `assume()`
  • Reconocer los patrones para encontrar propiedades: invariante, round-trip, oráculo, metamórfica e idempotencia
  • Leer el shrinking: cómo Hypothesis reduce un caso que falla hasta el ejemplo mínimo, y fijar regresiones con `@example`
  • Modelar un sistema con estado y verificar invariantes a través de secuencias de operaciones con `RuleBasedStateMachine`
  • Conocer técnicas avanzadas adicionales: fixtures parametrizadas, una probada de mutation testing y la relación entre fuzzing y property-based testing
  • Encontrar y corregir un bug real de Reservo usando property-based testing como proyecto capstone

Antes de empezar

Qué necesitas traer

Es para ti si...

  • Devs que ya escriben tests por ejemplo con pytest y quieren encontrar bugs que esos tests no cazan
  • Devs con funciones de lógica pura (cálculos, validaciones, transformaciones) donde importa cubrir el espacio de entradas completo
  • Devs que ya dominan los fundamentos de testing y quieren dar el salto a técnicas avanzadas

Requisitos y materiales

  • pytest, asserts, fixtures básicas y parametrize simple (o Guía de Testing Fundamentals & TDD completada)
  • Python 3.10+ con pip para instalar la librería `hypothesis`
  • Cómoda lectura de funciones de lógica pura en Python

Contenido

El temario, módulo por módulo

Abre cualquiera para ver sus lecciones.

Dudas frecuentes

Lo que suele preguntarse

Empieza cuando quieras

Reseñas

Lo que dicen los estudiantes

Estas reseñas son de estudiantes inscritos que completaron al menos el 50% del curso. Moderamos las reseñas solo por motivos de contenido (spam, lenguaje ofensivo, datos personales), nunca por ser críticas o negativas.

Aún no hay reseñas aprobadas.

¡Sé el primero en compartir tu experiencia!