Vea cómo la solución de calidad continua de Parasoft ayuda a controlar y administrar los entornos de prueba para ofrecer software de alta calidad con confianza. Regístrese para la demostración >>
A medida que maduran las prácticas de desarrollo ágil y los principios de DevOps comienzan a infiltrarse en nuestras culturas corporativas, las organizaciones se dan cuenta de la oportunidad única de acelerar la entrega de software. Sin embargo, cuando acelera cualquier proceso, las áreas de práctica inmaduras y los obstáculos se vuelven mucho más pronunciados. Es la diferencia entre conducir sobre un tope de velocidad a 5 MPH versus 50 MPH… a 50 MPH, ese tope de velocidad va a ser bastante discordante.
Acelerar cualquier proceso comercial expondrá restricciones sistémicas que encadenan a toda la organización a su componente de movimiento más lento. En el caso del SDLC acelerado, las pruebas se han convertido en la barrera más importante para aprovechar al máximo los enfoques iterativos del desarrollo de software. Para que las organizaciones aprovechen estas estrategias de desarrollo transformador, deben pasar de automatización de pruebas para pruebas continuas. Hacer una distinción entre la automatización de pruebas y las pruebas continuas puede parecer un ejercicio de semántica, pero la brecha entre la automatización de las pruebas funcionales y la ejecución de un proceso de pruebas continuas es sustancial.
Hay muchos matices asociados con la transformación de las pruebas automatizadas a las pruebas continuas. En esta publicación, centrémonos en tres distinciones clave:
El cambio más fundamental que se requiere para pasar de lo automatizado a lo continuo es alinear la “prueba” con el riesgo comercial. Especialmente con DevOps y Continuous Delivery, el lanzamiento con velocidad y confianza requiere tener comentarios inmediatos sobre los riesgos comerciales asociados con un candidato de lanzamiento de software. Dado el costo creciente y el impacto de las fallas de software, no puede darse el lujo de lanzar una versión que podría interrumpir la experiencia del usuario existente o introducir nuevas características que expongan a la organización a nuevos riesgos de seguridad, confiabilidad o cumplimiento. Para evitar esto, la organización debe extenderse desde la validación de los requisitos ascendentes hasta la evaluación de los requisitos del sistema asociados con los objetivos comerciales generales.
Una de las mayores limitaciones asociadas con el ejercicio de pruebas significativas es acceder a un entorno de prueba completo, que incluye la miríada de sistemas dependientes con los que interactúa la aplicación bajo prueba (AUT). Dada la naturaleza compuesta de las aplicaciones actuales, es casi imposible organizar un entorno de prueba completo. Aquí es donde entra en juego la virtualización de servicios. La virtualización de servicios le permite emular el comportamiento de componentes específicos en aplicaciones heterogéneas basadas en componentes, como aplicaciones impulsadas por API, aplicaciones basadas en la nube y arquitecturas orientadas a servicios. Al simular las interacciones de AUT con las dependencias faltantes o no disponibles, Service Virtualization lo ayuda a garantizar que los datos, el rendimiento y el comportamiento sean consistentes en las diversas ejecuciones de prueba. Además, también le ayuda a "desplazarse a la izquierda" las pruebas para que puedan comenzar mucho antes en cada iteración y exponer los defectos cuando son más rápidos y fáciles de corregir.
Como regla general, debe realizar pruebas en el entorno más similar al de producción al que pueda acceder... si no está en producción. Sin embargo, esto normalmente presenta un desafío considerable en términos de costo, seguridad y privacidad. Utilizando tecnologías de simulación como la virtualización de servicios le permite eludir las restricciones asociadas con los sistemas dependientes fuera de su control para ejecutar pruebas significativas de un extremo a otro.
Pruebas en la capa de API/mensaje (servicios, colas de mensajes, capas de abstracción de bases de datos, etc.) ofrece varias ventajas distintas para habilitar las pruebas continuas a la velocidad de DevOps:
Las herramientas de prueba de software automatizadas líderes en la industria de Parasoft respaldan todo el proceso de desarrollo de software, desde que el desarrollador escribe la primera línea de código hasta las pruebas unitarias y funcionales, hasta las pruebas de rendimiento y seguridad, aprovechando los entornos de prueba simulados en el camino.