X
BLOG

Automatización de pruebas de software e IA

Automatización de pruebas de software e IA Tiempo de leer: 7 minutos
Tenemos este pequeño eslogan divertido sobre cómo estamos superando los límites de la automatización de pruebas. Es algo bastante simple cuando lo dices, pero ¿qué queremos decir realmente con eso?

Ampliando los límites de lo que podemos automatizar en las pruebas de software

Recientemente, varios analistas de la industria nos reconocieron por el trabajo que hemos estado haciendo para superar esos límites. En voke, dijeron: "Parasoft es una empresa nacida de la innovación con un enfoque incesante en la calidad del software,"Y Forrester dijo:"Con respecto a la IA, Parasoft tiene una hoja de ruta impresionante y concreta para aumentar la automatización de pruebas desde el diseño hasta la ejecución, impulsando las pruebas autónomas.."

Pero, ¿qué significa esto de una manera práctica? Genial, los analistas están hablando de nuestra hoja de ruta innovadora, pero ¿cómo se beneficia alguien realmente de toda esta innovación? (Además de leer a continuación, también puede ver nuestro seminario web reciente para algunos ejemplos de clientes reales.)

Los "límites" de la "automatización de pruebas"

Comencemos con lo que queremos decir con "automatización de pruebas". Por lo general, cuando la gente habla de automatización de pruebas, se refiere a ejecución de pruebas, donde toma algo como una prueba manual, lo graba de alguna manera, lo reproduce y lo coloca en un script de prueba que una herramienta puede ejecutar a pedido (es decir, prueba de grabación y reproducción, lo cual es genial y todo, pero definitivamente es dentro de los "límites"). Otras empresas ofrecen automatización en creación de prueba side - ayudando a automatizar la creación del script de prueba en primer lugar.

Y si bien esas dos técnicas son interesantes y útiles, definitivamente se encuentran dentro del ámbito de los esfuerzos normales de automatización de pruebas en la actualidad.

En Parasoft, cuando miramos cómo superar los límites, no estamos viendo un solo paso de prueba, estamos viendo la práctica de prueba completa. No queremos mover un solo proceso a la izquierda, queremos mover TODO a la izquierda. Y sí, mi título lo delató, mucho de esto se remonta a la inteligencia artificial. Cuando unimos la tecnología de inteligencia artificial y la automatización de pruebas, las capacidades de prueba se vuelven infinitamente mayores.

No solo estamos empujando los límites, ni siquiera podemos ver dónde ESTÁN los límites.

(La mente explota.)

Por supuesto, he prometido hablar sobre lo que esto significa de una manera práctica. No de una manera grandiosa, donde no necesitamos límites, ni autos, ni humanos, o ……

Así que vayamos directo a eso.

Innovar en las pruebas de software abordando los puntos débiles clave

Entonces, ¿qué hemos innovado exactamente y cómo puede beneficiarse de ello? El reciente informe de Forrester señaló que todos nuestros clientes de referencia lograron una automatización de pruebas de más del 50%, que es más del doble del promedio de la industria. Para lograr esto, para superar realmente los límites de la automatización de pruebas de una manera práctica que aumente su nivel de automatización de pruebas, identificamos tres desafíos clave de las pruebas de software y creamos tecnologías para resolverlos. Todos estos están disponibles para que los use hoy.

1. Gestionar (y comprender) el impacto de cambiar

Las organizaciones de prueba dedican una cantidad excesiva de tiempo a mantener sus casos de prueba a medida que cambia la aplicación. El cambio se presenta de muchas formas diferentes, incluida la introducción de nuevas funciones en la aplicación o una nueva arquitectura de la funcionalidad de la aplicación existente. De cualquier manera, el equipo de pruebas debe identificar qué ha cambiado, asignar esos cambios a su estrategia de prueba actual para descubrir el delta y diseñar una estrategia para crear nuevos casos de prueba para cubrir las brechas mientras se actualizan los casos de prueba existentes para seguir funcionando.

Suena simple, quizás. Y puede serlo si su aplicación tiene una pequeña cantidad de API. Pero este es un proceso muy difícil en realidad porque, para empezar, la mayoría de los equipos de prueba no tienen un conocimiento profundo de las interfaces de una aplicación. Cuando ocurre el cambio, inevitablemente hay una lucha rápida para identificar cuáles son las nuevas capacidades y construir escenarios de prueba significativos en su contra. Comprender el impacto creciente de los cambios en el sistema es esencialmente imposible para un ser humano.

Entonces traemos los bots. El asesor de cambios de Parasoft identifica los cambios en las interfaces de la aplicación y proporciona una plantilla de cambios útil que asigna diferentes versiones del servicio entre sí. A continuación, se puede utilizar para volver a factorizar de forma masiva cualquier caso de prueba que pueda verse afectado por este cambio.

Con esta tecnología, los equipos pueden reducir los costos de mantenimiento asociados con los casos de prueba y los servicios virtuales, al tiempo que brindan a los evaluadores la tranquilidad de saber que los artefactos que están creando hoy seguirán funcionando mañana. Y con este flujo de trabajo de mitigación de cambios, permitimos una adopción y un escalado de la automatización de pruebas mucho más amplios.

2. Conseguir lo adecuado conocimientos sobre cómo funcionan las API

"¿Estoy construyendo correctamente mis pruebas de API?"

Esta es una pregunta que escucho todo el tiempo cuando trabajo con los clientes para desarrollar una estrategia de prueba de API. Es básicamente lo mismo que preguntar: "¿Cuánto mide un trozo de cuerda?"

La única forma de saber si realmente está construyendo la prueba de API "correcta" es si sabe que realmente comprende la API. Los probadores pueden ser creativos, si tienen conocimientos. Una vez que sepa cómo funciona una cosa, puede crear todo tipo de pruebas significativas contra ella, pero obtener ese conocimiento inicial no es fácil. ¿Cómo se supone que un evaluador debe entender cómo funcionan todas las API? Supongo que podría sentarse con todos los desarrolladores en su tiempo libre y preguntarles sobre las sutiles complejidades de las interfaces de aplicación que han creado. ¿Qué son, para qué sirven, cómo se usan, cómo los probarías? Las preguntas son infinitas y el problema, por supuesto, es que tú no vas a hacer eso y ellos tampoco.

Para abordar este desafío, creamos el generador de pruebas de API inteligente SOAtest de Parasoft. Empaquetado en un complemento simple para Chrome, utiliza tecnología de inteligencia artificial para ayudar a cerrar la brecha de conocimiento asociada con el descubrimiento de llamadas de API relevantes y la comprensión de las asociaciones entre las llamadas de API para crear una secuencia significativa de pasos necesarios para las pruebas.

Con Smart API Test Generator, puede monitorear y extraer llamadas API de una aplicación a una API de backend REST. La inteligencia artificial busca patrones y relaciones en los datos, forma un escenario de prueba de API que modela la interacción entre el front-end y las API, y ayuda a las organizaciones a comprender no solo qué API están disponibles, sino, en última instancia, cómo probar esas API utilizando escenarios realistas. .

3. Gestionar eficazmente (y no desperdiciar) hora

Si puede superar la brecha de conocimiento y aún así construir una biblioteca gigante de escenarios de prueba significativos, aún necesita saber cuando para ejecutar esas pruebas. Los probadores están bajo una inmensa presión para lograr una cobertura de prueba adecuada dado su tiempo disponible, pero no puede simplemente ejecutar todas sus pruebas todo el tiempo. Necesita un método confiable para ejecutar las pruebas exactas que necesita, dado el cambio que se ha producido.

Por supuesto, todo se reduce al tiempo. Es hora de lidiar con el cambio, es hora de aprender las API. ¿Ha configurado el uso más efectivo de su automatización de pruebas dado el tiempo que tiene para la ejecución? Este es un grande. Recientemente estuve trabajando con una organización que había acumulado 18,000 pruebas. Si bien esto suena muy bien en la superficie, no tuvieron suficiente tiempo por la noche para ejecutarlos a todos. Además, si todos se ejecutaban, era probable que algunos de ellos fallaran, y no era evidente de inmediato cómo cortar el ruido y comprender exactamente lo que había sucedido. La automatización de pruebas puede ayudarlo a superar muchos desafíos, pero puede agregar accidentalmente una gran cantidad de tiempo de prueba, en lugar de reducirlo, si no está administrando el cambio de manera efectiva.

Y aquí es donde todos estos desafíos se unen. Para lograr calidad en velocidad, necesitas hacer más pruebas eficiente, que se trata de comprender mejor el cambio - no se trata de crear más pruebas, se trata de crear menos pruebas con mayor cobertura. Entonces, ¿cómo aumentamos nuestro conocimiento sobre qué pruebas crear y ejecutar para ahorrar tiempo y acelerar la entrega?

Aquí, comienza en el IDE del desarrollador. También hemos estado innovando bastante aquí, y ahora, los desarrolladores pueden usar la tecnología de pruebas basadas en cambios de Parasoft para identificar y ejecutar automáticamente solo las pruebas que se ven afectadas por los cambios de código. La tecnología va más allá de las pruebas ordinarias basadas en cambios para permitir que las organizaciones de desarrollo adopten un enfoque quirúrgico para la ejecución de las pruebas, en lugar de tener que ejecutar todas y cada una de las pruebas cada vez que hay un registro. La tecnología comprende cómo las diferentes áreas del código se afectan entre sí y luego usa esta información para ejecutar solo las pruebas que se ven afectadas por el cambio de código de un registro determinado.

¡¡Pero prometí empujar los límites !! Por supuesto. Esto está sucediendo de una manera real aquí. Debido a que nuestra tecnología comprende el impacto específico en la aplicación y puede usar esta información para ejecutar los casos de prueba correctos contra el código correcto, todo desde el IDE, antes de que el código se integre en la aplicación, estamos ayudando a los desarrolladores a comprender (a nivel local nivel, antes de que se comprometan) cuál será el impacto de sus cambios en la aplicación más amplia. Esto reduce significativamente la cantidad de tiempo que la organización dedica a reaccionar ante fallas de la aplicación y aumenta el enfoque en la confiabilidad y estabilidad de toda la aplicación.

La innovación como catalizador de la acción

Estos tres grandes desafíos, quizás incluso nebulosos, ciertamente se pueden abordar de arriba abajo y por todos lados, pero estamos descubriendo, cada vez más, que si aprovecha las máquinas para que trabajen para usted, se centrará en lograr altos niveles de automatización de pruebas. de tantas formas como sea posible, puede lograr pruebas de aplicaciones completas y de un extremo a otro. (Para ver algunos ejemplos reales de nuestros clientes que están utilizando estas tecnologías para hacer precisamente eso, puede consultar un seminario web reciente que impartí con nuestro Director de Desarrollo que está disponible para ver aquí: El futuro de la automatización de pruebas: tecnologías de próxima generación para usar hoy).

Ahora. Si te desplazaste hasta el final después de leer el título y solo quieres entender la conclusión (Test Automation + AI = ??), déjame intentar darte una buena pepita. Para ampliar los límites de la automatización en las pruebas de software, puede aprovechar la inteligencia artificial en muchos lugares, incluida la comprensión de cómo funcionan las API, la creación de escenarios de prueba de API efectivos, la identificación de los cambios que se han producido y la ejecución de las pruebas correctas en el momento adecuado. Y luego, puede aplicar el aprendizaje automático para llevarlo todo al siguiente nivel. Pero ese es el siguiente tema, para el próximo día lluvioso.

Para comenzar, aprovechar toda esta innovación de automatización de pruebas para abordar los desafíos específicos de prueba de software a los que se enfrenta en su organización. Al aprovechar estas tecnologías de próxima generación de los laboratorios de prueba de Parasoft, puede concentrarse en el cambio como catalizador de la acción, en lugar de preocuparse por el cambio que amenaza su innovación.

Comience a utilizar tecnologías de prueba de software de próxima generación en su organización

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