Artigo no estilo: Curso
Por que eu devo ler este artigo:Neste artigo serão apresentados os principais conceitos da ferramenta de automação de teste Robotium. O Robotium é uma ferramenta para construção de casos de teste automatizados para aplicações Android e possibilita a execução de testes a partir das técnicas de teste funcional (também chamado de teste caixa preta) e teste estrutural (também chamado de teste caixa branca). Dessa forma, pode-se empregar o Robotium na verificação de funcionalidades e elementos de interface de aplicações desenvolvidas na plataforma Google Android de duas maneiras. Será utilizada uma aplicação de agenda de contatos, chamada AddressBook, para demonstrar os recursos de Robotium. Ao final, uma avaliação será conduzida para ressaltar as vantagens, desvantagens e resultados identificados.

O paradigma da computação móvel é orientado por três principais características que, inerentemente ao contexto de mobilidade, são descritos na literatura: comunicação, mobilidade e portabilidade. A comunicação está relacionada ao fato de que os dispositivos móveis se conectam a redes sem fio, tornando possível a interação destes com outros dispositivos computacionais por meio da Internet. A mobilidade garante que os dispositivos móveis poderão ter sua localização geoespacial suscetível a mudanças. E, por último, a portabilidade afirma que os dispositivos devem ter um tamanho reduzido, leve e independente de conexões por fios.

Tais características delimitam e particularizam a classe de dispositivos computacionais que mais tem crescido em utilização nos últimos anos. E, devido ao aumento na popularidade de dispositivos, bem como a grande variedade de perfis de usuários, abordagens especializadas para o processo de teste de software devem ser propostas para garantir a qualidade das aplicações móveis disponibilizadas. Dessa forma, o teste no contexto de mobilidade tem sido alvo de estudos objetivando melhorar a forma com que as aplicações são verificadas em relação aos requisitos e funcionalidades.

Dentre as áreas de interesse, trabalhos têm sido desenvolvidos na criação de técnicas, ferramentas e mecanismos de apoio a automação de testes em mobilidade. Além das vantagens apresentadas na segunda edição como, por exemplo, a diminuição da chance de erro humano e a redução do esforço humano em tarefas repetíveis, a automação de testes resulta em benefícios como (i) a definição de um processo formal de teste, (ii) o aumento na confiabilidade do teste, tendo em vista que as mesmas operações poderão ser futuramente executadas, e (iii) a reusabilidade na verificação de funcionalidades distribuídas em pontos distintos do software em teste.

O foco desta última parte, de uma série de artigos composta por três, é apresentar novos fundamentos de teste de software, especificamente os relacionados ao contexto de mobilidade, relacionando-os com as técnicas de teste funcional e teste estrutural. Nesta terceira parte, a plataforma Robotium será introduzida e suas principais funcionalidades e recursos para automação de testes em Android serão descritos. Após introdução aos conceitos de Robotium, dois exemplos de casos de teste serão elaborados, exemplificando o uso da plataforma para as atividades de teste funcional e estrutural. Dicas e boas práticas também serão elencadas com o objetivo de (i) demonstrar a definição de suítes de teste e (ii) exemplificar modificações nas configurações de Robotium.

Esta série de artigos apresenta e demonstra o funcionamento das principais ferramentas de automação disponíveis para apoiar o teste em aplicações Android, tendo sido selecionado um conjunto constituído por Monkey e MonkeyRunner, Robolectric, Espresso e Robotium. Como resultados, verifica-se que o material detalhado pode ser utilizado como referencial para futuras atividades de teste em mobilidade como, por exemplo, adoção em ambientes industriais, discussão para utilização em situações específicas e expansão dos estudos realizados. É importante ressaltar que, além das tecnologias estudadas, diversas outras podem ser incorporadas ou relacionadas à atividade de teste em aplicações Android. Dentre as que não foram discutidas, destacam-se Instrumentation, UIAutomator, Selendroid, Calabash e Appium.

Teste de aplicações móveis

Segundo uma estimativa divulgada em Abril de 2014 pela International Telecommunications Union (ITU), agência especializada da Organização das Nações Unidas (ONU) responsável por questões de tecnologias de informação e comunicação, 6,9 bilhões de pessoas, ou seja, em torno de 95% da população mundial, possuirão um dispositivo móvel até o final de 2014.

A aquisição exponencial de dispositivos móveis consolida a necessidade de novas aplicações, criando oportunidades para que empresas e desenvolvedores atuem no desenvolvimento de soluções móveis. Além disso, aplicações móveis têm sido desenvolvidas para diferentes domínios como, por exemplo, saúde, financeiro e industrial. Dessa forma, faz-se necessária a adoção de processos de teste de software que apoiem a detecção de defeitos com a finalidade de aumentar e garantir a qualidade da aplicação testada.

Diversas técnicas e tipos de testes podem ser aplicados em aplicações móveis, inclusive em diferentes etapas de um processo de desenvolvimento de software. Dentre os mais realizados, destacam-se (i) Teste de Usabilidade, (ii) Teste de Compatibilidade, (iii) Teste de Interface, (iv) Teste de Serviços, (v) Teste de Autonomia, Teste de Desempenho e (vii) Teste de Segurança. Em seguida, breves descrições acerca das técnicas de teste são apresentadas:

  • Teste de Usabilidade: avalia quesitos relacionados à experiência do usuário, ou seja, qual a facilidade e a possibilidade de se realizar operações funcionais na aplicação em teste;
  • Teste de Compatibilidade: avalia e garante que a aplicação em teste interaja corretamente com o sistema operacional, hardware e, se necessário, outros softwares. Incompatibilidades como, por exemplo, dificuldades com conexão a redes de dados podem resultar em lentidão e até mesmo o não funcionamento da aplicação;
  • Teste de Interface: avalia elementos da interface gráfica da aplicação em teste como, por exemplo, componentes que representam botões, caixas de seleção, listagens de dados e componentes customizados;
  • Teste de Serviços: avalia o comportamento da aplicação em teste em diferentes situações onde o acesso e execução de funcionalidades depende do consumo de outros serviços, disponibilizados na forma de Web Services. Atualmente, também é comum que as aplicações móveis se comuniquem com outras para obter e transmitir informações;
  • Teste de Autonomia: avalia o comportamento da aplicação em teste quando, principalme ...
    Quer ler esse conteúdo completo? Tenha acesso completo