¿Qué es un enfoque basado en el entorno para las pruebas de software?
Por Chris Colosimo
10 de diciembre de 2019
5 min leer
¿Qué son las pruebas basadas en el entorno y por qué son importantes en las pruebas de software? Aquí hay una cobertura completa del tema y algunos de los beneficios de un enfoque de prueba basado en el entorno.
Saltar a la sección
Probar aplicaciones y servicios de forma aislada solo lo lleva hasta cierto punto y, finalmente, debe probar en un entorno operativo. El enfoque de prueba “basado en el entorno” de Parasoft permite a los equipos probar sus aplicaciones en el contexto de todas las dependencias que existen en el entorno del mundo real.
A menudo, los evaluadores y desarrolladores analizan su entorno de implementación y sus componentes de forma individual, probando esas piezas de forma aislada. Esto funciona hasta cierto punto, pero no prueba lo suficiente del sistema. Otra versión de esto está probando en el nivel de la interfaz de usuario, en un punto donde las causas fundamentales de las fallas son difíciles de diagnosticar. El término medio es donde las aplicaciones se pueden probar en un entorno lo más realista posible utilizando servicios virtuales para imitar dependencias que no están disponibles o no son lo suficientemente consistentes para las pruebas. A medida que se conectan más dependencias, puede pasar de servicios virtualizados a versiones en vivo.
En Parasoft, lo llamamos un enfoque de prueba "basado en el entorno", que permite a todo el equipo probar su aplicación con el contexto completo del entorno del mundo real. Las pruebas se implementan en un entorno en vivo, parcialmente virtualizado o totalmente virtualizado según sea necesario. El enfoque de pruebas basado en entornos proporciona una plataforma estabilizada para la ejecución de pruebas.
Pruebas basadas en el entorno
El enfoque de las pruebas basado en el entorno proporciona más contexto para comprender mejor cómo las dependencias impactan en la aplicación durante las pruebas de la interfaz de usuario, y ayuda al equipo a avanzar al siguiente nivel mediante la creación de pruebas de base de datos y API para los componentes dependientes. Al hacerlo, puede lograr una cobertura de prueba más completa para su aplicación y desacoplar las pruebas de la interfaz de usuario, por lo que ambas se pueden ejecutar juntas o de forma independiente. Los fallos de las pruebas se destacan en el entorno, lo que facilita la localización de fallos.
Algunos beneficios adicionales que vienen con un enfoque de prueba basado en el entorno incluyen:
- Cambio de prueba dejado probando la aplicación en el entorno de producción tan pronto como sea posible. Esto es posible con la virtualización de servicios, creando servicios virtuales y luego transfiriéndolos a servicios en vivo a medida que se vuelven disponibles y estables.
- Reducir el tiempo y el esfuerzo de diagnosticar fallas en las pruebas señalando exactamente dónde y por qué fallaron las pruebas.
- Ampliación sencilla de las pruebas desde las pruebas de interfaz de usuario a las pruebas de API, que se puede configurar en el contexto del entorno, así como parte de una canalización de CI / CD.
- Aumento de la cobertura de la prueba mediante la creación de escenarios que no podrían implementarse solo a partir de pruebas de interfaz de usuario.
Estos beneficios reducen la carga general de los evaluadores para configurar, ejecutar y diagnosticar las pruebas de aplicaciones, al tiempo que aumentan la cobertura de las pruebas y permiten que las pruebas se realicen antes y de manera más completa.
Pruebas basadas en el entorno en acción con Parasoft SOAtest
Así que veamos esto en acción. Parasoft SOAtest proporciona un administrador de entorno que muestra visualmente el entorno de ejecución de la aplicación bajo prueba. A continuación se muestra un ejemplo con una aplicación, en su entorno, conectada a dependencias. Cada componente del entorno puede aprovisionarse en vivo o virtualizarse según sea necesario, según la estabilidad y disponibilidad de esos componentes.
Parasoft SOAtest proporciona un administrador de entorno que muestra visualmente el entorno de ejecución de la aplicación bajo prueba. A continuación se muestra un ejemplo con una aplicación en su entorno, conectada a dependencias. Cada componente del entorno puede aprovisionarse en vivo o virtualizarse según sea necesario:
Los ajustes preestablecidos de implementación configuran el entorno en función de los requisitos de prueba actuales. Las diferentes categorías de escenarios pueden requerir diferentes ajustes preestablecidos. Estos ajustes preestablecidos contienen todos los ajustes necesarios para el administrador de entorno:
Una vez que se aprovisiona un entorno, se ejecuta un conjunto de interacciones de API y UI en la aplicación bajo prueba. Los resultados se capturan, registran y comparan con los resultados esperados dentro del IDE y en el portal web de Parasoft, donde la utilidad del administrador del entorno actúa como el centro para las pruebas funcionales.
Las fallas se destacan en el administrador de entorno y es posible seguir los informes de errores desde allí en un informe más detallado.
Los informes de prueba de API que se generan indican tanto fallas como información de cobertura de prueba. Las fallas significan que la nueva funcionalidad está rota o que hay un problema con una prueba. La causa raíz de estas fallas se puede rastrear desde la falla aquí hasta la API apropiada. La información de cobertura de la prueba es importante porque indica que faltan pruebas y un código de envío potencialmente no probado.
El papel de la virtualización de servicios
Los errores también surgen de dependencias faltantes. Aquí es donde La virtualización de servicios entra en juego. A menudo, no es posible tener dependencias activas disponibles para realizar pruebas, quizás porque aún no están listas o porque es difícil y lleva mucho tiempo duplicarlas desde el entorno de producción. Pero para asegurar aplicaciones de alta calidad dentro de las limitaciones de tiempo y presupuesto, es esencial tener acceso sin restricciones a un entorno de prueba confiable y realista, que incluye la aplicación bajo prueba y todos sus componentes dependientes (por ejemplo, API, servicios de terceros, bases de datos, aplicaciones y otros puntos finales).
La virtualización de servicios permite a los equipos de software acceder a un entorno de prueba completo, incluidos todos los componentes críticos del sistema dependientes, así como también alterar el comportamiento de esos componentes dependientes de formas que serían imposibles con un entorno de prueba por etapas, lo que le permite realizar pruebas antes y más rápido. y de forma más completa. También le permite aislar diferentes capas de la aplicación para la depuración y las pruebas de rendimiento, pero no vamos a entrar tanto en eso hoy.
Los servicios individuales se pueden configurar como en vivo o virtualizados. Las configuraciones de implementación que son combinaciones de dependencias en vivo y virtualizadas se pueden guardar como ajustes preestablecidos.
Integración con canalizaciones de CI/CD
Los ejemplos de pruebas manuales son interesantes, pero el trabajo real ocurre en una tubería de integración continua. Los entornos de prueba dinámicos de Parasoft se pueden implementar desde Jenkins como parte de un proceso de implementación / integración continua. El siguiente ejemplo muestra un "entorno dinámico de implementación" como una compilación de Jenkins.
Con el complemento de Parasoft Jenkins, se agregan pasos de compilación para implementar conjuntos de pruebas desde la compilación. Los resultados se capturan y se vinculan al administrador de medio ambiente.
Una vez finalizada la compilación, los resultados de la prueba se muestran en Jenkins. Las fallas se vinculan directamente al administrador del entorno y al escenario de implementación.
Resumen
Al considerar primero el entorno operativo y aprovechar un enfoque de prueba basado en el entorno, los probadores de software pueden asegurarse de que todo esté en su lugar para que las pruebas sean productivas y eficientes. En lugar de dedicar tiempo a probar aplicaciones de forma aislada o con un entorno pseudo-realista, los evaluadores pueden dedicar más tiempo a las pruebas en sí.