El aprendizaje automático está cambiando el futuro de las pruebas de software

 AI y ML el futuro de las pruebas de software

La mayoría de los equipos de desarrollo de software creen que no realizan pruebas bien. Entienden que el efecto de los defectos de calidad es sustancial e invierten mucho en la garantía de calidad, pero aún no obtienen los resultados que desean. Esto no se debe a una falta de talento o esfuerzo; la tecnología que respalda las pruebas de software simplemente no es efectiva. La industria ha sido desatendida.

No puede haber una versión exitosa hasta que el software se haya probado de manera adecuada y exhaustiva, y las pruebas a veces pueden requerir recursos considerables considerando la cantidad de tiempo y esfuerzo humano requerido para hacer el trabajo correctamente. Esta enorme necesidad recién está comenzando a cubrirse.

El aprendizaje automático (ML), que ha interrumpido y mejorado tantas industrias, recién está comenzando a abrirse camino en las pruebas de software. Las cabezas están cambiando, y por una buena razón: la industria nunca volverá a ser la misma. Si bien el aprendizaje automático sigue creciendo y evolucionando, la industria del software lo utiliza cada vez más y su impacto está comenzando a cambiar significativamente la forma en que se realizarán las pruebas de software a medida que la tecnología mejore.

Profundicemos en el estado actual de las cosas. en las pruebas de software, revise cómo se ha desarrollado el aprendizaje automático y luego explore cómo las técnicas de ML están cambiando radicalmente la industria de las pruebas de software.

Algunos antecedentes sobre las pruebas de software

Las pruebas de software son el proceso de examinar si el software funciona de la forma en que fue diseñado. Las pruebas de garantía de calidad funcional (QA), la forma de prueba que garantiza que nada se rompa fundamentalmente, se ejecutan de tres maneras: pruebas unitarias, API y de un extremo a otro.

Las pruebas unitarias son el proceso de asegurar un bloque de código da la salida correcta a cada entrada. Las pruebas de API llaman a interfaces entre módulos de código para asegurarse de que puedan comunicarse. Estas pruebas son pequeñas, discretas y están destinadas a garantizar la funcionalidad de piezas de código altamente deterministas.

Las pruebas de extremo a extremo (E2E) aseguran que toda la aplicación funcione cuando está todo ensamblado y funcionando en la naturaleza. Las pruebas E2E prueban cómo funciona todo el código en conjunto y cómo funciona la aplicación como un solo producto. Los probadores interactuarán con el programa como lo haría un consumidor a través de pruebas centrales (donde prueban lo que se hace repetidamente) y pruebas de borde (donde prueban interacciones inesperadas). Estas pruebas descubren cuándo la aplicación no responde de la forma en que un cliente quisiera, lo que permite a los desarrolladores realizar reparaciones.

Las pruebas E2E convencionales pueden ser manuales o automatizadas. Las pruebas manuales requieren que los humanos hagan clic en la aplicación cada vez que se prueba. Consume mucho tiempo y es propenso a errores. La automatización de pruebas implica escribir scripts para reemplazar a los humanos, pero estos scripts tienden a funcionar de manera inconsistente y requieren una gran cantidad de tiempo de mantenimiento a medida que la aplicación evoluciona. Ambos métodos son costosos y dependen en gran medida de la intuición humana para tener éxito. Todo el espacio de pruebas de E2E es lo suficientemente disfuncional como para ser interrumpido por las técnicas de IA / ML.

¿Qué es el aprendizaje automático?

Si bien el aprendizaje automático se usa a menudo como sinónimo de IA, no son estrictamente lo mismo. El aprendizaje automático utiliza algoritmos para tomar decisiones y utiliza la retroalimentación de la participación humana para actualizar esos algoritmos.

Un buen ejemplo es la visión artificial. Una aplicación de visión artificial puede identificar algo como un gato cuando en realidad es un perro. Un humano lo corrige (diciéndole, "no, esto es un perro") y el conjunto de algoritmos que deciden si algo es un gato o un perro se actualiza basándose en esta retroalimentación. El aprendizaje automático está diseñado para tomar mejores decisiones a lo largo del tiempo en función de estos comentarios continuos de probadores y usuarios.

El aprendizaje automático ha tenido dificultades para llegar al mundo de las pruebas E2E debido a la falta de datos y comentarios. Las pruebas E2E generalmente se construyen a través de la intuición humana sobre qué es importante probar o qué características parecen importantes o riesgosas. Las nuevas aplicaciones utilizan datos de análisis de productos para informar y mejorar la automatización de las pruebas, lo que abre la puerta a los ciclos de aprendizaje automático para acelerar enormemente el mantenimiento y la construcción de las pruebas.

Entonces, ¿cuál es el futuro de las pruebas de software?

El futuro de las pruebas de software son las pruebas más rápidas, los resultados más rápidos y, lo que es más importante, las pruebas que aprenden lo que realmente les importa a los usuarios. En última instancia, todas las pruebas están diseñadas para garantizar que la experiencia del usuario sea maravillosa. Si podemos enseñarle a una máquina lo que les importa a los usuarios, podemos probar mejor que nunca.

Convencionalmente, las pruebas retrasan el desarrollo, tanto en velocidad como en utilidad. La automatización de pruebas suele ser un punto débil para los equipos de ingeniería. ML puede ayudar a convertirlo en una fortaleza.

Lo que ML significa para el futuro de las pruebas de software es autonomía . Las máquinas inteligentes podrán, utilizando datos del uso actual de la aplicación y la experiencia pasada en pruebas, crear, mantener, ejecutar e interpretar pruebas sin intervención humana.

Es probable que no todos los aspectos del desarrollo de software deban automatizarse. Dada una larga tradición de pruebas de E2E impulsadas principalmente por la intuición y la mano de obra humanas, la industria en su conjunto puede inicialmente resistirse a entregar el proceso a las máquinas. Prácticamente en todas las industrias, los conocedores afirman que las máquinas nunca podrían hacer el trabajo de un humano. Aquellos que se han resistido al auge del ML y han redoblado el trabajo humano a menudo se quedan atrás.

Se está desarrollando una historia familiar en el mundo de las pruebas: la automatización de pruebas impulsada por ML está en su infancia hoy, pero probablemente solo a unos años de apoderarse de la industria.

Pruebas autónomas de extremo a extremo

La ​​principal ventaja del aprendizaje automático en las pruebas E2E es poder aprovechar datos de análisis de productos altamente complejos para identificar y anticipar las necesidades del usuario. Las pruebas impulsadas por el aprendizaje automático pueden observar cada interacción del usuario en una aplicación web, comprender los recorridos comunes (y de borde) que recorren los usuarios y asegurarse de que estos casos de uso siempre funcionen como se espera.

Si esa máquina está probando muchos aplicaciones, luego puede aprender de todas esas aplicaciones para anticipar cómo los nuevos cambios en una aplicación afectarán la experiencia del usuario. Las pruebas impulsadas por ML ya pueden crear pruebas mejores y más significativas que los humanos gracias a estos datos.

Las pruebas desarrolladas por la automatización impulsada por ML se construyen y mantienen más rápido y mucho menos costoso que la automatización de pruebas creada por humanos. Dichas pruebas conducen a implementaciones mucho más rápidas (y de mayor calidad) y son una bendición para el presupuesto de cualquier vicepresidente de ingeniería.

¿Qué pasa con los probadores?

¿Qué pasa con las personas que actualmente realizan estos trabajos?

Los ingenieros de calidad todavía tienen un papel importante que desempeñar en el desarrollo de software. La forma más eficiente de asegurar la calidad en el software es integrar el control de calidad en el diseño y desarrollo del código en sí. Las pruebas solo existen porque ese proceso es imperfecto.

A medida que ML asume la carga de las pruebas E2E de los ingenieros de pruebas, esos ingenieros pueden utilizar su experiencia junto con los ingenieros de software para crear código de alta calidad a partir de Molido. Según nuestras propias entrevistas sobre el tema, parece que la mayoría de los ingenieros de calidad preferirían esto a trabajar en el mantenimiento de prueba todo el día.

El futuro luce brillante

ML ofrece un proceso de prueba de software más eficiente y eficiente. Establece un proceso que está mejor equipado para manejar el volumen de desarrollos y crear las pruebas especializadas necesarias. Las pruebas de software inteligentes significan pruebas basadas en datos, resultados precisos y desarrollo industrial innovador.

Esperamos que este artículo lo haya ayudado a prepararse para el futuro de las pruebas de software y las cosas asombrosas que el aprendizaje automático tiene para nuestro mundo.


Leave a Reply

Your email address will not be published. Required fields are marked *