X
BLOG

¿Pueden las pruebas de API agregar modificadores de eficiencia en la nueva normalidad de COVID-19?

¿Pueden las pruebas de API agregar modificadores de eficiencia en la nueva normalidad de COVID-19? Tiempo de leer: 9 minutos

Impactos en las formas tradicionales de entregar software

A medida que las organizaciones continúan lidiando con el impacto de COVID-19, las empresas están trabajando en cómo redefinir las prácticas de prueba en la "nueva realidad". La pandemia en curso ha comprometido la capacidad de las organizaciones para probar y entregar software de varias formas.

Recursos restringidos

Primero y más importante, limitaciones de recursos continúan aumentando, ya que muchos trabajadores simplemente no pueden trabajar desde casa en la misma capacidad que lo hacen en una oficina. Además, como muchas empresas están aprovechando los recursos de los integradores de sistemas globales, diferentes geografías han establecido reglas específicas sobre las condiciones de trabajo. Muchas organizaciones simplemente no pueden lidiar con el impacto, por lo que los líderes buscan soluciones para cumplir con los mismos requisitos de prueba con menos recursos.

Colaboración de equipo remoto

A continuación, las organizaciones deben pensar en las formas en que restringieron y equipos remotos colaboran. Es muy interesante notar cómo el aislamiento continuo ha creado una sensación de malestar que afecta significativamente a los equipos que trabajan de forma remota. Esto se debe a que, para aquellos de nosotros que trabajamos en un espacio de oficina, era muy fácil entrar a la oficina de alguien y entablar una conversación sobre el último lanzamiento.

Este nivel de interacción social nos dio la capacidad de discutir nuestras tareas diarias, así como también expresar nuestras preocupaciones sobre la calidad y el proceso. Trabajar en una capacidad puramente remota restringe esas actividades y nos pone en un estado de aislamiento total o, en el caso de la mayoría de las organizaciones, de distracción total. Es un desafío descubrir las formas correctas de trabajar con equipos remotos para que pueda lograr ese equilibrio entre la falta de comunicación y la exageración de la comunicación. Tener el software de colaboración, la gobernanza y las mejores prácticas adecuados ayudan a las organizaciones a prosperar en la nueva realidad.

Mecánicas de entrega de software

A continuación, las organizaciones de TI deben repensar sus mecanismos de entrega de software. “Mobile-first” comienza a volverse hipercrítico para las organizaciones que brindan experiencias digitales a sus clientes. Esto es especialmente importante porque no puede interactuar físicamente con sus clientes en una tienda. Afecta severamente a los centros de llamadas. Y la presencia digital ahora representa en gran medida tu marca. Todo se trasladó a un ámbito puramente digital: desde pedir alimentos a través de una aplicación, banca en línea, ordenar y recibir productos farmacéuticos críticos, e incluso comprar ropa. Las organizaciones deben poder desarrollar y ofrecer estas experiencias rápidamente a este mundo cambiante, para no perder la conexión con sus clientes.

Adjunto a este desafío está la consideración que las organizaciones deben hacer sobre el mecánica de entrega. Mientras repensamos y diseñamos radicalmente las experiencias digitales para nuestros clientes, debemos pensar en cómo desarrollamos, probamos y entregamos contenido digital a través de la canalización de DevOps.

Cambio a ecosistemas en la nube y plataformas de desarrollo de bajo código

La pandemia de COVID-19 empujó a muchas organizaciones a modernizar sus mecanismos de entrega cambiando su software a ecosistemas en la nube y plataformas de desarrollo de bajo código para que los desarrolladores y evaluadores geográficamente separados puedan colaborar e iterar para brindar las mejores experiencias posibles.

Estamos viendo un aumento en las migraciones a plataformas como Salesforce, Guidewire, Mendix y otras. No solo para permitir una entrega rápida, sino para aprovechar todas las capacidades inherentes a esas plataformas para una organización con recursos limitados.

Además de eso, a medida que se moderniza el desarrollo y la implementación de software a través de la canalización de CI, estamos viendo una migración a plataformas en la nube como Azure DevOps, Pivotal Cloud y Amazon Web Services (AWS).

Las empresas de TI de software deben perdurar. Deben ofrecer experiencias digitales altamente interactivas a sus clientes a un ritmo acelerado con recursos limitados. Pero algo tiene que ceder.

Muy a menudo, con estas fuerzas rivales, terminas sacrificando la calidad en el proceso. Es más importante que nunca garantizar que la calidad sea una prioridad para que los clientes que interactúan directamente con usted a través de experiencias digitales no sufran. La mejor manera de continuar brindando experiencias de calidad en un mundo restringido es buscar "modificadores de eficiencia" para su práctica de prueba.

Los modificadores de eficiencia le ahorran tiempo

¿Cuáles son estos "modificadores de eficiencia"? Vienen en varias formas diferentes:

  • Diseño y optimización de pruebas inteligentes
  • Requisito completo para la cobertura del código
  • Ejecución de prueba inteligente

Diseño y optimización de pruebas inteligentes

Hay tantas cosas para probar en una aplicación moderna, incluida la interfaz de usuario de frontend, servicios de middleware que incluyen bases de datos, sistemas de backend y dependencias de terceros. Cada una de estas capas agrega complejidad al proceso de prueba general. Muchos proveedores de herramientas de prueba de software ofrecen soluciones para probar piezas de esta arquitectura. Pero lo que se vuelve importante es asegurarse de que pueda probar con precisión cada componente en su totalidad, desde que se escribe la primera línea de código a través de la prueba de IU inteligente en la aplicación completa.

Un atajo para diseñar y optimizar estas pruebas necesarias es aprovechar la inteligencia artificial. Las organizaciones buscan soluciones inteligentes que incorporen inteligencia artificial para optimizar el proceso de creación de pruebas. Esto puede tomar la forma de escaneo de código inteligente para identificar las malas prácticas en el código mientras se escribe, generando automáticamente pruebas unitarias, identificando patrones y relaciones en secuencias de API para crear escenarios de prueba completos. Y, finalmente, el uso de la autorreparación impulsada por IA en la capa de la interfaz de usuario para recuperarse de las interfaces de aplicación cambiantes.

Requisito integral para la cobertura del código

No es suficiente crear un montón de pruebas. Para validar rápidamente la aplicación, debe comprender cómo cada una de las pruebas se correlaciona con los requisitos comerciales para poder comprender la prioridad y cómo se correlaciona con el código subyacente para que pueda comenzar a comprender la integridad de la prueba.

Por lo tanto, un poderoso modificador de eficiencia para un equipo de pruebas restringido es construir una práctica de prueba donde los casos de prueba estén estrechamente relacionados con los requisitos comerciales y el código de desarrollo para crear una visión integral y holística de la calidad.

Ejecución de prueba inteligente

Ahora, una vez que tenga una serie completa de pruebas y comprenda cómo se pueden operar los resultados de la prueba desde una perspectiva prioritaria al vincularlos con los requisitos, debe poder ejecutar esas pruebas de la manera más efectiva posible. La mayoría de las organizaciones ejecutarán todo su conjunto de pruebas durante la noche. Luego, pase la mitad del día siguiente estudiando detenidamente esos resultados tratando de determinar si algo realmente salió mal o si hubo algún "ruido de automatización".

La mejor manera de ganar eficiencia en la ejecución de su prueba es realizando una ejecución de prueba inteligente. Esa es una ejecución de solo aquellos casos de prueba que necesita ejecutar para validar los cambios que se realizaron en su aplicación. Mediante el uso de tecnologías como la ejecución de pruebas inteligentes, puede:

  • Identifique rápidamente los casos de prueba que afectan al cambio.
  • Vincúlelos a los requisitos asociados.
  • Comprende la prioridad.
  • Dígale a su limitado equipo de pruebas exactamente lo que deben hacer.

Hay muchas piezas en este rompecabezas de calidad como se enumeran anteriormente. Muchas de estas prácticas de prueba se entienden en gran medida, como la capacidad de probar bases de datos o la capacidad de probar una interfaz de usuario. Pero una disciplina que a menudo se pasa por alto y se deja para las etapas posteriores de las pruebas de aplicaciones es Pruebas de API.

Una perspectiva centrada en las pruebas de API

La prueba de API es la práctica de validar interfaces en su aplicación a nivel de servicio o componente. Estas API son los mecanismos mediante los cuales las máquinas se comunican entre sí y, a menudo, sirven como un punto de ruptura para las aplicaciones una vez que se unen. Especialmente en el mundo actual de arquitecturas orientadas a servicios o de microservicios, este punto crítico de integración es de suma importancia cuando se trata de crear una experiencia digital.

Por lo general, la aplicación móvil es solo una interfaz para una serie completa de servicios y esos servicios son los que brindan su valor comercial crítico. Como tal, las organizaciones necesitan crear una práctica integral de prueba de API en paralelo con el resto de sus técnicas de prueba.

Sin embargo, es más fácil decirlo que hacerlo, porque la mayoría de las interfaces API están mal documentadas o contienen una serie de API ocultas e indocumentadas. Esto hace que sea realmente un desafío para los equipos de prueba comprender cómo probar todas las API, en qué secuencia y cómo asegurarse de que hayan cubierto con precisión la cantidad correcta de casos de uso.

Cómo incorporar las pruebas de API en su práctica de pruebas

Una vez que una organización decide adoptar las pruebas de API como un modificador de eficiencia, la clave es comenzar de manera significativa. La mejor manera de iniciar este proceso es identificar un inventario de API disponibles en la arquitectura de su aplicación. Parasoft SOAtestEl generador de pruebas de API inteligente le permite descubrir API mediante el registro de interacciones entre la aplicación y los servicios de API.

La tecnología aprovecha inteligencia artificial (AI) para proporcionar la construcción de pruebas de API significativas mediante la comprensión de patrones y relaciones en las secuencias de API. Luego lo usa para crear pruebas API automatizadas que se ejecutan continuamente para validar las interacciones entre los diversos componentes del sistema.

Al mismo tiempo, puede crear pruebas de nivel de IU de selenio puro con Parasoft Selenic. Las pruebas de IU son un componente importante de la práctica general de pruebas, pero pueden surgir problemas de mantenibilidad con una estrategia de prueba puramente centrada en la IU. Parasoft Selenic utiliza IA para identificar problemas de estabilidad del script de prueba y puede autocurar las pruebas en tiempo de ejecución.

Si bien no es el foco de esta conversación, la combinación de los dos componentes garantiza una amplia cobertura de la aplicación y le ayuda a tener confianza en que las interfaces de su aplicación no están en riesgo.

Si ya tiene pruebas de IU basadas en Selenium, puede usar Parasoft Selenic para extraer las llamadas API relevantes e introducirlas en el motor de pruebas de API. Al hacer un inventario de las interfaces disponibles y crear pruebas automatizadas para esas interfaces, puede comenzar a construir una práctica de prueba de API.

¿Cómo puedo saber cuando he terminado las pruebas de API?

Este es un problema muy complejo. ¿Cómo sabe cuándo ha probado lo suficiente? Hay muchos debates en torno a este tema, pero creo que se divide en tres métricas.

  • Cobertura de código
  • Cobertura de API
  • Cobertura de requisitos

Obtención de cobertura de código

La cobertura del código es muy fácil de obtener. Instrumenta su aplicación con un monitor de nivel de código y ejercita sus aplicaciones a través de las API. El monitor de nivel de código identificará las clases y métodos con los que se interactúa y devolverá esa información a su motor de informes y análisis.

Por su propia naturaleza, las API no exponen toda la funcionalidad de código disponible a través de la API, por lo que su organización necesita identificar qué código es accesible por las API. Una vez que tenga esta información, puede establecer un umbral para el nivel de cobertura de código que desea lograr a través de sus pruebas de API. Generalmente, el 80% es un buen nivel para alcanzar.

Obtención de cobertura de API

Sin embargo, la cobertura del código es solo una parte de la historia. También desea ver la cobertura de API. La cobertura de API es una métrica que indica, del total de API disponibles que son accesibles, cuántas de estas API se prueban con sus pruebas de API automatizadas. Puede haber muchos casos en los que, aunque está logrando un alto nivel de cobertura de código, aún tiene riesgos en su aplicación porque no ha validado ciertas API clave.

Quizás estas API clave solo tocan una pequeña parte del código, por lo que se pierden en la cobertura general del código, pero debido a que tocan un componente crítico, presentan un riesgo significativo si se comportan mal o se abusan intencionalmente.

Puede lograr la cobertura de API a través de su solución de prueba automatizada al derivar el delta entre los servicios disponibles en las definiciones de servicio, como Swagger, API abierta y otros, contra los puntos finales a los que se accede en sus pruebas de API. A través de esta métrica, podrá ver la cantidad total de servicios cubiertos frente a la cantidad total de servicios disponibles. Generalmente, el 90% es un buen nivel a alcanzar dependiendo del tamaño de las API.

Obtención de cobertura de requisitos

Finalmente, necesitamos hablar sobre la cobertura de requisitos. Aunque la cobertura del código y la cobertura de la API indican qué porcentaje de la aplicación está tocando, no indican si está logrando lo que pretendía para sus clientes.

La cobertura de requisitos es el proceso de asociar requisitos a escenarios de prueba. Debe establecer que el escenario de prueba automatizado valida el caso de uso desde un nivel técnico. Entonces podrá comprender mediante la ejecución si se cubren todos sus requisitos. Si no es así, ¿qué requisitos quedan sin cubrir? ¿Y cuál es su prioridad empresarial?

Se podría argumentar que la cobertura de requisitos es la más importante de las tres técnicas, idealmente una cobertura del 100%. Pero, en realidad, debe usar las tres métricas en combinación para comprender completamente cuándo tiene un nivel aceptable de riesgo de liberación.

¿Cómo puedo acortar la brecha entre la identificación de defectos y la corrección?

La retroalimentación continua es vital en un entorno de trabajo remoto. Debemos poder reaccionar a los problemas de calidad que se manifiestan en nuestras experiencias digitales de una manera significativa y lo más rápido posible. Dado que las API representan lo más cercano que se puede llegar al código sin tener que mirar las fuentes, representan una buena primera línea de defensa para que la ingeniería de calidad identifique cuándo se han introducido defectos en la aplicación que podrían propagarse a los usuarios. Las pruebas de API automatizadas le permiten validar sus API de forma continua. Potencialmente como un paso de compilación en su canalización de CI / CD. Una clave para garantizar que este proceso sea escalable es adoptar la ejecución de pruebas inteligentes.

Como se mencionó anteriormente, la ejecución de pruebas inteligentes es un término general que se refiere al proceso de ejecutar solo las pruebas necesarias para validar los cambios. Esos cambios podrían provenir del código o del requisito.

Al implementar la ejecución de pruebas inteligentes en su proceso de CI / CD o DevOps, puede ejecutar las pruebas de API adecuadas para validar su arquitectura cambiante. Al no ejecutar todo el conjunto de pruebas para cada compilación, puede reducir significativamente la cantidad de tiempo entre la detección de defectos y la corrección. Estos ciclos rápidos de retroalimentación son vitales en un mundo con recursos limitados.

Resumen

El mundo ha cambiado. Seamos sinceros. Va a ser así en el futuro previsible. Pero no necesitamos ver esto como un momento para preocuparnos. Más bien, podemos utilizar esto como una oportunidad para la transformación digital.

Al mirar hacia adentro a nuestros procesos de calidad e identificar áreas para agregar modificadores de eficiencia, podemos salir de esta pandemia en una posición mucho más favorable. Las pruebas de API son una de las muchas prácticas que una organización puede adoptar para proporcionar información valiosa sobre la confiabilidad y escalabilidad de nuestras aplicaciones.

Para obtener más información sobre cómo crear una práctica de prueba de API, vea nuestro seminario web a pedido.

Mejore la calidad del software con pruebas de API impulsadas por IA Vea el seminario web

Escrito por

Chris Colosimo

Como Gerente de Producto en Parasoft, Chris elabora estrategias para el desarrollo de productos de las soluciones de pruebas funcionales de Parasoft. Su experiencia en la aceleración de SDLC a través de la automatización lo ha llevado a implementaciones empresariales importantes, como Capital One y CareFirst.

Reciba las últimas noticias y recursos sobre pruebas de software en su bandeja de entrada.

Prueba Parasoft