Desenvolvimento

29 fev, 2016

Hacking QA – Parte 1

Publicidade

Antes de tudo, feliz 2016! Que a força esteja com você, vida longa e próspera, [ponha sua mensagem nerd de fé e esperança aqui].

qa-1

Bom, todos os envolvidos no dia a dia de desenvolvimento de um software sabem bem como é bastante complexa a vida de um QA durante todo projeto. O desafio diário de testar um software que você não desenvolveu é bastante complicado. Testar um software que você, em tese, não conhece a implementação nem a estrutura interna pode, logo de início, dar uma dor de cabeça para o planejamento dos testes.

Mas, notícia boa: é possível facilitar esse processo. Como? Simples, fuçando em todas as ferramentas criadas pela humanidade para análise e desenvolvimento. E no mundo mobile, principalmente, existem muitas delas!

Então, vou começar hoje uma série de artigos com o intuito de compartilhar as ferramentas que utilizamos aqui na Concrete Solutions e que facilitam bastante o nosso trabalho. A intenção é falar de Android a iOS, passando por Ruby e Shell Script e dar uns tips and tricks para Calabash/Cucumber. O Matheus Corregiari já escreveu um texto bem maneiro sobre algumas ferramentas, então não vou citá-las, ok? Se você quiser saber sobre RubyMine e IntelliJ IDEA, dá uma olhada lá no artigo dele. Antes de mais nada, vamos acordar o seguinte: toda vez que eu usar “testes”, falo de “Especificação por Exemplo”. Beleza? Dito isso, vamos começar!

qa-3

Atom/Sublime

Mesmo estando rodeado por pessoas que usam o Sublime, eu uso mais o Atom no meu dia a dia. Acredito que seja uma questão de gosto, mas independentemente de qual editor você usa, existem diversos plugins ao redor da galáxia para você customizar de acordo com o que achar interessante.

Daí você para e pergunta: no que isso facilita minha vida? Ora, sua vida de QA mobile e usuário de Calabash/Cucumber não será mais a mesma depois de instalar um plugin de suporte à linguagem Gherkin (utilizada pelo Cucumber), na qual suas features terão os highlights nas palavras reservadas. Faça o teste, siga os passos de acordo com o seu editor preferido:

  • Atom: abra o Atom, clique em Atom>Preferences, depois clique em + Install. Nessa nova janela, digite Gherkin, aperte Enter e pronto! Escolha o plugin que te interessar.
  • Sublime: abra o Sublime, clique em Sublime-text>Preference, depois clique em Package Controll, clique/digite “Package install”, digite Gherkin, aperte Enter e pronto! Escolha o plugin que melhor te atender.

Depois desse processo, você terá algo assim:

qa-4

Visualização de logs de aplicações Android/iOS

Logs normalmente são usados para debug e verificação de envio e recebimento de informações em tempo de execução da aplicação ou do device. O uso deles é bastante frequente durante o desenvolvimento, tanto para os desenvolvedores quanto para o QA, enquanto valida os testes que está implementando. Normalmente, o QA mobile roda os testes em cima de um artefato gerado por um build. Com esse artefato, são realizados os testes com o auxílio do Calabash. Como o Calabash roda os testes dentro de um terminal, que dá o output apenas do resultado de cada step dos cenários, os logs do app não aparecem durante a execução dos testes.

Android

No caso do Android, é possível usar o Logcat, ferramenta de logs do sdk, dentro e fora do Android Studio. Assim, fica a opção de abrir o Android Studio antes de começar a rodar os testes e acompanhar os logs da aplicação por ele ou abrir o logcat em um terminal e filtrar de acordo com as tags da aplicação a ser testada. Como quem cria as tags e tem mais conhecimento sobre o que estará presente no log é o desenvolvedor, fica meio complicado conseguir ver o log completo da aplicação.

Uma ótima opção para contornar isso é o Pidcat, ferramenta feita em Python que tem como objetivo mostrar os logs da aplicação de forma mais limpa e focada na mesma. Ou seja, você vê apenas os logs relacionados ao app que está sendo executado, basta passar o nome do pacote ao executar o pidcat.

Após seguir o processo descrito no repositório do projeto feito pelo Jake Wharton e executar o comando pidcat nome.do.pacote.da.aplicação ou pidcat.py nome.do.pacote.da.aplicação, você verá algo mais ou menos assim:

qa-5

Aí é só abrir o terminal, executar o pidcat e em outra aba executar os testes. ?

iOS

No caso do iOS, normalmente você só consegue ver os logs da aplicação se executá-la direto no Xcode, ou seja, não conseguimos executar a aplicação durante os testes usando o Calabash e ter acesso aos logs apenas abrindo o Xcode, como normalmente é possível fazer no Android Studio. Assim, para conseguir ver os logs enquanto o teste é executado, você precisa seguir os seguintes passos:

  • Device:
  1. Abrir o Xcode, com o device conectado;
  2. Clicar em Window > Devices;
  3. Na janela que foi aberta, selecione o device conectado e clique neste ícone

qa-6no canto inferior esquerdo. Logo após, você verá algo assim:

qa-7

  • Simulador
  1. Com o simulador aberto, clique em Debug>Open System Log;
  2. Na janela que abrir, clique em ~/Library/Logs > CoreSimulator > uuid-do-simulador-em-execução> system.log;
  3. Você verá algo mais ou menos assim:

qa-8

Com os logs do device ou do simulador abertos, agora é só executar seus testes no terminal e ficar de olho nos logs, acompanhando caso algo diferente do normal ocorra.

Ficou alguma dúvida ou tem alguma observação ou dica? Deixe seu comentário nos campos abaixo. Nos próximos artigos, pretendo detalhar outras ferramentas que ajudam o dia a dia do QA, como o Android Device Monitor/Xcode para tirar snapshots das telas e ver a estrutura dos elementos das mesmas, como lidar com múltiplas chamadas ao Calabash em um único job e outras dicas que detalharei num futuro não tão, tão distante. Fique ligado e até a próxima!