Slide 1

Slide 1 text

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