Prof. Dr. Luiz Alberto Vieira Dias
Aluno: Jefferson Andrade de Oliveira Júnior
2jefferson@gmail.com
ITA – PG/EEC-I – CE-229 – Teste de Software– Junho de 2013
BDD
Behavior-Driven Development
AGENDA
Jefferson Andrade – CE-229 – BDD 2 / 30
APRESENTAÇÃO
JEFFERSON ANDRADE DE OLIVEIRA JÚNIOR
@AndradeJeff
3 / 30Jefferson Andrade – CE-229 – BDD
Especialista em Tecnologia – Imagem Soluções de Inteligência Geográfica
Certificado Professional Scrum Master
Certificado Professional Scrum Developer
Certificado Oracle Java Programmer (SCJP)
Certificado Oracle Java Enterprise Architect (OCMJEA)
Bacharel em Ciência da Computação – DCC/UFMG
Especialista em Engenharia de Software – DCC/UFMG
MBA em Gerência de Projetos – FGV
MOTIVAÇÃO
Jefferson Andrade – CE-229 – BDD 4 / 30
“Não era bem isso que eu queria.” - Usuário
“Informando estes valores não apareceu o resultado
desejado.” - Testador
“Porque ficou azul quando eu informei 0 graus e
vermelho quando informei 100?” – Usuário
“Para mim este comportamento de fechar a janela
sem perguntar nada era óbvio neste caso de erro.” -
Desenvolvedor
Evitar frases do tipo:
O QUE É BDD?
5 / 30Jefferson Andrade – CE-229 – BDD
BDD – Behaviour-Driven Development
(Desenvolvimento Orientado ao Comportamento)
Criado por:
BDD
BDD possui uma linguagem única para especificar
comportamentos.
BDD é uma técnica de desenvolvimento ágil que visa integrar
regras de negócios com linguagem de programação.
"Behaviour-driven development is about implementing an
application by describing its behaviour from the perspective of its
stakeholders“.
“It describes a cycle of interactions with welldefined outputs,
resulting in the delivery of working, tested software that matters.”
Behavior-driven development é uma versão especializada do
Test-Driven Development que foca na especificação do
comportamento das unidades de software.
Jefferson Andrade – CE-229 – BDD 6 / 30
CENÁRIOS DE NEGÓCIO
7 / 30Jefferson Andrade – CE-229 – BDD
Story: [Narrative]
As a Role
I request a Feature
To gain a Benefit
Scenario
Given [Context]
And [Some more context]
When [Event]
Then [Outcome]
And [Another outcome]
CENÁRIOS DE NEGÓCIO
8 / 30Jefferson Andrade – CE-229 – BDD
Subcategoria – EspecificaçãoCategoria Principal – User Story
FORMAS DE IMPLEMENTAR
9 / 30Jefferson Andrade – CE-229 – BDD
• Manual
Uma estória de usuário ou especificação contém um
ou mais critérios de aceitação verificável (cenários)
e estes contém casos de testes com valores reais.
• Automatizada
Semelhante ao manual, mas implementado através
de ferramentas ou arcabouços que dão suporte ao
BDD: RSpec (Ruby), Cucumber (Ruby), Jbehave
(Java), SpecFlow (.Net).
MANUAL
10 / 30Jefferson Andrade – CE-229 – BDD
AUTOMATIZADA – RSPEC (1/4)
11 / 30Jefferson Andrade – CE-229 – BDD
AUTOMATIZADA – RSPEC (2/4)
12 / 30Jefferson Andrade – CE-229 – BDD
AUTOMATIZADA – RSPEC (3/4)
13 / 30Jefferson Andrade – CE-229 – BDD
AUTOMATIZADA – RSPEC (4/4)
14 / 30Jefferson Andrade – CE-229 – BDD
AUTOMATIZADA – CUCUMBER (1/6)
15 / 30Jefferson Andrade – CE-229 – BDD
AUTOMATIZADA – CUCUMBER (1/6)
16 / 30Jefferson Andrade – CE-229 – BDD
AUTOMATIZADA – CUCUMBER (3/6)
17 / 30Jefferson Andrade – CE-229 – BDD
AUTOMATIZADA – CUCUMBER (4/6)
18 / 30Jefferson Andrade – CE-229 – BDD
AUTOMATIZADA – CUCUMBER (5/6)
19 / 30Jefferson Andrade – CE-229 – BDD
AUTOMATIZADA – CUCUMBER (6/6)
20 / 30Jefferson Andrade – CE-229 – BDD
AUTOMATIZADA – JBEHAVE (1/5)
21 / 30Jefferson Andrade – CE-229 – BDD
AUTOMATIZADA – JBEHAVE (2/5)
22 / 30Jefferson Andrade – CE-229 – BDD
AUTOMATIZADA – JBEHAVE (3/5)
23 / 30Jefferson Andrade – CE-229 – BDD
AUTOMATIZADA – JBEHAVE (4/5)
24 / 30Jefferson Andrade – CE-229 – BDD
AUTOMATIZADA – JBEHAVE (5/5)
25 / 30Jefferson Andrade – CE-229 – BDD
AUTOMATIZADA – SPECFLOW (1/2)
26 / 30Jefferson Andrade – CE-229 – BDD
AUTOMATIZADA – SPECFLOW (2/2)
27 / 30Jefferson Andrade – CE-229 – BDD
CONCLUSÕES
28 / 30
Permite a união do time de desenvolvimento, pois os testadores podem
escrever os cenários de teste com BDD para os desenvolvedores
implementarem.
Gera uma documentação dinâmica.
Permitir visão do todo, antes de redigir os testes, minimizando chances
de fracasso do projeto.
Cenários de teste ficam claros e documentados para o usuário.
Jefferson Andrade – CE-229 – BDD
REFERÊNCIAS
• http://dannorth.net/introducing-bdd/ acessado em 10/05/2013.
• http://elabor8.com.au/blog/a-practical-blog-on-how-to-write-
scenarios-using-bdd acessado em 10/05/2013.
• http://www.slideshare.net/bkeepers/behavior-driven-
development-with-cucumber-presentation acessado em
10/05/2013.
• http://www.slideshare.net/rkmael/introduo-a-bdd acessado em
10/05/2013.
• http://www.slideshare.net/dversaci/behavior-driven-development-
bdd-and-agile-testing acessado em 10/05/2013.
• Apresentação interna – Imagem – Fábio Piona.
• Cucumber: http://cukes.info/ acessado em 13/06/2013.
• RSpec: http://rspec.info/ acessado em 13/06/2013.
• JBehave: http://jbehave.org/ acessado em 13/06/2013.
• http://en.wikipedia.org/wiki/Behavior-driven_development
acessado em 13/06/2013.
• http://www.slideshare.net/IosifItkin/behavior-driven-
development-pros-and-cons acessado em 13/06/2013.
29 / 30Jefferson Andrade – CE-229 – BDD
Jefferson Andrade de Oliveira Júnior
2jefferson@gmail.com
OBRIGADO!

Jefferson Andrade - BDD - Behavior-Driven Development - ITA

  • 1.
    Prof. Dr. LuizAlberto Vieira Dias Aluno: Jefferson Andrade de Oliveira Júnior 2jefferson@gmail.com ITA – PG/EEC-I – CE-229 – Teste de Software– Junho de 2013 BDD Behavior-Driven Development
  • 2.
    AGENDA Jefferson Andrade –CE-229 – BDD 2 / 30
  • 3.
    APRESENTAÇÃO JEFFERSON ANDRADE DEOLIVEIRA JÚNIOR @AndradeJeff 3 / 30Jefferson Andrade – CE-229 – BDD Especialista em Tecnologia – Imagem Soluções de Inteligência Geográfica Certificado Professional Scrum Master Certificado Professional Scrum Developer Certificado Oracle Java Programmer (SCJP) Certificado Oracle Java Enterprise Architect (OCMJEA) Bacharel em Ciência da Computação – DCC/UFMG Especialista em Engenharia de Software – DCC/UFMG MBA em Gerência de Projetos – FGV
  • 4.
    MOTIVAÇÃO Jefferson Andrade –CE-229 – BDD 4 / 30 “Não era bem isso que eu queria.” - Usuário “Informando estes valores não apareceu o resultado desejado.” - Testador “Porque ficou azul quando eu informei 0 graus e vermelho quando informei 100?” – Usuário “Para mim este comportamento de fechar a janela sem perguntar nada era óbvio neste caso de erro.” - Desenvolvedor Evitar frases do tipo:
  • 5.
    O QUE ÉBDD? 5 / 30Jefferson Andrade – CE-229 – BDD BDD – Behaviour-Driven Development (Desenvolvimento Orientado ao Comportamento) Criado por:
  • 6.
    BDD BDD possui umalinguagem única para especificar comportamentos. BDD é uma técnica de desenvolvimento ágil que visa integrar regras de negócios com linguagem de programação. "Behaviour-driven development is about implementing an application by describing its behaviour from the perspective of its stakeholders“. “It describes a cycle of interactions with welldefined outputs, resulting in the delivery of working, tested software that matters.” Behavior-driven development é uma versão especializada do Test-Driven Development que foca na especificação do comportamento das unidades de software. Jefferson Andrade – CE-229 – BDD 6 / 30
  • 7.
    CENÁRIOS DE NEGÓCIO 7/ 30Jefferson Andrade – CE-229 – BDD Story: [Narrative] As a Role I request a Feature To gain a Benefit Scenario Given [Context] And [Some more context] When [Event] Then [Outcome] And [Another outcome]
  • 8.
    CENÁRIOS DE NEGÓCIO 8/ 30Jefferson Andrade – CE-229 – BDD Subcategoria – EspecificaçãoCategoria Principal – User Story
  • 9.
    FORMAS DE IMPLEMENTAR 9/ 30Jefferson Andrade – CE-229 – BDD • Manual Uma estória de usuário ou especificação contém um ou mais critérios de aceitação verificável (cenários) e estes contém casos de testes com valores reais. • Automatizada Semelhante ao manual, mas implementado através de ferramentas ou arcabouços que dão suporte ao BDD: RSpec (Ruby), Cucumber (Ruby), Jbehave (Java), SpecFlow (.Net).
  • 10.
    MANUAL 10 / 30JeffersonAndrade – CE-229 – BDD
  • 11.
    AUTOMATIZADA – RSPEC(1/4) 11 / 30Jefferson Andrade – CE-229 – BDD
  • 12.
    AUTOMATIZADA – RSPEC(2/4) 12 / 30Jefferson Andrade – CE-229 – BDD
  • 13.
    AUTOMATIZADA – RSPEC(3/4) 13 / 30Jefferson Andrade – CE-229 – BDD
  • 14.
    AUTOMATIZADA – RSPEC(4/4) 14 / 30Jefferson Andrade – CE-229 – BDD
  • 15.
    AUTOMATIZADA – CUCUMBER(1/6) 15 / 30Jefferson Andrade – CE-229 – BDD
  • 16.
    AUTOMATIZADA – CUCUMBER(1/6) 16 / 30Jefferson Andrade – CE-229 – BDD
  • 17.
    AUTOMATIZADA – CUCUMBER(3/6) 17 / 30Jefferson Andrade – CE-229 – BDD
  • 18.
    AUTOMATIZADA – CUCUMBER(4/6) 18 / 30Jefferson Andrade – CE-229 – BDD
  • 19.
    AUTOMATIZADA – CUCUMBER(5/6) 19 / 30Jefferson Andrade – CE-229 – BDD
  • 20.
    AUTOMATIZADA – CUCUMBER(6/6) 20 / 30Jefferson Andrade – CE-229 – BDD
  • 21.
    AUTOMATIZADA – JBEHAVE(1/5) 21 / 30Jefferson Andrade – CE-229 – BDD
  • 22.
    AUTOMATIZADA – JBEHAVE(2/5) 22 / 30Jefferson Andrade – CE-229 – BDD
  • 23.
    AUTOMATIZADA – JBEHAVE(3/5) 23 / 30Jefferson Andrade – CE-229 – BDD
  • 24.
    AUTOMATIZADA – JBEHAVE(4/5) 24 / 30Jefferson Andrade – CE-229 – BDD
  • 25.
    AUTOMATIZADA – JBEHAVE(5/5) 25 / 30Jefferson Andrade – CE-229 – BDD
  • 26.
    AUTOMATIZADA – SPECFLOW(1/2) 26 / 30Jefferson Andrade – CE-229 – BDD
  • 27.
    AUTOMATIZADA – SPECFLOW(2/2) 27 / 30Jefferson Andrade – CE-229 – BDD
  • 28.
    CONCLUSÕES 28 / 30 Permitea união do time de desenvolvimento, pois os testadores podem escrever os cenários de teste com BDD para os desenvolvedores implementarem. Gera uma documentação dinâmica. Permitir visão do todo, antes de redigir os testes, minimizando chances de fracasso do projeto. Cenários de teste ficam claros e documentados para o usuário. Jefferson Andrade – CE-229 – BDD
  • 29.
    REFERÊNCIAS • http://dannorth.net/introducing-bdd/ acessadoem 10/05/2013. • http://elabor8.com.au/blog/a-practical-blog-on-how-to-write- scenarios-using-bdd acessado em 10/05/2013. • http://www.slideshare.net/bkeepers/behavior-driven- development-with-cucumber-presentation acessado em 10/05/2013. • http://www.slideshare.net/rkmael/introduo-a-bdd acessado em 10/05/2013. • http://www.slideshare.net/dversaci/behavior-driven-development- bdd-and-agile-testing acessado em 10/05/2013. • Apresentação interna – Imagem – Fábio Piona. • Cucumber: http://cukes.info/ acessado em 13/06/2013. • RSpec: http://rspec.info/ acessado em 13/06/2013. • JBehave: http://jbehave.org/ acessado em 13/06/2013. • http://en.wikipedia.org/wiki/Behavior-driven_development acessado em 13/06/2013. • http://www.slideshare.net/IosifItkin/behavior-driven- development-pros-and-cons acessado em 13/06/2013. 29 / 30Jefferson Andrade – CE-229 – BDD
  • 30.
    Jefferson Andrade deOliveira Júnior 2jefferson@gmail.com OBRIGADO!