Achei muito interessante. Então baixei o código para estudar como funciona. (o link para o site está no final desse artigo)
Depois de baixar, abrir o script no Instruments. (clique aqui e saiba mais sobre o Instruments)
No começo o código parece um pouco complexo. Mas com a curiosidade era muito grande, pluguei o dispositivo no cabo e rodei o script do jeito que estava.
Para minha surpresa, funcionou, mas não em sua totalidade.
Fiquei empolgado com a idéia de poder executar esse tipo de teste nos aplicativos.
Então debrucei no código para entender como ele funcionava. Quando falo que debrucei, entende-se cair de cabeça e explorar cada linha de comando.
Mas você pode estar se perguntando: O que é UI AutoMonkey?
O UI AutoMonkey é um script onde é executado no emulador ou no próprio dispositivo, uma série de eventos aleatórios, como cliques, toques, rotações e etc no aplicativo
Mas qual é a vantagem de executar o UI AutoMonkey?
A resposta é simples: com o teste, você pode estressar seu aplicativo aleatoriamente atrás de bugs que com o teste normal não iria encontrar.
Mas vamos voltar no que interesssa, o script.
Depois de analisar cada linha de código, fazer alguns testes (tirando ou colocando linhas de códigos), entendi como funcionava.
O script é bem documentado, o que ajuda a entender.
Depois de executar várias vezes e entender o funcionamento, decidi fazer o meu próprio "macaco", pois o script não atendia por completo as minhas necessidades.
A minha primeira necessidade foi: como o teste é executado aleatoriamente e os toques podem ser em qualquer lugar da tela, era necessário limitar a área que o teste poderia tocar. Pois há áreas que ao tocar, sai do aplicativo e abre uma outra funcionalidade.
Depois de estudar, pesquisar bastante, me veio a primeira solução:
O código acima faz mais algumas coisas além de determinar a área do toque no aplicativo.
Como essa é a primeira versão do código, está funcionando apenas para o iPhone 5, 5s e 5c que tem a mesmo tamanho de tela.
Para o iPhone 4, 6 e 6 Plus, o código está em desenvolvimento ainda.
Minha idéia é de o teste identificar automaticamente o dispositivo e executar o código apropriado.
Assim que tiver o código pronto, irei compartilhar com vocês.
Aqui que a mágica acontece.
O toque continua sendo aleatório, só que dentro da área que determinei.
Uma outra funcionalidade que implementei foi o de zoom na foto.
Fiz uma outra função que trata essa possibilidade.
Novamente determinei uma área para dar o zoom na foto, onde cada zoom demora 1 segundo.
Mas encontrei um problema. Como os toques na tela são aleatórios, como executar a função somente quando a foto for selecionada?
Resolvi o problema da seguinte forma.
Fiz uma outra função que trata apenas da funcionalidade foto.
Onde tem o zoom, a rotação do aparelho e o fechar foto.
Nessa função eu verifico se o elemento fechar está visível na tela (que é um elemento específico da foto). Se tiver visível, executo todas as funções que interagem com a foto.
Até agora, as funções criadas só executariam uma única vez.
Para o meu "macaco" funcionar, fiz em um outro script que faz o loop de quantas vezes quero que o "macaco" seja executado.
Usei o laço FOR para determinar quantas vezes quero que todo o script seja executado.
Para estruturar todo o meu teste, criei ele usando a idéia do artigo que postei aqui.
Depois uns ajustes aqui, outros ali, estava pronto o meu "macaco", que carinhosamente coloquei o nome de Monkey Testing
Ainda é a primeira versão. Tem muito a melhorar ainda.
Estou trabalhando nessa melhora, e logo tendo resultados, irei compartilhar com vocês aqui.
Segue o link do UI AutoMonkey
Caso tenha alguma sugestão ou dúvida, é só entrar em contato
Abraços e até a próxima!
________________________________________
Gostou? Compartilhe
Excelente artigo, acredito que testes automatizados para aplicativos móveis ainda é uma área pouco explorada por aqui, conteúdos como esses agregam pra caramba, ainda mais estando em PT-BR.
ResponderExcluirParabens!