Vea qué solución de pruebas de API resultó ganadora en el informe GigaOm Radar. Obtenga su informe analítico gratuito >>

Vea qué solución de pruebas de API resultó ganadora en el informe GigaOm Radar. Obtenga su informe analítico gratuito >>
Saltar a la sección
¿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
Saltar a la sección
Probar aplicaciones y servicios de forma aislada solo le permitirá llegar hasta cierto punto y, eventualmente, deberá realizar las pruebas 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, llamamos a esto 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.
El enfoque de pruebas basado en el entorno proporciona más contexto para comprender mejor cómo las dependencias impactan la aplicación durante las pruebas de UI y ayuda al equipo a avanzar al siguiente nivel mediante la creación de pruebas de API y bases de datos 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, de modo que ambas puedan ejecutarse juntas o de forma independiente. Los fallos de las pruebas se resaltan en el entorno, lo que facilita la identificación de fallos.
Algunos beneficios adicionales que vienen con un enfoque de prueba basado en el entorno incluyen:
Estos beneficios reducen la carga general de los evaluadores para configurar, ejecutar y diagnosticar pruebas de aplicaciones, al tiempo que aumentan la cobertura de las pruebas y permiten que las pruebas se realicen más rápido y de manera más completa.
Como saben muchos evaluadores, un entorno de prueba es simplemente una estructura controlada que permite que los sistemas y el software realicen pruebas de confiabilidad, funcionalidad y compatibilidad. Por lo general, simulan escenarios y condiciones del mundo real para abordar posibles errores o infracciones antes de la implementación. Como tal, cada entorno de prueba se puede adaptar al tipo de prueba y resultados que desea un equipo.
Un entorno de prueba entre navegadores es un ejemplo perfecto de un entorno de prueba para realizar pruebas en diferentes navegadores y versiones de navegador. Los equipos de prueba utilizan el entorno para comprobar la calidad y el impacto de la aplicación antes de que los usuarios interactúen con ella.
Existen varios tipos clave de entornos de prueba que incluyen:
Crear un buen entorno de prueba no se trata sólo de utilizar escenarios realistas. Implica de todo, desde considerar casos extremos hasta proteger la seguridad de los datos y emular versus utilizar información real. Aunque cada equipo tendrá diferentes objetivos y requisitos, se pueden seguir ciertas mejores prácticas para garantizar el mejor entorno de prueba para su proyecto.
Un buen entorno de prueba se parece al entorno de producción en vivo en el que el software o sistema funcionará muy de cerca. Debe utilizar el mismo código, sistema operativo, datos, funcionalidad y configuración.
Los factores clave para crear un buen entorno de prueba incluyen los siguientes:
Además de los principios mecánicos anteriores, los entornos de prueba también se basan en pautas generales intangibles.
Administrar sus entornos de prueba puede ser un gran dolor de cabeza o resultar una parte imprescindible de su SDLC que proporciona información y datos invaluables. La clave está en cómo abordas esa gestión. Al anticipar parte del trabajo y la organización, puede crear una configuración más fácil de mantener y aun así obtener los beneficios de las pruebas frecuentes.
Desde el desarrollador más experimentado hasta el evaluador de control de calidad más reciente, trate a las personas de los equipos de desarrollo como miembros importantes del proyecto. Utilizar una única fuente, o una copia dorada, para entornos e implementaciones que sea accesible para todos, dentro de lo razonable, fomenta un entorno donde la comunicación es abierta, fomentada y constructiva.
Administrar la base de conocimientos, ya sea en Confluence, JIRA u otras herramientas, ayuda a evitar la falta de comunicación y reduce los juegos telefónicos. Los miembros del equipo pueden consultar la documentación para obtener información básica, realizar un seguimiento de los cambios, ver quién trabajó en qué y más.
Junto con los principios anteriores, poner esta información a disposición de las partes interesadas ayuda aún más a mantener los entornos de prueba. Pero esto también se aplica a cosas como cronogramas de implementación, planes de interrupción y otros aspectos del desarrollo.
Los humanos cometemos errores. Es un hecho. Las actualizaciones manuales sucumben a esta realidad, por lo que incorporar la gestión del entorno de prueba con la cadena de herramientas que utiliza puede ayudar a reducir los errores manuales.
Es imprescindible poder interactuar con los datos que generan sus casos de prueba. Poder hacerlo de una manera ágil y sencilla es aún mejor. La virtualización le permite tomar instantáneas, replicar su entorno de un extremo a otro y más. De hecho, Parasoft tiene el suyo propio. virtualización de servicios líder en la industria solución sólo para este propósito.
Puede que no parezca necesario mencionarlo, pero el seguimiento de los KPI, como la cantidad de interrupciones no planificadas del servicio, el tiempo de actividad del entorno y otras variables, puede ayudarle a mejorar sus entornos de prueba. Revise los datos después de ciclos de prueba importantes para ver qué funciona, qué necesita cambios y cómo se asignan los recursos o cómo podrían ser diferentes.
Entonces, veamos esto en acción. Prueba SOA de Parasoft 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 de una aplicación en su entorno, conectada a dependencias. Cada componente del entorno se puede aprovisionar en vivo o virtualizado según sea necesario, según la estabilidad y disponibilidad de esos componentes.
Los ajustes preestablecidos de implementación configuran el entorno según los requisitos de prueba actuales. Diferentes categorías de escenarios pueden requerir diferentes ajustes preestablecidos. Estos ajustes preestablecidos contienen todas las configuraciones necesarias para Environment Manager:
Una vez se proporciona el entorno de prueba, 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 Environment Manager actúa como centro para las pruebas funcionales.
Las fallas se resaltan en el Administrador de entorno y es posible seguir los informes de errores desde allí hasta obtener 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 no funciona o que hay un problema con una prueba. La causa raíz de estos errores se puede rastrear desde el error aquí hasta la API adecuada. La información de cobertura de pruebas es importante porque indica pruebas faltantes y, potencialmente, envío de código no probado.
Los errores también surgen por dependencias faltantes. Esto es donde entra en juego la virtualización de servicios. A menudo no es posible tener dependencias activas disponibles para realizar pruebas, tal vez 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 garantizar aplicaciones de alta calidad dentro de las limitaciones de cronograma y presupuesto, es esencial tener acceso ilimitado a un entorno de prueba realista y confiable, que incluya la aplicación bajo prueba y todos sus componentes dependientes, como API, servicios de terceros, bases de datos y aplicaciones. y otros puntos finales.
La virtualización de servicios permite a los equipos de software obtenga acceso a un entorno de prueba completo, incluidos todos los componentes críticos dependientes del sistema, además de alterar el comportamiento de esos componentes dependientes de maneras que serían imposibles con un entorno de prueba por etapas, lo que le permite realizar pruebas antes, más rápido y de manera más completa. También le permite aislar diferentes capas de la aplicación para depurar y probar el rendimiento, pero no vamos a entrar tanto en eso aquí.
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.
Los ejemplos de pruebas manuales son interesantes, pero el trabajo real ocurre en un proceso de integración continua. Los entornos de prueba dinámicos de Parasoft se pueden implementar desde Jenkins como parte de un proceso de integración/implementación continua. El siguiente ejemplo muestra "Implementar un entorno dinámico" como una compilación de Jenkins.
Con el complemento Parasoft Jenkins, se agregan pasos de compilación para implementar conjuntos de pruebas desde la compilación. Los resultados se capturan y vinculan al Administrador de Medio Ambiente.
Una vez completada la compilación, los resultados de las pruebas se muestran en Jenkins. Las fallas se vinculan directamente con el administrador del entorno y el escenario de implementación.
Al considerar primero el entorno operativo y aprovechar un enfoque de prueba basado en el entorno, los evaluadores 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 intentar probar aplicaciones de forma aislada o en un entorno pseudorealista, los evaluadores pueden dedicar más tiempo a las pruebas en sí.
Cómo reducir el tiempo de prueba de API con automatización impulsada por IA