Gherkin:
Checando qualidade de requisitos
FPF Tech
http://ayr-ton.net/@
Slide 2
Slide 2 text
G+: http://ayr-ton.net/+
Twitter: http://ayr-ton.net/@
E-mail: [email protected]
ayr-ton at irc.freenode.net
#cucumber
ayr-ton at GitHub
CSM, CSD, CSPO, LPIC-2
Dev at FPF Tech
Ubuntu Brazilian Community Council.
$whoami
Slide 3
Slide 3 text
TDD e o BDD
Desmistificando
Slide 4
Slide 4 text
I know that feel bro
Slide 5
Slide 5 text
The Cucumber
Book
Aslak Hellesøy
Slide 6
Slide 6 text
Tea-Driven
Development
Matt Wynne
Slide 7
Slide 7 text
“Já fez o TDD?”
Referindo-se a testes de unidade
Slide 8
Slide 8 text
“Qual o sentido
de testar o que
ainda não foi
desenvolvido?”
Sobre escrever os testes primeiro
Slide 9
Slide 9 text
“Você só pode
usar BDD para
testes de tela”
Sobre o BDD
Slide 10
Slide 10 text
“TDD ou BDD?
Qual é o melhor?”
Referindo-se a testes
automatizados
Slide 11
Slide 11 text
Escrever um teste falho
Fazer o teste passar
Refatorar
Slide 12
Slide 12 text
Escrever um teste falho
Fazer o teste passar
Refatorar
Slide 13
Slide 13 text
Escrever um teste falho
Fazer o teste passar
Refatorar
Slide 14
Slide 14 text
Escrever um teste falho
Fazer o teste passar
Refatorar
Slide 15
Slide 15 text
Escrever um novo teste falho
Fazer o teste passar
Refatorar
Slide 16
Slide 16 text
Defina “testes”
Por que temos que falhar os
“testes”?
Slide 17
Slide 17 text
Testes de unidade
Outros tipos de testes
automatizados?
Slide 18
Slide 18 text
Defina
“comportamento”
Dan North: “cenários”,
“exemplos”
Slide 19
Slide 19 text
Defina “passos”
Agora sim, automação.
Slide 20
Slide 20 text
BDD
TDD, agora vai!
Slide 21
Slide 21 text
Trabalhar de fora
para dentro
Iniciando a partir de uma meta de
negócios
Slide 22
Slide 22 text
Use exemplos
Para clarear requisitos
Slide 23
Slide 23 text
Desenvolver numa
linguagem obíqua
Para garantir compreensão global
Slide 24
Slide 24 text
Gherkin
Slide 25
Slide 25 text
Sintax line-
oriented
Python/YAML like
Slide 26
Slide 26 text
Feature: Serve coffee
Coffee should not be served until paid for
Coffee should not be served until the
button has been pressed
If there is no coffee left then money
should be refunded
Slide 27
Slide 27 text
# language: pt
Funcionalidade: Adição
Para evitar erros bobos
Como um péssimo matemático
Eu quero saber como somar dois números
Slide 28
Slide 28 text
Given-When-Then
Passos
Slide 29
Slide 29 text
Scenario: Buy last coffee
Given there are 1 coffees left in the
machine
And I have deposited 1$
When I press the coffee button
Then I should be served a coffee
Slide 30
Slide 30 text
Cenário: Adicionar dois números
Dado que eu digitei 50 na calculadora
E que eu digitei 70 na calculadora
Quando eu aperto o botão de soma
Então o resultado na calculadora deve ser
120
Slide 31
Slide 31 text
feature
coffe.feature
test
steps
unit
coffeTest.mylang
integration
$ ls
Slide 32
Slide 32 text
feature
coffe.feature
test
steps
unit
coffeTest.mylang
integration
$ ls
Slide 33
Slide 33 text
feature
coffe.feature
spec
steps
unit
coffeSpec.mylang
integration
$ ls
Slide 34
Slide 34 text
Refatore!
Slide 35
Slide 35 text
G+: http://ayr-ton.net/+
Twitter: http://ayr-ton.net/@
E-mail: [email protected]
ayr-ton at irc.freenode.net
#cucumber
ayr-ton at GitHub
CSM, CSD, CSPO, LPIC-2
Perguntas?
$whoami