jefferson andrade - bdd - behavior-driven development - ita

30
Prof. Dr. Luiz Alberto Vieira Dias Aluno: Jefferson Andrade de Oliveira Júnior [email protected] ITA – PG/EEC-I – CE-229 – Teste de Software– Junho de 2013 BDD Behavior-Driven Development

Upload: jefferson-andrade

Post on 27-Jun-2015

378 views

Category:

Technology


0 download

DESCRIPTION

Apresentação feita na disciplina de mestrado do ITA, CE-229 - Teste de Software, sobre BDD - Behavior-Driven Development. Jefferson Andrade - ITA.

TRANSCRIPT

Page 1: Jefferson Andrade - BDD - Behavior-Driven Development - ITA

Prof. Dr. Luiz Alberto Vieira Dias

Aluno: Jefferson Andrade de Oliveira Jú[email protected]

ITA – PG/EEC-I – CE-229 – Teste de Software– Junho de 2013

BDDBehavior-Driven Development

Page 2: Jefferson Andrade - BDD - Behavior-Driven Development - ITA

AGENDA

Jefferson Andrade – CE-229 – BDD 2 / 30

Page 3: Jefferson Andrade - BDD - Behavior-Driven Development - ITA

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

Page 4: Jefferson Andrade - BDD - Behavior-Driven Development - ITA

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:

Page 5: Jefferson Andrade - BDD - Behavior-Driven Development - ITA

O QUE É BDD?

5 / 30Jefferson Andrade – CE-229 – BDD

� BDD – Behaviour-Driven Development(Desenvolvimento Orientado ao Comportamento)

� Criado por:

Page 6: Jefferson Andrade - BDD - Behavior-Driven Development - ITA

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 anapplication 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

Page 7: Jefferson Andrade - BDD - Behavior-Driven Development - ITA

CENÁRIOS DE NEGÓCIO

7 / 30Jefferson Andrade – CE-229 – BDD

� Story: [Narrative]

As a RoleI request a FeatureTo gain a Benefit

� ScenarioGiven [Context]

And [Some more context]When [Event]Then [Outcome]

And [Another outcome]

Page 8: Jefferson Andrade - BDD - Behavior-Driven Development - ITA

CENÁRIOS DE NEGÓCIO

8 / 30Jefferson Andrade – CE-229 – BDD

Subcategoria – EspecificaçãoCategoria Principal – User Story

Page 9: Jefferson Andrade - BDD - Behavior-Driven Development - ITA

FORMAS DE IMPLEMENTAR

9 / 30Jefferson Andrade – CE-229 – BDD

• ManualUma 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.

• AutomatizadaSemelhante 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).

Page 10: Jefferson Andrade - BDD - Behavior-Driven Development - ITA

MANUAL

10 / 30Jefferson Andrade – CE-229 – BDD

Page 11: Jefferson Andrade - BDD - Behavior-Driven Development - ITA

AUTOMATIZADA – RSPEC (1/4)

11 / 30Jefferson Andrade – CE-229 – BDD

Page 12: Jefferson Andrade - BDD - Behavior-Driven Development - ITA

AUTOMATIZADA – RSPEC (2/4)

12 / 30Jefferson Andrade – CE-229 – BDD

Page 13: Jefferson Andrade - BDD - Behavior-Driven Development - ITA

AUTOMATIZADA – RSPEC (3/4)

13 / 30Jefferson Andrade – CE-229 – BDD

Page 14: Jefferson Andrade - BDD - Behavior-Driven Development - ITA

AUTOMATIZADA – RSPEC (4/4)

14 / 30Jefferson Andrade – CE-229 – BDD

Page 15: Jefferson Andrade - BDD - Behavior-Driven Development - ITA

AUTOMATIZADA – CUCUMBER (1/6)

15 / 30Jefferson Andrade – CE-229 – BDD

Page 16: Jefferson Andrade - BDD - Behavior-Driven Development - ITA

AUTOMATIZADA – CUCUMBER (1/6)

16 / 30Jefferson Andrade – CE-229 – BDD

Page 17: Jefferson Andrade - BDD - Behavior-Driven Development - ITA

AUTOMATIZADA – CUCUMBER (3/6)

17 / 30Jefferson Andrade – CE-229 – BDD

Page 18: Jefferson Andrade - BDD - Behavior-Driven Development - ITA

AUTOMATIZADA – CUCUMBER (4/6)

18 / 30Jefferson Andrade – CE-229 – BDD

Page 19: Jefferson Andrade - BDD - Behavior-Driven Development - ITA

AUTOMATIZADA – CUCUMBER (5/6)

19 / 30Jefferson Andrade – CE-229 – BDD

Page 20: Jefferson Andrade - BDD - Behavior-Driven Development - ITA

AUTOMATIZADA – CUCUMBER (6/6)

20 / 30Jefferson Andrade – CE-229 – BDD

Page 21: Jefferson Andrade - BDD - Behavior-Driven Development - ITA

AUTOMATIZADA – JBEHAVE (1/5)

21 / 30Jefferson Andrade – CE-229 – BDD

Page 22: Jefferson Andrade - BDD - Behavior-Driven Development - ITA

AUTOMATIZADA – JBEHAVE (2/5)

22 / 30Jefferson Andrade – CE-229 – BDD

Page 23: Jefferson Andrade - BDD - Behavior-Driven Development - ITA

AUTOMATIZADA – JBEHAVE (3/5)

23 / 30Jefferson Andrade – CE-229 – BDD

Page 24: Jefferson Andrade - BDD - Behavior-Driven Development - ITA

AUTOMATIZADA – JBEHAVE (4/5)

24 / 30Jefferson Andrade – CE-229 – BDD

Page 25: Jefferson Andrade - BDD - Behavior-Driven Development - ITA

AUTOMATIZADA – JBEHAVE (5/5)

25 / 30Jefferson Andrade – CE-229 – BDD

Page 26: Jefferson Andrade - BDD - Behavior-Driven Development - ITA

AUTOMATIZADA – SPECFLOW (1/2)

26 / 30Jefferson Andrade – CE-229 – BDD

Page 27: Jefferson Andrade - BDD - Behavior-Driven Development - ITA

AUTOMATIZADA – SPECFLOW (2/2)

27 / 30Jefferson Andrade – CE-229 – BDD

Page 28: Jefferson Andrade - BDD - Behavior-Driven Development - ITA

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

Page 29: Jefferson Andrade - BDD - Behavior-Driven Development - ITA

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

Page 30: Jefferson Andrade - BDD - Behavior-Driven Development - ITA

Jefferson Andrade de Oliveira Jú[email protected]

OBRIGADO!