SlideShare uma empresa Scribd logo
1 de 30
BDD - Integrando
regras de negócio
e programação
OLÁ!
Meu nome é Gleica Reinert
Sou Scrum Master na GovernançaBrasil - GOVBR.
linkedin.com/in/gleica
2
● Bacharela em Ciências
Contábeis (FURB)
● MBA em Gestão
Tributária (INPG)
● Pós-Graduanda em
Administração Pública
(Unicesumar)
Entrei na área de Tecnologia em 2012
➔ Analista Suporte/Atendimento
Técnico (1,2 anos)
➔ Analista de Qualidade/Analista
de Testes (5 anos)
➔ Scrum Master (atuando)
3
BDD - Behavior
Driven Development
...ou…
Desenvolvimento
Guiado por
Comportamento
4
“BDD é sobre implementar
uma aplicação através da
descrição de seu
comportamento pela
perspectiva de seus
stakeholders”.
(Dan North)
5
BDD é uma técnica de desenvolvimento ágil que visa
integrar regras de negócios com a linguagem de
programação, focando no comportamento do software.
O intuito é manter uma linguagem estruturada onde todos
os membros do time possam compreender a necessidade
da entrega. Para isso, é utilizado um modelo de escrita,
chamado Gherkin.
6
7
É uma linguagem que foi criada especialmente
para descrições de comportamento, ela tem a
capacidade de remover detalhes da lógica de
programação e focar no comportamento que
uma funcionalidade deve ter.
8
Os cenários representam exemplos concretos que
ilustram restrições de negócio e são constituídos de
uma lista de passos. Além de ser uma especificação
do negócio, o cenário é também um teste
(comportamento).
Em resumo: os cenários são uma especificação
executável do sistema.
9
10
Os cenários são descritos em forma de pré-condições, eventos e
resultados esperados usando a sintaxe: Dado/Quando/Então,
respectivamente.
Título [...]
Dado que (Given) [...]
Quando (When) [...]
Então (Then) [...]
Título [...]
Dado contexto [...]
E [um pouco mais de contexto...]
Quando [eventos]
Então [resultado]
E [outro resultado ...]
Funcionalidade: Calculadora
Título: Validar a soma de dois números
Dado que inseri o valor 10 na calculadora e pressionei o botão
de adição (+)
Quando inserir o valor 40 e pressionar o botão igual (=)
Então o número 50 deve ser exibido em tela.
11
IMPORTANTE Podem haver múltiplos passos
(combinação quando/então), mas
recomenda-se que o número de ações e
resultados esperados seja mantido entre
3-5 por cenário. Caso tenham um
número acima de 5, eles perdem sua
simplicidade e o seu poder expressivo.
12
BENEFÍCIOS
13
14
Melhora a comunicação
entre desenvolvimento,
testes e a própria área de
negócios, aumentando o
compartilhamento de
conhecimento entre elas.
15
E A PROGRAMAÇÃO…?
16
17
O objetivo de ter uma ferramenta que execute
a linguagem do BDD/Gherkin é a facilidade de
automatizar os cenários criados, pois esta
tanto irá validar o software quanto fornecer
uma documentação atualizada, técnica e
funcional.
18
Existem várias ferramentas e frameworks que dão
suporte ao BDD, de acordo com sua linguagem de
programação.
➢ SpecFlow
➢ Cucumber
➢ JBehave
➢ Selenium
specflow
19
20
“Use o SpecFlow para definir, gerenciar e executar
automaticamente testes de aceitação legíveis em projetos .NET.
Escrever testes facilmente compreensíveis é uma pedra angular
do paradigma BDD e também ajuda a construir uma
documentação viva do seu sistema.
O SpecFlow é open source e usa o analisador Gherkin oficial. Ele
integra-se ao Visual Studio, mas também pode ser usado a partir
da linha de comando (por exemplo, em um servidor de
compilação).”
Fonte: https://specflow.org/
instalação
21
CRIANDO cenários...
22
23
24
Dado...
Quando...
Então...
25
AUTOMAÇÃO
O propósito não é anular as
práticas de TDD, muito pelo
contrário, é adicionar a
elas uma série de outras
vantagens.
26
Documentação
dinâmica
visão do todo
comunicação efetiva
compartilhamento
de conhecimento
COMUNIDADES
27
https://www.meetup.com/pt-BR/Agile-Beer-Blumenau/
COMUNIDADES
28
https://www.meetup.com/pt-BR/Mulheres-de-Produto/
29
× SpecFlow (https://specflow.org/)
× "Gherkin" - Comunicação através de um vocabulário pequeno e
comum, diminuindo a distância entre o negócio e a equipe de TI.
× Utilizando BDD para análise de negócio e desenvolvimento de
projetos - Allan Rett Ferreira
× Especificação de Requisitos usando BDD+SpecFlow+Selenium
× BDD - A técnica que facilita entregar software que REALMENTE
atende o negócio
obrigada!
Perguntas?
linkedin.com/in/gleica
➔ Feedbacks são bem vindos! 30

Mais conteúdo relacionado

Mais procurados

Desenvolvimento ágil de software
Desenvolvimento ágil de softwareDesenvolvimento ágil de software
Desenvolvimento ágil de softwarediogenes.araujo
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
Qualidade de Software - Uma visão de desenvolvedor
Qualidade de Software - Uma visão de desenvolvedorQualidade de Software - Uma visão de desenvolvedor
Qualidade de Software - Uma visão de desenvolvedorPaulo Moura
 
Feature driven development
Feature driven developmentFeature driven development
Feature driven developmentIzabel Rodrigues
 
Projeto Supervisionado 2 - BM&FBovespa
Projeto Supervisionado 2 - BM&FBovespaProjeto Supervisionado 2 - BM&FBovespa
Projeto Supervisionado 2 - BM&FBovespaLuiz Contim
 
Feature Driven Development (FDD)
Feature Driven Development (FDD)Feature Driven Development (FDD)
Feature Driven Development (FDD)Vitor Pacheco
 
Fluxograma processo - desenvolvimento de software
Fluxograma   processo - desenvolvimento de softwareFluxograma   processo - desenvolvimento de software
Fluxograma processo - desenvolvimento de softwareAragon Vieira
 
Palestra papel do desenvolvedor no sucesso da empresa
Palestra papel do desenvolvedor no sucesso da empresaPalestra papel do desenvolvedor no sucesso da empresa
Palestra papel do desenvolvedor no sucesso da empresaHenrique Nunes Bez Fontana
 
Agile Brazil 2018 BDD - a chave para melhorar a comunicação entre stakehold...
Agile Brazil 2018   BDD - a chave para melhorar a comunicação entre stakehold...Agile Brazil 2018   BDD - a chave para melhorar a comunicação entre stakehold...
Agile Brazil 2018 BDD - a chave para melhorar a comunicação entre stakehold...Allan Ferreira
 
Apresentação de BDD com SpecFlow e Selenium
Apresentação de BDD com SpecFlow e SeleniumApresentação de BDD com SpecFlow e Selenium
Apresentação de BDD com SpecFlow e SeleniumRafael Cruz, MCT, MBA
 
UFSC - Utilizando BDD para análise de negócio e desenvolvimento de projetos
UFSC - Utilizando BDD para análise de negócio e desenvolvimento de projetosUFSC - Utilizando BDD para análise de negócio e desenvolvimento de projetos
UFSC - Utilizando BDD para análise de negócio e desenvolvimento de projetosAllan Ferreira
 
Testes Gourmetizados
Testes GourmetizadosTestes Gourmetizados
Testes Gourmetizados4ALL Tests
 
Behavior Driven Development - Unificando propostas de negócio com testes e có...
Behavior Driven Development - Unificando propostas de negócio com testes e có...Behavior Driven Development - Unificando propostas de negócio com testes e có...
Behavior Driven Development - Unificando propostas de negócio com testes e có...Rafael Prallon
 
Apresentação pre tcc
Apresentação pre tccApresentação pre tcc
Apresentação pre tccRafael Marega
 

Mais procurados (20)

Desenvolvimento ágil de software
Desenvolvimento ágil de softwareDesenvolvimento ágil de software
Desenvolvimento ágil de software
 
Feature Driven Development - FDD
Feature Driven Development - FDDFeature Driven Development - FDD
Feature Driven Development - FDD
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Qualidade de Software - Uma visão de desenvolvedor
Qualidade de Software - Uma visão de desenvolvedorQualidade de Software - Uma visão de desenvolvedor
Qualidade de Software - Uma visão de desenvolvedor
 
Feature driven development
Feature driven developmentFeature driven development
Feature driven development
 
Projeto Supervisionado 2 - BM&FBovespa
Projeto Supervisionado 2 - BM&FBovespaProjeto Supervisionado 2 - BM&FBovespa
Projeto Supervisionado 2 - BM&FBovespa
 
FDD
FDDFDD
FDD
 
FDD
FDDFDD
FDD
 
Apresentação fdd
Apresentação fddApresentação fdd
Apresentação fdd
 
Feature Driven Development (FDD)
Feature Driven Development (FDD)Feature Driven Development (FDD)
Feature Driven Development (FDD)
 
Fluxograma processo - desenvolvimento de software
Fluxograma   processo - desenvolvimento de softwareFluxograma   processo - desenvolvimento de software
Fluxograma processo - desenvolvimento de software
 
Palestra papel do desenvolvedor no sucesso da empresa
Palestra papel do desenvolvedor no sucesso da empresaPalestra papel do desenvolvedor no sucesso da empresa
Palestra papel do desenvolvedor no sucesso da empresa
 
Agile Brazil 2018 BDD - a chave para melhorar a comunicação entre stakehold...
Agile Brazil 2018   BDD - a chave para melhorar a comunicação entre stakehold...Agile Brazil 2018   BDD - a chave para melhorar a comunicação entre stakehold...
Agile Brazil 2018 BDD - a chave para melhorar a comunicação entre stakehold...
 
Apresentação de BDD com SpecFlow e Selenium
Apresentação de BDD com SpecFlow e SeleniumApresentação de BDD com SpecFlow e Selenium
Apresentação de BDD com SpecFlow e Selenium
 
UFSC - Utilizando BDD para análise de negócio e desenvolvimento de projetos
UFSC - Utilizando BDD para análise de negócio e desenvolvimento de projetosUFSC - Utilizando BDD para análise de negócio e desenvolvimento de projetos
UFSC - Utilizando BDD para análise de negócio e desenvolvimento de projetos
 
Testes Gourmetizados
Testes GourmetizadosTestes Gourmetizados
Testes Gourmetizados
 
SCRUM
SCRUMSCRUM
SCRUM
 
Jasmine
Jasmine Jasmine
Jasmine
 
Behavior Driven Development - Unificando propostas de negócio com testes e có...
Behavior Driven Development - Unificando propostas de negócio com testes e có...Behavior Driven Development - Unificando propostas de negócio com testes e có...
Behavior Driven Development - Unificando propostas de negócio com testes e có...
 
Apresentação pre tcc
Apresentação pre tccApresentação pre tcc
Apresentação pre tcc
 

Semelhante a BDD - Integrando regras de negócio e programação

TDC2017 | Florianópolis - Trilha Analise de Negocios Utilizando BDD para anal...
TDC2017 | Florianópolis - Trilha Analise de Negocios Utilizando BDD para anal...TDC2017 | Florianópolis - Trilha Analise de Negocios Utilizando BDD para anal...
TDC2017 | Florianópolis - Trilha Analise de Negocios Utilizando BDD para anal...tdc-globalcode
 
TDC SP 2018 - Utilizando BDD para análise de negócio e desenvolvimento de pro...
TDC SP 2018 - Utilizando BDD para análise de negócio e desenvolvimento de pro...TDC SP 2018 - Utilizando BDD para análise de negócio e desenvolvimento de pro...
TDC SP 2018 - Utilizando BDD para análise de negócio e desenvolvimento de pro...Allan Ferreira
 
Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Rennan Martini
 
Integração do Zabbix com Testes Automatizados
Integração do Zabbix com Testes AutomatizadosIntegração do Zabbix com Testes Automatizados
Integração do Zabbix com Testes AutomatizadosRobert Silva
 
DevQA: Especificações Vivas: Como criar testes compiláveis para o seu User Ca...
DevQA: Especificações Vivas: Como criar testes compiláveis para o seu User Ca...DevQA: Especificações Vivas: Como criar testes compiláveis para o seu User Ca...
DevQA: Especificações Vivas: Como criar testes compiláveis para o seu User Ca...Kamilla Queiroz Xavier
 
Apresentação TDC2015
Apresentação TDC2015Apresentação TDC2015
Apresentação TDC2015Bruno Murawski
 
Automacao de testes em .NET? Keep Calm and Just do It
Automacao de testes em .NET? Keep Calm and Just do ItAutomacao de testes em .NET? Keep Calm and Just do It
Automacao de testes em .NET? Keep Calm and Just do Ittdc-globalcode
 
Design for change: Fatores que influenciam na longevidade de um Software PHP
Design for change: Fatores que influenciam na longevidade de um Software PHPDesign for change: Fatores que influenciam na longevidade de um Software PHP
Design for change: Fatores que influenciam na longevidade de um Software PHPPablo Dall'Oglio
 
Cursos Agile Think - Feature Driven Development (FDD) - 4/4
Cursos Agile Think - Feature Driven Development (FDD) - 4/4Cursos Agile Think - Feature Driven Development (FDD) - 4/4
Cursos Agile Think - Feature Driven Development (FDD) - 4/4André Vidal
 
Cursos Agile Think - Feature Driven Development (FDD) - 4/4
Cursos Agile Think - Feature Driven Development (FDD) - 4/4Cursos Agile Think - Feature Driven Development (FDD) - 4/4
Cursos Agile Think - Feature Driven Development (FDD) - 4/4Agile Think® Share
 
Workshop Agilizando Projetos com SCRUM
Workshop Agilizando Projetos com SCRUMWorkshop Agilizando Projetos com SCRUM
Workshop Agilizando Projetos com SCRUMElumini Outdoing IT
 
FDD para equipes não tão ágeis
FDD para equipes não tão ágeisFDD para equipes não tão ágeis
FDD para equipes não tão ágeisguilhermepinter
 
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)André Dias
 
Agile trends GOV - Foco no Valor: Utilizando BDD para melhorar a comunicação ...
Agile trends GOV - Foco no Valor: Utilizando BDD para melhorar a comunicação ...Agile trends GOV - Foco no Valor: Utilizando BDD para melhorar a comunicação ...
Agile trends GOV - Foco no Valor: Utilizando BDD para melhorar a comunicação ...Guilherme Azevedo Cardozo
 
Fdd feature driven development (slide ) do trabalho
Fdd   feature driven development (slide ) do trabalhoFdd   feature driven development (slide ) do trabalho
Fdd feature driven development (slide ) do trabalhoLemon Lopes Leite
 

Semelhante a BDD - Integrando regras de negócio e programação (20)

Artigo
ArtigoArtigo
Artigo
 
Artigo23
Artigo23Artigo23
Artigo23
 
TDC2017 | Florianópolis - Trilha Analise de Negocios Utilizando BDD para anal...
TDC2017 | Florianópolis - Trilha Analise de Negocios Utilizando BDD para anal...TDC2017 | Florianópolis - Trilha Analise de Negocios Utilizando BDD para anal...
TDC2017 | Florianópolis - Trilha Analise de Negocios Utilizando BDD para anal...
 
TDC SP 2018 - Utilizando BDD para análise de negócio e desenvolvimento de pro...
TDC SP 2018 - Utilizando BDD para análise de negócio e desenvolvimento de pro...TDC SP 2018 - Utilizando BDD para análise de negócio e desenvolvimento de pro...
TDC SP 2018 - Utilizando BDD para análise de negócio e desenvolvimento de pro...
 
Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)
 
Integração do Zabbix com Testes Automatizados
Integração do Zabbix com Testes AutomatizadosIntegração do Zabbix com Testes Automatizados
Integração do Zabbix com Testes Automatizados
 
Artigo corrigido
Artigo corrigidoArtigo corrigido
Artigo corrigido
 
BDD
BDDBDD
BDD
 
DevQA: Especificações Vivas: Como criar testes compiláveis para o seu User Ca...
DevQA: Especificações Vivas: Como criar testes compiláveis para o seu User Ca...DevQA: Especificações Vivas: Como criar testes compiláveis para o seu User Ca...
DevQA: Especificações Vivas: Como criar testes compiláveis para o seu User Ca...
 
Apresentação TDC2015
Apresentação TDC2015Apresentação TDC2015
Apresentação TDC2015
 
Automacao de testes em .NET? Keep Calm and Just do It
Automacao de testes em .NET? Keep Calm and Just do ItAutomacao de testes em .NET? Keep Calm and Just do It
Automacao de testes em .NET? Keep Calm and Just do It
 
DDD
DDDDDD
DDD
 
Design for change: Fatores que influenciam na longevidade de um Software PHP
Design for change: Fatores que influenciam na longevidade de um Software PHPDesign for change: Fatores que influenciam na longevidade de um Software PHP
Design for change: Fatores que influenciam na longevidade de um Software PHP
 
Cursos Agile Think - Feature Driven Development (FDD) - 4/4
Cursos Agile Think - Feature Driven Development (FDD) - 4/4Cursos Agile Think - Feature Driven Development (FDD) - 4/4
Cursos Agile Think - Feature Driven Development (FDD) - 4/4
 
Cursos Agile Think - Feature Driven Development (FDD) - 4/4
Cursos Agile Think - Feature Driven Development (FDD) - 4/4Cursos Agile Think - Feature Driven Development (FDD) - 4/4
Cursos Agile Think - Feature Driven Development (FDD) - 4/4
 
Workshop Agilizando Projetos com SCRUM
Workshop Agilizando Projetos com SCRUMWorkshop Agilizando Projetos com SCRUM
Workshop Agilizando Projetos com SCRUM
 
FDD para equipes não tão ágeis
FDD para equipes não tão ágeisFDD para equipes não tão ágeis
FDD para equipes não tão ágeis
 
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
 
Agile trends GOV - Foco no Valor: Utilizando BDD para melhorar a comunicação ...
Agile trends GOV - Foco no Valor: Utilizando BDD para melhorar a comunicação ...Agile trends GOV - Foco no Valor: Utilizando BDD para melhorar a comunicação ...
Agile trends GOV - Foco no Valor: Utilizando BDD para melhorar a comunicação ...
 
Fdd feature driven development (slide ) do trabalho
Fdd   feature driven development (slide ) do trabalhoFdd   feature driven development (slide ) do trabalho
Fdd feature driven development (slide ) do trabalho
 

BDD - Integrando regras de negócio e programação

  • 1. BDD - Integrando regras de negócio e programação
  • 2. OLÁ! Meu nome é Gleica Reinert Sou Scrum Master na GovernançaBrasil - GOVBR. linkedin.com/in/gleica 2
  • 3. ● Bacharela em Ciências Contábeis (FURB) ● MBA em Gestão Tributária (INPG) ● Pós-Graduanda em Administração Pública (Unicesumar) Entrei na área de Tecnologia em 2012 ➔ Analista Suporte/Atendimento Técnico (1,2 anos) ➔ Analista de Qualidade/Analista de Testes (5 anos) ➔ Scrum Master (atuando) 3
  • 4. BDD - Behavior Driven Development ...ou… Desenvolvimento Guiado por Comportamento 4
  • 5. “BDD é sobre implementar uma aplicação através da descrição de seu comportamento pela perspectiva de seus stakeholders”. (Dan North) 5
  • 6. BDD é uma técnica de desenvolvimento ágil que visa integrar regras de negócios com a linguagem de programação, focando no comportamento do software. O intuito é manter uma linguagem estruturada onde todos os membros do time possam compreender a necessidade da entrega. Para isso, é utilizado um modelo de escrita, chamado Gherkin. 6
  • 7. 7
  • 8. É uma linguagem que foi criada especialmente para descrições de comportamento, ela tem a capacidade de remover detalhes da lógica de programação e focar no comportamento que uma funcionalidade deve ter. 8
  • 9. Os cenários representam exemplos concretos que ilustram restrições de negócio e são constituídos de uma lista de passos. Além de ser uma especificação do negócio, o cenário é também um teste (comportamento). Em resumo: os cenários são uma especificação executável do sistema. 9
  • 10. 10 Os cenários são descritos em forma de pré-condições, eventos e resultados esperados usando a sintaxe: Dado/Quando/Então, respectivamente. Título [...] Dado que (Given) [...] Quando (When) [...] Então (Then) [...] Título [...] Dado contexto [...] E [um pouco mais de contexto...] Quando [eventos] Então [resultado] E [outro resultado ...]
  • 11. Funcionalidade: Calculadora Título: Validar a soma de dois números Dado que inseri o valor 10 na calculadora e pressionei o botão de adição (+) Quando inserir o valor 40 e pressionar o botão igual (=) Então o número 50 deve ser exibido em tela. 11
  • 12. IMPORTANTE Podem haver múltiplos passos (combinação quando/então), mas recomenda-se que o número de ações e resultados esperados seja mantido entre 3-5 por cenário. Caso tenham um número acima de 5, eles perdem sua simplicidade e o seu poder expressivo. 12
  • 14. 14
  • 15. Melhora a comunicação entre desenvolvimento, testes e a própria área de negócios, aumentando o compartilhamento de conhecimento entre elas. 15
  • 17. 17 O objetivo de ter uma ferramenta que execute a linguagem do BDD/Gherkin é a facilidade de automatizar os cenários criados, pois esta tanto irá validar o software quanto fornecer uma documentação atualizada, técnica e funcional.
  • 18. 18 Existem várias ferramentas e frameworks que dão suporte ao BDD, de acordo com sua linguagem de programação. ➢ SpecFlow ➢ Cucumber ➢ JBehave ➢ Selenium
  • 20. 20 “Use o SpecFlow para definir, gerenciar e executar automaticamente testes de aceitação legíveis em projetos .NET. Escrever testes facilmente compreensíveis é uma pedra angular do paradigma BDD e também ajuda a construir uma documentação viva do seu sistema. O SpecFlow é open source e usa o analisador Gherkin oficial. Ele integra-se ao Visual Studio, mas também pode ser usado a partir da linha de comando (por exemplo, em um servidor de compilação).” Fonte: https://specflow.org/
  • 23. 23
  • 26. O propósito não é anular as práticas de TDD, muito pelo contrário, é adicionar a elas uma série de outras vantagens. 26 Documentação dinâmica visão do todo comunicação efetiva compartilhamento de conhecimento
  • 29. 29 × SpecFlow (https://specflow.org/) × "Gherkin" - Comunicação através de um vocabulário pequeno e comum, diminuindo a distância entre o negócio e a equipe de TI. × Utilizando BDD para análise de negócio e desenvolvimento de projetos - Allan Rett Ferreira × Especificação de Requisitos usando BDD+SpecFlow+Selenium × BDD - A técnica que facilita entregar software que REALMENTE atende o negócio