Testes de aplicativos mobile – Primeiros passos

Testar aplicações mobile geralmente é um quebra-cabeça. Decidir qual emulador usar, quais tipos de testes rodar, o que priorizar, entre tantas outras opções, consome bastante tempo. Confira um guia introdutório aos testes de aplicativos mobile.

Nos dias de hoje, soluções de mobilidade dominam o mercado. As pessoas não querem mais ligar os laptops e desktops para tudo, preferem usar aparelhos que cabem na palma da mão para uma solução rápida.

Por conta disso, os apps que as empresas oferecem aos seus clientes devem ser bem testados para que cumpram o que prometem.. Este pequeno guia traz alguns conceitos introdutórios de maneira objetiva, esclarecendo dúvidas bastante comuns tanto de iniciantes, quanto de veteranos. .

Tipos de testes mobile

Essencialmente, existem dois tipos principais de teste mobile:

  1. Teste de hardware – Verifica o funcionamento de componentes físicos como processadores internos, telas, armazenamento ou memória, baterias, câmera, rádio, bluetooth, Wi-Fi e etc.
  2. Teste de software ou teste de aplicações – Como o próprio nome diz, testa a parte lógica, o funcionamento de aplicações ou mesmo sistemas operacionais.

Em relação ao software, existem algumas diferenças entre aplicativos que são importantes compreender em relação à sua arquitetura, como:

Aplicativos nativos são desenvolvidos para serem executados em uma única plataforma como iOS, Android ou Windows.

Mobile web apps são na verdade websites que tem parte de sua execução feita por um servidor. O processamento da interface fica por conta de diferentes navegadores como Chrome ou Firefox.

Aplicativos híbridos são uma combinação de aplicativos nativos e web. São feitos a partir de códigos HTML5, javascript e CSS.

As principais diferenças entre estes tipos de aplicativos são:

  • Aplicativos nativos são mais rápidos, já que foram desenvolvidos apenas em uma plataforma. Por outro lado, mobile web apps tem sinergia com várias plataformas.
  • Aplicativos nativos são escritos em plataformas como SDKs, já os mobile web apps são feitos em HTML, CSS, Asp.net, Java e PHP.
  • É necessária uma instalação para aplicativos nativos, diferente dos mobile web apps que não precisam ser instalados.
  • Os aplicativos nativos podem ser atualizados através da Google Play ou Apple AppStore, enquanto os mobile web apps são websites apenas acessíveis com internet.
  • Os mobile web apps precisam de internet para funcionar, enquanto alguns aplicativos nativos rodam offline.
  • Aplicativos nativos são mais rápidos que o mobile web app, já que boa parte da aplicação ficam armazenados no disco local

Essa distinção entre arquiteturas é importante, já que o comportamento de cada tipo de app, suas funcionalidades e vulnerabilidades à erros e instabilidades são diferentes.

As dificuldades de testar aplicativos mobile

O que dificulta testar em mobile em comparação com desktop são vários fatores, mas podemos citar os principais. A grande variedade de combinações de hardware, tamanhos de tela, configurações, fabricantes e a fragmentação do Android são bons exemplos deste problema. Ainda há muitas  versões de sistemas operacionais, dois aparelhos podem ter a mesma configuração e fabricação, mas um pode estar rodando uma versão do sistema operacional 7.0 e outro 5.4, por exemplo. A constante necessidade de testar a cada atualização de um OS é um empecilho, já que a cada curto período de tempo acontece uma nova atualização.

via GIPHY

Exemplo de testes mobile

  • Teste de compatibilidade – Testar o aplicativo em diferentes aparelhos, navegadores, tamanhos de telas, versões de OS.
  • Teste de interface – Testar as opções do menu, botões, histórico de navegação, configurações, navegação. Para certificar que o aplicativo é fácil de usar e navegar.
  • Teste de conectividade – Testar o comportamento do aplicativo funciona estando online e offline.
  • Teste de Low-level resource – Teste de uso de memória, de limpeza automática de arquivos temporários e banco de dados local.
  • Teste de performance – Testar a performance do aplicativo em diferentes conexões, consumo de bateria, uso de processadores, etc.
  • Teste operacional – Testar os backups e funções de recuperação de arquivos caso a bateria acabe ou ocorra uma atualização durante o uso.
  • Teste de instalação – Como o nome já diz, testar a instalação e desinstalação do aplicativo.
  • Teste de segurança – Testar os dados que o sistema de informações do aplicativo protege ou não.

Além dos casos de teste baseados em funcionalidade, o teste de aplicativo mobile requer casos de teste especiais que devem cobrir os seguintes cenários:

  • Uso da bateria – É importante manter o controle do consumo da bateria durante a execução do aplicativo nos dispositivos.
  • A velocidade do aplicativo – O tempo de resposta em diferentes dispositivos, com diferentes parâmetros de memória, com diferentes tipos de rede, etc.
  • Consumo de dados – Para instalação, bem como para verificar se o usuário com o plano de dados limitado poderá fazer o download.
  • Requisito de memória – Novamente, para baixar, instalar e executar.
  • Funcionalidade do aplicativo – Certificar-se de que o aplicativo não está travando e cumpre o que promete adequadamente.

Planejamento dos testes

A estratégia de testes, obviamente, deve focar em atingir um alto nível de qualidade e performance. Pensando nisso, os seguintes critérios devem ser levados em consideração:

1 – A escolha dos aparelhos

Analise o mercado e escolha os aparelhos mais utilizados. Esta escolha geralmente depende do perfil do usuário, para qual público ele pretende vender o aplicativo e como divulgará. Leve em consideração também os aparelhos físicos que tem à disposição, já que testar em aparelhos reais é importante.

2 – Emuladores

A utilização de emuladores é extremamente útil nos estágios iniciais de desenvolvimento, visto que permitem verificar e checar rapidamente o aplicativo. Emulador é um software que simula diversos ambientes e cenários no mesmo software, permitindo mais averiguações. Dentro da categoria de emuladores de mobile existem 3 tipos.

  • Emulador de aparelho simula algum tipo de aparelho, geralmente é fornecido pelas próprias fabricantes.
  • Emulador de navegador simula os diversos cenários que um navegador mobile pode enfrentar.
  • Emulador de sistema operacional (OS) simula os OS disponíveis no mercado.

Há emuladores de mobile gratuitos e fáceis de se usar. Mobile Phone Emulator, MobiReady, Responsivepx e Screenfly.

3 – Testes físicos

Depois de concluído uma parte satisfatória do desenvolvimento, é interessante iniciar testes em aparelhos físicos para criação de cenários mais realísticos. Algumas situações imprevisíveis podem surgir apenas com o manuseio do app.

4 – Testes em nuvem de aparelhos Computação em nuvem é basicamente utilizar a internet para rodar, gerenciar e testar múltiplos aparelhos e sistemas. No quesito de testes, a computação em nuvem permite acessar diversos aparelhos, pagando pelo tempo de uso.

5 – Automação de testes

Se uma nova função foi implementada ou se a aplicação precisa ser testada apenas uma ou duas vezes, é mais eficiente que em ambos os casos seja feito manualmente. Já no caso de scripts de testes de regressão e de cenários mais complexos, isso consumiria muito tempo.

O escopo dos testes depende de uma série de fatores ou e do aplicativo. Se poucas mudanças foram feitas, um smoke test é suficiente, mas caso tenham sido realizadas mudanças mais significativas e/ou complexas, um teste de regressão completo é mais recomendado.

Existem dois tipos de ferramentas de automação de testes na camada de interface para mobile:

Teste mobile baseado em objetos – Mapeia os elementos na tela do aparelhos em forma de objetos para automatização. Esta abordagem é independente do tamanho da tela e é usada principalmente em aparelhos Android.

Teste mobile baseado em imagem – Cria scripts automatizados conforme coordenadas dos elementos da tela.

Processo de testes mobile

Qualquer processo de testes precisa ser adaptado à sua estrutura de desenvolvimento, criticidade e complexidade da aplicação, tamanho da equipe de desenvolvimento, testes e operações, bem como à tecnologia utilizada e às funcionalidades. Então, é fundamental que o processo adotado por sua equipe seja adaptado ao seu contexto. Aqui, vamos comentar apenas alguns pontos principais.

Identificar os tipos de testes – Por exemplo, no caso de aplicativos web-based, é fundamental que os testes sejam feitos em todos os navegadores suportados usando vários aparelhos.

Escolha entre testes manuais e automatizados – Além de ser necessário decidir quais testes serão realizados, como eles serão rodados também é importante.

Testes beta – Os testes beta da fase de aceitação com participação de usuários finais têm como objetivo verificar se o projeto está sendo seguido e atende à necessidade dos usuários.

Testes de performance – A equipe de teste de performance faz o que é esperado do nome, testa o tempo de resposta do aplicativo em diversos cenários.

Lançamento – Após todas essas baterias de testes, o aplicativo estará próximo de seu lançamento. Uma última etapa só para verificar que o aplicativo está pronto para ser entregue.

Newsletter

Assine nossa newsletter e seja avisado sobre novos artigos, cases, eventos e muito mais.

E-books e Relatórios

Conheça nossa base de ebooks, artigos, relatórios e cases. Aprenda sobre as boas práticas de testes, qualidade de software e muito mais.

Tudo disponível para download gratuitamente.