Gherkin:
Checando qualidade de requisitos
FPF Tech
http://ayr-ton.net/@
G+: http://ayr-ton.net/+
Twitter: http://ayr-ton.net/@
E-mail: root@ayr-ton.net
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
TDD e o BDD
Desmistificando
I know that feel bro
The Cucumber
Book
Aslak Hellesøy
Tea-Driven
Development
Matt Wynne
“Já fez o TDD?”
Referindo-se a testes de unidade
“Qual o sentido
de testar o que
ainda não foi
desenvolvido?”
Sobre escrever os testes primeiro
“Você só pode
usar BDD para
testes de tela”
Sobre o BDD
“TDD ou BDD?
Qual é o melhor?”
Referindo-se a testes
automatizados
Escrever um teste falho
Fazer o teste passar
Refatorar
Escrever um teste falho
Fazer o teste passar
Refatorar
Escrever um teste falho
Fazer o teste passar
Refatorar
Escrever um teste falho
Fazer o teste passar
Refatorar
Escrever um novo teste falho
Fazer o teste passar
Refatorar
Defina “testes”
Por que temos que falhar os
“testes”?
Testes de unidade
Outros tipos de testes
automatizados?
Defina
“comportamento”
Dan North: “cenários”,
“exemplos”
Defina “passos”
Agora sim, automação.
BDD
TDD, agora vai!
Trabalhar de fora
para dentro
Iniciando a partir de uma meta de
negócios
Use exemplos
Para clarear requisitos
Desenvolver numa
linguagem obíqua
Para garantir compreensão global
Gherkin
Sintax line-
oriented
Python/YAML like
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
# language: pt
Funcionalidade: Adição
Para evitar erros bobos
Como um péssimo matemático
Eu quero saber como somar dois números
Given-When-Then
Passos
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
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
feature
coffe.feature
test
steps
unit
coffeTest.mylang
integration
$ ls
feature
coffe.feature
test
steps
unit
coffeTest.mylang
integration
$ ls
feature
coffe.feature
spec
steps
unit
coffeSpec.mylang
integration
$ ls
Refatore!
G+: http://ayr-ton.net/+
Twitter: http://ayr-ton.net/@
E-mail: root@ayr-ton.net
ayr-ton at irc.freenode.net
#cucumber
ayr-ton at GitHub
CSM, CSD, CSPO, LPIC-2
Perguntas?
$whoami

Gherkin