android app testing tutorial
Coleta de conhecimento básico antes de testar aplicativos Android:
Como o próprio título sugere, neste tutorial discutiremos mais sobre o processo de teste do Android.
Mas, antes de entrar nos vários detalhes do processo de teste do Android, gostaria de fazer algumas perguntas.
Você tem um celular?
Agora, quão idiota é essa pergunta! Claro que todos nós fazemos. Todo mundo tem um celular. Os telefones celulares se tornaram uma necessidade básica da existência humana hoje em dia.
Você pode me dizer o sistema operacional que está lá no seu telefone?
Se você comprou seu telefone entre 2014-16, as chances de seu telefone rodar no Android estão em torno de 80-85%.
O que você aprenderá:
- Crescimento do Android
- Introdução do aplicativo Android
- Lista de tarefas antes do início do processo de teste
- Tipos de teste para aplicativos móveis
- Melhores práticas em testes de aplicativos Android
- Estrutura de teste do Android
- Conclusão
- Leitura recomendada
Crescimento do Android
As estatísticas abaixo descrevem mais sobre o crescimento do Android de uma maneira facilmente compreensível.
- Em 2009, o Android era um novato e constituía apenas 3,9% do mercado total.
- O maior contribuidor então foi o sistema operacional Symbian com um número colossal de 47% (dias dourados da Nokia).
- Essa tendência começou a mudar ao longo dos anos e o Android atingiu 85,2% em 2016.
( fonte de imagem )
- Os números acima são apenas para telefones celulares. O sistema operacional Android também está tendo um grande impacto na indústria de tablets. De 4,4% de market share em 2011 para 35,7% em 2015, fala sobre o interesse que as pessoas têm desenvolvido por tablets com Android.
( fonte de imagem )
- A Google Play Store também registrou um rápido aumento no número de downloads. De 2010 a 2016, os números subiram de 1 bilhão de downloads por mês para 65 bilhões de downloads por mês.
- Os downloads de aplicativos também são muito afetados pelos preços baixos (Avg: 0,06 $ / app) dos aplicativos para Android em comparação com os aplicativos para iOS.
Por que eu apenas mostrei todos aqueles números?
Foi apenas para alertar você sobre o quão vasto o Android cresceu, como o desenvolvimento de aplicativos se tornou complicado e quanto mercado esse sistema operacional conquistou na última década.
Cada site, aplicativo do Windows e Mac App agora tem um irmão Android. Todo mundo vai desenvolver um aplicativo para Android assim que planejam desenvolver um aplicativo para site / windows. Agora se tornou necessário, pois os clientes também começaram a preferir aplicativos móveis a aplicativos de computador ou sites nos últimos anos.
Alguns dos aplicativos mais usados no nosso dia a dia são Flipkart, Amazon, Zomato, DeliveryHero, Citi Bank, TrueCaller, Facebook, Gmail, Whatsapp etc.
A razão para o aumento no mercado Android é que:
- É um sistema aberto, portanto, é fácil de personalizar, fácil de aprender e até mesmo o desenvolvimento de aplicativos é mais fácil.
- Publicar um aplicativo na loja do Google Play é muito fácil quando comparado com outras lojas do jogo.
- Existem vários fabricantes no mercado de telefones Android como Sony, HTC, Samsung, Motorola etc.
- Há um grande número de recursos no Android, como DualSIM, microSD, bateria removível, etc., que é uma vantagem adicional a ele.
- O preço dos telefones Android não é muito alto e é acessível, etc.
Junto com o requisito de desenvolvimento dos aplicativos Android, também houve um aumento no requisito de testadores com conhecimento em testes Android.
Como testador, antes de começar a testar qualquer aplicativo desenvolvido para Android, você precisa fazer muitas lições de casa. A primeira coisa a fazer é estudar o sistema operacional e sua história. Se você não conhece o sistema operacional, não pode testar o aplicativo nas várias versões. A funcionalidade básica da versão do sistema operacional, a IU, GPS, suporte ao tipo de rede, vida útil da bateria, etc., são algumas das facetas importantes que afetam um aplicativo.
Com o Android, não é apenas o sistema operacional, mas a infinidade de dispositivos que também precisam ser estudados.
Um grande número de dispositivos está disponível no mercado, portanto, antes de finalizar e congelar sua bancada de teste, você precisa descobrir a participação do dispositivo do público-alvo. Os vários dispositivos que oferecem recursos diferentes, como DualSIM, câmera dupla, resolução de tela, temas, etc., afetam um aplicativo e precisam ser testados.
Portanto, é muito importante para um controle de qualidade reunir um conhecimento abrangente sobre o ecossistema Android completo.
Introdução do aplicativo Android
Existem vários métodos de teste que são seguidos pela certificação bem-sucedida de um aplicativo Android.
Uma arquitetura típica de aplicativo Android seria semelhante ao diagrama mostrado abaixo:
usando ipad para ponto de venda
Com base na figura acima, existem 2 possibilidades para um aplicativo:
1) Aplicativo móvel para o aplicativo da web: Pode ser que o cliente tenha um aplicativo da web e queira fazer um aplicativo móvel para o mesmo. Amazon, Jabong, Myntra etc. fizeram a mesma coisa, e no momento em que os aplicativos móveis começaram a criar um boom no mercado, essas empresas comerciais perceberam que logo as pessoas passarão dos aplicativos da web para os aplicativos móveis.
2) Aplicativo móvel como uma entidade comercial separada: Testei um aplicativo de logística semelhante, para aumentar o negócio, ele criou um aplicativo separado para seus motoristas para facilitar uma entrega tranquila e removeu a papelada.
Os motoristas tinham o aplicativo instalado em seus telefones para mover a remessa para diferentes estágios de entrega e seu status correspondente, e as atualizações de entrega eram refletidas em seu aplicativo da web existente.
Outro tal Exemplos onde o aplicativo móvel é uma entidade separada estão o WhatsApp, aplicativos de rastreamento de saúde como S Health etc.
Lista de tarefas antes do início do processo de teste
Ao contrário de um ciclo de teste normal, para o primeiro lançamento de um aplicativo móvel, existem alguns itens que precisam de alguma pesquisa extra e planejamento para uma entrega bem-sucedida do aplicativo.
A seguir estão algumas das atividades que são importantes para um controle de qualidade realizar antes do início do teste real:
# 1) Pesquisa em sistemas operacionais e dispositivos:
Além de entender os requisitos do aplicativo, você também precisa entender o impacto das várias versões do sistema operacional e dos modelos de dispositivo. Você precisa criar casos de teste ou cenários com o sistema operacional e os modelos de dispositivo.
#dois) Bancada de teste:
Ao contrário de aplicativos de desktop, web e iOS, a criação de testes para aplicativos Android é muito complicada por causa do sistema Android aberto. A decisão deve ser tomada após discussão com o BA, desenvolvedores e os proprietários do produto para encontrar o público-alvo.
# 3) Plano de teste:
Como é a primeira versão, um plano aprovado com bancada de teste aprovada, tipos de teste, etc., deve estar em vigor. Se houver um tempo separado necessário para pesquisar funcionalidades ou regras de negócios ou se o teste for complicado, etc., tudo deve ser coberto no plano.
# 4) Ferramentas de automação:
As ferramentas de automação exigidas para aplicativos móveis são muito diferentes das ferramentas de desktop ou web. Portanto, você pode precisar despender mais tempo e esforço para aprender a ferramenta. O tempo e esforço necessários para o mesmo devem ser aprovados pelo proprietário do produto ou cliente.
# 5) Técnicas ou métodos de teste:
Ao contrário dos testes convencionais que fazemos normalmente, existem poucos testes que são muito específicos para aplicativos móveis. Ou seja, teste de campo, teste de GPS, teste de captura de imagem, etc. Eles precisam ser documentados nos casos de teste junto com a forma como esses tipos serão testados.
Tipos de teste para aplicativos móveis
Os seguintes tipos de teste são realizados para certificar um aplicativo Android:
1) Teste Funcional:
O teste é normalmente realizado por fluxos de teste iniciados pela interface do usuário. Não apenas o fluxo de um caso de uso é testado, mas as várias regras de negócios também são testadas. O teste é feito certificando os requisitos. ou seja, se o aplicativo está funcionando com base nos requisitos.
Vamos pegar o Exemplo da app Zomato.
Ao iniciar o aplicativo, com base na localização, a lista de restaurantes é exibida. Agora, como QA, você deve testar a lista de restaurantes.
Este é o teste de funcionalidade e aqui você testará funcionalidades como:
- Verifique se os cartões do restaurante são mostrados no local.
- Verifique se os restaurantes mostrados estão no intervalo determinado (km) do local.
- Verifique se a contagem de revisão para cada cartão está em sincronia com as revisões fornecidas.
- Verifique se a adição de um novo restaurante para um local reflete na lista.
- Verifique se os restaurantes estão listados com base na regra de filtragem da Zomato etc.
2) Teste de IU do Android:
Este é um teste do aplicativo centrado no usuário. Nesta fase de teste, itens como visibilidade de texto em várias telas do aplicativo, mensagens interativas, alinhamento de dados, aparência e comportamento do aplicativo para diferentes telas, tamanho dos campos etc. são testados sob este.
Para o mesmo Exemplo de Zomato acima, os testes de IU seriam:
- Verifique se os cartões são mostrados corretamente alinhados com o tamanho da tela do celular.
- Verifique se a imagem do restaurante é mostrada conforme o esperado.
- Verifique se os detalhes do cartão, a classificação do restaurante, tipo de cozinha, endereço, etc., estão devidamente alinhados.
- Verifique se a rolagem da lista está livre de falhas e se os cartões não são exibidos desalinhados quando uma longa lista de cartões é rolada etc.
3) Teste de Compatibilidade:
Esse teste é feito principalmente na forma de duas matrizes do aplicativo OS Vs e do modelo de dispositivo Vs do aplicativo. Normalmente, uma lista de sistemas operacionais suportados (e às vezes dispositivos) é fornecida pelo proprietário do produto ou cliente.
A necessidade desse teste é:
- Quando um sistema operacional como o Android é levado em consideração, 7 versões básicas são encontradas negligenciando o número de lançamentos de patch / EPs.
- Você consegue adivinhar os tipos de dispositivos Android que funcionam atualmente em todo o mundo? 1000? 2000? Errado! A resposta correta é 24.000. Existem 24.000 tipos de dispositivos Android exclusivos que estão presentes e ativos no mundo.
- Com variações como essas, o teste de compatibilidade desempenha um papel vital na certificação de um aplicativo Android.
- Precisamos não apenas validar o sistema operacional e o tipo de dispositivo, mas também validar alguns outros recursos que passam por testes de compatibilidade. Os recursos incluem:
- Tamanho da tela
- Resolução da tela
- Conectividade de rede
4) Teste de interface:
Em outras palavras, também é denominado como teste de integração. Este teste é feito depois que todos os módulos do app são totalmente desenvolvidos, testados individualmente e todos os bugs corrigidos verificados.
O teste de interface inclui testes como um teste completo de ponta a ponta do aplicativo, interação com outros aplicativos como mapas, aplicativos sociais, etc., uso do microfone para inserir texto, uso da câmera para ler um código de barras ou tirar uma foto, etc.
Novamente considerando a Zomato, os testes de integração seriam como:
- Verifique se o usuário pode reservar uma mesa para um restaurante.
- Verifique se o usuário consegue visualizar o menu e pedir comida online.
- Verifique se o usuário pode aproveitar um cupom PayTM ao pedir comida.
- Verifique se o usuário consegue visualizar a localização do restaurante no Google Maps.
- Verifique se o usuário consegue abrir o discador do telefone e ligar para o restaurante etc.
5) Teste de rede:
Os principais recursos do teste de rede incluem:
- O app deve conversar com o serviço intermediário para realizar o processo.
- Durante esse teste, a solicitação / resposta de / para o serviço é testada para várias condições.
- Este teste é feito principalmente para verificar o tempo de resposta em que a atividade é realizada, como atualizar dados após a sincronização ou carregar dados após o login, etc.
- Isso é feito para uma conexão wi-fi forte e para a rede de dados móvel.
- Este é um teste interno.
6) Teste de desempenho:
O desempenho do aplicativo sob algumas condições peculiares é verificado.
Essas condições incluem:
- Pouca memória no dispositivo.
- A bateria está extremamente em um nível baixo.
- Recepção de rede ruim / ruim.
O desempenho é basicamente testado nas duas extremidades, na extremidade do aplicativo e na extremidade do servidor de aplicativos
7) Teste de instalação:
Existem dois tipos de aplicativos em um dispositivo Android, ou seja, os aplicativos pré-instalados e os aplicativos que são instalados posteriormente pelo usuário.
Para ambos os itens acima, o teste de instalação deve ser realizado. Isso é para garantir uma instalação tranquila do aplicativo sem acabar em erros, instalação parcial, etc.
Os testes de atualização e desinstalação são realizados como parte do teste de instalação.
8) Teste de segurança:
Privacidade e segurança são os 2 principais requisitos de um aplicativo. No entanto, em bancos, saúde, esse se torna o requisito principal.
O teste do fluxo de dados para mecanismo de criptografia e descriptografia deve ser testado nesta fase. O acesso aos dados armazenados também é testado nesta fase.
9) Teste de campo:
O teste de campo é feito especificamente para a rede de dados móvel e não internamente, mas saindo e usando o aplicativo como um usuário normal. Esse teste é feito 'apenas' depois que todo o aplicativo é desenvolvido, testado e regredido (para bugs e casos de teste).
É feito basicamente para verificar o comportamento do aplicativo quando o telefone possui uma conexão 2G ou 3G. O teste de campo verifica se o aplicativo está travando em uma conexão de rede lenta ou se está demorando muito para carregar as informações.
Você pode ler mais sobre testes de campo em nosso artigo “Importância e necessidade de testes de campo para aplicativos móveis”
10) Teste de interrupção:
Este tipo de teste também é conhecido como verificação de cenário offline. As condições em que a comunicação é interrompida no meio são chamadas de condições off-line.
Algumas das condições em que as interrupções de uma rede podem ser testadas são as seguintes:
- Remoção do cabo de dados durante o processo de transferência de dados.
- Interrupção da rede durante a fase de lançamento da transação.
- Recuperação de rede após uma interrupção.
- Remoção da bateria ou ligar / desligar quando estiver na fase transacional.
Melhores práticas em testes de aplicativos Android
Existem certos fatores a serem considerados ao colocar uma estratégia para teste de aplicativos móveis.
Eles são:
não consigo conectar ao gateway padrão
1) Seleção de dispositivo:
- Esta é uma das etapas mais críticas antes de iniciar o processo de teste do aplicativo Android.
- Decida quais dispositivos devem ser considerados no processo de teste.
- A seleção deve ser feita de forma a maximizar o número de clientes-alvo.
- Fatores como versão do sistema operacional, resoluções de tela e fatores de forma (tablet ou smartphones) desempenham um papel vital na fase de seleção.
- Se necessário, até mesmo a ajuda de emuladores pode ser levada em consideração.
- Porém, os emuladores não devem substituir o processo de teste do dispositivo físico.
- Os emuladores de dispositivo são econômicos e são úteis durante a fase inicial de desenvolvimento.
- Mas, para testar os cenários da vida real, os dispositivos físicos são essenciais. Os emuladores e dispositivos físicos devem ser usados de maneira equilibrada para um resultado otimizado.
2) Teste Beta do Aplicativo:
- O teste beta é muito eficaz em testes com usuários do mundo real, dispositivos reais, redes reais e aplicativos instalados em uma ampla geografia.
- Isso dá uma imagem clara da densidade da rede, variações da rede (Wi-Fi, 4G, 3G e 2G) e o impacto no aplicativo.
- O teste beta no mundo real é único e não pode ser replicado em um ambiente controlado.
3) Conectividade:
- Normalmente, os aplicativos Android são conectados à Internet para vários requisitos.
- A conectividade em diferentes dispositivos desempenha um papel fundamental na formulação da estratégia.
- Principalmente a conectividade é controlada por software de simulação que ajuda a regular a velocidade da rede, latência e conectividade limitada durante o teste.
- Diz-se que o teste em conexões de rede reais é sempre aconselhável para resultados / dados em tempo real.
4) Teste manual ou automatizado:
- Embora o teste de automação leve muito tempo para a primeira execução, ele é útil quando o teste precisa ser repetido. Isso também reduz o tempo geral de teste durante os diferentes estágios de desenvolvimento.
- A automação do Android deve receber testes manuais quando a repetição do teste de regressão for alta na fase de desenvolvimento do aplicativo, o teste de compatibilidade deve ser feito para o mesmo aplicativo em diferentes versões do sistema operacional, pontos de verificação de compatibilidade retroativa etc.
Estrutura de teste do Android
Existem várias estruturas de teste do Android disponíveis.
Neste tutorial, vamos discutir três tipos diferentes de estruturas mais comumente usadas:
- Estrutura de teste Robotium
- Estrutura de teste roboelétrica
- Estrutura de teste Appium
1) Estrutura de teste Robotium:
- Esta estrutura é usada para escrever casos de teste sofisticados e robustos de caixa preta para aplicativos Android.
- Suporta clientes nativos e híbridos.
- Funções, casos de teste do sistema e casos de teste de aceitação do usuário podem ser escritos usando esta estrutura.
- Robotium suporta Android 1.6 e superior e também suporte para diálogos, menus, atividades, etc.
- Esta estrutura lida com várias atividades Android automaticamente.
- Vários métodos são fornecidos como parte do Robotium para interagir com diferentes componentes gráficos do aplicativo Android. Alguns deles são os seguintes:
- volte();
- getButton ();
- isRadioButtonChecked ();
- searchText (“Usuário”);
- clique no botão (“Logout”);
2) Estrutura de teste roboelétrica:
- Esta estrutura ajuda a testar aplicativos Android na JVM com base na estrutura JUnit4.
- Ele usa a API Android.
- Isso ajuda a escrever casos de teste e executá-los na JVM.
- Sob isso, todas as classes são substituídas por algo chamado objetos de sombra.
- Sempre que um método é implementado, o Robo-elétrico envia internamente a chamada para o objeto sombra.
- Com base na implementação, se um método for implementado pelo objeto sombra, um valor será retornado. Caso contrário, NULL é retornado.
- Por causa dos objetos de sombra e JVM, a execução se torna mais rápida.
3) épocas do framework de teste;
- Esta estrutura funciona para aplicativos de web nativos, híbridos e móveis para dispositivos Android.
- Appium é gratuito para usar o utilitário.
- API única funciona tanto para Android quanto para a plataforma iOS. Esta é uma das estruturas que oferece suporte a testes de plataforma cruzada.
- Ele usa o driver Selenium Web para interagir com o aplicativo Android.
- Appium oferece suporte à escrita de script usando várias linguagens de programação, como Java, C #, Python, PHP, Ruby etc.
Conclusão
A automação de aplicativos Android pode ser acessada manualmente de acordo com a necessidade. No entanto, se o teste do Androind Automation for adicionado à estratégia, selecionar a ferramenta correta é uma grande tarefa. Ao selecionar a ferramenta de automação, fatores como suporte multiplataforma, fluxo de trabalho de teste, preço da ferramenta, serviço / suporte etc. devem ser levados em consideração.
Existem vários desafios envolvidos no teste de aplicativos Android. Existem diferentes fatores a serem levados em consideração antes que o processo de teste do Android possa realmente ser implementado, mas uma vez feito isso, torna-se uma tarefa muito interessante.
Assista ao nosso próximo tutorial para saber mais sobre Desafios e soluções de testes móveis.
Leitura recomendada
- 11 melhores ferramentas de automação para testar aplicativos Android (Android App Testing Tools)
- Serviços de teste beta de aplicativos móveis (ferramentas de teste beta para iOS e Android)
- Crie testes de Appium para um aplicativo Android
- Teste Funcional Vs Teste Não Funcional
- Tutoriais de teste de aplicativos móveis (um guia completo com mais de 30 tutoriais)
- Melhores ferramentas de teste de software 2021 (QA Test Automation Tools)
- Teste Alfa e Teste Beta (um guia completo)
- Tutoriais detalhados do Eclipse para iniciantes