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?

É tão simples quanto adicionar uma linha à sua Configuração de Teste dentro das Capacidades Desejadas. Vejamos um exemplo simples de Configuração de Script de Teste para instalar e executar um Aplicativo em Digital.ai'S Continuous Testing plataforma:

`` `
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?

Habilitar a Autocorreção pode aumentar o tempo de execução dos testes, pois o módulo verifica continuamente as páginas em busca de alterações durante a execução. Para maior flexibilidade, incluímos a opção de pausar e retomar a Autocorreção no seu script. Por exemplo, se a página de login for estável e improvável de causar falhas, desabilitar a Autocorreção para essa seção pode ajudar a reduzir o tempo de execução dos testes. Com um único comando adicionado ao script de teste, você pode pausar o modo de Autocorreção:

`` `

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?

A função de autorrecuperação com inteligência artificial é configurável para atender às necessidades das aplicações que estão sendo testadas, especialmente ao lidar com diferentes níveis de complexidade.

  1. 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.
  2. 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?

Atualmente, a Autocorreção por IA é compatível com testes nativos em dispositivos móveis e testes web no Android, bem como com testes web no iOS. O suporte para aplicativos nativos em dispositivos móveis no iOS ainda não está disponível, mas fique atento às atualizações futuras.

O que acontece se ocorrerem várias alterações de localização durante a execução de um único script de teste?

Quer se trate de uma única alteração de localizador ou de múltiplas alterações, quando a Autocura por IA está ativada, o mecanismo de Autocura será acionado e atualizará automaticamente todos os localizadores afetados durante uma única execução de teste, sem qualquer intervenção manual.

Meus testes foram corrigidos: devo continuar executando meus testes como estão ou preciso modificar meus scripts?

Você pode continuar executando seus testes automatizados, e eles funcionarão conforme o esperado. Digital.ai platform O sistema continuará detectando as alterações e garantindo que os scripts sejam executados conforme o esperado. No entanto, isso não resolve completamente o problema. Embora o teste seja corrigido durante a execução, ele não modifica o script em si, independentemente de ser acionado por uma IDE como o IntelliJ ou por um pipeline de CI/CD como o Azure. DevOpsVocê precisará modificar os scripts de automação originais e fazer as alterações necessárias.

Por que curar se preciso fazer as mudanças de qualquer maneira?

A vantagem de usar a Autocorreção é que as alterações nos localizadores não interrompem a execução dos testes. Após a execução, você pode revisar os relatórios quando lhe for conveniente para identificar quais localizadores foram corrigidos e, em seguida, atualizar seu script de acordo. Diferenciar entre falhas reais nos testes e problemas de automação ajuda a concentrar-se em tarefas de maior prioridade que podem ter um impacto muito maior nos usuários finais. Como resultado, você pode lançar novas atualizações sem a preocupação constante de testes instáveis ​​comprometerem o progresso.

Como sei se algo cicatrizou?

É simples! Vejamos um exemplo. Você pode acessar sua página de repórter pelo navegador (funciona melhor no Chrome):

``` 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

A autorrecuperação com inteligência artificial representa um grande avanço na automação de testes.Isso torna a manutenção de scripts Appium mais eficiente e reduz o esforço manual necessário para acompanhar os ciclos de desenvolvimento acelerados. Embora a Autocorreção possa não substituir completamente a necessidade de atualizar scripts, ela oferece uma experiência perfeita, evitando interrupções nos testes e fornecendo informações valiosas para a manutenção dos scripts. Isso a torna uma ferramenta poderosa e aumenta a confiabilidade dos testes. Se você estiver pronto para explorar como a Autocorreção com IA pode transformar sua estratégia de automação de testes e saber mais sobre nossas inovações em IA, entre em contato conosco!

Também recomendamos