Desarrollador Python: pregunta de entrevista
¿Cuál es tu estrategia de testing en Python?
Usa unitarias rápidas para comportamiento puro, integración para límites reales, fixtures de alcance pequeño y pruebas de contrato o end-to-end solo para rutas críticas; aísla tiempo, red y estado global mutable.
Respuesta directa
Qué debe cubrir una buena respuesta
Cómo funciona
Una suite de pruebas en Python se construye con fixtures de pytest del ámbito más estrecho que funcione, casos parametrizados para variaciones de entrada y una separación clara entre pruebas rápidas sin nada externo y pruebas más lentas que usan una base de datos o servidor HTTP real en un contenedor. Tiempo, aleatoriedad, red y variables de entorno se inyectan o parchean en la frontera para que las pruebas sean deterministas. La cobertura sirve para encontrar ramas sin probar, no como objetivo, y la suite debe seguir siendo lo bastante rápida para correr en cada commit.
Ejemplo
Un módulo de pagos tiene pruebas unitarias puras del cálculo de comisiones con una tabla parametrizada de veinte casos, pruebas de integración que ejecutan el repositorio contra PostgreSQL en Docker y una prueba end-to-end que ejercita la API con httpx. freezegun fija el reloj en pruebas que dependen de fechas de facturación y responses simula al proveedor de tarjetas para que ninguna prueba toque la red.
Errores frecuentes
- Parchear tan adentro del módulo que la prueba pasa mientras la ruta real está rota.
- Compartir un fixture de base de datos de ámbito sesión entre pruebas que lo mutan, de modo que los fallos dependen del orden.
- Perseguir el 100 por ciento de cobertura con pruebas que no afirman nada significativo.
Una estructura útil para responder
Responde desde tu propia experiencia.
No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.
Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.