Sin categoría

Ambientes de pruebas integrales de software: Buenas prácticas

El desarrollo de software hoy en día está caracterizado por múltiples
equipos de proyectos y mantenimientos trabajando de forma simultánea,
bajo cronogramas cada vez más exigentes y desarrollando sistemas que
interoperan con variedad de otras aplicaciones y plataformas. Bajo un
escenario como este, la gestión de los ambientes (entornos) de pruebas
integrales (System Integration Tests, o SIT), adquiere gran importancia
para asegurar que el Software sea puesto en producción con los niveles
necesarios de calidad.

En este artículo se exploran una serie de buenas prácticas en la
administración de ambientes de prueba integrales de sistema (SIT).
Abarcan la definición de características del ambiente de pruebas SIT,
restricciones que deben aplicarse sobre el ambiente, homologación con
producción, procedimientos a implementar para una buena gestión de los
ambientes y prácticas que deben tener en cuenta los equipos de pruebas
de los diferentes proyectos.

Características que deben tener los ambientes

  • Debe residir en un computador distinto al personal del
    desarrollador. Preferiblemente en un servidor compartido por los equipos
    de pruebas de software.
  • Utilizar nombres de dominio (no direcciones IP) distintos a los de
    producción y desarrollo para evitar confusión del personal de pruebas. 
  • Ser lo más similarmente posible al ambiente de producción, incluyendo: 
    • Aplicaciones locales, cliente servidor, web, etc.
    • Configuración de servidores.
    • Manejadores de Bases de datos de producción, de las mismas versiones.
    • Configuración de base de datos.
    • Cuentas de usuario de sistema operativo, bases de datos y aplicaciones con la misma configuración y privilegios de acceso.
    • Componentes de infraestructura deben ser similares (Ej. Clusters). 
    • Versiones de software. 
    • Replicas de todos los componentes con los que el Software
      desarrollado tendrá interoperación, incluyendo: Otras aplicaciones,
      otros middleware, interfaces, demonios (Daemons), utilidades FTP, entre
      otros.
  • Si no es posible tener instalado el mismo manejador de base de datos
    que en producción y desarrollo, automatizar la propagación de cambios
    de un ambiente a otro (Existen herramientas de software que lo
    permiten). 
  • Instalar las herramientas de gestión de casos de prueba y gestión de incidencias en una maquina o servidor distinto al del ambiente de pruebas integrales, compartido por los equipos de pruebas.
  • Capacidad de servir a múltiples audiencias, por ejemplo
    administradores de sistemas, usuarios finales, desarrolladores. En todos
    los casos sólo para ejecución de pruebas. 
  • Debe apoyarse en herramientas de control de versiones, especialmente
    cuando existen múltiples proyectos en paralelo probando distintas
    funcionalidades.

Restricciones a aplicar a los ambientes

No deben ser utilizados para actividades de desarrollo o producción.

  • Los desarrolladores no deben poseer privilegios de acceso de
    modificación de ningún tipo en ambiente de pruebas, esto para evitar
    cambios en la configuración no informados.
  • No posee herramientas de software o permisos de acceso especiales
    para ejecutar desarrollos de software, en su lugar, tiene una
    configuración similar o igual a la de producción. 
  • Sólo el administrador se encarga de instalar, actualizar o desplegar
    para el ambiente de pruebas, nunca el desarrollador directamente. 
  • Requiere de estrictos controles de cambio que mantengan rastro de
    las modificaciones en la configuración, para así asegurar resultados
    controlados y también que el ambiente sea similar a producción.
    Cualquier ciclo de pruebas que este en proceso puede quedar invalidado
    por cambios en la configuración (y por ende tener que repetirse). 
  • Una versión se instala en producción sólo después que ha sido instalada y probada en ambiente de pruebas integrales.

Homologación con el ambiente de producción

  • Realizar comparaciones periódicas de la configuración de ambientes,
    existen herramientas automatizadas capaces de comparar configuraciones,
    aplicaciones y la infraestructura subyacente. 
  • Reindexación de bases de datos cuando se realiza mantenimiento en
    las noches, para evitar que al día siguiente las pruebas tengan fallos
    por timeout. 
  • Reconfiguración de archivos de configuración al movilizarlos entre ambientes (por ejemplo los Properties de un .JAR). 
  • Mantener homologadas las configuraciones de direcciones IP y puertos de acceso para las aplicaciones. 
  • La virtualización puede ayudar a evitar riesgos por cambios en configuración de un entorno a otro. 
  • Siempre que ocurran cambios planificados o no planificados en el
    ambiente de producción, tales como correctivos de emergencia, cambios
    operacionales planificados, actualizaciones (upgrades), aplicación de
    patches, entre otros, es necesario homologar dichos cambios lo antes
    posible en el ambiente de pruebas integrales, evaluando el impacto sobre
    ciclos de pruebas en proceso.

Procedimientos a implementar para una buena gestión de ambientes de pruebas integrales

  • Todas las fase de pruebas funcionales, incluyendo: Unitarias,
    integración, aceptación, desempeño (estrés), pruebas no funcionales,
    requieren de ambientes de pruebas, por lo que deben definirse
    procedimientos específicos de gestión de ambientes en cada etapa de los
    proyectos. 
  • Encargar la labor de planeación y operación a un Gerente de
    Operaciones o de Cambios, preferiblemente distinto al del ambiente de
    desarrollo y producción. 
  • Establecer procedimientos de solicitud de requisitos de ambiente de
    pruebas por parte de todos los equipos que tengan que utilizar el
    ambiente. Deben especificarse los requisitos de configuración y las
    herramientas e infraestructura requeridos. 
  • Los requerimientos de ambientes sean incluidos en la documentación de requerimientos de todos los mantenimientos o proyectos. 
  • Planificar el uso y disponibilidad de los ambientes de pruebas
    integrales e informar a los equipos de prueba para que incluyan dichas
    restricciones en la planificación de los requerimientos y proyectos. 
  • Procedimientos de Gestión de la creación, build, actualización (upgrade) y soporte de ambientes. 
  • Definir procesos auditables para: 
    • Asignación de ambientes. 
    • Uso compartido. 
    • Accesos múltiples. 
    • Acuerdos de nivel de servicio. 
    • Actualizaciones. 
    • Upgrades. 
    • Instalaciones. 
    • Desincorporación. 
    • Preparación de datos de prueba. 
  • Procedimientos de modificación de datos sensibles para que sean anónimos. 
  • Procedimientos de preparación, conectividad y asistencia a los equipos de pruebas de todas las fases. 
  • Planificar actividades de mantenimiento y actualizaciones mayores de todos los ambientes.
  • Emitir reportes de uso y carga que asistan a la planeación. 
  • Contar con herramientas para debugging. 

Procedimientos de uso de los ambientes por los equipos de pruebas

  • Definir las especificaciones de ambientes de prueba que necesita el equipo. 
  • Antes de iniciar cualquier ciclo de pruebas, deben ejecutarse
    actividades para verificar que el ambiente ha sido configurado
    adecuadamente. 
  • No todas las pruebas se ejecutan en el ambiente de pruebas
    integrales de software, por ejemplo, pruebas de componente de software,
    en las que se revisa el código se realizan en el ambiente de
    desarrollo. 
  • Si durante la ejecución de las pruebas integrales se realizan
    cambios de configuración, será necesario identificar las pruebas
    afectadas y ejecutar nuevamente dichos casos de prueba. 
  • Para proyectos de mantenimiento o migración de plataformas
    tecnológicas (por ejemplo un upgrade de base de datos), es necesario
    incluir pruebas operacionales, para lo cual es necesario configurar y
    probar un ambiente de pruebas similar al de producción. 
  • Ajustes al cronograma de pruebas dada la disponibilidad o no disponibilidad de ambientes de pruebas. 
  • Los reportes de incidencias deben hacer referencia al ambiente en el
    que se está probando y cualquier aspecto especifico de configuración. 

Publicaciones relacionadas

Botón volver arriba
No data found.