Automatizar testes de interface do usuário

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

Codelabs de testes do Android