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.

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.

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).

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.

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.


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:

Sugestões ou críticas para nosso blog? Entre em contato pelo endereço [email protected]
