Por que eu devo ler este artigo: Qualidade de software deve ser sempre um objetivo a ser alcançado num projeto de software. Implementar, medir e ajustar as ferramentas utilizadas para alcançar o nível de qualidade desejado sempre foi (e ainda é) um desafio no desenvolvimento de software. Neste artigo é apresentado uma proposta de implementação de práticas de testes funcionais automatizados com o framework Robotium.

Qualidade de software é um objetivo bastante perseguido pelos profissionais de desenvolvimento e para ser atingido ou estar próximo do almejado, é necessária a adoção de algumas práticas e processos no dia a dia da equipe de desenvolvimento.

Analisar a qualidade do software é algo tão importante quanto aplicar qualquer prática para atingir este objetivo e geralmente está atrelado a responder algumas perguntas como: Como podemos identificar o grau de qualidade deste software? O que ainda precisa ser melhorado? Como podemos resolver os problemas existentes?

Criar métricas para medir a qualidade do software não é algo simples. Analisar, medir e implementar estas práticas é algo que leva tempo e precisa de uma equipe experiente, não só dos desenvolvedores, mais de todo o time de um projeto ou produto.

Um bom início para adoção de práticas que visem a qualidade do software é pensar em testar este software. Existe uma infinidade de formas para criar testes, além de teorias e metodologias que podem ser adotadas. Diante de tantas variáveis, é importante a experiência da equipe para escolher o ferramental mais ajustado e tornar a implementação dos testes uma tarefa viável.

Quando queremos implementar testes para soluções que tenham interface com o usuário, como os aplicativos mobile, o escopo dos testes aumenta consideravelmente. Para que a prática de testes se torne útil, de fato, e menos oneroso (principalmente com relação a execução), é de grande importância tornar a execução destes testes automatizados.

No mundo mobile, implementar testes que simulem um usuário utilizando o aplicativo de fato, executando tarefas como interação com a interface, inserção de dados, seleção das funcionalidades, é de grande importância para agilidade da validação do produto.

Com o objetivo de criar testes funcionais automatizados, este artigo apresenta de forma bem prática a utilização do Robotium, que é um framework bastante útil e oferece alguns bons recursos para implementação de testes funcionais para aplicativos Android.

Os exemplos que serão apresentados foram desenvolvidos no novo ambiente proposto pelo Google, utilizando o Android Studio. Portanto, é importante um conhecimento básico da IDE, do framework de testes unitários JUnit e do gerenciador de dependências Gradle.

Tendo em vista o grande número de componentes Android que podem ser testados, demonstraremos os testes apenas utilizando Activities.

Antes de iniciarmos com a apresentação do Robotium, vamos fazer uma breve apresentação dos recursos oferecidos pelo SDK do Android para implementação de testes.

Conceitos iniciais de testes em aplicações Android

O SDK do Android oferece um conjunto de classes e ferramentas para viabilizar a implementação de testes unitários, funcionais, stress etc. Estas implementações são baseadas no framework JUnit disponibilizando funcionalidades de controle de alguns componentes da plataforma Android, como Activities por exemplo.

Para implementar testes em aplicações Android, os recursos do SDK disponibilizados para este fim assumem que o projeto deve seguir uma estrutura padronizada contendo classes de teste, pacote de teste e projeto de teste.

A implementação dos testes, assim como da aplicação, é organizada em projetos. O conceito de projeto para testes pode ser representado como um diretório dentro do projeto do aplicativo ou separando a implementação em outro diretório fora da implementação do aplicativo.

A implementação das classes de testes em outro diretório (projeto) é uma prática comum quando utilizada a IDE Eclipse. Para nosso estudo de caso, utilizando o Android Studio, não é preciso fazer muito para atender a estrutura requerida para testes, pois durante a criação do projeto a estrutura de diretórios que conterá os códigos-fonte da aplicação e dos testes já são criados automaticamente.

Conforme apresentado na Figura 1, podemos ver que existem dois diretórios dentro src do módulo app, que são: AndroidTest e main. Intuitivamente, podemos deduzir que a implementação dos testes será feita dentro do diretório AndroidTest e a implementação da aplicação dentro de main.

Figura 1. Estrutura do projeto no Android Studio.

Perceba que dentro do diretório AndroidTest e main, existe o mesmo pacote para ...

Quer ler esse conteúdo completo? Tenha acesso completo