03
jun 15

Testes automatizados – Parte 3: Exemplo

Testes automatizados – Parte 3: Exemplo

Seguindo as postagens sobre Testes automatizados, neste post vamos falar um pouco das ferramentas e mostrar um exemplo de automação.

O objetivo é desmistificar os testes funcionais automatizados com um exemplo bem simples da estrutura necessária para os testes.

Ferramentas e técnicas

As ferramentas e técnicas adotadas aqui na Soft são:

  • Selenium WebDriver
  • Headless testing
  • Page Object
  • JUnit
  • Cucumber (BDD)

Exemplo

A estrutura da suíte de testes funcionais está dividida em  features, steps, interactions e pages. A figura abaixo é um print dessa estrutura criada na IDE Eclipse com plugin do Cucumber.

projeto-testes

Feature

Nessa estrutura, a feature começa com a descrição da história de usuário.
Para cada feature, podemos escrever vários cenários de testes, que são escritos no formato clássico do BDD.
O cenário representa um fluxo de uso do sistema, explicitando entradas e saídas. Os dados  que serão usados na entrada ou que devem ser validados na saída podem ser parametrizados, como no exemplo abaixo.

projeto-testes-bdd-cucumber

Steps

O Cucumber interpreta o cenário escrito em linguagem natural e gera a classe com os métodos que representam os steps do cenário.
O testador só precisa completar cada método com a ação que deve ser tomada (interaction).

projeto-testes-steps

Interactions

A classe de interactions é o primeiro nível em que realmente há alguma “programação”. Aqui o testador tem que implementar as interações, através de chamadas de métodos dos componentes da tela.

projeto-testes-interaction

 

Page

Para poder invocar métodos dos componentes da tela, o testador tem que mapear o PageObject, que é um objeto que representa a estrutura da tela. No exemplo abaixo, é feito o mapeamento do campo “email” pelo id que o campo tem na página.

projeto-testes-page

projeto-testes-id

 

Visão geral

Este post mostrou os vários níveis da estrutura de um teste funcional automatizado com Selenium, Cucumber e PageObject.

A intenção foi demonstrar que o testes automatizado não é nada de outro mundo, e com as ferramentas corretas pode ser facilmente implementado.

Pra fechar, a figura abaixo mostra um ciclo inteiro:

projeto-testes-inteiro

 

 

william.jablonski
william.jablonski

Especialista em Qualidade e Testes, atua com automação de teste, integração contínua, feedback contínuo e métodos ágeis para desenvolvimento de software.

Deixe uma resposta