BDD com JBehave Por Ismael Soares
Relembrando...
Dificuldades ao iniciar com TDD... Por onde começar? O que testar? O teste tem que começar falhando?
Cansado de ver problemas como estes, Dan North... Idealiza BDD
O que é BDD?
BDD   (Desenvolvimento Orientado por Comportamento) Uma técnica de desenvolvimento ágil que visa integrar regras de negócios com linguagem de programação.
Existem muitas ferramentas Para fazer o trabalho duro... JBehave
JBehave
Por que usar JBehave
Facilitar a comunicação entre todos os envolvidos
Verificar o comportamento através de integração contínua
Como JBehave funciona
Modelo do Arquivo Texto
Exemplo Estória do Usuário
No Arquivo Texto... Story: Cliente faz saque de dinheiro Como um cliente, eu gostaria de sacar dinheiro em caixa eletrônico, para que eu não tenha que esperar numa fila de banco Scenario : Cliente especial com saldo negativo Given  um cliente especial com saldo atual de -200 reais When  for solicitado um saque no valor de 100 reais  Then  deve efetuar o saque e atualizar o saldo da conta para -300 reais Scenario : Cliente comum com saldo negativo Given  um cliente comum com saldo atual de -300 reais When  solicitar um saque de 200 reais  Then  não deve efetuar o saque e deve retornar a mensagem Saldo Insuficiente Nome: caixa_eletronico_test (sem extensão e as palavras por “_”)
Esquema JBehave
Esquema JBehave
Maven < dependency > < groupId > org.jbehave </ groupId > < artifactId > jbehave-maven-plugin </ artifactId > < version > 2.3.1 </ version > </ dependency >
A Classe Principal
Steps
Steps
A Classe Principal
Resultado
Vantagens Totalmente desenvolvido em Java, o que facilita a integração com outros projetos da mesma plataforma; Os usuários podem especificar e executar as Estórias de usuário baseadas em arquivo texto; Anotações ( @annotations ) que conectam os textos da estória do usuário com os parâmetros dos métodos; Além do console, os resultados dos testes podem ser vistos ainda nos formatos: HTML, TXT e XML. Mas isto requer uma configuração específica que pode ser encontrada na documentação do framework; Controle de todas as etapas (métodos) dos cenários pendentes para que não fiquem sem ser implementadas; Localização das Estórias através de palavras chaves, podendo assim, serem escritas em qualquer idioma (exceto Given, When e Then); Integração com as principais IDEs, entre elas: Eclipse e NetBeans; Execução com ANT e Maven.
Links e Referências http://jbehave.org/ Site oficial do framework JBehave. http://codificando.com/2009/04/jbehave-brasil-bdd-em-java-no-nosso-idioma/ Macedo, Emerson.  Criando extensão do JBehave. Chelimsky,David, Aslak Hellesøy, Dave Astels, Zach Dennis, Bryan Helmkamp e Dan North. The RSpec Book : Behaviour Driven Development with RSpec, Cucumber, and Friends . Edited by Jacquelyn Carter. ISBN: 978.1.93435.637-1
Obrigado!

Mais conteúdo relacionado

PPTX
BDD (Behavior-Driven Development)
PPT
Introdução a BDD
PDF
Desenvolvimento BDD
PDF
BDD em Ação - Testadores 2015
PPTX
BDD (Behavior-Driven Development) - Setembro/2015
PDF
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
PDF
BDD em Ação
BDD (Behavior-Driven Development)
Introdução a BDD
Desenvolvimento BDD
BDD em Ação - Testadores 2015
BDD (Behavior-Driven Development) - Setembro/2015
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
BDD em Ação

Mais procurados (20)

PPTX
Specflow - Criando uma ponte entre desenvolvedores.
PPS
Automação de testes para equipes agile
PPTX
TDD e BDD - Developers-SP - Abril/2017
PPTX
Behavior-Driven Development (BDD) - Abril/2017
PPTX
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
PPTX
Nunca foi tao facil testar
PPTX
Mocking Test - GDG-SP - Setembro/2016
PPTX
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
PDF
Be React. Do Tests!
PDF
Revisão de Código - Uma prática que depende da cultura
PPTX
Mocking Test - QA Ninja Conf 2016
PPTX
Refactoring
PPTX
Mocking Test - ThinkUp! - Abril/2017
PPTX
Automatizando Testes de Integração com Azure DevOps | DevOps Experience - Fev...
PPTX
Behavior-Driven Development (BDD) - QA Ninja Conf 2016
PPTX
Começando errado com php
PDF
Mindset de QA em Diferentes Contextos
PPT
BDD: Cucumber + Selenium + Java
PPTX
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Hertz - Janeiro-2018
Specflow - Criando uma ponte entre desenvolvedores.
Automação de testes para equipes agile
TDD e BDD - Developers-SP - Abril/2017
Behavior-Driven Development (BDD) - Abril/2017
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Nunca foi tao facil testar
Mocking Test - GDG-SP - Setembro/2016
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Be React. Do Tests!
Revisão de Código - Uma prática que depende da cultura
Mocking Test - QA Ninja Conf 2016
Refactoring
Mocking Test - ThinkUp! - Abril/2017
Automatizando Testes de Integração com Azure DevOps | DevOps Experience - Fev...
Behavior-Driven Development (BDD) - QA Ninja Conf 2016
Começando errado com php
Mindset de QA em Diferentes Contextos
BDD: Cucumber + Selenium + Java
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - Hertz - Janeiro-2018
Anúncio

Destaque (7)

PDF
Como o Cucumber Funciona
PDF
Aprenda bdd-jogando-dados-ebook
PDF
BDD com Cucumber
PPTX
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
PPTX
Behavior Driven Development
PDF
Introducao aos Bancos de Dados Não-relacionais
Como o Cucumber Funciona
Aprenda bdd-jogando-dados-ebook
BDD com Cucumber
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
Behavior Driven Development
Introducao aos Bancos de Dados Não-relacionais
Anúncio

Semelhante a BDD JBehave (20)

PPTX
Behaviour driven development, com jbehave
PDF
BDD - JBehave + SeleniumHQ + PhantomJS + Fixture Factory
PDF
Demoiselle Behave - Parte 1
PDF
Jefferson Andrade - BDD - Behavior-Driven Development - ITA
PPTX
InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Deve...
PDF
Demoiselle Behave - Visão Geral
PPTX
Behavior-Driven Development (BDD) - DevOps Summit 2016
PDF
Não deixe para testar depois o que você pode testar antes.
PPTX
Indo além dos testes de classes com BDD (Behavior-Driven Development) - DevOp...
PPTX
Indo além dos testes de classes com BDD (Behavior-Driven Development) - Inter...
PDF
QArentena 21: BDD - com Fábio Araújo
PPTX
UFSC - Utilizando BDD para análise de negócio e desenvolvimento de projetos
PPTX
Workshop de Introdução ao BDD
PPTX
Behavior driven development
PPTX
BDD com specflow e selenium webdriver
PPTX
Introdução à BDD (Behavior-driven Development)
KEY
Cucumber com java
PDF
LIVE: BDD, GWTDO e Specification Matching no .NET
PDF
Teste de software
Behaviour driven development, com jbehave
BDD - JBehave + SeleniumHQ + PhantomJS + Fixture Factory
Demoiselle Behave - Parte 1
Jefferson Andrade - BDD - Behavior-Driven Development - ITA
InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Deve...
Demoiselle Behave - Visão Geral
Behavior-Driven Development (BDD) - DevOps Summit 2016
Não deixe para testar depois o que você pode testar antes.
Indo além dos testes de classes com BDD (Behavior-Driven Development) - DevOp...
Indo além dos testes de classes com BDD (Behavior-Driven Development) - Inter...
QArentena 21: BDD - com Fábio Araújo
UFSC - Utilizando BDD para análise de negócio e desenvolvimento de projetos
Workshop de Introdução ao BDD
Behavior driven development
BDD com specflow e selenium webdriver
Introdução à BDD (Behavior-driven Development)
Cucumber com java
LIVE: BDD, GWTDO e Specification Matching no .NET
Teste de software

Mais de Ismael (20)

PDF
TDC 2020 - Trilha de Management 3.0 e Gestão Ágil
PDF
Introducao ao Pensamento Sistemico
PDF
Testes de unidade alem do basico
PDF
Bluesoft Culture
PDF
Como dar e receber feedbacks
PDF
Eficiencia de fluxo
PDF
Como você testa seu software TDC 2017
PDF
Como ter Entregas Frequentes
PDF
JUnit 5 vs JUnit 4
PDF
Conceitos por trás do Ágil
PDF
Boas Praticas de Testes, Bad Smell e Outros Macetes
PDF
8 passos para mudança de John Kotter
PDF
Curva da Mudança Kubler-Ross
PDF
DevCamp 2016
PDF
7 Caracteristicas de um bom Lider Agil
PDF
Law of demeter
PDF
Junit Lambda
PDF
Feedback dos Testes
PDF
Refactoring Databases - Estrategias
PDF
Refactoring Databases - parte 1
TDC 2020 - Trilha de Management 3.0 e Gestão Ágil
Introducao ao Pensamento Sistemico
Testes de unidade alem do basico
Bluesoft Culture
Como dar e receber feedbacks
Eficiencia de fluxo
Como você testa seu software TDC 2017
Como ter Entregas Frequentes
JUnit 5 vs JUnit 4
Conceitos por trás do Ágil
Boas Praticas de Testes, Bad Smell e Outros Macetes
8 passos para mudança de John Kotter
Curva da Mudança Kubler-Ross
DevCamp 2016
7 Caracteristicas de um bom Lider Agil
Law of demeter
Junit Lambda
Feedback dos Testes
Refactoring Databases - Estrategias
Refactoring Databases - parte 1

Último (12)

PPTX
Utilizando code blockes por andre backes
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PDF
Processos no SAP Extended Warehouse Management, EWM100 Col26
PPTX
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Tipos de servidor em redes de computador.pptx
PPT
Conceitos básicos de Redes Neurais Artificiais
PDF
Jira Software projetos completos com scrum
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPTX
Analise Estatica de Compiladores para criar uma nova LP
Utilizando code blockes por andre backes
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Viasol Energia Solar -Soluções para geração e economia de energia
Processos no SAP Extended Warehouse Management, EWM100 Col26
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Manejo integrado de pragas na cultura do algodão
Tipos de servidor em redes de computador.pptx
Conceitos básicos de Redes Neurais Artificiais
Jira Software projetos completos com scrum
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Analise Estatica de Compiladores para criar uma nova LP

BDD JBehave

  • 1. BDD com JBehave Por Ismael Soares
  • 3. Dificuldades ao iniciar com TDD... Por onde começar? O que testar? O teste tem que começar falhando?
  • 4. Cansado de ver problemas como estes, Dan North... Idealiza BDD
  • 5. O que é BDD?
  • 6. BDD (Desenvolvimento Orientado por Comportamento) Uma técnica de desenvolvimento ágil que visa integrar regras de negócios com linguagem de programação.
  • 7. Existem muitas ferramentas Para fazer o trabalho duro... JBehave
  • 9. Por que usar JBehave
  • 10. Facilitar a comunicação entre todos os envolvidos
  • 11. Verificar o comportamento através de integração contínua
  • 15. No Arquivo Texto... Story: Cliente faz saque de dinheiro Como um cliente, eu gostaria de sacar dinheiro em caixa eletrônico, para que eu não tenha que esperar numa fila de banco Scenario : Cliente especial com saldo negativo Given um cliente especial com saldo atual de -200 reais When for solicitado um saque no valor de 100 reais Then deve efetuar o saque e atualizar o saldo da conta para -300 reais Scenario : Cliente comum com saldo negativo Given um cliente comum com saldo atual de -300 reais When solicitar um saque de 200 reais Then não deve efetuar o saque e deve retornar a mensagem Saldo Insuficiente Nome: caixa_eletronico_test (sem extensão e as palavras por “_”)
  • 18. Maven < dependency > < groupId > org.jbehave </ groupId > < artifactId > jbehave-maven-plugin </ artifactId > < version > 2.3.1 </ version > </ dependency >
  • 20. Steps
  • 21. Steps
  • 24. Vantagens Totalmente desenvolvido em Java, o que facilita a integração com outros projetos da mesma plataforma; Os usuários podem especificar e executar as Estórias de usuário baseadas em arquivo texto; Anotações ( @annotations ) que conectam os textos da estória do usuário com os parâmetros dos métodos; Além do console, os resultados dos testes podem ser vistos ainda nos formatos: HTML, TXT e XML. Mas isto requer uma configuração específica que pode ser encontrada na documentação do framework; Controle de todas as etapas (métodos) dos cenários pendentes para que não fiquem sem ser implementadas; Localização das Estórias através de palavras chaves, podendo assim, serem escritas em qualquer idioma (exceto Given, When e Then); Integração com as principais IDEs, entre elas: Eclipse e NetBeans; Execução com ANT e Maven.
  • 25. Links e Referências http://jbehave.org/ Site oficial do framework JBehave. http://codificando.com/2009/04/jbehave-brasil-bdd-em-java-no-nosso-idioma/ Macedo, Emerson. Criando extensão do JBehave. Chelimsky,David, Aslak Hellesøy, Dave Astels, Zach Dennis, Bryan Helmkamp e Dan North. The RSpec Book : Behaviour Driven Development with RSpec, Cucumber, and Friends . Edited by Jacquelyn Carter. ISBN: 978.1.93435.637-1

Notas do Editor

  • #8: Cerca de 10 para Java
  • #10: A filosofia que levou a criação do JBehave é a mesma que originou o desenvolvimento orientado por comportamento.
  • #14: A linguagem de negócio usada em BDD é extraída das estórias fornecidas pelo cliente durante o levantamento dos requisitos. Quando Dan North apresentou este conceito em 2003, ele sugeriu um padrão para escrita destes arquivos. Este é apenas um modelo, ou seja, não é obrigatório. Entretanto, Dan North denota que é extremamente importante a equipe seguir um padrão para facilitar a comunicação entre os envolvidos no projeto.
  • #25: O fato de JBehave ter sido o primeiro framework para criação de testes orientado a comportamento, o fez ser o mais popular dentre os demais do mesmo gênero. Entretanto, isto também se deve às seguintes vantagens que ele apresenta: