BDD e TDD na prática com SpecFlow e Visual Studio 2012

3.464 visualizações

Publicada em

Já experimentou usar outras ferramentas para documentação e design da sua aplicação? E se, ao invés de documentos que ninguém lê (nem atualiza!) usássemos “especificações executáveis”? Já pensou se seu documento de requisitos pudesse ser executado e conseguisse validar, sozinho, se as regras de negócio ainda estão sendo atendidas? Venha ver nesta sessão como este “sonho” se torna realidade com o uso de práticas como BDD e TDD, apoiadas por ferramentas como o SpecFlow, WatiN e o Visual Studio 2012.

Publicada em: Tecnologia
  • Seja o primeiro a comentar

BDD e TDD na prática com SpecFlow e Visual Studio 2012

  1. 1. BDD e TDD na práticacom SpecFlow eVisual Studio 2012Visual Studio Summit 2013
  2. 2. Sobre mim• Igor Abade (@igorabade)– Microsoft MVP, Visual Studio ALM– Especialista Team Foundation Server (TFS)• Sócio da Lambda3– Consultoria ALM/TFS, Agilidade/Scrum,Arquitetura– Desenvolvimento de Sistemas– Treinamentos– Parceira Microsoft Gold ALM
  3. 3. Qualidade é importante?Claro! Ninguém questiona isso.Usuários e clientes esperam porisso.Testes são parte importante.Ainda assim, poucosconseguem fazer direito.
  4. 4. Test-Last Development
  5. 5. O mercado está cada vez mais competitivoNossos clientes precisam ircada vez mais rápido para omercado.Usuários estão impacientes.Adivinha onde vamoscortar?
  6. 6. É hora de tentar algo diferenteInsanity: Doing the same thing over and over again andexpecting different results.-- Albert Einstein
  7. 7. O Manifesto Ágil• Indivíduos e interação entre elesmais que processos e ferramentas• Software em funcionamentomais que documentação abrangente• Colaboração com o clientemais que negociação de contratos• Responder a mudançasmais que seguir um planoOu seja, mesmo havendo valor nos itens à direita,valorizamos mais os itens à esquerda.
  8. 8. LeanAgileScrumXPFramework de gestão ágil de projetosPapéis e cerimônias, melhoria contínuados times, entrega rápida, limitartrabalho à capacidadeCultura ágil, mindset e práticasEliminar desperdícioRespeitar as pessoas, focoprincipalmente em P&DOtimizar todo o fluxoFoco na otimização de todo o processode negóciosPráticas de engenhariaTrazer qualidade para dentro do desenvolvimento –Automação, integração contínua, revisão por paresetc.Práticas Ágeis
  9. 9. LeanAgileScrumXPFramework de gestão ágil de projetosPapéis e cerimônias, melhoria contínuados times, entrega rápida, limitartrabalho à capacidadeCultura ágil, mindset e práticasEliminar desperdícioRespeitar as pessoas, focoprincipalmente em P&DOtimizar todo o fluxoFoco na otimização de todo o processode negóciosPráticas de engenhariaTrazer qualidade para dentro do desenvolvimento –Automação, integração contínua, revisão por paresetc.Práticas Ágeis
  10. 10. XP: Extreme Programming
  11. 11. Introduzindo o TDD
  12. 12. TDD: Test-driven Development
  13. 13. Ciclo do TDDFaz o testepassarRefatora ocódigoEscreve umtestefalhando
  14. 14. O que é TDD?
  15. 15. TDD é uma ferramenta parapossibilitar a evolução de DesignEfeitos ColateraisVerificação de comportamentoDocumentaçãoAfinal, o que é o TDD?
  16. 16. TDDQue nome devo dar ao meu teste?O que testar primeiro?O que testar?Quanto testar?Quando testar?Por que um teste falhou?
  17. 17. Introduzindo o BDD
  18. 18. BDD“Behavior-driven development é sobreimplementar uma aplicação através da descriçãode seu comportamento pela perspectiva de seusstakeholders”-- Dan North
  19. 19. Criar software queimporta!• Tem valor de negócio tangível• Entregue incrementalmente• Fácil de manter e gerenciar• Fácil de entender e comunicarFoco no valor
  20. 20. Linguagem comum
  21. 21. • Por onde começar• O que testar• O que não testar• Quanto testar• Como nomear os testes• Por que um teste falhaEvoluindo TDD: BDDOutside-inUser storiesMínimo possívelIntençãoDocumentação
  22. 22. Ciclo do BDDFaz otestepassarRefatorao códigoEscreveum testefalhandoEscreve umTeste deAceitaçãoFalhando
  23. 23. Feature!Outside In
  24. 24. Feature“Quero que os usuários do site quecompraram o produto possam fazer odownload diretamente de suas páginaspessoais”Outside In
  25. 25. Cenário“Garantindo a segurançade informações:Como usuário cadastrado possoacessar apenas minha página pessoal”EtapasOutside In
  26. 26. CenárioEtapasOutside In
  27. 27. TDDCenário FalhandoOutside In
  28. 28. Outside InCenário Falhando
  29. 29. Outside InCenário Falhando
  30. 30. Outside InCenário Falhando
  31. 31. Outside InCenário Falhando
  32. 32. Outside InCenário Falhando
  33. 33. Outside InCenário Passando!
  34. 34. BDD em .NET: SpecFlow• Inspirado noCucumber• LinguagemGherkinspecflow.org
  35. 35. BDD com SpecFlow
  36. 36. Para saber mais• BDD Primer: Behavior-DrivenDevelopment with SpecFlow andWatiNtinyurl.com/nkakqq3• Documentação do SpecFlowgo.specflow.org/doc• Blog da Lambda3blog.lambda3.com.brtinyurl.com/pzjfa45
  37. 37. www.lambda3.com.br

×