Testes da interface do usuário (IU) permitem garantir que seu app atenda aos requisitos funcionais e atinja um alto padrão de qualidade, aumentando a probabilidade de ele ser adotado pelos usuários.
Uma das abordagens possíveis para o teste da IU é usar um testador humano para realizar um conjunto de operações do usuário no app de destino e verificar se ele está se comportando corretamente. No entanto, essa abordagem manual pode ser demorada, tediosa 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 automática. A abordagem automatizada permite executar os testes de maneira rápida, confiável e repetitiva.
Observação: é altamente recomendável que você use o Android Studio para criar apps de teste, uma vez que ele disponibiliza conveniências de configuração do projeto, inclusão de bibliotecas e empacotamento. Esta aula presume que você esteja usando o Android Studio.
Para automatizar testes de IU com o Android Studio, implemente seu 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 de teste e, em seguida, carrega esse app no mesmo dispositivo que o app de destino. No código de teste, você pode usar estruturas de teste de IU para simular interações do usuário no app de destino e realizar tarefas de teste que abrangem cenários de uso específicos.
Em geral, para testar apps para Android, crie estes tipos de testes automatizados de IU:
- Testes de IU que abrangem um único app: esse tipo de teste verifica se o app de destino se comporta conforme esperado quando o usuário realiza uma ação específica ou insere uma determinada entrada nas atividades relacionadas. Eles permitem verificar se o app de destino retorna a saída correta da IU em resposta a interações do usuário nas atividades do app. Frameworks de testes de IU como o Espresso permitem simular programaticamente ações do usuário e testar interações complexas dos usuários no app.
- Testes de IU que abrangem vários apps: esse tipo de teste verifica o comportamento correto das interações entre apps diferentes do usuário ou entre apps do usuário e do sistema. Por exemplo, você pode testar se o app da câmera compartilha imagens corretamente com um app de mídia social de terceiros ou com o app de fotos padrão do Android. Os frameworks de teste de IU compatíveis com interações entre apps, como o UI Automator, permitem criar testes para esses cenários.
As lições desta aula mostram como usar as ferramentas e as APIs do AndroidX Test para criar esses tipos de testes automatizados. Antes de começar a criar testes usando essas APIs, adicione o AndroidX Test, conforme descrito em Configurar projetos para o AndroidX Test.
Lições
- Testar a IU para um único app
- Saiba como testar a IU em um único app usando o framework de testes do Espresso.
- Testar a UI para vários apps
- Aprenda a testar a IU em vários apps usando o framework de testes UI Automator.
Outros recursos
Para saber mais sobre o uso do Espresso em testes do Android, consulte os recursos a seguir.
Amostras
- Amostras de código do Espresso (em inglês): inclui uma seleção completa de exemplos do Espresso.
- BasicSample (em inglês): exemplo básico do UI Automator.
- (mais...)
Codelabs de testes do Android
- Princípios básicos dos testes (em inglês)
- Injeção de dependência e duplicação de testes (em inglês)
- Pesquisa de tópicos de teste (em inglês)