1. Pruebas por Etapa del Ciclo de Vida
a) Pruebas Unitarias (Cuando estás construyendo los
ladrillos)
Como recomienda Martin Fowler en "Refactoring: Improving the Design of Existing Code" (2018):
"Si no tienes pruebas unitarias, el refactorizar es como caminar sobre un acantilado sin arnés".
- Qué
son: Probar cada función o método por separado.
- Ejemplo: Verificar
que el botón "Calcular IVA" haga bien la operación matemática.
- Herramientas: JUnit
(Java), pytest (Python).
b) Pruebas de Integración (Cuando ensamblas las piezas)
Según Pressman (2010) en "Ingeniería del Software: Un Enfoque Práctico",
"El 40% de los errores críticos surgen en interfaces entre módulos"
- Qué
son: Verificar que los módulos funcionen juntos.
- Ejemplo: ¿El
login del usuario recupera correctamente sus datos de la base de datos?
- Problema
típico: "Funcionaba por separado, pero juntos se
rompe".
c) Pruebas de Sistema (El ensayo general antes del show)
- Qué
son: Validar todo el software como un producto terminado.
- Ejemplo: Hacer
un flujo completo: registro → compra → pago → recibo.
- Incluye: Rendimiento,
seguridad y compatibilidad con SO/navegadores.
d) Pruebas de Aceptación (El "examen final" del
cliente)
- Qué
son: El usuario (o el cliente) verifica que cumpla con lo
prometido.
- Ejemplo: ¿La
app de delivery realmente muestra el tiempo estimado de entrega?
2. Pruebas por Tipo de Verificación
a) Pruebas Funcionales (¿Hace lo que debe?)
Como establece el ISTQB (2018) en su glosario:
"Verifican que el software cumpla con los requisitos especificados".
- Casos
de prueba: "Si el usuario pone contraseña incorrecta 3
veces, ¿se bloquea la cuenta?".
- Herramientas: Selenium,
Cypress.
b) Pruebas No Funcionales (¿Cómo lo hace?)
Según el libro "Performance Testing Guidance for Web Applications" (Microsoft, 2007):
"El 53% de los usuarios abandonan un sitio si tarda más de 3 segundos en cargar".
- Rendimiento: ¿Aguanta
10,000 usuarios simultáneos? (JMeter, LoadRunner).
- Usabilidad: ¿Un
niño de 5 años puede usar la app sin instrucciones?
- Seguridad: ¿Es
vulnerable a hackers? (OWASP ZAP).
c) Pruebas Regresivas (¿El nuevo cambio arruinó algo que
ya funcionaba?)
- Ejemplo
clásico: Actualizas el diseño de una web y… ¡el carrito de
compras dejó de sumar!
3. ¿Cuándo Aplicar Cada Prueba?
- Desarrollo
Ágil: Pruebas unitarias e integración en cada sprint.
- Fase
de Diseño: Planificar pruebas de usabilidad y seguridad.
- Pre-lanzamiento: Pruebas
de carga (ej: Black Friday en un e-commerce).
No hay comentarios:
Publicar un comentario