bdd e tdd na prática com specflow e visual studio 2012

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

Upload: igor-abade

Post on 19-Nov-2014

2.764 views

Category:

Technology


1 download

DESCRIPTION

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.

TRANSCRIPT

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

BDD e TDD na prática com SpecFlow e

Visual Studio 2012

Visual Studio Summit 2013

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

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

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

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.

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

Test-Last Development

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

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?

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

É hora de tentar algo diferente

Insanity: Doing the same thing over and over again and expecting different results.

-- Albert Einstein

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

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.

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

Lean

XP

Framework de gestão ágil de projetosPapéis e cerimônias, melhoria contínua dos times, entrega rápida, limitar trabalho à capacidade

Cultura ágil, mindset e práticasEliminar desperdícioRespeitar 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 engenhariaTrazer qualidade para dentro do desenvolvimento – Automação, integração contínua, revisão por pares etc.

Práticas Ágeis

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

Lean

XP

Framework de gestão ágil de projetosPapéis e cerimônias, melhoria contínua dos times, entrega rápida, limitar trabalho à capacidade

Cultura ágil, mindset e práticasEliminar desperdícioRespeitar 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 engenhariaTrazer qualidade para dentro do desenvolvimento – Automação, integração contínua, revisão por pares etc.

Práticas Ágeis

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

XP: Extreme Programming

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

Introduzindo o TDD

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

TDD: Test-driven Development

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

Ciclo do TDD Faz o teste

passar

Refatora o

código

Escreve um teste

falhando

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

O que é TDD?demo

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

TDD: um péssimo nome!

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

TDD é uma ferramenta para possibilitar a evolução de Design

Efeitos Colaterais

Verificação de comportamento

Documentação

Afinal, o que é o TDD?

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

TDD

Que nome devo dar ao meu teste?

O que testar primeiro?

O que testar?

Quanto testar?

Quando testar?

Por que um teste falhou?

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

Introduzindo o BDD

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

BDD“Behavior-driven development é sobre implementar uma aplicação através da descrição de seu comportamento pela perspectiva de seus stakeholders”

-- Dan North

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

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

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

Linguagem comum

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

• 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: BDDOutside-in

User stories

Mínimo possível

Intenção

Documentação

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

Ciclo do BDDFaz o teste

passar

Refatora o código

Escreve um teste falhando

Escreve um Teste de

Aceitação Falhando

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

Feature!

Outside In

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

Feature

“Quero que os usuários do site que compraram o produto possam fazer o download diretamente de suas páginas pessoais”

Outside In

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

Cenário

“Garantindo a segurança de informações:

Como usuário cadastrado posso acessar apenas minha página pessoal”

Etapas

Outside In

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

Cenário

Etapas

Outside In

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

TDD

Cenário Falhando

Outside In

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

Outside In

Cenário Falhando

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

Outside In

Cenário Falhando

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

Outside In

Cenário Falhando

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

Outside In

Cenário Falhando

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

Outside In

Cenário Falhando

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

Outside In

Cenário Passando!

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

BDD em .NET: SpecFlow• Inspirado no

Cucumber• Linguagem

Gherkin

specflow.org

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

BDD com SpecFlowdemo

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

Para saber mais• BDD Primer: Behavior-Driven

Development with SpecFlow and WatiNtinyurl.com/nkakqq3

• Documentação do SpecFlowgo.specflow.org/doc

• Blog da Lambda3blog.lambda3.com.br

tinyurl.com/pzjfa45

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

www.lambda3.com.br