Simplifica el mantenimiento de tus scripts de Appium con la autorreparación impulsada por IA.

Es el final del día y el equipo de pruebas está recogiendo sus cosas y volviendo a casa. Como es tradición, la última persona en irse apaga las luces, pero queda una tarea más por completar. De camino a casa, uno de los miembros del equipo debe activar la prueba nocturna como parte de su rutina. pruebas de regresión para dispositivos móviles. Sin embargo, a la mañana siguiente, para sorpresa y consternación del equipo, descubren que muchas de sus pruebas han fallado debido a un cambio de localizador en la aplicación.

Este tipo de cambios son frecuentes y pasan desapercibidos por diversas razones. Un ejemplo sencillo sería que el equipo de desarrollo realizara un cambio tan pequeño que se consideró insignificante y, por lo tanto, no se comunicó al equipo de control de calidad.

El tiempo y el esfuerzo necesarios para revisar los scripts fallidos, actualizar los localizadores y volver a ejecutar las pruebas pueden descarrilar rápidamente un sprint, aumentando el riesgo de introducir defectos en producción.

En un mundo donde la IA es cada vez más fundamental para el ciclo de vida del desarrollo de software (SDLC).Ahora, los desarrolladores reciben asistencia con sugerencias contextuales, optimización de código e incluso generación de pruebas unitarias. Si bien esto acelera el desarrollo, puede generar desafíos posteriores para los equipos de control de calidad, ya que tienen dificultades para mantenerse al día con el aumento en la cantidad de código creado.

Los cambios menores en la interfaz de usuario, como el mencionado anteriormente, suelen afectar las pruebas automatizadas de extremo a extremo. Sin embargo, gracias a la integración de la autorreparación mediante IA, los scripts pueden adaptarse sobre la marcha, reparando los localizadores defectuosos durante la ejecución sin interrumpir el flujo de pruebas. Esta capacidad ayudará a los equipos de control de calidad a mantenerse al día con los ciclos de desarrollo rápidos, reducir significativamente el tiempo de mantenimiento de las pruebas y proporcionar retroalimentación más rápida, al tiempo que aumenta la resiliencia de las pruebas.

Este blog explorará cómo Autocuración impulsada por IA Aborda de forma autónoma las discrepancias de elementos en tiempo de ejecución sin intervención humana.

Requisitos previos: Esta función solo está disponible para clientes SaaS Pro y Premium.

Para ayudarte a comprender mejor la autorreparación mediante IA y cómo se comporta en nuestra plataforma, analizaremos lo siguiente: Digital.aiLa aplicación bancaria de [Nombre de la empresa] está diseñada para Android y se realizará una prueba sencilla en la página de inicio de sesión donde se detectará un cambio.

Tendremos dos versiones de la misma aplicación: una sin modificar (una compilación que se espera que funcione) y otra modificada (en la que se ha cambiado uno de los localizadores).

En la versión no modificada de la aplicación, vemos que el ID “usernameTextField” identifica el localizador de nombre de usuario:

Este localizador se utilizará en el script de automatización, como se muestra a continuación. Las siguientes líneas validan e interactúan con el campo de nombre de usuario después de que se activen las pruebas automatizadas de Appium:

``` wait.until(ExpectedConditions.elementToBeClickable(By.id("com.experitest.ExperiBank:id/usernameTextField"))); driver.findElement(By.id("com.experitest.ExperiBank:id/usernameTextField")).sendKeys("tester01"); ```

En circunstancias normales, donde los localizadores no se modifican, el script pasaría sin problemas.

Sin embargo, consideremos un escenario donde el localizador del campo de nombre de usuario ha cambiado. En lugar de “UsernameTextField”, ahora se identifica como “UserTextField” en esta compilación modificada:

En este caso, el script fallaría inmediatamente con una excepción “NoSuchElementException”.

¿Cómo podemos abordar este problema?

Es tan sencillo como añadir una línea a la configuración de prueba dentro de las capacidades deseadas. Veamos una configuración de script de prueba simple para instalar y ejecutar una aplicación en Digital.ai, Continuous Testing :

`` `
Funcionalidad deseadas caps = ¡nuevos Socios! de Funcionalidad deseadas();

tapas.setCapability("testName", "prueba de escenario de inicio de sesión");
tapas.setCapability("clave de acceso", CLAVE_DE_ACCESO);
tapas.setCapability("consulta de dispositivo", "@os='android'"); //
https://docs.digital.ai/bundle/TE/page/device_queries.html
tapas.setCapability("aplicación", "nube: com.experitest.ExperiBank/.LoginActivity");
tapas.setCapability("paquete de aplicación", "com.experitest.ExperiBank");
tapas.setCapability("appActivity", ".ActividadDeInicioDeSesión");

Funcionalidad deseadas.set(caps);
conductor.colocar(¡nuevos Socios! de AndroidDriver(¡nuevos Socios! de URL("https:// /wd/hub"), tapas));

`` `

Ahora, con solo agregar la siguiente línea a tus capacidades, le indicarás al script que debe ejecutarse en modo de autorreparación:

`` ` 
tapas.setCapability("autosanación", su verdadero);

`` `

Ahora puede ejecutar los scripts automatizados como de costumbre. No se requieren cambios adicionales, ni en su IDE (como Eclipse o IntelliJ) ni en una canalización de CI/CD (por ejemplo, Azure). DevOps).

¿Afecta la habilitación de la autorreparación de la IA al tiempo de ejecución de las pruebas habituales?

Habilitar la autorreparación puede aumentar el tiempo de ejecución de las pruebas, ya que este módulo escanea continuamente las páginas en busca de cambios durante la ejecución. Para mayor flexibilidad, hemos incluido la opción de pausar y reanudar la autorreparación en el script. Por ejemplo, si la página de inicio de sesión es estable y es poco probable que cause fallos, deshabilitar la autorreparación para esta sección podría ayudar a reducir el tiempo de ejecución de las pruebas. Con una sola línea de código añadida al script de prueba, puede pausar el modo de autorreparación:

`` `

conductor.executeScript("seetest:client.stopHealing");

`` `

Y cuando quieras reanudar, simplemente invoca otra línea de código:

`` `

conductor.executeScript("seetest:client.startHealing");

`` `

¿Es personalizable la autocuración?

La autocuración impulsada por IA es configurable para adaptarse a las necesidades de las aplicaciones que se están probando, especialmente cuando se trata de distintos niveles de complejidad.

  1. Intentos de recuperación: Define el número total de intentos que realizará el algoritmo para descubrir un localizador coincidente.
    Por defecto, la función de autorreparación intenta identificar los cambios de localizador una vez por elemento. Por ejemplo, si el algoritmo no encuentra un localizador de reemplazo para el campo de nombre de usuario, solo lo intentará una vez antes de continuar con el siguiente.
  2. Límite de puntuación: Establece un umbral de puntuación de coincidencia basado en la probabilidad de una coincidencia exitosa. La puntuación predeterminada es 0.6 en una escala de 0.1 a 1.0.
    Una puntuación de 0.6 indica que la autocuración se activará para los localizadores recién identificados solo cuando la probabilidad de una coincidencia sea superior al 60 %.

El Digital.ai El equipo de soporte puede modificar ambas propiedades a petición del usuario.

¿Funciona la autorreparación mediante IA en todo tipo de aplicaciones móviles?

Actualmente, la función de autorreparación mediante IA es compatible con pruebas web y de aplicaciones móviles nativas en Android, así como con pruebas web en iOS. La compatibilidad con aplicaciones móviles nativas en iOS aún no está disponible; manténgase al tanto de las próximas actualizaciones.

¿Qué sucede si se producen varios cambios de localizador durante la ejecución de un único script de prueba?

Ya sea un solo cambio de localizador o varios, cuando la función de autorreparación por IA está habilitada, el mecanismo de autorreparación se activará y actualizará automáticamente todos los localizadores afectados durante una sola ejecución de prueba, sin ninguna intervención manual.

Mis pruebas se han solucionado: ¿Debo seguir ejecutando mis pruebas tal como están o necesito modificar mis scripts?

Puedes seguir ejecutando tus pruebas automatizadas y funcionarán como se espera. Digital.ai platform Continuará detectando los cambios y asegurando que los scripts se ejecuten según lo previsto. Sin embargo, esto no resuelve completamente el problema. Si bien la prueba se corrige durante la ejecución, no modifica el script en sí, independientemente de si se ejecuta desde un IDE como IntelliJ o una canalización de CI/CD como Azure. DevOpsDeberá modificar los scripts de automatización originales y realizar los cambios necesarios.

¿Para qué curarme si de todas formas necesito hacer los cambios?

La ventaja de usar la autorreparación es que los cambios en los localizadores no interrumpen la ejecución de las pruebas. Tras la ejecución, puede revisar los informes cuando le convenga para identificar qué localizadores se repararon y actualizar el script en consecuencia. Diferenciar entre fallos reales de las pruebas y problemas de automatización ayuda a centrarse en tareas de mayor prioridad que podrían tener un impacto mucho mayor en los usuarios finales. Como resultado, puede lanzar nuevas actualizaciones sin la preocupación constante de que las pruebas inestables obstaculicen el progreso.

¿Cómo sé si algo ha sanado?

¡Es muy sencillo! Veamos un ejemplo. Puedes acceder a tu página de reportero desde tu navegador (funciona mejor en Chrome):

``` https:// /reportero/reportero/pruebas ```

Como alternativa, en la plataforma principal, haz clic en tus iniciales en la esquina superior derecha y selecciona “Ir al reportero"

 

Y ve a la “Examenes" pestaña: 

 

Esta vista mostrará todas las pruebas ejecutadas para su proyecto, incluido el porcentaje de pruebas que se resolvieron correctamente:

 

Al hacer clic en el Sanado El estado en el gráfico circular filtrará los resultados para mostrar solo las pruebas que se han curado:

 

También puedes hacer clic en cada informe para ver información detallada sobre lo que se curó:

Conclusión

La autocuración impulsada por IA representa un gran avance en la automatización de pruebas.Optimiza el mantenimiento de los scripts de Appium y reduce el esfuerzo manual necesario para adaptarse a los rápidos ciclos de desarrollo. Si bien la autorreparación no elimina por completo la necesidad de actualizar los scripts, ofrece una experiencia fluida al prevenir interrupciones en las pruebas y proporcionar información valiosa para su mantenimiento. Esto la convierte en una herramienta potente que mejora la fiabilidad de las pruebas. Si desea descubrir cómo la autorreparación con IA puede transformar su estrategia de automatización de pruebas y obtener más información sobre nuestras innovaciones en IA, ¡contáctenos!

También puede interesarle