Você já usou o monkey test em seu projeto Android?
Se não, está perdendo uma chance de encontrar bugs em sua aplicação sem muito trabalho. O Monkey Test é uma das ferramenta do SDK Android e seu intuito é fazer testes aleatórios em uma aplicação.
Mas como funciona?
O monkey test tool envia para a aplicação eventos de interface com usuário (toques na tela e digitação de textos) totalmente aleatórios sequencialmente. Ou seja, é como se sua aplicação estivesse sendo testada por um macaco (ou por um usuário que não tenha a mÃnima noção do que está fazendo 🙂 ) .
Mas por que eu iria querer esse tipo de teste na minha aplicação?
Bem, à primeira vista este tipo de teste parece não servir para muita coisa, mas ele é sim útil para encontrar alguns tipos especÃficos de bugs. Por exemplo, bugs relacionados a alguma race-condition, como o clique em um botão antes de algum componente essencial ser inicializado, causando um crash. Esse tipo de bug dificilmente é testado por “humanos”, mas pode acontecer com usuários reais usando telefones mais lentos ou com baixa conectividade.
Vantagens
A grande vantagem do monkey test é a facilidade de uso: Não é necessário mudar o código de sua aplicação, instalar ferramentas em seu computador, nada: basta executar uma linha de comando e a ferramenta será executada no emulador ou em um dispositivo fÃsico (telefone/tablet).
Desvantagens
Uma das maiores desvantagens do monkey test é a quantidade de crashes inválidos que vão acontecer. Como eu disse anteriormente, muitos dos crashes que ocorrem durante o monkey test podem ocorrer em situações reais…. mas nem todos! Por exemplo, alguns bugs ocorrem por conta de vários eventos numa frequência muito alta, impossÃvel de ser reproduzida em um cenário real.
Para evitar “falsos positivos” como estes, o ideal é regular o monkey test para uma frequência não muito alta de eventos (ajustando-se o parâmetro –throttle, que define o intervalo de tempo em milisegundos entre os eventos).
Como executar
A execução da ferramenta é muito simples: basta executar o seguinte comando no console:
$ adb shell monkey [options] <event–count>
Onde o único parâmetro obrigatório é o <event-count>, que é a quantidade de eventos a serem enviados. Pode-se também especificar o package de sua aplicação, para que o monkey test deixe  sua aplicação sempre em primeiro plano, por exemplo:
$ adb shell monkey –p com.helloworld –v 500
A lista completa de parâmetros pode ser encontrada na documentação da ferramenta.
É importante gravar o logcat para ser analisado posteriormente, ou usar uma ferramenta de logs remotos, como o ACRA ou Crashlytics (falaremos delas posteriormente!)
Conclusão
Existem ferramentas muito mais poderosas (e muito mais complicadas) para fazer testes automáticos, porém o Monkey Test sempre terá seu lugar ao sol, pela sua simplicidade e utilidade.
Nunca deixe de rodar o teste em seu projeto, principalmente depois de grandes alterações.
