El testing en el Ciclo de Vida del Software

Modelo de ciclo de vida

  • Modelo de referencia que contiene los procesos, actividades y tareas involucradas en el desarrollo, operación y mantenimiento de un producto de software y que abarca toda la vida del sistema, desde la definición de sus requisitos hasta el final del uso.
  • Tipos
    • secuencial o waterfall
    • modelo en V
    • incremental

Modelo Waterfall

  • Describe el proceso de desarrollo de software como un flujo secuencial y lineal de actividades.
  • cada fase comienza solo cuando termina la anterior

Modelo en V

  • Es una evolución del método en cascada tradicional. Dice que las pruebas deben comenzarse lo más pronto posible.
    • Integra las pruebas en cada fase del ciclo de vida.
  • Una vez que se codifica, comienza la etapa de pruebas (rama derecha)
  • Relacionado con el principio shift left testing (comenzar lo antes posible)

Verificación vs Validación

Niveles de prueba en V Model

Tipos de prueba

Grupo de actividades de pruebas destinadas a probar características puntuales de un software o parte del mismo, con un objetivo de prueba específico. Un tipo de prueba puede tener lugar en uno o más niveles de prueba

  • pruebas funcionales
  • pruebas no funcionales
  • pruebas de estructura

Alpha testing vs Beta testing

AspectoAlpha TestingBeta Testing
DefiniciónPruebas internas realizadas por el equipo de desarrollo y QA antes de liberar el producto.Pruebas externas realizadas por un grupo de usuarios reales antes del lanzamiento oficial.
EntornoSe realiza en un entorno controlado, dentro de la organización.Se realiza en un entorno real de los usuarios finales.
ResponsablesDesarrolladores, testers internos, equipo de QA.Usuarios externos seleccionados (clientes, testers voluntarios).
Acceso al códigoEl equipo tiene acceso completo al código fuente y puede corregir errores inmediatamente.Los usuarios no tienen acceso al código; solo prueban la aplicación/producto.
ObjetivoDetectar errores críticos, problemas de funcionalidad y estabilidad en etapas tempranas.Obtener retroalimentación del usuario, validar usabilidad y aceptación en condiciones reales.
Momento en el ciclo de vidaAntes de la fase Beta, en etapas previas al lanzamiento público.Después del Alpha, justo antes del lanzamiento oficial.
DuraciónPuede ser más larga y repetitiva, abarcando múltiples iteraciones internas.Más corta y enfocada, normalmente limitada en tiempo para obtener feedback rápido.
Tipo de errores detectadosErrores técnicos, bugs graves, problemas de rendimiento.Problemas de usabilidad, experiencia de usuario, compatibilidad en entornos reales.
Usuarios involucradosPersonal interno con conocimiento técnico.Usuarios reales sin experiencia técnica específica.
Nivel de estabilidad del productoProducto aún inestable, puede tener múltiples fallos.Producto más estable y cercano a la versión final.

División de ambiente

  • Desarrollo
    • Es donde las áreas de sistemas realizan los desarrollos, en distintas plataformas
    • En general es un ambiente manejado por desarrolladores, donde cargan diferentes herramientas frameworks, componentes, etc., los usen o no.
    • Normalmente no está controlado en forma muy rígida.
  • Pruebas|Testing|Homologación|Pre-producción|Staging
    • Donde se implementan los cambios realizados en desarrollo.
    • Tiene que ser exacto al de producción, debe haber alguna garantía que lo que se prueba en este ambiente, se comportará de la misma manera que cuando el usuario lo ejecute en producción.
    • En cuanto a los datos disponibles en este ambiente, tienen que ser análogos a los de producción, siempre que no sean datos sensibles.
  • Producción
    • Es donde opera el sistema.
    • Es donde se realiza el negocio en cuestión.