SlideShare uma empresa Scribd logo
Behaviour Driven Development  [BDD] Desenvolvimento guiado a comportamento Christiano Milfont XPCE 2009, Fortaleza Copyleft 2009 Milfont.org
Use Case   Um caso de uso captura um contrato entre os interessados de um sistema sobre seus comportamentos . Writing Effective Use Cases Alistair Cockburn Behaviour Driven Development User Story   Uma estoria descreve funcionalmente o que será valioso para os usuários e aos compradores de um software . User Stories Applied  Mike Cohn
User Story Card  [cartão] Conversation  [conversação] Confirmation  [confirmação] “ Ron Jeffries, 2001” Behaviour Driven Development
User Story I ndependente N egociável V alioso ao comprador E stimável S mall [Pequena] T estável User Stories Applied  Mike Cohn Behaviour Driven Development
Behaviour Driven Development Story Card
Behaviour Driven Development Story Card
Behaviour Driven Development Story Card
Behaviour Driven Development Story Card As a…   I want… so that… “ BDD fornece uma linguagem ubíqua para análise” Dan North
Behaviour Driven Development Story Card As a   [X] I want  [Y] so that  [Z] Onde:  Y  é alguma funcionalidade ou característica,  Z  é o benefício ou valor dessa funcionalidade e  X  é a pessoa ou perfil/papel beneficiado
Behaviour Driven Development Story Card As a   [role] I want to  [activity] To do  [a task]
Behaviour Driven Development Story Card As a  “ membro do projeto ” I want  “ Criar uma issue ” so that  “ Eu possa acompanhar a resolução ” As a  “ gerente do projeto ” I want  “ aceitar a entrada de uma issue ” so that  “ seja descartada ou resolvida apenas com minha permissão ”
Behaviour Driven Development Acceptance Criteria Given  [dado] When  [quando] Then  [então]
Behaviour Driven Development Acceptance Criteria Given   uma issue preenchida e um projeto informado When   um membro requisitar o cadastro Then   garantir que ela seja armazenada no sistema  And  uma mensagem seja informada And  a issue esteja na lista de não-confirmadas
Behaviour Driven Development Acceptance Criteria Given  uma issue preenchida  And  um projeto informado  And  um membro autorizado When  um membro requisitar o cadastro Then  garantir que ela seja armazenada no sistema  And  uma mensagem seja informada And  a issue esteja na lista de "novas issues" a serem resolvidas
Behaviour Driven Development Titulo: Cadastrar Issues As a   membro do projeto I want  criar uma issue So that  eu possa acompanhar a resolução do mesmo. Cenário 1 Given  uma issue preenchida e um projeto informado When  um membro requisitar o cadastro Then  garantir que ela seja armazenada no sistema  And  uma mensagem seja informada   And  a issue esteja na lista de não-confirmadas Cenário 2 Given  um nome e um tipo e um nivel e um sumario a um projeto When  o membro requisitar o cadastro Then  garantir que seja criada uma issue   And  armazenada no sistema   And  uma mensagem seja informada   And  a issue esteja na lista de não-confirmadas
Behaviour Driven Development Given  um nome e um tipo e um nivel e um sumario a um projeto When  o membro requisitar o cadastro Then  garantir que seja criada uma issue   And  armazenada no sistema   And  uma mensagem seja informada   And  a issue esteja na lista de não-confirmadas @Given ("a  $name  and a  $type  and a  $level  and a  $summary  and a  $project ") public void  relatar(String  name… )  throws  IllegalArgumentIssueException { throw new IllegalArgumentIssueException("erro"); }
Behaviour Driven Development Given  um nome e um tipo e um nivel e um sumario a um projeto When  o membro requisitar o cadastro Then  garantir que seja criada uma issue   And  armazenada no sistema   And  uma mensagem seja informada   And  a issue esteja na lista de não-confirmadas @Given ("a  $name  and a  $type  and a  $level  and a  $summary  and a  $project ") public void  relatar(String  name… )  throws  IllegalArgumentIssueException { Issue  issue = member .createIssue( name ) .withType( type ) .withLevel( level ) .withSummary( summary ) .toProject( project) ; ensureThat(issue .getStatus(), equalTo(Status. UNCONFIRMED )); … }
Behaviour Driven Development Reference http://groups.google.com.br/group/xpce

Mais conteúdo relacionado

PPT
Mare de Agilidade - BDD e TDD
ODP
Mvc sem Controller
ODP
BDD com Cucumber, Selenium e Rails
PPT
Test Driven Development
PDF
Apresentando Extreme Programming
PDF
Domain driven design
ODP
Combinando OO e Funcional em javascript de forma prática
PDF
Equipes sem Líderes formais e realmente autogeridas
Mare de Agilidade - BDD e TDD
Mvc sem Controller
BDD com Cucumber, Selenium e Rails
Test Driven Development
Apresentando Extreme Programming
Domain driven design
Combinando OO e Funcional em javascript de forma prática
Equipes sem Líderes formais e realmente autogeridas

Semelhante a Behaviour Driven Development (20)

PPTX
Behavior-Driven Development (BDD) - DevOps Summit 2016
PDF
Jefferson Andrade - BDD - Behavior-Driven Development - ITA
PPTX
Behavior-Driven Development (BDD) - QA Ninja Conf 2016
PDF
Desenvolvimento BDD
PPTX
BDD (Behavior-Driven Development) - GDG-SP - Julho/2016
PDF
LIVE: BDD, GWTDO e Specification Matching no .NET
PDF
Desenvolvimento ágil de software
PPTX
InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Deve...
PDF
[GDG Quality Fest 2017] BDD - Como quebrar as barreiras de negócio dentro do ...
PPTX
Behaviour driven development, com jbehave
PPTX
UFSC - Utilizando BDD para análise de negócio e desenvolvimento de projetos
PPTX
Behavior driven development
PPTX
Agile Brazil 2018 BDD - a chave para melhorar a comunicação entre stakehold...
PDF
BDD em Ação
KEY
Bdd e ci
PPTX
Behavior-Driven Development (BDD) - Abril/2017
PDF
QArentena 21: BDD - com Fábio Araújo
PPTX
Agile trends GOV - Foco no Valor: Utilizando BDD para melhorar a comunicação ...
Behavior-Driven Development (BDD) - DevOps Summit 2016
Jefferson Andrade - BDD - Behavior-Driven Development - ITA
Behavior-Driven Development (BDD) - QA Ninja Conf 2016
Desenvolvimento BDD
BDD (Behavior-Driven Development) - GDG-SP - Julho/2016
LIVE: BDD, GWTDO e Specification Matching no .NET
Desenvolvimento ágil de software
InterCon 2017 - Indo além dos testes de classes com BDD (Behavior-Driven Deve...
[GDG Quality Fest 2017] BDD - Como quebrar as barreiras de negócio dentro do ...
Behaviour driven development, com jbehave
UFSC - Utilizando BDD para análise de negócio e desenvolvimento de projetos
Behavior driven development
Agile Brazil 2018 BDD - a chave para melhorar a comunicação entre stakehold...
BDD em Ação
Bdd e ci
Behavior-Driven Development (BDD) - Abril/2017
QArentena 21: BDD - com Fábio Araújo
Agile trends GOV - Foco no Valor: Utilizando BDD para melhorar a comunicação ...
Anúncio

Mais de Milfont Consulting (20)

ODP
Continuous integration e continuous delivery para salvar o seu projeto!
ODP
ODP
Engine de template em Javascript com HTML Sprites
ODP
MVC Model 3
ODP
Dar caos à ordem
ODP
I TDD my jQuery code without Browser
PDF
Oxente BDD
PDF
Construindo WebApps ricas com Rails e Sencha
PDF
Dar Ordem ao Caos
PPT
Primeiro Dia Livre Opensocial
ODP
Tw Dwr 2007 Ap01
PPT
Course Hibernate 2008
PDF
Opensocial
PPT
Frameworks Ajax
PDF
OpenSocial CCT
PDF
PDF
Conhecendo a JSR 223: Scripting for the Java Platform
ODP
Ajaxificando
PDF
Integração Contínua 3FCSL
PPT
Extreme Programming
Continuous integration e continuous delivery para salvar o seu projeto!
Engine de template em Javascript com HTML Sprites
MVC Model 3
Dar caos à ordem
I TDD my jQuery code without Browser
Oxente BDD
Construindo WebApps ricas com Rails e Sencha
Dar Ordem ao Caos
Primeiro Dia Livre Opensocial
Tw Dwr 2007 Ap01
Course Hibernate 2008
Opensocial
Frameworks Ajax
OpenSocial CCT
Conhecendo a JSR 223: Scripting for the Java Platform
Ajaxificando
Integração Contínua 3FCSL
Extreme Programming
Anúncio

Último (16)

PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Arquitetura de computadores - Memórias Secundárias
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
COBITxITIL-Entenda as diferença em uso governança TI
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Custos e liquidação no SAP Transportation Management, TM130 Col18
Processos na gestão de transportes, TM100 Col18
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Arquitetura de computadores - Memórias Secundárias
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14

Behaviour Driven Development

  • 1. Behaviour Driven Development [BDD] Desenvolvimento guiado a comportamento Christiano Milfont XPCE 2009, Fortaleza Copyleft 2009 Milfont.org
  • 2. Use Case Um caso de uso captura um contrato entre os interessados de um sistema sobre seus comportamentos . Writing Effective Use Cases Alistair Cockburn Behaviour Driven Development User Story Uma estoria descreve funcionalmente o que será valioso para os usuários e aos compradores de um software . User Stories Applied Mike Cohn
  • 3. User Story Card [cartão] Conversation [conversação] Confirmation [confirmação] “ Ron Jeffries, 2001” Behaviour Driven Development
  • 4. User Story I ndependente N egociável V alioso ao comprador E stimável S mall [Pequena] T estável User Stories Applied Mike Cohn Behaviour Driven Development
  • 8. Behaviour Driven Development Story Card As a… I want… so that… “ BDD fornece uma linguagem ubíqua para análise” Dan North
  • 9. Behaviour Driven Development Story Card As a [X] I want [Y] so that [Z] Onde: Y é alguma funcionalidade ou característica, Z é o benefício ou valor dessa funcionalidade e X é a pessoa ou perfil/papel beneficiado
  • 10. Behaviour Driven Development Story Card As a [role] I want to [activity] To do [a task]
  • 11. Behaviour Driven Development Story Card As a “ membro do projeto ” I want “ Criar uma issue ” so that “ Eu possa acompanhar a resolução ” As a “ gerente do projeto ” I want “ aceitar a entrada de uma issue ” so that “ seja descartada ou resolvida apenas com minha permissão ”
  • 12. Behaviour Driven Development Acceptance Criteria Given [dado] When [quando] Then [então]
  • 13. Behaviour Driven Development Acceptance Criteria Given uma issue preenchida e um projeto informado When um membro requisitar o cadastro Then garantir que ela seja armazenada no sistema And uma mensagem seja informada And a issue esteja na lista de não-confirmadas
  • 14. Behaviour Driven Development Acceptance Criteria Given uma issue preenchida And um projeto informado And um membro autorizado When um membro requisitar o cadastro Then garantir que ela seja armazenada no sistema And uma mensagem seja informada And a issue esteja na lista de "novas issues" a serem resolvidas
  • 15. Behaviour Driven Development Titulo: Cadastrar Issues As a membro do projeto I want criar uma issue So that eu possa acompanhar a resolução do mesmo. Cenário 1 Given uma issue preenchida e um projeto informado When um membro requisitar o cadastro Then garantir que ela seja armazenada no sistema And uma mensagem seja informada And a issue esteja na lista de não-confirmadas Cenário 2 Given um nome e um tipo e um nivel e um sumario a um projeto When o membro requisitar o cadastro Then garantir que seja criada uma issue And armazenada no sistema And uma mensagem seja informada And a issue esteja na lista de não-confirmadas
  • 16. Behaviour Driven Development Given um nome e um tipo e um nivel e um sumario a um projeto When o membro requisitar o cadastro Then garantir que seja criada uma issue And armazenada no sistema And uma mensagem seja informada And a issue esteja na lista de não-confirmadas @Given ("a $name and a $type and a $level and a $summary and a $project ") public void relatar(String name… ) throws IllegalArgumentIssueException { throw new IllegalArgumentIssueException("erro"); }
  • 17. Behaviour Driven Development Given um nome e um tipo e um nivel e um sumario a um projeto When o membro requisitar o cadastro Then garantir que seja criada uma issue And armazenada no sistema And uma mensagem seja informada And a issue esteja na lista de não-confirmadas @Given ("a $name and a $type and a $level and a $summary and a $project ") public void relatar(String name… ) throws IllegalArgumentIssueException { Issue issue = member .createIssue( name ) .withType( type ) .withLevel( level ) .withSummary( summary ) .toProject( project) ; ensureThat(issue .getStatus(), equalTo(Status. UNCONFIRMED )); … }
  • 18. Behaviour Driven Development Reference http://groups.google.com.br/group/xpce

Notas do Editor

  • #2: Falar da industria de softwares, modelo enterprisey, dizer que isso tudo é velharia. Craftmanship manifesto, Agile manifesto Requirements are behaviour,too BDD provides a “ubiquitous language” for analysis Lembrar que tudo não passa de dicas para modelar o domínio do coração do sistema durante o jogo do planejamento e desenvolvimento diário. BDD é uma forma de levar TDD adiante, ir além dos testes e ajudar na modelagem da aplicação se concentrando nas funcionalidades e não permitindo que se saia do estritamente necessário. Test se tornou Behaviou, Fixture se tornou context, assert se tornou should Testes como especificação Design não é subset deRefactoring e sim o refactoring faz parte do design