Jefferson Andrade - BDD - Behavior-Driven Development - ITA

623 views

Published on

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
623
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
16
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Jefferson Andrade - BDD - Behavior-Driven Development - ITA

  1. 1. Prof. Dr. Luiz Alberto Vieira DiasAluno: Jefferson Andrade de Oliveira Júnior2jefferson@gmail.comITA – PG/EEC-I – CE-229 – Teste de Software– Junho de 2013BDDBehavior-Driven Development
  2. 2. AGENDAJefferson Andrade – CE-229 – BDD 2 / 30
  3. 3. APRESENTAÇÃOJEFFERSON ANDRADE DE OLIVEIRA JÚNIOR@AndradeJeff3 / 30Jefferson Andrade – CE-229 – BDDEspecialista em Tecnologia – Imagem Soluções de Inteligência GeográficaCertificado Professional Scrum MasterCertificado Professional Scrum DeveloperCertificado Oracle Java Programmer (SCJP)Certificado Oracle Java Enterprise Architect (OCMJEA)Bacharel em Ciência da Computação – DCC/UFMGEspecialista em Engenharia de Software – DCC/UFMGMBA em Gerência de Projetos – FGV
  4. 4. MOTIVAÇÃOJefferson Andrade – CE-229 – BDD 4 / 30“Não era bem isso que eu queria.” - Usuário“Informando estes valores não apareceu o resultadodesejado.” - Testador“Porque ficou azul quando eu informei 0 graus evermelho quando informei 100?” – Usuário“Para mim este comportamento de fechar a janelasem perguntar nada era óbvio neste caso de erro.” -DesenvolvedorEvitar frases do tipo:
  5. 5. O QUE É BDD?5 / 30Jefferson Andrade – CE-229 – BDDBDD – Behaviour-Driven Development(Desenvolvimento Orientado ao Comportamento)Criado por:
  6. 6. BDDBDD possui uma linguagem única para especificarcomportamentos.BDD é uma técnica de desenvolvimento ágil que visa integrarregras de negócios com linguagem de programação."Behaviour-driven development is about implementing anapplication by describing its behaviour from the perspective of itsstakeholders“.“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 doTest-Driven Development que foca na especificação docomportamento das unidades de software.Jefferson Andrade – CE-229 – BDD 6 / 30
  7. 7. CENÁRIOS DE NEGÓCIO7 / 30Jefferson Andrade – CE-229 – BDDStory: [Narrative]As a RoleI request a FeatureTo gain a BenefitScenarioGiven [Context]And [Some more context]When [Event]Then [Outcome]And [Another outcome]
  8. 8. CENÁRIOS DE NEGÓCIO8 / 30Jefferson Andrade – CE-229 – BDDSubcategoria – EspecificaçãoCategoria Principal – User Story
  9. 9. FORMAS DE IMPLEMENTAR9 / 30Jefferson Andrade – CE-229 – BDD• ManualUma estória de usuário ou especificação contém umou 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ésde ferramentas ou arcabouços que dão suporte aoBDD: RSpec (Ruby), Cucumber (Ruby), Jbehave(Java), SpecFlow (.Net).
  10. 10. MANUAL10 / 30Jefferson Andrade – CE-229 – BDD
  11. 11. AUTOMATIZADA – RSPEC (1/4)11 / 30Jefferson Andrade – CE-229 – BDD
  12. 12. AUTOMATIZADA – RSPEC (2/4)12 / 30Jefferson Andrade – CE-229 – BDD
  13. 13. AUTOMATIZADA – RSPEC (3/4)13 / 30Jefferson Andrade – CE-229 – BDD
  14. 14. AUTOMATIZADA – RSPEC (4/4)14 / 30Jefferson Andrade – CE-229 – BDD
  15. 15. AUTOMATIZADA – CUCUMBER (1/6)15 / 30Jefferson Andrade – CE-229 – BDD
  16. 16. AUTOMATIZADA – CUCUMBER (1/6)16 / 30Jefferson Andrade – CE-229 – BDD
  17. 17. AUTOMATIZADA – CUCUMBER (3/6)17 / 30Jefferson Andrade – CE-229 – BDD
  18. 18. AUTOMATIZADA – CUCUMBER (4/6)18 / 30Jefferson Andrade – CE-229 – BDD
  19. 19. AUTOMATIZADA – CUCUMBER (5/6)19 / 30Jefferson Andrade – CE-229 – BDD
  20. 20. AUTOMATIZADA – CUCUMBER (6/6)20 / 30Jefferson Andrade – CE-229 – BDD
  21. 21. AUTOMATIZADA – JBEHAVE (1/5)21 / 30Jefferson Andrade – CE-229 – BDD
  22. 22. AUTOMATIZADA – JBEHAVE (2/5)22 / 30Jefferson Andrade – CE-229 – BDD
  23. 23. AUTOMATIZADA – JBEHAVE (3/5)23 / 30Jefferson Andrade – CE-229 – BDD
  24. 24. AUTOMATIZADA – JBEHAVE (4/5)24 / 30Jefferson Andrade – CE-229 – BDD
  25. 25. AUTOMATIZADA – JBEHAVE (5/5)25 / 30Jefferson Andrade – CE-229 – BDD
  26. 26. AUTOMATIZADA – SPECFLOW (1/2)26 / 30Jefferson Andrade – CE-229 – BDD
  27. 27. AUTOMATIZADA – SPECFLOW (2/2)27 / 30Jefferson Andrade – CE-229 – BDD
  28. 28. CONCLUSÕES28 / 30Permite a união do time de desenvolvimento, pois os testadores podemescrever os cenários de teste com BDD para os desenvolvedoresimplementarem.Gera uma documentação dinâmica.Permitir visão do todo, antes de redigir os testes, minimizando chancesde fracasso do projeto.Cenários de teste ficam claros e documentados para o usuário.Jefferson Andrade – CE-229 – BDD
  29. 29. 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 em10/05/2013.• http://www.slideshare.net/rkmael/introduo-a-bdd acessado em10/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_developmentacessado 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. 30. Jefferson Andrade de Oliveira Júnior2jefferson@gmail.comOBRIGADO!

×