BDD é uma abordagem de desenvolvimento de software que reduz a distância entre negócio e tecnologia utilizando um vocabulário comum e focando na entrega de valor ao cliente. A linguagem Gherkin é usada para descrever cenários de teste de forma simples e consistente. O framework Specflow permite escrever e executar especificações BDD no Visual Studio usando Gherkin e o Selenium WebDriver automatiza ações no navegador para validar os cenários.
6. GHERKIN
Garante um vocabulário simples e consistente para descrever
cenários reais de funcionalidades.
• Funcionalidade
• Contexto
• Cenário
• Quando
• Então
• E
• Ou
• Esquema de Cenário
• Exemplos
7. Funcionalidade (Feature)
Descreve o grupo de testes de uma funcionalidade.
É armazenada em arquivos com a extensão .feature
Exemplo:
Funcionalidade: REQ001Login
Eu como funcionário da DBServer
quero poder me autenticar no sistema XYZ
para ter acesso ao meu ambiente de trabalho
...
8. Cenário (Scenario)
Descreve um comportamento desejado para o sistema.
Uma funcionalidade pode conter vários cenários.
Como o sistema deve se comportar em uma determinada situação.
Exemplo:
Cenário: REQ001 Validar login do administrador
...
9. Dado (Given), Quando (When)
e Então (Then)
Palavras chaves que definem o comportamento e validação de um
cenário.
Exemplo:
Cenário: Estoque indisponível
Dado que o estoque da sandália galinha pintadinha é de 150
unidades
Quando informo uma venda de 200 unidades
Então a venda não é registrada
10. E (And) e Ou (Or)
Complementam os passos Dado, Quando e Então e evitam
sobrecarga.
Exemplo:
Cenário: Estoque indisponível
Dado que o estoque da sandália galinha pintadinha é de 150
unidades
Quando informo uma venda de 151 unidades
OU informo uma venda de 200 unidades
Então a venda não é registrada
E é exibida a mensagem de “estoque insuficiente”
11. Contexto (Background)
Todos os cenários da funcionalidade executam os passos
especificados no contexto.
Exemplo:
Contexto: O usuário estar logado
Dado que o usuário “cristian.mathias” esteja
logado no sistema
12. Esquema do cenário
Possibilita testar diferentes dados que estão estruturados de
forma tabular.
Esquema de cenário: Aritmética simples
Quando calcular o <operando1> <operacao> <operando2>
Então o resultado deve ser <resultadoEsperado>
Exemplos:
| operando1 | operacao |operando2 | resultadoEsperado |
| 3 | + | 3 | 6 |
| 2 | * | 2 | 4 |
13. Specflow – Cucumber for .net
• Framework open-source.
• Primeira versão em 2009.
• Permite escrever e executar especificações
dentro do Visual Studio.
• Code completion e syntax highlighting para
GHERKIN.
• http://www.specflow.org/
14. Selenium WebDriver
Permite automatizar ações do navegador.
• Navegar entre as páginas.
• Submeter formulários.
• Selecionas menus.
• Preencher campos texto.
• Procurar elementos html.
15. Selenium WebDriver
Alguns métodos do Selenium WebDriver:
// Encontra todos os elementos de uma tela HTML através de um
dado argumento.
driver.findElements(By by);
// Encontra o primeiro elemento de uma tela HTML através de um
dado argumento.
driver.findElement(By by);
// Fecha a janela corrente.
driver.close();
16. Selenium WebDriver
Alguns métodos do Selenium WebDriver:
// Abstração que permite acessar o histórico e navegar para uma
determinada URL.
driver.navigate();
// Insere caracteres num determinado elemento da tela.
elemento.sendKeys();
// Envia dados para o servidor se o elemento em questão for um
formulário.
elemento.submit();