No mercado atual onde temos evoluções constantes de
Ferramenta de monitoramento de ferramentas, versões e funcionalidades, vimos a
performance desenvolvida para necessidade de podermos monitorar o impacto de novas
atender às necessidades críticas de atualizações nos dispositivos a fim de coletarmos
profissionais de QA informações para desenvolvermos melhorias de
performance
O que é? Por quê?
Qual o objetivo? Funcionalidades?
Facilidade de monitoramento durante • Detecção automática de dispositivos
testes de firmwares e novas Android conectados via ADB
funcionalidades em equipamentos
• Monitoramento em tempo real de
CPU, memória RAM, bateria e dados
móveis
Objetivos
● Automatizar a coleta de dados de performance (CPU, RAM, Bateria,
Network);
● Fornecer visualizações em tempo real de métricas de desempenho;
● Gerar relatórios detalhados para análise pós-teste;
● Reduzir tempo de identificação de issues de performance.
Desafios da Indústria
Mobile Android
● Problema: Testes manuais de performance são lentos e imprecisos
● Impacto: Apps com problemas chegam à produção causando reviews ruins
● Oportunidade: Automatizar monitoramento durante testes economiza
tempo e evita decepções com os usuários
Design Thinking: Processo de
Desenvolvimento
1. Empatizar: Entrevistar QAs e developers sobre desafios de testing;
2. Definir: Identificar dor: falta de automação em monitoramento;
3. Idear: Brainstorm: solução desktop que integra ADB + visualização
4. Prototipar: MVP: aplicativo Java com gráficos em tempo real;
5. Testar: Feedback contínuo com usuários reais.
Tecnologias utilizadas:
Linguagem de programação: Java
Bibliotecas: [Link]:jfreechart:1.5.4, [Link].okhttp3:okhttp:4.12.0, [Link]:gson:2.11.0,
Swing Desktop UI
Integrações: AWS Cognito, Android Debugging Bridge (adb)
Foi trocado o aplicativo de leitura para desktop durante o processo de
desenvolvimento
Tecnologias utilizadas:
Escolha de apk e
tradução para
uid
• Uid: identifcador de apk para
cada dispositivo android
Escrever
Criação de
conteúdo das • Classe que gerencia:
instância da
listas ligadas
para .csv
classe de leitura PerformanceRun contém todas
as listas, aloca novos dados
nelas, atualiza os gráficos e
escreve o conteúdo das listas
nos arquivos csv.
• Listas de dados: Lista ligada
Criação de que guarda progressão linear
Atualização de
instâncias das
gráficos com
listas ligadas de dados
informações da
para cada grupo
nova leitura
de dado ● Classes de dados:
Método de
BatteryStats,
leitura run() cria DataUsageStats e
instância das RamUsageStats.
classes de
dados
Formulário de pesquisa
Formulário de pesquisa
Descreva brevemente qual foi o bug de performance mais desafiador que você já encontrou em
projetos móveis e como ele foi resolvido.
“Bug por conta de antivírus em dispositivos, nos testes manuais não
foi possível a detecção pois é uma interface que funciona em IOS
onde executávamos a maior parte do desenvolvimento pois era
nosso produto principal em IOS.”
“Na minha empresa de automação de pagamentos, ao fazer uma
impressão pelo dispositivo, ele esquentava a carcaça e acabou que
derreteu uma parte 2 semanas antes do Piloto. Foi resolvido em um
futuro breve porém o contrato foi perdido também.”
“Ao realizar um tipo de teste de KPI que deve ser avaliado a
performance do wi-fi e da rede móvel, foi notado uma grande
diferença na agilidade da funcionalidade.”
“Um app ficava lento porque as imagens eram muito pesadas.
Resolvi diminuindo o tamanho delas e aí o app ficou bem mais
rápido”
User Flow
Por que o PerformanceGuard é essencial no nosso
dia a dia de testes?
Benefícios do PerformanceGuard:
● Redução de Bugs em Produção
● Evidências Visuais para Desenvolvedores
● Monitoramento Contínuo de Performance
● Economia no tempo de Testes
● Redução de Custos com Devoluções
Problemas que seriam evitados com o
PerformanceGuard
POKEMON GO - 2016 O Impacto
4.5 ⭐ → 2.5 ⭐
Rating em poucos dias
Reclamações em fóruns
O Problema
• 80-90% bateria em apenas 30 min de jogo;
Usuários deletando o app
• Aquecimento excessivo (>50°C);
• Crashes frequentes em sessões longas;
• 300-500 MB de dados por hora;
“Pokemon GO devasta a bateria
• Memory leak (RAM não liberada). dos celulares”
Problemas que seriam evitados com o
PerformanceGuard
PUBG MOBILE - O Impacto
2017-2019
50°C+
Temperatura crítica em sessões de jogo
Centenas de reclamações
Threads em XDA Forums (OnePlus, Samsung)
O Problema
● Overheat extremo (50°C em 10-15 min);
● Travamentos;
Downgrade de Android
Usuários voltavam pro Android Nougat (7)
● Bateria 100% → 5% em 2.5-3 horas;
● Crashes frequentes durante partidas;
● Performance piorava com cada update; OnePlus 3T morto
● Alto uso de CPU/GPU contínuo. OnePlus 3T "inutilizável" com Android Oreo (8)
Conclusão
● O PerformanceGuard resolve um problema real do desenvolvimento mobile
● Metodologia Design Thinking garantiu solução centrada no usuário
● Projeto escalável com potencial para uso em empresas e comunidades de
Quality Assurance;
● Aprendizados aplicáveis em futuros projetos de automação e
monitoramento.