Jefferson Andrade - BDD - Behavior-Driven Development - ITA

Post on 27-Jun-2015

380 views 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 of Jefferson Andrade - BDD - Behavior-Driven Development - ITA

Prof. Dr. Luiz Alberto Vieira Dias

Aluno: Jefferson Andrade de Oliveira Júnior2jefferson@gmail.com

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

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

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]

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

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

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únior2jefferson@gmail.com

OBRIGADO!