- Qualidade e Testes
Na última semana, o time de testes da SoftDesign realizou mais uma edição da Comunidade de Prática (CoP) de Qualidade, desta vez, totalmente online. Na ocasião, eu falei sobre a minha experiência como Analista de Testes utilizando a ferramenta Espresso em testes de instrumentação.
Os testes de instrumentação podem ser definidos como testes mobile que são executados em um aparelho Android ou em um emulador. Ou seja, são testes que podem interagir diretamente com as funções do aparelho – com eles, reduzimos a necessidade de realizar mocks, por exemplo.
Os testes instrumentados ficam em uma pasta específica junto com o projeto/aplicativo a ser testado – para isso, existe uma pasta chamada androidTest. Há diversos tipos de testes que podem ser executados. Semelhante à pirâmide de testes, abordada previamente, a base reflete os testes mais rápidos e baratos e o topo os mais caros e demorados, como vemos abaixo:
Ao elaborar a estratégia para este projeto, o Android Espresso foi a melhor solução encontrada para executar os testes. Ela é uma ferramenta de testes de instrumentação orientada para a User Interface (UI).
Para utilizar o Espresso, ele deve ser importado no sistema de dependências. No nosso caso, utilizamos o Gradle. Realizamos a ação da seguinte maneira:
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
Para auxiliar na organização e execução dos testes, também utilizamos o AndroidJunit4. Assim como o Espresso, ele deve ser adicionado no Gradle, da seguinte forma:
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" androidTestImplementation 'com.android.support.test:rules:1.0.2' androidTestImplementation 'com.android.support.test:runner:1.0.2'
O AndroidJunit4 fornece anotações relevantes para os testes, tais como: @Before, @After, @test, @Rule, entre outras.
O Espresso possui inúmeros recursos. Nesse sentido, acredito que três deles podem ser considerados os principais, são eles:
OnView/OnData – funciona como localizador dos elementos que se encontram na página e que queremos interagir;
Perform – realiza ações sobre o localizador que foi encontrado pelo Onview/OnData, como por exemplo: clique de botão, inserção de texto;
Check – realiza validações sobre os itens encontrados pelo OnView/OnData, tais como: validar se o elemento está ‘clicável’, se ele está disponível, se ele existe, entre outros.
Por fim, o script na ferramenta pode ser escrito a partir desses tópicos. Dessa forma, fica mais fácil desenvolver qualquer função dentro do Espresso.