GuíaBásico

Guía de Fundamentos de Testing y TDD

Aprende a probar software desde cero: qué hace bueno a un test y el ciclo TDD (rojo-verde-refactor), con las manos en el teclado sobre lógica de dominio pura en Python con `pytest`. Empiezas escribiendo tests a mano con `assert`, sin ningún framework, para que el concepto quede en tus manos antes de que una herramienta lo automatice; después instalas `pytest` y practicas el ritmo test-first hasta que escribir el test primero cambie tu forma de diseñar el código. La guía cubre clases de equivalencia y valores límite, `pytest.raises` para excepciones, `@pytest.mark.parametrize` para tablas de casos, tests que se leen bien y no se rompen, cobertura con `coverage.py` (y por qué el 100% no es la meta), y termina enseñándote a oler un test que estorba y a controlar tu primera dependencia con un doble de prueba simple. Todo el recorrido trabaja sobre Reservo, un sistema de reservas de salas de coworking hecho de lógica pura en memoria (sin base de datos ni red), perfecto para practicar sin que la infraestructura distraiga. Cierra con un proyecto final donde construyes de cero, con TDD, la política de cancelación con reembolso de Reservo.

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

Resultados

Lo que vas a poder hacer

  • Definir qué hace bueno a un test (rápido, aislado, determinista, legible) y escribir tests a mano con `assert` antes de conocer un framework
  • Instalar y usar `pytest`: descubrimiento de tests, aserciones, correr subconjuntos con `-k`/`-x`/`-q`, y leer el output rojo/verde
  • Practicar el ciclo TDD completo (rojo-verde-refactor) test-first, viendo cómo escribir el test primero cambia el diseño del código
  • Cubrir casos y límites con clases de equivalencia, valores límite, `pytest.raises` para excepciones y `@pytest.mark.parametrize` para tablas de casos
  • Escribir tests que se leen bien y no se rompen: nombres que documentan, patrón Arrange-Act-Assert, un concepto por test, y fixtures básicas de `pytest`
  • Medir y leer cobertura con `coverage.py`/`pytest --cov` sin volverla un fetiche, entendiendo qué NO ve la cobertura
  • Reconocer test smells (probar implementación, sobre-testing, tests lentos o no deterministas) y usar tu primer test double (un `Clock`/stub) para controlar el tiempo
  • Aplicar TDD de punta a punta en un proyecto real: construir la política de cancelación con reembolso de Reservo, de rojo a verde a refactor

Antes de empezar

Qué necesitas traer

Es para ti si...

  • Devs Python que nunca escribieron un test o lo hacen "porque toca", sin entender qué hace bueno a uno
  • Devs que quieren aprender TDD de forma disciplinada, con el ciclo rojo-verde-refactor practicado paso a paso
  • Equipos que corren `pytest` sin dominarlo del todo (descubrimiento de tests, `parametrize`, fixtures básicas)
  • Devs que persiguen el 100% de cobertura sin saber qué mide en realidad y qué se les escapa

Requisitos y materiales

  • Conocimientos básicos de Python (funciones, excepciones, clases, listas y diccionarios)
  • Python 3.10+ instalado localmente (la guía se verificó con Python 3.14 y pytest 9.1.1)
  • Ningún conocimiento previo de testing ni de `pytest` — la guía arranca desde cero

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!