Testes automatizados no Android - Desenvolvimento de software sob medida
Fone: 8h - 17PM

Dextra

Testes automatizados no Android

Por: 04/12/2018

Confira nossa série sobre testes automatizados no Android:

Nesse ponto espero que no mínimo já tenha despertado sua curiosidade sobre como podemos criar sólidas suítes de testes para Android para que possamos ter as vantagens descritas no artigo anterior. Android oferece uma série de ferramentas que facilitam muito a implementação dos testes. Mas antes de colocarmos a mão na massa, vamos entender quais os testes que podemos implementar.

Primeiramente nós temos os testes unitários. Eles são os mais rápidos e mais “baratos” que temos disponíveis, pois não necessitam de rodar em um emulador ou device Android e são geralmente desenvolvidos pelo desenvolvedor durante o desenvolvimento da funcionalidade. São testes que como o nome já diz tem por objetivo testar pequenas partes do código separadamente. Essas unidades podem ser um método, classe ou componente. Como testam código puramente Java, rodam todos direto na JVM, o que os tornam rápidos de rodar e sólidos pois não são suscetíveis a variações que os testes de UI enfrentam como variações entre aparelhos e outras instabilidades.

Ainda na classe de testes unitários está o Roboeletric, com a diferença que esses testes são voltados para UI. Essa incrível ferramenta permite que você teste suas telas sem a necessidade de um emulador ou device Android, graças as chamadas shadow classes, que emulam o comportamento das componentes Android. Com isso, é possível rodar seus testes de tela junto com os testes unitários de forma super rápida. Ainda existem algumas limitações para testes mais complexos, trabalhos com views customizadas, então essa ferramenta ainda não pode ser considerada um substituto definitivo para o Espresso, que é uma ferramenta muito mais madura, mas sem dúvida é uma ferramenta bastante promissora.

Por outro lado temos os testes de UI. Esses são mais custosos pois precisam de um emulador ou de um device Android para serem executados e fazem uma série de interações com a tela, que apesar de serem mais rápidas que a interação normal de um ser humano interagindo com o aplicativo, ainda assim levam certo tempo. A grande vantagem desse tipo de teste, é que ele de fato emula um usuário final utilizando seu aplicativo. Portanto quando bem escritos, testes de tela pegam rapidamente falhas de funcionamento e quebras de expectativa do usuário no aplicativo. A ferramenta mais utilizada para a criação desses testes é o Espresso, que te permite fazer interações com a tela da mesma forma que um usuário só que via código.

E por último mas não menos importante, temos os testes manuais. Independente dos avanços nos testes automatizados, a presença de um usuário real é sempre muito importante. Principalmente porque dificilmente nós como desenvolvedores da solução, seremos bons testadores da mesma. O tester é de extrema importância nos testes devido a seu olhar mais criterioso e mesmo apenas pelo fato de ser uma outra pessoa utilizando o sistema, sem o “cérebro viciado” do desenvolvedor que passou pelos mesmos fluxos diversas vezes durante o desenvolvimento e que acaba ficando com a visão enviesada. Se não existir a figura do tester na equipe nem seja possível disponibilizar para outras pessoas testarem, tentem ao menos fazer testes cruzados entre os desenvolvedores da equipe. Com certeza uma visão diferente sobre a funcionalidade pode acabar mostrando falhas que talvez você não percebeu enquanto a desenvolvia.

Bom pessoal essas são as opções que temos para podermos validar o bom funcionamento dos nossos aplicativos. Daí vale o bom senso para dividir os esforços dentro de cada uma dessas categorias de testes dependendo das necessidades do seu projeto. Os testes unitários são os mais baratos pois são rápidos de rodar e desenvolver. Testes de tela são mais caros, principalmente quando falamos de horas de Tester, mas também são muitíssimo importantes, então vale sempre a análise criteriosa. Continue acompanhando nossa série! No próximo artigo vamos falar de Ambiente controlado para testes – Parte 1: Mockito e Injeção de dependência, confiram!

Até a próxima!

 

Entre em Contato

Mensagem enviada com sucesso!

Tags

Comentários