Como o Android MonkeyTest pode ajudar em seu projeto

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.

Android monkey test

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] <eventcount>

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.

Desenvolvendo para Android

Deixe um comentário