Tipos y Niveles de Pruebas de Software

Resumen

Cuando alguien menciona "prueba de integración" en una reunión, no todos entienden lo mismo. Esa confusión nace de mezclar dos preguntas distintas como si fueran una sola: dónde estamos probando y por qué estamos probando [0:11]. Separar esas dos dimensiones permite que cada prueba que planifiques lleve una etiqueta clara, sin ambigüedad, y que todo el equipo hable el mismo idioma.

¿Qué son los niveles de prueba y por qué importa el "dónde"?

Un nivel de prueba es un grupo de actividades de testing organizadas alrededor de una fase del desarrollo [0:28]. Para entenderlo, funciona una analogía con el ensamblaje de un automóvil.

¿Cómo funciona la prueba unitaria?

Primero revisas cada pieza suelta: la bujía, la batería. La prueba unitaria evalúa la pieza más pequeña del software —una función, un método— probada en aislamiento por el desarrollador [0:36]. Si la pieza individual falla, no tiene sentido ensamblar nada más.

¿Qué valida la prueba de integración?

Después verificas que esas piezas funcionen juntas: bujía más batería más motor de arranque. La prueba de integración se enfoca en interfaces y flujo de datos entre componentes [0:51]. Un punto clave: integración puede ocurrir entre módulos internos o entre sistemas completos [1:03]. Cuando alguien dice "prueba de integración" sin especificar cuál, la conversación se complica. Siempre pregunta: ¿qué se está conectando? [1:16]

¿Qué cubren la prueba de sistema y la de aceptación?

  • Prueba de sistema: tomas el producto completamente ensamblado y lo llevas a un entorno lo más cercano posible a producción. Cubre funcionalidad y aspectos no funcionales, ejecutada por un equipo independiente [1:18].
  • Prueba de aceptación: ya no preguntas si funciona técnicamente, sino si satisface las necesidades reales del negocio. Los responsables son los usuarios o clientes, no el equipo técnico [1:41].

¿Cómo se visualiza la estrategia con la pirámide de pruebas?

La pirámide de pruebas organiza la distribución ideal: muchas pruebas unitarias rápidas en la base, menos de integración en el medio y pocas de sistema en la cima [1:53]. Cuanto más alto en la pirámide, más lenta y compleja resulta la prueba [2:03].

Ejecutarlas en orden —de menor a mayor— a medida que el código avanza desde una rama hacia el despliegue, significa que los problemas se detectan temprano [2:07]. Aquí se materializa el tercer principio del testing: las pruebas tempranas ahorran tiempo y dinero [2:17]. Esa lógica se refleja directamente en la arquitectura del pipeline de integración continua.

¿Qué son los tipos de prueba y cómo se combinan con los niveles?

Un tipo de prueba es un grupo de actividades enfocadas en un objetivo específico de calidad [2:32]. El tipo responde al "por qué" estás probando.

  • Prueba funcional: verifica que el software hace lo que debe. Presionas el botón de café y sale café, no jugo [2:37].
  • Prueba no funcional: evalúa qué tan bien se comporta el sistema: rendimiento, seguridad, usabilidad [2:45].
  • Prueba de regresión: confirma que un cambio no rompió algo que ya funcionaba [2:51].
  • Prueba de smoke: verifica las funciones más críticas antes de invertir tiempo en pruebas profundas. Es como encender el carro para confirmar que el motor arranca antes de un viaje largo [2:57].

Piensa en un paquete postal con dos etiquetas: a dónde va y qué contiene. Necesitas ambas [3:08]. El nivel es la dirección, el tipo es el contenido. Si mides cuántos usuarios simultáneos soporta la aplicación completa, la etiqueta correcta es: nivel sistema, tipo rendimiento [3:23]. Si un usuario de negocio verifica el flujo de compra en preproducción, es: nivel aceptación, tipo funcional [3:31].

El error más común es dar solo la mitad. Alguien dice "es una prueba de usabilidad" y se detiene — falta el nivel. Sin él, no sabes quién es responsable ni cómo encaja en el cronograma [3:38].

¿Puede la regresión existir en más de un nivel?

Sí, absolutamente. La regresión es un tipo, no un nivel [3:53]. Al nivel unitario reejecutas pruebas de una función modificada. Al nivel de sistema verificas el producto completo. Mismo objetivo, distinto alcance [4:07]. Por eso los equipos que practican integración continua automatizan regresión en múltiples niveles [4:10].

La próxima vez que etiquetes una prueba, asegúrate de incluir ambas dimensiones. ¿Tu equipo ya maneja esa distinción o todavía se generan malentendidos? Comparte tu experiencia.