Melhorando a robustez do script de teste

Às vezes, as etapas registradas em um teste não podem ser reconhecidas quando o teste é reproduzido, levando a falhas de teste. Para evitar essas falhas de reconhecimento de objeto, é possível alterar a forma na qual os objetos são identificados, usar condições de localizador ou aplicar condições de design responsivo. Dessa forma, você melhor a robustez do teste e melhora as chances de o teste poder ser incluso em um processo de teste automatizado.

Um motivo para a falha da etapa em um teste é quando uma versão de um aplicativo é atualizada. Você registra um teste com uma versão de um aplicativo. Ao reutilizar um teste em uma versão mais nova do aplicativo, que possui novos botões, por exemplo, ou novos locais de objeto, esse objetos não podem ser localizados quando o teste é reproduzido. Outro motivo para a falha da etapa é que os dados no teste foram alterados do momento em que o teste foi registrado (por exemplo, a data).

Aqui estão algumas formas de melhorar a robustez do script de teste:

Propriedades do objeto

As propriedades do objeto são capturadas durante a gravação do teste e exibidas em modo somente leitura na tabela propriedades da visualização Dados de UI móvel e da web. Para localizar um objeto no aplicativo em teste durante a reprodução, o test workbench compara as propriedades do objeto que são capturadas durante a gravação com a descrição das propriedades exibidas na área Detalhes de ação do usuário do editor de teste. Essas propriedades são diferentes para aplicativos de UI Android, iOS ou Web.

Ao selecionar uma etapa em um teste registrado, o editor de teste exibe as propriedades de objeto nas quais uma ação é executada. As propriedades de objeto são listadas no campo Objeto identificado por, seguidas pelo campo de operador e um campo de inserção de valor da propriedade.

Figura 1. Editor de teste, etapa selecionada com a propriedade de objeto correspondente, operador e valor da propriedade.
Editor de teste, etapa selecionada com a propriedade de objeto correspondente, operador e valor da propriedade.

É possível alterar esses parâmetros (propriedade, operador, valor da propriedade) na área Detalhes de ação do usuário do editor de teste ou da visualização Dados de UI móvel e da web usando o menu de contexto. Quando as ações são selecionadas na lista Conteúdo de teste, a visualização Dados da UI móvel e da web é automaticamente sincronizada para exibir a captura de tela para a etapa selecionada. As propriedades podem ser modificadas na guia Captura de tela, na guia Elementos ou na tabela Propriedades usando o menu de contexto.

As propriedades podem ser modificadas a partir da visualização Dados da UI móvel e da web, na guia Captura de tela, na guia Elementos ou na tabela Propriedades usando o menu de contexto.
Figura 2. Propriedades podem ser modificadas a partir da visualização Dados da IU da Web e Móvel, na guia Captura de Tela, na guia Elementos ou na tabela Propriedades usando o menu de contexto.
Para obter detalhes, consulte Modificando a propriedade usada para identificar um objeto em um script de teste.

Local do objeto em um teste

Quando um teste é executado, os objetos gráficos no teste devem ser detectados automaticamente, mas em alguns casos, o elemento no qual a ação é executada pode ser difícil de identificar. Neste caso, você deve atualizar o script de teste e dar informações mais precisas para localizar o objeto no qual deseja executar a ação.

Aqui está um exemplo: você registra um teste, uma etapa é 'Clicar em Editar texto cujo conteúdo é 'August 30th, 2013'. Se o teste for reproduzido automaticamente, ele falhará se a data não for mais 30 de agosto de 2013. Você deve modificar a etapa e fornecer informações mais exatas para localizar o objeto no qual você deseja executar a ação. Dessa maneira, o objeto pode ser localizado e usado automaticamente quando o teste for executado. O test workbench oferece várias formas de identificar e localizar objetos e aumentar a confiabilidade do script de teste.

No test workbench, vários operadores de local de objeto estão disponíveis para aplicativos Android, iOS e da web para identificar objetos em um aplicativo sob teste. Eles são exibidos nos campos Localização de Objeto na área Detalhes da Ação do Usuário do editor de teste. Duas localizações de objeto podem ser usadas em uma etapa de teste para configurar condições de localização e localizar o objeto de destino no teste. Para obter detalhes, consulte Configurando condições de local do objeto em um script de teste.

Figura 3. Campos de localização de objeto com a lista de operadores de localização (para apps Android no exemplo)
Campos de localizador de objeto e de localização secundária com a lista de operadores de localização secundária aberta (para apps Android aqui)

Para ver um tutorial em vídeo que inclui uma demonstração das diferentes formas de identificar um objeto em um teste, acesse Como criar scripts de teste robustos para aplicativos da web móveis e de desktop.

Reconhecimento de imagem em um teste

Quando um teste é registrado, o objeto no qual uma ação é executada é identificado pela sua propriedade principal, que geralmente é uma propriedade de texto. Às vezes, as propriedades de texto não são facilmente identificáveis. Isso pode ser o caso em que não há descrição da propriedade ou rótulo para identificar o elemento de destino em uma etapa de teste. Nesses casos, o gerador de teste usa uma propriedade de imagem para identificar os elementos nas etapas de teste.

Para corrigir possíveis problemas de reconhecimento de imagem, o test workbench usa a correlação de imagem para reconhecer e gerenciar objetos durante a reprodução. A imagem na qual a ação é executada (a imagem de referência) é capturada durante a gravação do teste e comparada com a imagem do aplicativo em teste na reprodução (imagem do candidato). Um limite de reconhecimento é usado para aceitar uma taxa ajustável de diferenças entre a imagem de referência e a imagem do candidato e avaliar se as imagens correspondem. O limite de reconhecimento padrão é configurado como 80 e a taxa de tolerância padrão é configurada como 20.

Aqui estão alguns exemplos dos cenários de teste em que a correlação de imagem é usada:
  • Você registra um teste em um telefone celular e o reproduz em um tablet. Como a largura e a altura da imagem são alteradas de um dispositivo para outro, a reprodução de teste falha em dispositivos que não têm a mesma taxa de tela.
  • Alguns objetos de destino na gravação não são mais os mesmos quando o teste é reproduzido. Exemplo: quando um teclado virtual é usado em um aplicativo seguro, a posição dos botões de dígito pode ser alterada de uma sessão do servidor para a outra.

Em alguns casos, o aplicativo em teste pode conter um objeto customizado ou qualquer objeto que o test workbench não possa localizar. Em outros casos, a imagem selecionada é inapropriada e o teste falha. Em caso de problemas de reconhecimento na reprodução, é possível modificar a imagem usada para identificar o objeto de destino na etapa de teste ou é possível alterar a pontuação do limite e a proporção de tolerância no teste editado.

Nota: As imagens podem ser usadas nos pontos de verificação para controles nos objetos de destino nos testes. Por exemplo, é possível verificar a posição de uma lista suspensa em uma tela. Para obter detalhes, consulte Criando pontos de verificação a partir da visualização Dados da UI móvel da web.

Se o limite for configurado como 0, a imagem do candidato que é mais semelhante à imagem de referência será selecionada, mesmo se não for a mesma. Se você configurar o limite para 100, a menor diferença nas imagens impedirá o reconhecimento da imagem. Por exemplo, uma imagem com largura ou altura diferentes, porque é redimensionada quando reproduzida por um dispositivo tablet, não seria selecionada se o limite estivesse configurado como 100, mesmo se for a mesma imagem. É possível alterar a tolerância de proporção de aspecto se um teste falhar nos dispositivos que não têm a mesma proporção de tela ou se as imagens disponíveis no aplicativo na reprodução forem diferentes daquelas disponíveis quando o teste for registrado.

O test workbench exibe uma visualização visualização correspondente à imagem ao configurar o limite de reconhecimento no editor de teste para ajudar a localizar quais imagens podem ser exatas para identificar o objeto de destino quando o teste for reproduzido. As melhores imagens de candidato são verdes, as imagens cuja pontuação está acima do limite são amarelas e não são as mais apropriadas e as imagens cuja pontuação está abaixo do limite estão em vermelho. Essas imagens de candidato não correspondem às imagens de referência.

É possível localizar os detalhes de correlação de imagem no relatório de teste que é exibido quando a execução de teste está concluída.

Para obter detalhes, consulte Modificando um destino da etapa usando uma imagem como a propriedade principal.

Condição de design responsivo

Alguns aplicativos usam o Design responsivo, isto é, o comportamento do aplicativo ou exibição gráfica se adapta ao dispositivo de destino usado. Por exemplo, você localiza mais e mais aplicativos que são projetados para alterar o formato de seus elementos gráficos de acordo com o tamanho da tela ou da orientação da tela ou de acordo com a versão do sistema operacional usado e outros parâmetros do tipo.

Outros aplicativos requerem que os usuários efetuem login e forneçam seu local. Outros ainda produzem tutoriais para explicar como usar o aplicativo pela primeira vez que o aplicativo for instalado e executado. Após isso, esses tutoriais não são mostrados. Essas situações podem criar falhas de teste.

Para corrigir esses problemas de falhas de teste, é possível configurar condições de execução para uma seleção de ações variáveis. Dessa forma, um bloco de ações é executado na primeira vez que o teste é executado, mas não executado na próxima vez que as ações no teste são executadas. Este é um exemplo de uma condição de Design responsivo. Para obter detalhes, consulte Criando condições de Design responsivo em um teste. Este recurso está disponível para aplicativos Android apenas na versão 8.7.1 do test workbench.


Feedback