View
267
Download
6
Category
Preview:
DESCRIPTION
Apresentação sobre BDD com specflow e selenium webdriver
Citation preview
Behaviour-Driven DevelopmentBDD
Cristian MathiasFelipe Foliatti
Desenvolvido em 2003, por Dan North como uma resposta ao TDD.
Reduz a distância entre negócio e tecnologia.Utiliza um vocabulário comum.
Foco na entrega de valor.
BDD é a “documentação viva”.
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
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
...
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
...
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
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”
Exemplo:
Contexto: O usuário estar logado
Dado que o usuário “cristian.mathias” esteja
logado no sistema
Todos os cenários da funcionalidade executam os passos
especificados no contexto.
Contexto (Background)
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 |
• 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/
Specflow – Cucumber for .net
• Navegar entre as páginas.
• Submeter formulários.
• Selecionas menus.
• Preencher campos texto.
• Procurar elementos html.
Selenium WebDriver
Permite automatizar ações do navegador.
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();
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();
Hands-onBDD + Specflow + Selenium WebDriver
https://github.com/cristianmathias/Demo-BDD-Specflow-WebDriver
Obrigado!Cristian Mathias
cristianm@dbserver.com.br
Felipe Foliattifelipef@dbserver.com.br
Referencias
http://www.devmedia.com.br/introducao-aos-testes-funcionais-
automatizados-com-junit-e-selenium-webdriver/28037
http://elemarjr.net/2012/04/11/bdd-na-prtica-parte-1-conceitos-
bsicos-e-algum-cdigo/
http://elemarjr.net/2012/04/12/bdd-na-prtica-parte-3-gherkin/
Recommended