Construa Testes de Regressão sem programar com TestProject

Bárbara Cabral
Bee Lab Academy
Published in
9 min readFeb 26, 2020

Bom, não é novidade que eu demorei um pouco a adentrar no mercado de Automação de Testes. Quando eu era programadora sentia muitas dificuldades em iniciar a estudar uma tecnologia e, naquela época, era muito difícil conseguir ajuda da comunidade porque eu nem sabia de fato que perguntas deveria fazer.

Os tempos mudaram e, atualmente, as comunidades de prática ajudam muito na iniciação do uso de uma nova tecnologia. Saber que existe um profissional que já trilhou o árduo caminho de aplicar aquela tecnologia e já sabe como implementar uma determinada solução, melhores práticas e mesmo os melhores materiais para estudar já economiza alguns dias batendo a cabeça para descobrir como usar e onde procurar um material de confiança.

Para quem está hoje realizando testes manuais é muito difícil começar a programar ou até mesmo retomar a trabalhar com programação, caso não programe mais atualmente. Lembro que quando comecei eu usava muito o recurso de “record” do Selenium IDE para gravar os passos realizados em tela e aprender como identificar os elementos.

Hoje existem algumas ferramentas parecidas e até plugins no Google Chrome como o SelectorGadget ou seletor de elementos do ProtractorRecorder.

No entanto… existe uma que superou todas as minhas expectativas. Ela é de fato uma ferramenta otimizada para você não só aprender a identificar os elementos de tela, como também ela tem um conjunto de recursos que pode te tornar de um testador manual em um Automatizador de testes em minutos: o TestProject.

Então, eu decidi começar a implementar um conjunto de cenários para ver se, de fato, poderia ser uma boa para sugerir aos meus amigos que são Testadores Manuais e eles começarem a trabalhar sem saber muito de programação. Além disso ela é um SaaS, ou seja, foi construída na Cloud.

  1. Criando um projeto do zero

A primeira coisa que você precisa fazer (além de criar uma conta), é clicar em “Agents” e depois realizar o download do Agente que será executado na sua máquina. Depois de instalado, você verá o agende entre os seus aplicativos:

Dica: depois que você terminar de trabalhar com o seu Agente e fechar a aplicação, quando for construir novos testes, precisa conectar o agente novamente.

Depois de tudo pronto, você vai ver esta tela com o seu Agente funcionando:

Agora, vamos criar um Projeto do Zero, indo para a Aba Home e clicando em “Add a new Project”. Depois de criado o projeto, você verá esta tela:

Agora vamos criar um novo teste clicando em “New Test”. A ferramenta te oferece 3 opções:

  • Mobile
  • Web
  • Code

Escolhi a Web, e também inseri a URL do site https://www.pokemon.com/ como base. Agora posso escolher o que fazer. A ferramenta possibilita:

  • Record: grava os testes que você vai realizar de forma manual no site
  • Edit: edita um cenário existe ou talvez um que você já tenha gravado anteriormente
  • Blank Test: você pode implementar do zero as instruções sem nenhum teste anterior como base

Como o propósito aqui é testar manualmente como se eu não soubesse muito de programação decidi gravar (Record) primeiro os passos que eu for realizando. Ao dar início você vai ver esta tela:

Parece um pouco confuso no início mas já vou te explicar o que a tela está exibindo:

  1. Browser Google Chrome
  2. Site do Pokemon
  3. Componente do Test Project que mostra as iterações de tela que você for realizando
  4. Pop-up que exibe em qual componente o mouse está em cima
  5. Botão de pausar a gravação

2. Gravando os passos para criar os cenários

Agora, vamos gravar os seguintes passos:

Dado que eu estou na página principal do site http://pokemon.com

Quando eu seleciono a seção “Pokédex”

E preencho “Bulbasaur” no cmpo de pesquisa

E clico no ícone de “lupa”

Então eu vejo o card do Bulbasaur”

Quando eu realizo todos estes passos, como vocês podem visualizar na ferramenta, ele gere exatamente tudo o que eu fiz em tela, ficando assim:

O interessante de tudo, é que eu percebi que antes de realizar a minha pesquisa, eu devia ter clicado em “OK” para ativar os cookies da página e me permitir ver a página toda. Assim eu gravei estação depois, mas consegui arrastar este clique (drag and drop) para o início do cenário clicando no “passo”e puxando pra cima. Isto agiliza em muito na hora de criar os cenários!

Agora você pode clicar em cada ação e personalizar de acordo com a necessidade. Um exemplo disso é que digitei apenas “Bul” e a pesquisa já me retornou “Bulbasaur” para selecionar. Se eu quiser preencher por completo, eu posso ir no passo eu alterar para colocar o texto completo no campo.

Outro ponto interessante é que eu posso re-executar um passo que já gravei. Fui tentar re-executar o passo de clicar na div do cookie, e o cenário vai falhar, porque já desative ela anteriormente. Logo, o comportamento está correto..

Posso também executar meu cenário a partir de um passo específico ao invés de ter que executar todo o cenário do zero como a maioria das ferramentas executa!!!

Ah! Outro recurso bacana é quando você seleciona um item na tela e clica nos três pontinhos do componente:

Assim, é possível verificar como interagir com aquele componente, ou seja, quais ações podem ser realizadas, quais os atributos do elemento de tela podem ser acessados pela ferramenta e também como realizar as validações em tela do elemento (assertions):

Esqueci de citar que depois de gravar tudo, posso otimizar os cenários excluindo passos desnecessários e ajustando conforme a necessidade. Incluindo outros passos no início, meio ou final do cenário. Tudo de forma bem simples.

Tem muitas outras iterações, tem o ícone:

Ele abre opções de visualizar o detalhe das divs onde o elemento está inserido:

Desta forma, é possível verificar se a imagem está presente, se existe um link ou se o elemento está dentro da div correta.

Para parar com a gravação, fechei o browser e vi meu cenário gravado na tela principal do TestProject:

3. Re-executando os cenários:

Depois de gravado o cenário, na tela do Projeto Pokemon, quando você passa o mouse por cima do cenário, ele mostra mais algumas opções:

Agora, vamos re-executar para ver se deu tudo certo!

Ao abrir a tela, achei bacana porque posso executar o mesmo cenário usando outros agentes:

E uma outra opção é usar “Jobs” para agendar as execuções. Crie um conjunto de cenários para ver como ficaria, e agrupei os cenários da seção “Pokedex” do site em um único Job. Assim é possível organizar melhor os testes.

Ao criar os Jobs, é necessário sempre escolher um Agente. Logo, eu posso criar um Job para um conjunto de testes que serão executados no Chrome e o mesmo conjunto para execução no Safari, ou mesmo em um dispositivo móvel.

Cada conjunto de Jobs pode ser executado de forma diferente. Por exemplo, eu posso agendar para eles executarem todos os dias à meia-noite:

4. Data Sources

Um recurso interessante é utilizar os Data Sources, ou seja, você pode criar cenários Data-Driven parametrizando os dados de entrada dos campos da aplicação.

Para tal, o primeiro passo é visualizar o passo que preenche o campo de busca com “Bulbasaur”.

No campo “Keys”, é possível selecionar o botão “+” para adicionar um parâmetro.

Assim, ao adicionar o parâmetro, fica desta forma no cenário, e a variável “pokemon_name” é criada. Daí é preciso “Salvar e Sair” do cenário e realizar o download com o template dos campos que foram parametrizados para popular o Data Source.

O template tem um formato simples de .csv:

Depois de populado o Template, ele precisa apenas se carregado no menu lateral “Data Sources” e, ao executar o cenário, ser selecionado para ser utilizado como fonte de dados, desta forma:

Este recurso facilita bastante na hora de utilizar dados externos para preencher campos com um Data Source de dados válido e poderia ter, inclusive, um Data Source diferente de dados inválidos.

5. Relatórios & Monitores

Os relatórios principais, além do número de testes que passaram e falharam incluem: velocidade de execução dos testes, em quais dispositivos foram executados e em quais agentes. Além, disso, é possível versionar o sistema que está sob teste e comparar as taxas de erro das distribuições que foram entregues.

No menu, a seção “Monitor”” mostra em tempo real os testes que estão sendo executados assim, é possível monitorar de outra máquina os testes que estão sendo executados em um Agente externo ou em dispositivos móveis.

6. Próximos Passos

Consegui explorar o básico da ferramenta no primeiro uso. Vi que é possível realizar uma série de ações como ter uma biblioteca de elementos de tela e reutilizá-los nos testes, ter uma fonte de dados externa para parametrizar as entradas de dados no sistema através da execução dos testes. Criar um conjunto de parâmetros de dados que podem ser passados de um cenário para outro cenário, o que possibilita o compartilhamento de informação… dentre muitas outras coisas que, espero ter a oportunidade de mapear com maior profundidade.

7. Conclusão

A ferramenta se propõe a ser uma ferramenta de testes gratuita e para todos. Realizei os testes básicos na camada de UI com sucesso de forma muito rápida e seguindo apenas a documentação. A ferramenta também é muito intuitiva e é fácil aprender organicamente com ela conforme ela for sendo usada.

Com um simples Agente instalado na máquina local já é possível executar em diferentes browsers (Chrome, IE, Edge, Safari and Firefox) e dispositivos (android e iOS), no mesmo ambiente onde os testes foram gravados e criados. Por ser uma ferramenta SaaS (Software as a Service) na Cloud, ele suporta também os sistemas operacionais: Windows, Linux e macOS.

Um exemplo do que é possível fazer é testar no Chrome em dispositivos Android bem como no browser Safari em dispositivos iOS.

Vantagens:

  • Fácil de começar a usar e as configurações iniciais não são complexas;
  • Tem recursos de compartilhamento de cenários com o time;
  • Tem vários Addons criados pela comunidade
  • É possível criar o próprio Addon e extender os recursos da aplicação
  • Integração via API para execução em workflows de integração contínua
  • Importação do SDK de projetos para execução do App em dispositivos móveis
  • Testes Cross-browser e cross-platform
  • Backend utilizado é o Selenium e o Appium para interação com as páginas
  • Promete ser Free-forever, onde todos podem usar por tempo indeterminado.

Referências:

--

--