thoughtworks jc session - bdd

Post on 07-Dec-2014

342 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Apresentação que fizemos para JCs da ThoughtWorks, falando um pouco sobre o surgimento do BDD, as vantagens em se utilizar exemplos concretos na descrição de um domínio, efeitos positivos que BDD causa na comunicação de um time ágil e materiais interessantes sobre o tema.

TRANSCRIPT

JC Session - BDD -Juraci Vieira

Nicholas Pufal

Vamos começar...

TDD?Feature files (ou "especificação das

funcionalidades em linguagem natural")?Critérios de aceitação?

Coisas óbvias são realmente óbvias?

Quantos pontos há nesta estrela?

Com exemplos:

Dado que quero uma estrela de 8 pontosQuando peço para o app gerar a estrelaEntão temos a estrela à esquerda como resultado

Dado que quero uma estrela de 12 pontosQuando peço para o app gerar a estrelaEntão temos a estrela à esquerda como resultado

O senso comum nos engana

● O simples pode ser complexo● Exemplos auxiliam muito na compreensão● Exemplos como forma de iniciar uma

conversa

Precisamos de exemplos concretos para compreender com clareza um domínio

Linha do tempo

1996

Kent Beck(Primeiras ideias

TDD)

2001 2003 2007 2008

Manifesto Ágil

2011

Kent Beck, Martin Fowler e outros

Dan NorthJBehave

(Primeiras ideias BDD)

RSpec

David Chelimsky, Dan North, Aslak Hellesoy e outros

RBehaveDan North

Cucumber,Gherkin

parser/standard

Aslak Hellesoy

Specification by example

Gojko Adzic

1. Desenvolvimento2. Testes3. Ambas opções anteriores

Pergunta: TDD se enquadra em qual das opções abaixo?

TDD é uma técnica de desenvolvimento utilizada para entregar código de alta

qualidade

● Testes de regressão de baixo nível● Design emergente (revisão e evolução

constantes do código)

TDD != Unit Testing

● Unit é um termo vago e confuso● Faz com que os desenvolvedores tenham a

ideia de proporção 1:1● Unit Tests são altamente dependentes da

estrutura interna

Não pense em termos de unidade e sim em facetas de comportamento

"TDD era uma idéia fabulosa embrulhada em um nome que fazia com que as pessoas pensassem a partir de uma perspectiva equivocada de testes." ~ ASTELS, DAVE

"Eu decidi que deve ser possıvel apresentar TDD de uma forma que va direto as suas coisas boas e evite todas as suas armadilhas." ~ NORTH, DAN

BDD portanto foi uma evolução natural do TDD trazendo consigo novas terminologias

● Behavior - Tests ● Expectations - Assertions● Specification-centric - Test-centric

E como ocorre a comunicacão nos projetos?

Livros extremamente recomendados:

Perguntas?Feedbacks?

top related