Publicado: outubro 22, 2024
Simplifique a manutenção de scripts Appium com a autorrecuperação baseada em IA.
É o fim do dia e a equipe de testes está arrumando suas coisas e indo para casa. Como é tradição, a última pessoa a sair apaga as luzes, mas ainda resta uma tarefa a ser concluída. No caminho, um dos membros da equipe precisa acionar a execução do teste noturno como parte de suas responsabilidades. teste de regressão para dispositivos móveis. Na manhã seguinte, porém, para choque e consternação da equipe, eles descobrem que muitos de seus testes falharam devido a uma alteração de localização dentro do aplicativo.
Esses tipos de alterações acontecem com frequência e passam despercebidos por diversos motivos. Um exemplo rápido seria a equipe de Desenvolvimento fazer uma alteração tão pequena que foi considerada insignificante e, portanto, não foi comunicada à equipe de Controle de Qualidade.
O tempo e o esforço necessários para revisar scripts com falha, atualizar localizadores e executar testes novamente podem rapidamente comprometer um sprint, aumentando o risco de enviar defeitos para produção.
Em um mundo onde a IA é cada vez mais central para o ciclo de vida de desenvolvimento de software (SDLC), a IA se torna cada vez mais essencial.Os desenvolvedores agora recebem assistência com sugestões contextuais, otimização de código e até mesmo geração de testes unitários. Embora isso acelere o desenvolvimento, pode criar desafios posteriores para as equipes de controle de qualidade, que precisam lidar com o aumento na quantidade de código gerado.
Pequenas alterações na interface do usuário, como a acima, frequentemente impactam os testes automatizados de ponta a ponta. No entanto, com a integração da Autocorreção por IA, os scripts podem se adaptar instantaneamente, corrigindo localizadores quebrados durante a execução sem interromper o fluxo de testes. Essa funcionalidade ajudará as equipes de controle de qualidade a acompanhar os ciclos de desenvolvimento acelerados, reduzir significativamente o tempo de manutenção dos testes e fornecer feedback mais rápido — tudo isso aumentando a resiliência dos testes.
Este blog irá explorar como Autocura impulsionada por IA Resolve automaticamente incompatibilidades de elementos em tempo de execução, sem intervenção humana.
Pré-requisitos: Este recurso está disponível apenas para clientes SaaS Pro e Premium.
Para ajudar você a entender melhor a Autocura por IA e como ela se comporta em nossa plataforma, vamos analisar o seguinte: Digital.aiO aplicativo bancário da [nome da empresa] foi desenvolvido para Android e vamos realizar um teste simples na página de login, onde uma alteração será detectada.
Teremos duas versões do mesmo aplicativo, uma não modificada (uma versão que se espera que funcione) e outra modificada (onde um dos localizadores foi alterado).
Na versão não modificada do aplicativo, vemos o ID “usernameTextField” identificar o localizador de nome de usuário:

Este localizador será referenciado no script de automação, conforme mostrado abaixo. As linhas a seguir validam e interagem com o campo de nome de usuário após a execução dos testes automatizados do Appium:
``` wait.until(ExpectedConditions.elementToBeClickable(By.id("com.experitest.ExperiBank:id/usernameTextField"))); driver.findElement(By.id("com.experitest.ExperiBank:id/usernameTextField")).sendKeys("tester01"); ```
Em circunstâncias normais, onde os localizadores não são modificados, o script seria executado sem problemas.
No entanto, vamos considerar um cenário em que o localizador do campo de nome de usuário foi alterado. Em vez de “UsernameTextField”, agora ele é identificado como “UserTextField” nesta versão modificada:

Nesse caso, o script falharia imediatamente com uma exceção "NoSuchElementException".
Como podemos resolver esse problema?
`` ` DesiredCapabilities caps = new CapacidadesDesejáveis(); caps.setCapability("testName", "login_scenario_test"); caps.setCapability("chave de acesso", CHAVE_DE_ACESSO); caps.setCapability("consulta de dispositivo", "@os='android'"); // https://docs.digital.ai/bundle/TE/page/device_queries.html caps.setCapability("aplicativos", "nuvem: com.experitest.ExperiBank/.LoginActivity"); caps.setCapability("pacote de aplicativo", "com.experitest.ExperiBank"); caps.setCapability("atividade do aplicativo", ".LoginActivity"); Capacidades desejadas.set(caps); motorista.definir(new AndroidDriver(new URL("https:// /wd/hub"), caps)); `` `
Agora, basta adicionar a seguinte linha às suas capacidades para que o script seja executado no modo de autorrecuperação:
`` ` caps.setCapability("Autocura", verdadeiro); `` `
Agora você pode executar os scripts automatizados normalmente. Nenhuma alteração adicional é necessária, seja no seu IDE (como Eclipse/IntelliJ) ou em um pipeline de CI/CD (por exemplo, Azure). DevOps).
Habilitar a autorreparação por IA impacta o tempo de execução de testes regulares?
`` ` motorista.executeScript("seetest:client.stopHealing"); `` `
E quando quiser retomar, basta usar outro comando de uma linha:
`` ` motorista.executeScript("seetest:client.startHealing"); `` `
A autocura é personalizável?
- Tentativas de recuperação: Define o número total de tentativas que o algoritmo fará para descobrir um localizador correspondente.
Por padrão, a função de autocorreção tenta identificar alterações de localizador uma vez por elemento. Por exemplo, se o algoritmo não conseguir encontrar um localizador substituto para o campo de nome de usuário, ele tentará apenas uma vez antes de prosseguir. - Limite de pontuação: Define um limite de pontuação de correspondência com base na probabilidade de uma correspondência bem-sucedida. A pontuação padrão é definida como 0.6 em uma escala de 0.1 a 1.0.
Uma pontuação de 0.6 indica que a Autocorreção será acionada para novos localizadores identificados somente quando a probabilidade de correspondência for superior a 60%.
O Digital.ai A equipe de suporte pode modificar ambas as propriedades mediante solicitação.
A capacidade de autorreparação por IA funciona em todos os tipos de aplicativos móveis?
O que acontece se ocorrerem várias alterações de localização durante a execução de um único script de teste?
Meus testes foram corrigidos: devo continuar executando meus testes como estão ou preciso modificar meus scripts?
Por que curar se preciso fazer as mudanças de qualquer maneira?
Como sei se algo cicatrizou?
``` https:// /reporter/reporter/tests ```
Como alternativa, na plataforma principal, clique nas suas iniciais no canto superior direito e selecione “Ir para Repórter"

E vá para o “Testes" aba:
Esta visualização exibirá todos os testes executados para o seu projeto, incluindo a porcentagem de testes que foram corrigidos:
Clicando sobre o Curado O status no gráfico de pizza filtrará os resultados para exibir apenas os testes que foram curados:
Você também pode clicar em cada relatório para visualizar informações detalhadas sobre o que foi curado:

Considerações finais da análise do Fortune Dragon
Também recomendamos
Melhores práticas para otimização da análise da causa raiz
A esta altura, é inegável que a IA está transformando a maneira como…
O Android 17 já está disponível. Seu aplicativo está pronto?
Todas as principais versões do Android seguem o mesmo padrão. O Google lança…
O Gênio e o Contrato
Como o desenvolvimento orientado a especificações (SDD) e o desenvolvimento orientado a testes (TDD) se encaixam na prática…


