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

Post on 19-Nov-2014

2.764 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

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

BDD e TDD na prática com SpecFlow e

Visual Studio 2012

Visual Studio Summit 2013

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

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.

Test-Last Development

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?

É hora de tentar algo diferente

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

-- Albert Einstein

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.

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

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

XP: Extreme Programming

Introduzindo o TDD

TDD: Test-driven Development

Ciclo do TDD Faz o teste

passar

Refatora o

código

Escreve um teste

falhando

O que é TDD?demo

TDD: um péssimo nome!

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

Efeitos Colaterais

Verificação de comportamento

Documentação

Afinal, o que é o TDD?

TDD

Que nome devo dar ao meu teste?

O que testar primeiro?

O que testar?

Quanto testar?

Quando testar?

Por que um teste falhou?

Introduzindo o BDD

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

-- Dan North

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

Linguagem comum

• 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

Ciclo do BDDFaz o teste

passar

Refatora o código

Escreve um teste falhando

Escreve um Teste de

Aceitação Falhando

Feature!

Outside In

Feature

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

Outside In

Cenário

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

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

Etapas

Outside In

Cenário

Etapas

Outside In

TDD

Cenário Falhando

Outside In

Outside In

Cenário Falhando

Outside In

Cenário Falhando

Outside In

Cenário Falhando

Outside In

Cenário Falhando

Outside In

Cenário Falhando

Outside In

Cenário Passando!

BDD em .NET: SpecFlow• Inspirado no

Cucumber• Linguagem

Gherkin

specflow.org

BDD com SpecFlowdemo

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

www.lambda3.com.br

top related