O documento discute ferramentas de análise, testes e relatórios de erros para o desenvolvimento de aplicativos Android. Ele descreve ferramentas como Google Analytics, Flurry, Junit, Robolectric e Monkey Talk para análise e teste, e Crittercism e Bugsense para relatórios de erros. O documento também aborda testes online e dicas extras como administração de banco de dados e estrutura de classes.
TDC 2014 Floripa - Melhorando sua Estratégia de Testes Automatizados
Utilizando ferramentas de análise, testes e verificação de bugs no desenvolvimento de aplicativos para android
1. Douglas Leandro Kleinkauf
Android Developer
dkleinkauf@gmail.com
@dkleinkauf
Utilizando Ferramentas de
Análise, Testes e Verificação de
Bugs no desenvolvimento de
Aplicativos para Android
4. É só um aplicativosinho!!
Introdução > Aplicativosinho
• Armazenamento de Dados
• Análise de Requisitos
• Testes
• Arquitetura Cliente-Servidor
• UI – User Interface
• UX – User Experience ( Usabilidade )
• Segurança
• Orientação a Objetos
• WebService
• Estratégias de Produto
• Atualizar constantemente
5. É só um aplicativosinho!!
Introdução > Aplicativosinho
8. Métricas
• Objetivos;
• ROI ( Return on Investment );
“O que não é medido não pode ser gerenciado.”
• Identificar novas estratégias;
Introdução > Métricas
17. Configurando o Flurry
• download do SDK;
• Adicione o FlurryAgent.jar ao seu
classpath;
• Configurar você AndroidManifest.xml
para ter acesso à Internet e,
opcionalmente, localização;
• Inserir linhas de código;
Ferramentas de Análise > Flurry
33. Testes Online
Testes Online > Características
Testes em devices reais;
Agilidade e eficiência na identificação de erros;
Resposta rápida ao lançamento de novos ambientes e devices;
Verificar e analisar imagens de CPU, memória e uso, exceções e
logcats;
Vídeo
Métricas são um conjunto de parâmetros utilizados para mensurar alguma coisa. Quais objetivos com a construção do app?? Vender alguma coisa Retorno com publicidade Que o usuário compre a versão paga Reconhecimento
7 bilhões de pessoas em outubro de 2011 uma em cada sete pessoas no mundo possuindo um smartphone. 13% de todo o tráfego de Internet em 2012 foi originado a partir de dispositivos móveis. 41% das pessoas que fizeram uma compra no Mobile estavam em casa e perto do Notebook. No Brasil são mais de 260 milhões de celulares ativos. 20% da população brasileira possuem um smartphone; A navegação na internet em dispositivos móveis deve superar o uso da internet por meio de computadores comuns até 2014. Apple Store e a Google Play ultrapassaram 25 bilhões de downloads de aplicativos
o Executivo que passou 1 ano trabalhando com smartphone; fundador da empresa de consultoria em software Palador;
investigar como os usuários interagem com seu aplicativo; Como os usuário atuam dentro do aplicativo, que telas são mais visualizadas, quais botões são mais clicados; descobrir o máximo possível sobre os seus clientes o mais rapidamente possível; freqüencia com que seus clientes estão realizando alguma ação, como fazer uma compra app-in; partir de que horas o usuário acessa a aplicação? idade do usuário; sexo do usuário;
Nasceu da necessidade de analisar o trafico dentro de uma web site;
Gratuito; 275 mil aplicações; SDK deles acaba sendo grande demais para simplesmente fazer tracking;
iOS, Android, Windows Phone, HTML5, BlackBerry e JavaME;
Flurry Usage LifeCycle Top Versions Audience Interests : My Apps Age Gender Technical Todas
Em 1983, um bug no software de alerta anti-misseis Soviético, quase deu início a III Guerra Mundial; 5 mísseis Americanos contra URSS; O coronel considerou que a informação estava incorreta e não ordenou o contra-ataque;
API de testes é uma extensão do famoso framework de testes unitários JUnit, com classes de teste específicas para os componentes do Android. Activities - Uma activity é um dos componentes do Android mais usados nas aplicações pois ele é que fornece uma tela com a qual os usuários podem interagir. Ex .: tela de login Services – São componentes de aplicação que podem executar operações de longa duração em segundo plano, portanto não fornecem uma interface de usuário. Ex.: aplicativo de player de música, ou streaming de rádio Content Providers – Como o nome já explica, Content Providers é componente responsável por armazenar e recuperar os dados e torna-los acessível para todas as aplicações, ou seja são os provedores de conteúdo. A única forma de compartilhar dados entre aplicações no Android é através de content providers, pois não existe área de armazenamento comum que todos os pacotes Android podem acessar. Ex.: acessar os contatos da agenda do smartPhone Broadcast Receivers – É um componente que responde a anúncios de todo o sistema de broadcast. Muitos brodcast provenientes do sistema, como um broadcast anunciando que a bateria está fraca ou uma sms foi recebida. As aplicações também podem iniciar os broadcast, por exemplo, para permitir que outras aplicações saibam que alguns dados foram disponibilizados para eles usarem. Os broadcast receivers também não possuem interface de usuário, mas eles podem criar uma notificação de barra de status para alertar o usuário quando um evento de broadcast ocorreu. Ex.: quando um sms chegar a aplicação deve ser inicializada
Roboelectric permitem que você teste-drive o desenvolvimento de seu aplicativo Android dentro da JVM em sua estação de trabalho em segundos, em vez de no emulador no em um dispositivo (que pode ser lento). interceptar o carregamento das classes Android e reescrever os corpos de método. 1,047 testes em 28 segundos
Roboelectric permitem que você teste-drive o desenvolvimento de seu aplicativo Android dentro da JVM em sua estação de trabalho em segundos, em vez de no emulador no em um dispositivo (que pode ser lento). interceptar o carregamento das classes Android e reescrever os corpos de método.
Uma ferramenta open-source de automação para testes em diversas plataformas : Nativos : iOS, Android – Hibridos; Web: HTML5, FLEX; Emuladores( Simuladores ) e em dispositivos reais( sem jailbreak ou root ); Funciona com todos os principais navegadores de desktop; Identifica botões, campos de texto, etc, e realiza a inserção de dados;
Testes de stress no aplicativo Roda no emulador ou em dispositivos reais; -p indica o package que será realizado o teste, se houver mais de um package repete a sentença Throttle: insere um atraso entre os eventos; S : valor pseudo-randomico gerador de números; -v quantidade de vezes que será realizado o teste
Empresa chinesa Animoca possui 400 dispositivos para realizar testes dos aplicativos.
Relatar ao desenvolvedor; Passar todas a informações na hora que ocorreu o erro; 13% dos usuários mobile afirmam que nunca usam um aplicativo novamente se a primeira experiência for ruim.
Plataformas: Android, IOS, Windows Phone, HTML5; quais versões do sistema operacional estão lhe causando mais dores de cabeça!