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 pontos
Quando peço para o app gerar a estrela
Então temos a estrela à esquer...
O senso comum nos engana
● O simples pode ser complexo
● Exemplos auxiliam muito na compreensão
● Exemplos como forma de i...
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 ou...
1. Desenvolvimento
2. Testes
3. 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...
TDD != Unit Testing
● Unit é um termo vago e confuso
● Faz com que os desenvolvedores tenham a
ideia de proporção 1:1
● Un...
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 equiv...
"Eu decidi que deve ser possı́vel apresentar TDD
de uma forma que vá direto às suas coisas boas e
evite todas as suas ar...
BDD portanto foi uma evolução natural do TDD
trazendo consigo novas terminologias
● Behavior - Tests
● Expectations - Asse...
E como ocorre a comunicacão nos
projetos?
Livros extremamente recomendados:
Links interessantes
● A new look at Test Driven Development - Dave
Astels
● Introducing BDD - Dan North
● RSpec and Behavi...
Perguntas?
Feedbacks?
ThoughtWorks JC Session - BDD
ThoughtWorks JC Session - BDD
ThoughtWorks JC Session - BDD
ThoughtWorks JC Session - BDD
ThoughtWorks JC Session - BDD
ThoughtWorks JC Session - BDD
Próximos SlideShares
Carregando em…5
×

ThoughtWorks JC Session - BDD

733 visualizações

Publicada em

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.

Publicada em: Software
0 comentários
6 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
733
No SlideShare
0
A partir de incorporações
0
Número de incorporações
18
Ações
Compartilhamentos
0
Downloads
6
Comentários
0
Gostaram
6
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

ThoughtWorks JC Session - BDD

  1. 1. JC Session - BDD - Juraci Vieira Nicholas Pufal
  2. 2. Vamos começar... TDD? Feature files (ou "especificação das funcionalidades em linguagem natural")? Critérios de aceitação?
  3. 3. Coisas óbvias são realmente óbvias? Quantos pontos há nesta estrela?
  4. 4. Com exemplos: Dado que quero uma estrela de 8 pontos Quando peço para o app gerar a estrela Então temos a estrela à esquerda como resultado Dado que quero uma estrela de 12 pontos Quando peço para o app gerar a estrela Então temos a estrela à esquerda como resultado
  5. 5. O senso comum nos engana ● O simples pode ser complexo ● Exemplos auxiliam muito na compreensão ● Exemplos como forma de iniciar uma conversa
  6. 6. Precisamos de exemplos concretos para compreender com clareza um domínio
  7. 7. Linha do tempo 1996 Kent Beck (Primeiras ideias TDD) 2001 2003 2007 2008 Manifesto Ágil 2011 Kent Beck, Martin Fowler e outros Dan North JBehave (Primeiras ideias BDD) RSpec David Chelimsky, Dan North, Aslak Hellesoy e outros RBehave Dan North Cucumber, Gherkin parser/standard Aslak Hellesoy Specification by example Gojko Adzic
  8. 8. 1. Desenvolvimento 2. Testes 3. Ambas opções anteriores Pergunta: TDD se enquadra em qual das opções abaixo?
  9. 9. 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)
  10. 10. 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
  11. 11. Não pense em termos de unidade e sim em facetas de comportamento
  12. 12. "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
  13. 13. "Eu decidi que deve ser possı́vel apresentar TDD de uma forma que vá direto às suas coisas boas e evite todas as suas armadilhas." ~ NORTH, DAN
  14. 14. BDD portanto foi uma evolução natural do TDD trazendo consigo novas terminologias ● Behavior - Tests ● Expectations - Assertions ● Specification-centric - Test-centric
  15. 15. E como ocorre a comunicacão nos projetos?
  16. 16. Livros extremamente recomendados:
  17. 17. Links interessantes ● A new look at Test Driven Development - Dave Astels ● Introducing BDD - Dan North ● RSpec and Behavior-Driven Development - Dave Astels & Steven Baker ● Stubbing Is Not Enough - Gregory Moeck ● BDD: Busting the myths - Gojko Adzic
  18. 18. Perguntas? Feedbacks?

×