[1] A apresentação discute as práticas de desenvolvimento orientado a testes (TDD) e desenvolvimento orientado a comportamento (BDD) usando SpecFlow no Visual Studio. [2] O BDD é apresentado como uma evolução do TDD que foca nos comportamentos do software do ponto de vista dos usuários. [3] O SpecFlow é mostrado como uma ferramenta para .NET que permite a escrita de testes de aceitação usando a linguagem Gherkin.
Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)
BDD e TDD na prática com SpecFlow e Visual Studio
1. BDD e TDD na prática
com SpecFlow e
Visual Studio 2012
Visual Studio Summit 2013
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. Qualidade é importante?
Claro! Ninguém questiona isso.
Usuários e clientes esperam por
isso.
Testes são parte importante.
Ainda assim, poucos
conseguem fazer direito.
5. O mercado está cada vez mais competitivo
Nossos clientes precisam ir
cada vez mais rápido para o
mercado.
Usuários estão impacientes.
Adivinha onde vamos
cortar?
6. É hora de tentar algo diferente
Insanity: Doing the same thing over and over again and
expecting different results.
-- Albert Einstein
7. O Manifesto Ágil
• Indivíduos e interação entre eles
mais que processos e ferramentas
• Software em funcionamento
mais que documentação abrangente
• Colaboração com o cliente
mais que negociação de contratos
• Responder a mudanças
mais que seguir um plano
Ou seja, mesmo havendo valor nos itens à direita,
valorizamos mais os itens à esquerda.
8. Lean
Agile
Scrum
XP
Framework de gestão ágil de projetos
Papéis e cerimônias, melhoria contínua
dos times, entrega rápida, limitar
trabalho à capacidade
Cultura ágil, mindset e práticas
Eliminar desperdício
Respeitar as pessoas, foco
principalmente em P&D
Otimizar todo o fluxo
Foco na otimização de todo o processo
de negócios
Práticas de engenharia
Trazer qualidade para dentro do desenvolvimento –
Automação, integração contínua, revisão por pares
etc.
Práticas Ágeis
9. Lean
Agile
Scrum
XP
Framework de gestão ágil de projetos
Papéis e cerimônias, melhoria contínua
dos times, entrega rápida, limitar
trabalho à capacidade
Cultura ágil, mindset e práticas
Eliminar desperdício
Respeitar as pessoas, foco
principalmente em P&D
Otimizar todo o fluxo
Foco na otimização de todo o processo
de negócios
Práticas de engenharia
Trazer qualidade para dentro do desenvolvimento –
Automação, integração contínua, revisão por pares
etc.
Práticas Ágeis
19. BDD
“Behavior-driven development é sobre
implementar uma aplicação através da descrição
de seu comportamento pela perspectiva de seus
stakeholders”
-- Dan North
20. Criar software que
importa!
• Tem valor de negócio tangível
• Entregue incrementalmente
• Fácil de manter e gerenciar
• Fácil de entender e comunicar
Foco no valor
22. • Por onde começar
• O que testar
• O que não testar
• Quanto testar
• Como nomear os testes
• Por que um teste falha
Evoluindo TDD: BDD
Outside-in
User stories
Mínimo possível
Intenção
Documentação
23. Ciclo do BDD
Faz o
teste
passar
Refatora
o código
Escreve
um teste
falhando
Escreve um
Teste de
Aceitação
Falhando
37. Para saber mais
• BDD Primer: Behavior-Driven
Development with SpecFlow and
WatiN
tinyurl.com/nkakqq3
• Documentação do SpecFlow
go.specflow.org/doc
• Blog da Lambda3
blog.lambda3.com.br
tinyurl.com/pzjfa45