O teste das interações do usuário ajuda a garantir que os usuários não encontrem resultados inesperados ou tenham uma experiência ruim ao interagir com seu app. Crie o hábito de criar testes de interface do usuário (IU) se precisar verificar se a interface do seu app está funcionando corretamente.
Uma abordagem para o teste da IU é fazer com que um testador humano realize uma série de operações de usuário no app de destino e verifique se ele está se comportando corretamente. No entanto, essa abordagem manual pode ser demorada e propensa a erros. Uma abordagem mais eficiente é programar os testes de IU para que as ações do usuário sejam realizadas de maneira automatizada. A abordagem automatizada permite executar os testes de maneira rápida, confiável e repetitiva.
Os testes de interface iniciam um app (ou parte dele), simulam interações do usuário e verificam se o app reagiu corretamente. Eles são testes de integração que podem variar desde a verificação do comportamento de um pequeno componente até um teste de navegação grande que atravessa todo o fluxo de usuários. Eles são úteis para verificar regressões e verificar a compatibilidade com diferentes níveis de API e dispositivos físicos.
Executar testes de IU
- Para executar testes de interface instrumentados usando o Android Studio, implemente o
código de teste em uma pasta de teste do Android separada,
src/androidTest/java
. O Plug-in do Android para Gradle cria um app de teste com base no seu código e o carrega no mesmo dispositivo que o app de destino. No código de teste, use frameworks de testes de IU para simular interações do usuário no app de destino, a fim de realizar tarefas de teste que abranjam cenários de uso específicos. - Também é possível usar o Robolectric para executar testes de interface na JVM.
Configuração de arquitetura e teste
A arquitetura do app precisa permitir que os testes substituam partes dele para testar duplas, e você precisa usar bibliotecas que fornecem utilitários para ajudar no teste. Por exemplo, é possível substituir um módulo de repositório de dados por uma versão na memória que fornece dados determinísticos e falsos para o teste.
A abordagem recomendada para substituir dependências é a injeção de dependências. Você pode criar seu próprio sistema manualmente, mas recomendamos usar uma estrutura de DI como o Hilt para isso.
Por que testar interfaces automaticamente?
Um app Android pode ser direcionado a milhares de dispositivos diferentes em vários níveis de API e formatos. O alto nível de personalização que o SO oferece ao usuário significa que o app pode ser renderizado incorretamente ou até mesmo falhar em alguns dispositivos.
O teste de interface permite fazer testes de compatibilidade, verificando o comportamento de um app em diferentes contextos. Talvez você queira executar os testes de interface em dispositivos que variam das seguintes maneiras:
- Nível da API: 21, 25 e 30.
- Localidade: inglês, árabe e chinês.
- Orientação: retrato, paisagem.
Além disso, os apps precisam verificar o comportamento além dos smartphones. Faça testes em tablets, dispositivos dobráveis e outros dispositivos. Leia mais sobre como testar diferentes tamanhos de tela.
Tipos de testes de interface
Esta seção aborda dois tipos de testes de IU:
- Os testes de comportamento analisam a hierarquia da interface para fazer declarações sobre as propriedades dos elementos da interface.
- Os testes de captura de tela fazem capturas de tela de uma interface e as comparam com imagens aprovadas anteriormente.