bdd - além do hello world
DESCRIPTION
Palestra apresentada no #TDC2011 Goiânia.Desenvolvimento Software ao invés de código.TRANSCRIPT
![Page 1: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/1.jpg)
BDD além do Hello World
#TDC2011 GoianiaEder Ignatowicz
sábado, 29 de outubro de 2011
![Page 2: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/2.jpg)
Audiência #TDC2011Trilha de Testes
PO / Cliente
sábado, 29 de outubro de 2011
![Page 3: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/3.jpg)
Audiência #TDC2011Trilha de Testes
PO / Cliente Tester
sábado, 29 de outubro de 2011
![Page 4: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/4.jpg)
Audiência #TDC2011Trilha de Testes
PO / Cliente DeveloperTester
sábado, 29 de outubro de 2011
![Page 5: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/5.jpg)
Eder Ignatowicz
@ederign
Developer?
sábado, 29 de outubro de 2011
![Page 6: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/6.jpg)
Eder Ignatowicz
@ederign
Multidisciplinar
sábado, 29 de outubro de 2011
![Page 7: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/7.jpg)
Eder Ignatowicz
@ederign
sábado, 29 de outubro de 2011
![Page 8: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/8.jpg)
sábado, 29 de outubro de 2011
![Page 9: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/9.jpg)
sábado, 29 de outubro de 2011
![Page 10: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/10.jpg)
No princípio...
sábado, 29 de outubro de 2011
![Page 11: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/11.jpg)
while ((!found) && (pos < (fileContent.Length - 6))){ byteData = new byte[6]; Array.Copy(fileContent, pos, byteData, 0, 6); pos = pos + 6; str_byteData = enc.GetString(byteData); if (str_byteData.Contains("s")) { posE_byteData = str_byteData.IndexOf("s"); pos = pos + (posE_byteData - 6); Array.Copy(fileContent, pos, byteData, 0, 6); pos = pos + 6; if (byteData[0] == 0x73) // 's' { if (byteData[1] == 0x74) // 't' { if (byteData[2] == 0x72) // 'r' { if (byteData[3] == 0x65) // 'e' { if (byteData[4] == 0x61) // 'a' { if (byteData[5] == 0x6D) // 'm' { found = true; break; } else { if (byteData[5] == 0x73) { pos = pos - 1; } } }
Como “testar” isto?sábado, 29 de outubro de 2011
![Page 12: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/12.jpg)
sábado, 29 de outubro de 2011
![Page 13: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/13.jpg)
Kent Beck “enviou” o TDD aos programadores
sábado, 29 de outubro de 2011
![Page 14: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/14.jpg)
É o fim dos nossos problemas?
sábado, 29 de outubro de 2011
![Page 15: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/15.jpg)
Eu sou um programador, não um tester...
“Na minha máquina funciona”
sábado, 29 de outubro de 2011
![Page 16: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/16.jpg)
Meu código é difícil de testar...
sábado, 29 de outubro de 2011
![Page 17: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/17.jpg)
É trivial, não preciso testar
sábado, 29 de outubro de 2011
![Page 18: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/18.jpg)
Preciso de uma semana para executar os testes de
regressão
sábado, 29 de outubro de 2011
![Page 19: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/19.jpg)
Eu não tenho tempo para automatizar os testes
sábado, 29 de outubro de 2011
![Page 20: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/20.jpg)
Hipótese Sapir-Whorf
“existe uma relação sistemática entre as categorias gramaticais da língua e a forma de seus falantes entenderem o mundo e se portarem dentro
dele...”
Na sua versão forte, pode ser considerada uma forma de determinismo lingüístico, embora o interesse dos psicólogos pela influência da linguagem no
sábado, 29 de outubro de 2011
![Page 21: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/21.jpg)
It’s all behaviour!!!
sábado, 29 de outubro de 2011
![Page 22: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/22.jpg)
BDD: Behaviour Driven Development
“Escrevendo SOFTWARE e não código”
sábado, 29 de outubro de 2011
![Page 23: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/23.jpg)
Princípios do BDDIt’s all behaviour
Descrição da história (Wiki, JIRA, Tracker, Word)
Com objetivo de acelerar a cobrança do aluguel
Como um cobradorEu quero visualizar o total da dívida de um locatário
sábado, 29 de outubro de 2011
![Page 24: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/24.jpg)
Princípios do BDDIt’s all behaviour
Testes automatizados de unidade e aceitação
Assert.assertEquals(locatario.dividaTotal(), 17000,00);
sábado, 29 de outubro de 2011
![Page 25: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/25.jpg)
Princípios do BDDIt’s all behaviour
Procedimento de Testes
1-) Devo um aluguel de R$1200,002-) Devo um aluguel de R$1200,003-) O total da dívida deve serR$2400,00
sábado, 29 de outubro de 2011
![Page 26: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/26.jpg)
Tradução
sábado, 29 de outubro de 2011
![Page 27: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/27.jpg)
Tradução
VOCÊ NÃO QUER FAZER
ISTO!sábado, 29 de outubro de 2011
![Page 28: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/28.jpg)
Linguagem Comum
Title (one line describing the story) Narrative:As a [role]I want [feature]So that [benefit] Acceptance Criteria: (presented as Scenarios) Scenario 1: TitleGiven [context] And [some more context]...When [event]Then [outcome] And [another outcome]... Scenario 2: ...
sábado, 29 de outubro de 2011
![Page 29: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/29.jpg)
Linguagem ComumDado (Given) uma conta de aluguel Quando (When) o locatário deve um aluguel no valor de R$1200,00 E (And) o locatário deve outro aluguel no valor de R$1200,00 Então (Then) o total da dívida é R$2400,00
sábado, 29 de outubro de 2011
![Page 30: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/30.jpg)
Falando a mesma linguagem....
Nós podemos nos entender melhor;
Nós podemos nos aprofundar no entendimento do problema;
E maximizar as chances de construirmos as coisas certas.
sábado, 29 de outubro de 2011
![Page 31: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/31.jpg)
Princípios do BDDDeliver stakeholder value
Com objetivo de acelerar a cobrança do aluguel, por quê?Com objetivo de controlar melhor a cobrança de juros, por quê?Com objetivo de controlar melhor os meus resultados financeiros, BAZINGA!
sábado, 29 de outubro de 2011
![Page 32: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/32.jpg)
Redução de Custos
Eu perco menos tempo e dinheiro construindo coisas que não são exatamente necessárias e investigando valores que me ajudam a priorizar corretamente!
sábado, 29 de outubro de 2011
![Page 33: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/33.jpg)
Princípios do BDDEnough is Enough
Ficou fácil descobrir onde se inicia e termina uma funcionalidade.
Parei de desperdiçar dinheiro com funcionalidades supérfluas
sábado, 29 de outubro de 2011
![Page 34: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/34.jpg)
Detalhamento correto
Dado (Given) uma conta de aluguel Quando (When) o locatario deve um aluguel no valor de R$1200,00 E (And) o locatário deve outro aluguel no valor de R$1200,00 Então (Then) o total da dívida é R$2400,00
sábado, 29 de outubro de 2011
![Page 35: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/35.jpg)
Detalhamento correto...
Eu tenho algo para construir o mais rápido possível!
Eu tenho algo para testar rapidamente!
sábado, 29 de outubro de 2011
![Page 36: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/36.jpg)
Diminuindo a Carga no Final do Sprint
sábado, 29 de outubro de 2011
![Page 37: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/37.jpg)
Explore no início
Bugs e novos cenários rapidamente
Chance menor de ser surpreendido e tempo de descobrir mais problemas
sábado, 29 de outubro de 2011
![Page 38: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/38.jpg)
SubProdutos do BDD
sábado, 29 de outubro de 2011
![Page 39: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/39.jpg)
Rede de Segurançasábado, 29 de outubro de 2011
![Page 40: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/40.jpg)
Testes Automatizados
Eu posso fazer modificações com confiança e velocidade
Hummm… eu posso utilizar estes testes?
sábado, 29 de outubro de 2011
![Page 41: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/41.jpg)
Testes de Regressão Manual
sábado, 29 de outubro de 2011
![Page 42: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/42.jpg)
Propriedade Coletiva
Features + Definição de Passos
sábado, 29 de outubro de 2011
![Page 43: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/43.jpg)
Suíte de Regressão Automática
Testes de regressão ficaram baratos! Posso gerar versões mais rapidamente
Eu posso me focar em mais testes exploratórios!
sábado, 29 de outubro de 2011
![Page 44: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/44.jpg)
Especificação “Tradicional”
sábado, 29 de outubro de 2011
![Page 45: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/45.jpg)
Especificação executável
Dado (Given) uma conta de aluguel Quando (When) o locatário deve um aluguel no valor de R$1200,00 E (And) o locatário deve outro aluguel no valor de R$1200,00 Então (Then) o total da dívida é R$2400,00
sábado, 29 de outubro de 2011
![Page 46: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/46.jpg)
Resumindo, porque BDD?
sábado, 29 de outubro de 2011
![Page 47: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/47.jpg)
Melhor entendimento do problemaChance de melhorar meu investimento
Desenvolvimento mais eficienteFeedback rápido
Documentação "viva"
sábado, 29 de outubro de 2011
![Page 48: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/48.jpg)
Melhor entendimento do problemaEu sei onde inicia, o que fazer em
seguida e quando parar o desenvolvimento de uma feature
Chance de construir algo rapidamenteRede de segurança para efetuar
mudanças
sábado, 29 de outubro de 2011
![Page 49: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/49.jpg)
Melhor entendimento do problemaSoftware para testar mais
rapidamenteMais tempo para testes
exploratórios
sábado, 29 de outubro de 2011
![Page 50: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/50.jpg)
JBehave
sábado, 29 de outubro de 2011
![Page 51: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/51.jpg)
sábado, 29 de outubro de 2011
![Page 52: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/52.jpg)
JBehave
Title (one line describing the story)
Narrative:As a [role]I want [feature]So that [benefit] Acceptance Criteria: (presented as Scenarios) Scenario 1: TitleGiven [context] And [some more context]...When [event]Then [outcome] And [another outcome]... Scenario 2: ...
Advantages of the “As a user, I want” user story template, by Mike Cohn
Cenários descrevendo os comportamentos esperados.
sábado, 29 de outubro de 2011
![Page 53: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/53.jpg)
JBehave
Utilização das palavras chave dos cenários em texto puro;
Criação classes para mapear os passos (Steps);
Criação de classes para rodar os cenários, chamando os steps necessários;
sábado, 29 de outubro de 2011
![Page 54: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/54.jpg)
Live Coding - JBehave
sábado, 29 de outubro de 2011
![Page 55: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/55.jpg)
JBehave != BDD
sábado, 29 de outubro de 2011
![Page 56: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/56.jpg)
“All of these tools are great... but, in the end, tools are tools. While RSpec and Cucumber are optimized for BDD, using them doesnʼt automatically mean youʼre doing BDD"The RSpec Book
sábado, 29 de outubro de 2011
![Page 57: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/57.jpg)
Dúvidas?
sábado, 29 de outubro de 2011
![Page 58: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/58.jpg)
Eder Ignatowicz
@ederign
sábado, 29 de outubro de 2011
![Page 59: BDD - Além do Hello World](https://reader037.vdocuments.mx/reader037/viewer/2022102815/5563ecc7d8b42a0a288b48b7/html5/thumbnails/59.jpg)
Bibliografia
Apresentação baseado no trabalho de Brent Snook
sábado, 29 de outubro de 2011