Concrete Logo
Hamburger button

Ferramentas do dia a dia de um QA – Parte 1

  • Blog
  • 18 de Junho de 2015
Share

Para garantir a qualidade de qualquer produto mobile, é preciso especificar as funcionalidades do sistema e automatizá-las. Aqui na Concrete Solutions normalmente fazemos isso usando Cucumber e Calabash, além do Ruby como linguagem de programação.

É possível utilizar qualquer editor de texto como ferramenta de desenvolvimento para Ruby e Cucumber, mas como cada um possui particularidades que podem facilitar na organização e no rendimento do trabalho, decidimos testar alguns deles e colocar o resultado aqui no Blog.

Cada um dos editores Emacs, Sublime, RubyMine, IntelliJ IDEA, Atom e Vim foi avaliado por pelo menos um membro da nossa equipe de QA. Nesse primeiro post, vamos abordar os detalhes e considerações sobre o uso de RubyMine e IntelliJ IDEA. Nos próximos, vamos abordar as outras ferramentas. Certo? Então vamos lá:

RubyMine / IntelliJ IDEA Ultimate

Desenvolvidas pela JetBrains, a RubyMine e IntelliJ IDEA são IDEs extremamente completas, com diversas funcionalidades que auxiliam no desenvolvimento. Possuem aparência e organização muito parecidas com o Android Studio (uma vez que o Android Studio tenha como base a IDE da JetBrains).

image00

Quem tem experiência com desenvolvimento Android se sentirá bastante confortável com essa IDE, pois ela possui aparência, organização das opções, sintaxe e atalhos iguais ou pelo menos parecidos com o Android Studio. Sendo assim, o conforto e segurança ao utilizar essas ferramentas serão imediatos e possibilitarão uma curva de aprendizado menor para quem está começando na área de QA.

Algumas das funcionalidades que já vêm com as IDEs são:

– Jump to Step – “Pular” do arquivo .feature para o arquivo com a definição do step com um clique. Se o step estiver definido em mais de um arquivo, ele listará todos arquivos e seus path;

image05

– Autocomplete de steps – sugere os steps de acordo com o que já foi definido, e isso funciona também para as palavras reservadas do Cucumber, como “cenário” e “contexto”. Vale destacar que o autocomplete identifica a linguagem do arquivo Gherkin antes de sugerir uma palavra chave;

image06– Undefined Step – Acusa, por meio de um warning, os steps que não estão definidos, dando a opção de defini-los em algum arquivo novo ou já existente;

image03

– Step already defined – Acusa como erro se tentamos criar um step já definido em outro lugar;

image01

– Para a parte de Ruby temos o jump to class, autocomplete de variáveis e métodos e sugestões de melhorias na sintaxe, entre outras funcionalidades que normalmente encontramos em outras IDEs para outras linguagens.

Não entrarei em muitos detalhes nos atalhos, temas e spellcheckings porque isso pode ser configurado de acordo com o gosto do desenvolvedor e/ou pode mudar de acordo com o sistema operacional.

Outras vantagens

  • Possuem uma ferramenta de git acoplada, com highlight de arquivos modificados, adicionados, não-adicionados ou ignorados;
  • É possível configurar um script ao executar uma feature, então, para quem precisa separar profiles e executar comandos por meio do calabash-ios ou calabash-android, é só selecionar o cenário ou a feature que quer executar, clicar no botão de Run ou de Debug (sim, o debug funciona, mas não para a execução do aplicativo, apenas para a execução da feature) e voilà! Os testes começam a ser executados!;
  • Possui um terminal.

Desvantagens

Depois de todas essas vantagens e funcionalidades mágicas, chegou o momento de dizer as desvantagens, ou melhor dizendo, A desvantagem:

Essas ferramentas são pagas!

O RubyMine e o IntelliJ IDEA possuem valores diferentes, apesar de serem muito parecidos, e o sistema de licensas é o mesmo: a compra da licensa tem validade de um ano. Para renovar, outra taxa (menor do que a compra, é claro) é cobrada.

Outra coisa que pode (ou não) ser um problema é que para reconhecer os steps no arquivo .feature e para usufruir das funcionalidades de Jump to Step e Step Autocomplete, os steps precisam estar definidos em inglês, com given, when e then. Se estiverem definidos em português (com dado, quando e então), a feature tenta procurar os steps e não encontra, mostrando o warning de Undefined Step. Então, todos os steps têm que ser definidos como a imagem abaixo, independente da língua em que a feature está sendo escrita:

image04

Se você pretende migrar seus projetos de especificação para o RubyMine ou para o IntelliJ IDEA Ultimate, pode considerar esse “refactory” nos steps como um passo para a migração.

Diferenças entre o RubyMine e o IntelliJ IDEA Ultimate

A principal diferença entre os dois é que o RubyMine, como o próprio nome sugere, é focado para desenvolvimento Ruby. Então, ao abrir o path do projeto de especificações tudo já estará configurado. Basta apenas colocar as gems que o projeto usa, como o calabash-android e calabash-ios, dentro de um arquivo gemfile que ele mesmo gera. Seria algo parecido com o podfile utilizado no desenvolvimento iOS:

Se a IDE não gerar esse arquivo e as features não funcionarem da maneira esperada, basta seguir os passos que a própria ferramenta sugere.

O mesmo vale para o IntelliJ IDEA Ultimate. A diferença é que ele não vem tão pronto quanto o RubyMine, mas quando abrimos o projeto por lá ele mesmo sugere a instalação de plugins de Ruby e Cucumber, que praticamente o transformam no RubyMine. Ou seja, tirando algumas opções de configuração, são praticamente iguais. A vantagem é que o IntelliJ IDEA Ultimate suporta N outras linguagens e frameworks, sendo uma IDE mais genérica. Se você possui um time com diversas tecnologias e pretende usar apenas uma ferramenta, pode colocar essa na lista.

O IntelliJ IDEA possui duas versões: a Ultimate (paga) e a Community (free). Infelizmente, a versão free não possui o plugin de Cucumber e Ruby que nós precisamos para executar o trabalho de analista de QA. Tanto o RubyMine quando o IntelliJ IDEA possuem um período trial de 30 dias. Se desejar saber mais sobre as ferramentas, funcionalidades e os valores dos softwares da JetBrains, pode acessar o site deles.

Conclusão

De maneira geral, RubyMine e IntelliJ IDEA são excelentes ferramentas de trabalho, completas o bastante não têm quase nenhum ponto negativo. Além disso, são fáceis de configurar e de usar e possuem funcionalidades que eu ainda não achei em nenhuma outra ferramenta. Se fosse pra escolher entre as duas, eu escolheria o IntelliJ IDEA Ultimate por não focar apenas em um tipo de linguagem, mas em um ambiente confortável de desenvolvimento para N tipos de linguagem.

Entretanto, se eu tivesse que escolher entre todas as ferramentas que um analista de QA pode utilizar, provavelmente escolheria alguma ferramenta gratuita, visto que as funcionalidades das ferramentas da JetBrains são excelentes e ajudam muito, mas não são essenciais. Seriam mais um luxo do que uma necessidade. Lembrando que é claro que existem outras variáveis dentro de um projeto que podem influenciar diretamente na escolha da ferramenta.

Se você está disposto a pagar por uma excelente ferramenta de trabalho, essa é uma boa opção. Caso contrário, existem editores de texto bons o suficiente e de graça, que tornam o trabalho do dia a dia de um analista de QA muito mais produtivo.

Ficou alguma dúvida ou tem alguma sugestão de ferramenta para ser avaliada? Deixe seu comentário! Em breve, continuamos esse assunto falando de  Emacs, Sublime, Atom e Vim. Até lá!