Tipos de pruebas de software y su aplicación en el ciclo de vida

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