Por Abhay Talreja
28/12/2025
Mi último artículo - Empirical Process Control - The Key to Agile Success
Fase de Pruebas en SDLC - Proceso de Pruebas de Software
La Fase de Pruebas en SDLC es la etapa de aseguramiento de calidad donde el software se evalua para encontrar defectos y verificar que funcione antes del lanzamiento. Es donde capturas errores antes de que los usuarios los encuentren.
Por que importa esto? Segun investigaciones de IBM, corregir errores despues del despliegue cuesta de 6x a 100x mas que detectarlos durante el desarrollo.
La fase de pruebas se ubica entre el desarrollo y el despliegue. Incluye pruebas unitarias, de integracion, del sistema, de aceptacion, de regresion y de rendimiento.
Los equipos de QA, desarrolladores y usuarios finales juegan un rol aqui. El objetivo? Detectar problemas temprano cuando son baratos de corregir.
| Aspecto | Detalles |
|---|---|
| Definicion | Fase donde el software se evalua para encontrar defectos y verificar calidad |
| Posicion en SDLC | Despues del Desarrollo/Codificacion, antes del Despliegue |
| Tipos Principales de Pruebas | Unitarias, Integracion, Sistema, UAT, Regresion, Rendimiento, Seguridad |
| Duracion | Porcion significativa del cronograma del proyecto (varia segun metodologia) |
| Roles Clave | Ingenieros QA, Lideres de Pruebas, Desarrolladores, Analistas de Negocios, Usuarios Finales |
| Objetivo Principal | Asegurar que el software cumpla requisitos y este libre de defectos |
| Entregables | Planes de prueba, casos de prueba, informes de defectos, resultados de ejecucion |
| Tambien Llamada | Fase de QA, Fase de Validacion, Etapa de Aseguramiento de Calidad |
Esta guia cubre todo sobre las pruebas en el Ciclo de Vida del Desarrollo de Software (SDLC). Aprenderas tipos de pruebas, procesos, herramientas y mejores practicas con ejemplos reales.
Definicion: La fase de pruebas es donde evaluas el software para encontrar defectos y verificar que cumpla con los requisitos antes del lanzamiento.
Es el puente entre el desarrollo y el despliegue. Sin ella, los errores llegan a tus usuarios.
Durante esta fase, los ingenieros de QA, desarrolladores y partes interesadas ejecutan diferentes tipos de pruebas. Estas van desde pruebas unitarias (verificando codigo individual) hasta pruebas de aceptacion (confirmando que se cumplan las necesidades del negocio).
El proceso sigue seis pasos: planificacion, diseno de casos de prueba, configuracion de entornos, ejecucion de pruebas, gestion de defectos y cierre con informes.
Las pruebas no son una sola actividad. Incluyen tres tipos:
Los equipos modernos usan automatizacion y practicas shift-left para detectar problemas mas temprano. Cuanto antes encuentres errores, mas baratos son de corregir.
Dato Clave: Segun investigaciones de CISQ, la mala calidad del software cuesta a las empresas estadounidenses $2.41 billones anuales. Las pruebas tempranas previenen la mayoria de estas perdidas.
Las pruebas son tu guardian de calidad. Detectan problemas antes de que lleguen a produccion.
Pero hacen mas que encontrar errores. Aqui estan los seis roles principales que juegan las pruebas:
1. Aseguramiento de Calidad
Las pruebas verifican que tu software cumpla con los requisitos. Verifican tanto necesidades funcionales (funciona?) como no funcionales (es rapido, seguro, usable?).
2. Deteccion de Defectos
Los errores encontrados temprano cuestan menos de corregir. Las pruebas detectan problemas de integracion, cuellos de botella de rendimiento y agujeros de seguridad antes que los usuarios.
3. Mitigacion de Riesgos
Los fallos de software perjudican a las empresas. Las pruebas reducen ese riesgo validando cumplimiento de seguridad, integridad de datos y estabilidad del sistema.
4. Validacion de Requisitos
Coincide el software con lo que pidieron las partes interesadas? Las pruebas confirman que las historias de usuario y criterios de aceptacion realmente se cumplan.
5. Reduccion de Costos
Aqui esta la matematica: Un error detectado en pruebas cuesta 6x menos de corregir que uno encontrado en produccion. Algunos estudios muestran hasta 100x menos.
6. Mejora Continua
Las pruebas proporcionan ciclos de retroalimentacion. Los equipos aprenden que salio mal, identifican patrones y mejoran sus procesos.
Las pruebas siguen seis pasos. Cada uno se construye sobre el anterior.
La planificacion de pruebas responde tres preguntas: Que probaras? Como lo probaras? Quien hara las pruebas?
Actividades Clave:
Entregables: Plan de Pruebas, Evaluacion de Riesgos, Plan de Recursos, Cronograma
Aqui es donde creas las pruebas reales. Cada caso de prueba describe exactamente que verificar y que resultado esperar.
Que incluye un caso de prueba?
Entregables: Casos de Prueba, Datos de Prueba, Matriz de Trazabilidad de Requisitos
Tu entorno de pruebas debe reflejar produccion. Si no lo hace, perderas errores que solo aparecen en el mundo real.
Actividades Clave:
Entregables: Entorno Configurado, Documentacion, Resultados de Pruebas de Humo
Aqui es donde realmente ejecutas las pruebas. Es la parte practica.
Actividades Clave:
Entregables: Resultados de Pruebas, Informes de Defectos, Evidencia
Encontraste un error? Ahora necesitas rastrearlo hasta que se corrija. Cada defecto sigue un ciclo de vida.
Ciclo de Vida del Defecto:
Nuevo -> Asignado -> Abierto -> Corregido -> Re-test -> Verificado -> Cerrado
A veces los errores se reabren si la correccion no funciono. Eso es normal.
Como clasificar defectos:
| Severidad | Prioridad | Que significa | Ejemplo |
|---|---|---|---|
| Critica | P1 | Sistema falla, perdida de datos, seguridad | App falla al iniciar sesion |
| Alta | P2 | Caracteristica principal rota | Los pagos no procesan |
| Media | P3 | Caracteristica funciona con problemas | Calculo incorrecto |
| Baja | P4 | Problemas cosmeticos | Boton ligeramente desalineado |
Entregables: Informes de Defectos, Metricas, Analisis de Causa Raiz
Las pruebas terminaron. Ahora lo finalizas y documentas lo que sucedio.
Actividades Clave:
Metricas Clave a Rastrear:
Entregables: Informe Resumen, Dashboard de Metricas, Lecciones Aprendidas
Hay muchos tipos de pruebas. Cada uno sirve un proposito diferente.
Aqui esta cuando usar cada uno:
| Tipo de Prueba | Nivel | Realizada Por | Cuando | Proposito |
|---|---|---|---|---|
| Pruebas Unitarias | Componente | Desarrolladores | Durante Desarrollo | Probar unidades individuales de codigo |
| Pruebas de Integracion | Integracion | Desarrolladores/QA | Despues de Unitarias | Probar interacciones de componentes |
| Pruebas del Sistema | Sistema | Equipo QA | Despues de Integracion | Probar sistema completo |
| UAT | Aceptacion | Usuarios Finales/Clientes | Antes del Lanzamiento | Validar requisitos de negocio |
| Pruebas de Regresion | Todos los Niveles | QA/Automatizado | Despues de Cambios | Asegurar que correcciones no rompan caracteristicas |
| Pruebas de Rendimiento | Sistema | Ingenieros de Rendimiento | Antes del Lanzamiento | Probar velocidad, escalabilidad, estabilidad |
| Pruebas de Seguridad | Sistema | Especialistas en Seguridad | A lo largo | Identificar vulnerabilidades |
Que es? Probar componentes individuales de codigo (funciones, metodos, clases) de forma aislada.
Los desarrolladores escriben estas pruebas mientras codifican. Son rapidas y se ejecutan frecuentemente.
Herramientas: JUnit (Java), pytest (Python), Jest (JavaScript)
Que es? Probar como diferentes modulos o componentes trabajan juntos.
Las pruebas unitarias pasan individualmente, pero funcionan bien juntas? Las pruebas de integracion lo descubren.
Enfoques: Top-down, bottom-up, o sandwich
Que es? Probar la aplicacion completa e integrada de extremo a extremo.
Los equipos de QA ejecutan esto en un entorno que refleja produccion. Cubre funcionalidad, rendimiento, usabilidad y seguridad.
Que es? La verificacion final antes del lanzamiento. Usuarios reales (no testers) verifican que el software cumpla las necesidades del negocio.
Esta es una decision de proceder o no proceder. Si UAT falla, no se lanza.
Que es? Re-ejecutar pruebas existentes despues de cambios de codigo para asegurar que nada se rompio.
Esto esta muy automatizado. Es esencial para pipelines CI/CD.
Que es? Probar velocidad, escalabilidad y estabilidad bajo carga.
Tipos: Pruebas de carga, pruebas de estres, pruebas de picos, pruebas de resistencia
Herramientas: JMeter, LoadRunner, Gatling
Que es? Encontrar vulnerabilidades antes que los atacantes.
Areas Clave: Autenticacion, autorizacion, encriptacion, inyeccion SQL, XSS, CSRF
Herramientas: OWASP ZAP, Burp Suite, Nessus
| Rol | Que Hacen |
|---|---|
| Ingeniero QA | Disenar pruebas, ejecutarlas, registrar errores |
| Lider de Pruebas | Estrategia, planificacion, asignacion de recursos |
| Desarrollador | Pruebas unitarias, corregir errores, soportar pruebas de integracion |
| Analista de Negocios | Definir criterios de aceptacion, soportar UAT |
| Usuarios Finales | Realizar UAT, proporcionar retroalimentacion del mundo real |
| Ingeniero de Rendimiento | Pruebas de carga, ajuste de rendimiento |
| Especialista en Seguridad | Evaluaciones de vulnerabilidad, pruebas de penetracion |
Automatizacion de Pruebas:
Rendimiento:
Rastreo de Errores:
CI/CD:
Las pruebas manuales no escalan. La automatizacion si.
Con integracion continua, las pruebas se ejecutan automaticamente en cada commit de codigo. Los errores se detectan en minutos, no en dias.
Por que automatizar?
Mejores Practicas de CI/CD:
1. Probar Temprano (Shift-Left)
No esperes hasta que el desarrollo termine. Comienza las pruebas durante requisitos y diseno.
Escribe casos de prueba junto con el desarrollo. Cuanto antes detectes errores, mas baratos son.
2. Priorizar por Riesgo
No todas las caracteristicas son iguales. Prueba primero las caracteristicas de alto riesgo y alto impacto.
Cubre flujos de negocio criticos exhaustivamente antes que los casos extremos.
3. Apuntar a Cobertura Significativa
100% de cobertura de codigo no es el objetivo. La cobertura significativa si.
Usa una Matriz de Trazabilidad de Requisitos para asegurar que cada requisito tenga pruebas.
4. Automatizar las Cosas Correctas
Automatiza pruebas estables y repetitivas. Enfocate en regresion, humo y sanidad.
No automatices pruebas que cambian frecuentemente. Eso es un infierno de mantenimiento.
5. Escribir Buenos Informes de Errores
Incluye pasos de reproduccion. Agrega capturas de pantalla y logs. Especifica el entorno.
Un buen informe de error ahorra horas de investigacion a los desarrolladores.
El problema: Esperar hasta que el desarrollo termine para comenzar las pruebas.
Por que duele: Los errores encontrados tarde cuestan 6-100x mas de corregir. Los equipos se apresuran en las pruebas y pierden cosas.
La solucion: Shift left. Comienza las pruebas durante requisitos. Escribe casos de prueba junto con el desarrollo.
El problema: Los entornos de prueba no coinciden con produccion.
Por que duele: Los errores aparecen en produccion que nunca se mostraron en las pruebas. Los equipos pierden tiempo depurando problemas de entorno.
La solucion: Usa infraestructura como codigo. Containeriza con Docker. Mantener entornos sincronizados con produccion.
El problema: Todo es manual. Sin automatizacion.
Por que duele: Las pruebas manuales no escalan. Las pruebas de regresion se convierten en un cuello de botella.
La solucion: Automatiza pruebas de regresion y humo. Guarda las pruebas manuales para trabajo exploratorio.
El problema: Los informes de errores carecen de detalle.
Por que duele: Los desarrolladores no pueden reproducir problemas. Los errores se cierran como "no se puede reproducir."
La solucion: Requiere pasos de reproduccion, capturas de pantalla, logs y detalles del entorno. Usa plantillas.
El problema: Solo probar si las caracteristicas funcionan. No probar rendimiento, seguridad o accesibilidad.
Por que duele: Las apps fallan bajo carga. Los agujeros de seguridad son explotados. Los usuarios con discapacidades no pueden usar el producto.
La solucion: Incluye pruebas de rendimiento y seguridad en cada lanzamiento. Automatiza escaneos de seguridad en CI/CD.
Las pruebas son tu ultima linea de defensa antes de que el software llegue a los usuarios. Saltarselas, y los errores te cuestan 6-100x mas de corregir.
Puntos Clave:
La Linea de Fondo:
Las organizaciones con practicas de pruebas solidas detectan mas del 85% de los errores antes del lanzamiento. Lanzan mas rapido porque pasan menos tiempo apagando incendios en produccion.
Las pruebas pobres cuestan $2.41 billones anuales a las empresas estadounidenses. No seas parte de esa estadistica.
Despues de que las pruebas pasan, pasas a la fase de despliegue. Ahi es donde tu software probado se pone en vivo.
Aqui esta la presentacion usada en el video. Si tienes algun comentario, haznos saber en nuestro tablero de EasyRetro. (opens in a new tab)
What are the main types of testing in SDLC?
What is the role of testing in SDLC?
What is the difference between unit testing and integration testing?
How does automated testing benefit the SDLC?
What is continuous integration in software testing?
What is the difference between SDLC and STLC?
What are the 6 steps in the testing phase process?
What are the best practices for testing in the SDLC?
What tools are commonly used for testing in SDLC?
What is User Acceptance Testing (UAT) and why is it important?
How do you prioritize defects in testing?
What is regression testing and when should it be performed?
How does testing differ in Agile versus Waterfall methodologies?
What metrics should be tracked during the testing phase?
What is the cost impact of finding defects at different SDLC stages?