Publicado: Octubre 22, 2024
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?
`` ` 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?
`` ` 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?
- 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. - 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?
¿Qué sucede si se producen varios cambios de localizador durante la ejecución de un único script de prueba?
Mis pruebas se han solucionado: ¿Debo seguir ejecutando mis pruebas tal como están o necesito modificar mis scripts?
¿Para qué curarme si de todas formas necesito hacer los cambios?
¿Cómo sé si algo ha sanado?
``` 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
También puede interesarle
Tu prueba de CarPlay ha sido superada. ¿Qué vio el conductor?
Si tu equipo está desarrollando una aplicación compatible con Apple CarPlay, validar…
Elegir lo correcto DeployModelo de implementación para pruebas: SaaS, local o híbrido.
He aquí una pregunta que surge con más frecuencia de la que debería:…
iOS 27 Beta ya está aquí. Prueba tus aplicaciones con Digital.ai Pruebas.
Apple ha comenzado a implementar la versión beta de iOS 27 para desarrolladores…