SlideShare une entreprise Scribd logo
1  sur  19
Behaviour-Driven Development 
BDD 
Cristian Mathias 
Felipe 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”
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
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 |
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/
Selenium WebDriver 
Permite automatizar ações do navegador. 
• Navegar entre as páginas. 
• Submeter formulários. 
• Selecionas menus. 
• Preencher campos texto. 
• Procurar elementos html.
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-on 
BDD + Specflow + Selenium WebDriver 
https://github.com/cristianmathias/Demo-BDD-Specflow-WebDriver
Obrigado! 
Cristian Mathias 
cristianm@dbserver.com.br 
Felipe Foliatti 
felipef@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/

Contenu connexe

Similaire à BDD, Gherkin e Selenium WebDriver

Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EEUso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EEMarco Antonio Maciel
 
SQLCLR: Transformando o SQL Server em algo muito além de um banco de dados
SQLCLR: Transformando o SQL Server em algo muito além de um banco de dadosSQLCLR: Transformando o SQL Server em algo muito além de um banco de dados
SQLCLR: Transformando o SQL Server em algo muito além de um banco de dadosDirceu Resende
 
TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?Rafael Benevides
 
ASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre TarifaASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre Tarifaguestea329c
 
Nem tudo é Pepino: Cucumber x Robot Framework
Nem tudo é Pepino: Cucumber x Robot FrameworkNem tudo é Pepino: Cucumber x Robot Framework
Nem tudo é Pepino: Cucumber x Robot FrameworkRodrigo Matola
 
Processo Unificado de Desenvolvimento de Software
Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software
Processo Unificado de Desenvolvimento de Softwareelliando dias
 
Microsoft ALM = Produtividade
Microsoft ALM = ProdutividadeMicrosoft ALM = Produtividade
Microsoft ALM = ProdutividadeAdriano Bertucci
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Eric Gallardo
 
Como funciona um banco de dados? (Worldwide Online TechDay 2010)
Como funciona um banco de dados? (Worldwide Online TechDay 2010)Como funciona um banco de dados? (Worldwide Online TechDay 2010)
Como funciona um banco de dados? (Worldwide Online TechDay 2010)Fabrício Catae
 

Similaire à BDD, Gherkin e Selenium WebDriver (20)

Mini curso JBC
Mini curso JBCMini curso JBC
Mini curso JBC
 
BDD com SpecFlow
BDD com SpecFlowBDD com SpecFlow
BDD com SpecFlow
 
Bdd com spec flow
Bdd com spec flowBdd com spec flow
Bdd com spec flow
 
Specflow - Criando uma ponte entre desenvolvedores.
Specflow - Criando uma ponte entre desenvolvedores.Specflow - Criando uma ponte entre desenvolvedores.
Specflow - Criando uma ponte entre desenvolvedores.
 
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EEUso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
 
Apresentação fdd
Apresentação fddApresentação fdd
Apresentação fdd
 
SQLCLR: Transformando o SQL Server em algo muito além de um banco de dados
SQLCLR: Transformando o SQL Server em algo muito além de um banco de dadosSQLCLR: Transformando o SQL Server em algo muito além de um banco de dados
SQLCLR: Transformando o SQL Server em algo muito além de um banco de dados
 
TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
ASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre TarifaASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre Tarifa
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Nem tudo é Pepino: Cucumber x Robot Framework
Nem tudo é Pepino: Cucumber x Robot FrameworkNem tudo é Pepino: Cucumber x Robot Framework
Nem tudo é Pepino: Cucumber x Robot Framework
 
Java Seminar
Java SeminarJava Seminar
Java Seminar
 
Processo Unificado de Desenvolvimento de Software
Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software
Processo Unificado de Desenvolvimento de Software
 
Microsoft ALM = Produtividade
Microsoft ALM = ProdutividadeMicrosoft ALM = Produtividade
Microsoft ALM = Produtividade
 
Como fazer boas libs
Como fazer boas libs Como fazer boas libs
Como fazer boas libs
 
Framework Entities
Framework EntitiesFramework Entities
Framework Entities
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
 
JAVA REFLETCION
JAVA REFLETCIONJAVA REFLETCION
JAVA REFLETCION
 
Como funciona um banco de dados? (Worldwide Online TechDay 2010)
Como funciona um banco de dados? (Worldwide Online TechDay 2010)Como funciona um banco de dados? (Worldwide Online TechDay 2010)
Como funciona um banco de dados? (Worldwide Online TechDay 2010)
 

BDD, Gherkin e Selenium WebDriver

  • 1.
  • 2. Behaviour-Driven Development BDD Cristian Mathias Felipe Foliatti
  • 3. Desenvolvido em 2003, por Dan North como uma resposta ao TDD.
  • 4. Reduz a distância entre negócio e tecnologia. Utiliza um vocabulário comum. Foco na entrega de valor.
  • 5. BDD é a “documentação viva”.
  • 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();
  • 17. Hands-on BDD + Specflow + Selenium WebDriver https://github.com/cristianmathias/Demo-BDD-Specflow-WebDriver
  • 18. Obrigado! Cristian Mathias cristianm@dbserver.com.br Felipe Foliatti felipef@dbserver.com.br
  • 19. 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/