Automação de testes para aplicações móveis em Android – Parte 1
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
Confira outros conteúdos:
Por Devmedia Em 2015Crie sua conta grátis e baixe o e-bookDê um upgrade no início da sua jornada.Perguntas frequentes
Quem somos?Por que a programação se tornou a profissão mais promissora da atualidade?Como faço para começar a estudar?Em quanto tempo de estudo vou me tornar um programador?Sim, você pode se tornar um programador e não precisa ter diploma de curso superior!O que eu irei aprender estudando pela DevMedia?Principais diferenciais da DevMediaQual o investimento financeiro que preciso fazer para me tornar um programador?Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado! Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um Full-Stack Dev!Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.