SlideShare uma empresa Scribd logo
1 de 50
BemVindos!
Created by Simone Píttner
TDD – TEST DRIVEN DESIGN
Tempo de WS – 1 hora e meia
TU vs TDD
Se você tem...
.Aplicações difíceis de manter,
.Que quebram com pequenas alterações,
.Complexas que precisam ser mantidas estáveis,
.Com exigência de alta disponibilidade,
.Necessidade de documentar comportamento...
Será que precisamos de testes de unidade!?
Test Driven Development
TDD
Te faz pensar no resultado
Te faz codificar menos
Te faz falhar mais rápido #failfast
Você gostará de TDD
Test Driven Development
Escreva um
Teste
Veja oTeste
Falhar
Faça-o
Passar
Refatore
Baby Steps
Escrever o Teste...#writetest
Ver o teste falhar...#failtest
Fazer o teste passar ...#simplecode
Melhorar o código...#refactoring
EXERCÍCIO 1...
.Construa uma casa
.Construa uma pessoa
EXERCÍCIO 1...
ADMIRE SEU TRABALHOtrabalho
.Tire uma foto
Referências
12:38
TDD é aprendizado contínuo
EXERCÍCIO 2...
.Construa uma casa
.Construa uma pessoa
COM LEGO!!
Lego – vamos praticar!
EXERCÍCIO 2...
PREPARE O AMBIENTE
.Limpe a sua área de trabalho
EXERCÍCIO 2...
PRIMEIRO TESTE
.Existe uma pessoa? Não?
EXERCÍCIO 2...
COMEMORE
IUHUUUU!! Falhamos o primeiro teste
EXERCÍCIO 2...
Pegue um bloco, isto é uma pessoa!
...é o “mínimo” para o teste passar.
EXERCÍCIO 2...
COMEMORE
IUHUUUU!!
Existe uma pessoa, o teste passou!
EXERCÍCIO 2...
REFATORE
Melhore, remova duplicações
Neste caso pouco há a ser feito.
EXERCÍCIO 2...
Blah, blah, blah idem para a casa
Escreva o teste, falhe.
Faço o mínimo e faça-o passar.
Refatore.
EXERCÍCIO 2...
SOFTWARE
.deve funcionar!!
.deve ser extensível (“updatable”),
.deve ser compreensível.
EXERCÍCIO 2...
TESTES
.a pessoa cabe na casa? Não?
IUHUHHH #failtest
EXERCÍCIO 2...
TESTES
.faça o mínimo para esse teste
passar
EXERCÍCIO 2...
TESTES
.cabem três pessoas na casa? Não?
IUHUUU! #failtest
EXERCÍCIO 2...
TESTES
.faça o mínimo para esse teste
passar
Pair Programming
EXERCÍCIO 3...
TESTES
Vamos trabalhar em P A R E S.
EXERCÍCIO 3...
REQUISITOS
Seu programa, agora, precisa:
.01 pessoa
.01 casa
.01 animal
.01 veículo
EXERCÍCIO 3...
TRABALHEM JUNTOS
. Iniciem pelos testes,
. Faça-o falhar,
. Construa o mínimo,
. Faça o passar,
. Refatore.
EXERCÍCIO 3...
TRABALHEM JUNTOS
. Valide itens como:
. Os tamanhos são proporcionais.
. Vocês seguirão padrões? Quais?
. Admire seu trabalho.
. Tire foto.
Retrospectiva
Retrospectiva
EXERCÍCIO 4...
MONTE UM GRUPO
. Monte um grupo de legos com 6
peças. Exemplo: empilhe: amarelo,
vermelho, verde, vermelho, preto e
preto.
EXERCÍCIO 4...
CLASSE e MÉTODO
. O grupo de legos é uma classe.
. Cada cor de lego é um método.
EXERCÍCIO 4...
CLASSE e MÉTODO
. O grupo de legos é uma classe.
. Cada cor de lego é um método.
EXERCÍCIO 3...
DUPLICAÇÃO
. Identifique métodos duplicados e
remova-os #fixit
EXERCÍCIO 3...
EXTRAIR MÉTODO
. Para extrair método precisamos
de?
Retrospectiva
Retrospectiva
Dúvidas???
EXERCÍCIO 4...
EXERCÍCIO 4...
VAMOS TRABALHAR EM GRUPO
. Defina os requisitos em um grupo
de 5 a 6 pessoas.
Construa a ideia do grupo.EXERCÍCO 4...
Escreva um
Teste
Veja oTeste
Falhar
Faça-o
Passar
Refatore
EXERCÍCIO 4...
Dúvidas???
Treinar sempre!
@SimonePittner
Agradecimentos à
Bryan Beecham - criador
Billy Garnet - criador
@SimonePittner

Mais conteúdo relacionado

Mais procurados

NuGet - Gerenciando dependências em .NET
NuGet - Gerenciando dependências em .NETNuGet - Gerenciando dependências em .NET
NuGet - Gerenciando dependências em .NETVinicius Quaiato
 
Importancia dos Testes Automatizados no dia a dia (Don't Panic)
Importancia dos Testes Automatizados no dia a dia (Don't Panic)Importancia dos Testes Automatizados no dia a dia (Don't Panic)
Importancia dos Testes Automatizados no dia a dia (Don't Panic)Rafael Ponte
 
Test Driven Development (TDD) para seres humanos.
Test Driven Development (TDD) para seres humanos.Test Driven Development (TDD) para seres humanos.
Test Driven Development (TDD) para seres humanos.Rômulo Augusto Santos
 
Testes de software
Testes de softwareTestes de software
Testes de softwareVitor Castro
 
Scrum na Globo.com - Derrubando mitos - UPDATED
Scrum na Globo.com - Derrubando mitos - UPDATEDScrum na Globo.com - Derrubando mitos - UPDATED
Scrum na Globo.com - Derrubando mitos - UPDATEDDanilo Bardusco
 
Enterprise Scrum - Recife Summer School
Enterprise Scrum - Recife Summer SchoolEnterprise Scrum - Recife Summer School
Enterprise Scrum - Recife Summer SchoolDanilo Bardusco
 
Testes + Automacao + Atitude = Toolkit para a melhoria continua
Testes + Automacao + Atitude = Toolkit para a melhoria continuaTestes + Automacao + Atitude = Toolkit para a melhoria continua
Testes + Automacao + Atitude = Toolkit para a melhoria continuaGuilherme Elias
 
Curso Scrum e Métodos Ágeis 06
Curso Scrum e Métodos Ágeis 06Curso Scrum e Métodos Ágeis 06
Curso Scrum e Métodos Ágeis 06Luiz Duarte
 
os desafios de escalar SCRUM
os desafios de escalar SCRUMos desafios de escalar SCRUM
os desafios de escalar SCRUMDanilo Bardusco
 
Curso Scrum e Métodos Ágeis 03
Curso Scrum e Métodos Ágeis 03Curso Scrum e Métodos Ágeis 03
Curso Scrum e Métodos Ágeis 03Luiz Duarte
 
Eu não sou um "bom programador"!
Eu não sou um "bom programador"!Eu não sou um "bom programador"!
Eu não sou um "bom programador"!Gustavo Pereira
 
Curso Scrum e Métodos Ágeis 02
Curso Scrum e Métodos Ágeis 02Curso Scrum e Métodos Ágeis 02
Curso Scrum e Métodos Ágeis 02Luiz Duarte
 
Restrospectiva Bluesoft 2008
Restrospectiva Bluesoft 2008Restrospectiva Bluesoft 2008
Restrospectiva Bluesoft 2008Luiz Faias Junior
 
Curso Scrum e Métodos Ágeis 05
Curso Scrum e Métodos Ágeis 05Curso Scrum e Métodos Ágeis 05
Curso Scrum e Métodos Ágeis 05Luiz Duarte
 
Lições aprendidas sobre transações em microsserviços
Lições aprendidas sobre transações em microsserviçosLições aprendidas sobre transações em microsserviços
Lições aprendidas sobre transações em microsserviçosFábio José Moraes
 
Testes de software automatizados
Testes de software automatizadosTestes de software automatizados
Testes de software automatizadosMarcelo Andrade
 
Do Agil ao agil, como evoluimos processos na plataformatec
Do Agil ao agil, como evoluimos processos na plataformatecDo Agil ao agil, como evoluimos processos na plataformatec
Do Agil ao agil, como evoluimos processos na plataformatecBreno Campos
 

Mais procurados (20)

NuGet - Gerenciando dependências em .NET
NuGet - Gerenciando dependências em .NETNuGet - Gerenciando dependências em .NET
NuGet - Gerenciando dependências em .NET
 
Importancia dos Testes Automatizados no dia a dia (Don't Panic)
Importancia dos Testes Automatizados no dia a dia (Don't Panic)Importancia dos Testes Automatizados no dia a dia (Don't Panic)
Importancia dos Testes Automatizados no dia a dia (Don't Panic)
 
Test Driven Development (TDD) para seres humanos.
Test Driven Development (TDD) para seres humanos.Test Driven Development (TDD) para seres humanos.
Test Driven Development (TDD) para seres humanos.
 
DDD + BDD + TDD + Scrum
DDD + BDD + TDD + ScrumDDD + BDD + TDD + Scrum
DDD + BDD + TDD + Scrum
 
Testes de software
Testes de softwareTestes de software
Testes de software
 
Scrum na Globo.com - Derrubando mitos - UPDATED
Scrum na Globo.com - Derrubando mitos - UPDATEDScrum na Globo.com - Derrubando mitos - UPDATED
Scrum na Globo.com - Derrubando mitos - UPDATED
 
Enterprise Scrum - Recife Summer School
Enterprise Scrum - Recife Summer SchoolEnterprise Scrum - Recife Summer School
Enterprise Scrum - Recife Summer School
 
Coding Dojo
Coding DojoCoding Dojo
Coding Dojo
 
Testes + Automacao + Atitude = Toolkit para a melhoria continua
Testes + Automacao + Atitude = Toolkit para a melhoria continuaTestes + Automacao + Atitude = Toolkit para a melhoria continua
Testes + Automacao + Atitude = Toolkit para a melhoria continua
 
Curso Scrum e Métodos Ágeis 06
Curso Scrum e Métodos Ágeis 06Curso Scrum e Métodos Ágeis 06
Curso Scrum e Métodos Ágeis 06
 
Introdução ao scrum
Introdução ao scrumIntrodução ao scrum
Introdução ao scrum
 
os desafios de escalar SCRUM
os desafios de escalar SCRUMos desafios de escalar SCRUM
os desafios de escalar SCRUM
 
Curso Scrum e Métodos Ágeis 03
Curso Scrum e Métodos Ágeis 03Curso Scrum e Métodos Ágeis 03
Curso Scrum e Métodos Ágeis 03
 
Eu não sou um "bom programador"!
Eu não sou um "bom programador"!Eu não sou um "bom programador"!
Eu não sou um "bom programador"!
 
Curso Scrum e Métodos Ágeis 02
Curso Scrum e Métodos Ágeis 02Curso Scrum e Métodos Ágeis 02
Curso Scrum e Métodos Ágeis 02
 
Restrospectiva Bluesoft 2008
Restrospectiva Bluesoft 2008Restrospectiva Bluesoft 2008
Restrospectiva Bluesoft 2008
 
Curso Scrum e Métodos Ágeis 05
Curso Scrum e Métodos Ágeis 05Curso Scrum e Métodos Ágeis 05
Curso Scrum e Métodos Ágeis 05
 
Lições aprendidas sobre transações em microsserviços
Lições aprendidas sobre transações em microsserviçosLições aprendidas sobre transações em microsserviços
Lições aprendidas sobre transações em microsserviços
 
Testes de software automatizados
Testes de software automatizadosTestes de software automatizados
Testes de software automatizados
 
Do Agil ao agil, como evoluimos processos na plataformatec
Do Agil ao agil, como evoluimos processos na plataformatecDo Agil ao agil, como evoluimos processos na plataformatec
Do Agil ao agil, como evoluimos processos na plataformatec
 

Semelhante a TDD com LEGO #PHPExperience2016

TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do MantraDionatan default
 
Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?Maurício Aniche
 
Test driven development teste e design no mundo real by mauricio aniche (z-li...
Test driven development teste e design no mundo real by mauricio aniche (z-li...Test driven development teste e design no mundo real by mauricio aniche (z-li...
Test driven development teste e design no mundo real by mauricio aniche (z-li...GessdaSilvaMachado
 
Introdução ao TDD (Test-Driven Development) - #guma10anos
Introdução ao TDD (Test-Driven Development) - #guma10anosIntrodução ao TDD (Test-Driven Development) - #guma10anos
Introdução ao TDD (Test-Driven Development) - #guma10anosDionatan default
 
Desenvolvimento orientado a testes
Desenvolvimento orientado a testesDesenvolvimento orientado a testes
Desenvolvimento orientado a testesCarlos Santana
 
Tdd em django sem desculpas versao final
Tdd em django sem desculpas versao finalTdd em django sem desculpas versao final
Tdd em django sem desculpas versao finalAdriano Petrich
 
TDD - Workshop Pyladies SP
TDD - Workshop Pyladies SPTDD - Workshop Pyladies SP
TDD - Workshop Pyladies SPJessyka Lage
 
Introdução a Desenvolvimento Orientado a Testes ( TDD )
Introdução a Desenvolvimento Orientado a Testes ( TDD )Introdução a Desenvolvimento Orientado a Testes ( TDD )
Introdução a Desenvolvimento Orientado a Testes ( TDD )Iure Guimaraes
 
Introdução ao Test Driven Development (TDD)
Introdução ao Test Driven Development (TDD)Introdução ao Test Driven Development (TDD)
Introdução ao Test Driven Development (TDD)Lucas Nery
 
Coding Dojo - Funcionamento
Coding Dojo - FuncionamentoCoding Dojo - Funcionamento
Coding Dojo - Funcionamentothiagodp
 
TDD - Pós Graduação em Engenharia de Software Ágil
TDD - Pós Graduação em Engenharia de Software ÁgilTDD - Pós Graduação em Engenharia de Software Ágil
TDD - Pós Graduação em Engenharia de Software ÁgilBruno Eustáquio
 
Greenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresaGreenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresaRafael Ponte
 
Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?Raphael Paiva
 
Tdd not sure if testing or developing
Tdd  not sure if testing or developingTdd  not sure if testing or developing
Tdd not sure if testing or developingRenato Oliveira
 
TDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fislTDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fislAdriano Petrich
 
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testeselliando dias
 

Semelhante a TDD com LEGO #PHPExperience2016 (20)

TDD: A Essência do Mantra
TDD: A Essência do MantraTDD: A Essência do Mantra
TDD: A Essência do Mantra
 
Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?
 
Test driven development teste e design no mundo real by mauricio aniche (z-li...
Test driven development teste e design no mundo real by mauricio aniche (z-li...Test driven development teste e design no mundo real by mauricio aniche (z-li...
Test driven development teste e design no mundo real by mauricio aniche (z-li...
 
Introdução ao TDD (Test-Driven Development) - #guma10anos
Introdução ao TDD (Test-Driven Development) - #guma10anosIntrodução ao TDD (Test-Driven Development) - #guma10anos
Introdução ao TDD (Test-Driven Development) - #guma10anos
 
Desenvolvimento orientado a testes
Desenvolvimento orientado a testesDesenvolvimento orientado a testes
Desenvolvimento orientado a testes
 
Tdd em django sem desculpas versao final
Tdd em django sem desculpas versao finalTdd em django sem desculpas versao final
Tdd em django sem desculpas versao final
 
TDD
TDDTDD
TDD
 
TDD - Workshop Pyladies SP
TDD - Workshop Pyladies SPTDD - Workshop Pyladies SP
TDD - Workshop Pyladies SP
 
Introdução a Desenvolvimento Orientado a Testes ( TDD )
Introdução a Desenvolvimento Orientado a Testes ( TDD )Introdução a Desenvolvimento Orientado a Testes ( TDD )
Introdução a Desenvolvimento Orientado a Testes ( TDD )
 
Palestra Testes De Unidade Com JUnit
Palestra Testes De Unidade Com JUnitPalestra Testes De Unidade Com JUnit
Palestra Testes De Unidade Com JUnit
 
Introdução ao Test Driven Development (TDD)
Introdução ao Test Driven Development (TDD)Introdução ao Test Driven Development (TDD)
Introdução ao Test Driven Development (TDD)
 
Coding Dojo - Funcionamento
Coding Dojo - FuncionamentoCoding Dojo - Funcionamento
Coding Dojo - Funcionamento
 
TDD - Pós Graduação em Engenharia de Software Ágil
TDD - Pós Graduação em Engenharia de Software ÁgilTDD - Pós Graduação em Engenharia de Software Ágil
TDD - Pós Graduação em Engenharia de Software Ágil
 
Greenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresaGreenbar - Testes automatizados na sua empresa
Greenbar - Testes automatizados na sua empresa
 
Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?
 
Testes - Para que?
Testes - Para que?Testes - Para que?
Testes - Para que?
 
Tdd not sure if testing or developing
Tdd  not sure if testing or developingTdd  not sure if testing or developing
Tdd not sure if testing or developing
 
TDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fislTDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fisl
 
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testes
 
Debugging node
Debugging nodeDebugging node
Debugging node
 

Mais de Simone Pittner

Métricas e indicadores startups
Métricas e indicadores startups Métricas e indicadores startups
Métricas e indicadores startups Simone Pittner
 
Management 3.0 beyond devs
Management 3.0 beyond devsManagement 3.0 beyond devs
Management 3.0 beyond devsSimone Pittner
 
Scrum foundation in_english
Scrum foundation in_englishScrum foundation in_english
Scrum foundation in_englishSimone Pittner
 
Scrum fundamentos e canvas de fixação de aprendizado
Scrum fundamentos e canvas de fixação de aprendizadoScrum fundamentos e canvas de fixação de aprendizado
Scrum fundamentos e canvas de fixação de aprendizadoSimone Pittner
 
Retrospectiva - Básico
Retrospectiva - BásicoRetrospectiva - Básico
Retrospectiva - BásicoSimone Pittner
 
Métodos ágeis - Panorama
Métodos ágeis - PanoramaMétodos ágeis - Panorama
Métodos ágeis - PanoramaSimone Pittner
 
Mnt mulheres sao mais humanas ou exatas
Mnt mulheres sao mais humanas ou exatasMnt mulheres sao mais humanas ou exatas
Mnt mulheres sao mais humanas ou exatasSimone Pittner
 
Cni cod revitalizado com métodos ágeis
Cni   cod revitalizado com métodos ágeisCni   cod revitalizado com métodos ágeis
Cni cod revitalizado com métodos ágeisSimone Pittner
 
Personas ágeis para user stories
Personas ágeis para user storiesPersonas ágeis para user stories
Personas ágeis para user storiesSimone Pittner
 
Contextualizando para Dojo
Contextualizando para DojoContextualizando para Dojo
Contextualizando para DojoSimone Pittner
 

Mais de Simone Pittner (18)

Gestão3.0 praticas
Gestão3.0 praticasGestão3.0 praticas
Gestão3.0 praticas
 
Customer Success
Customer SuccessCustomer Success
Customer Success
 
Métricas e indicadores startups
Métricas e indicadores startups Métricas e indicadores startups
Métricas e indicadores startups
 
Management 3.0 beyond devs
Management 3.0 beyond devsManagement 3.0 beyond devs
Management 3.0 beyond devs
 
Valor Quem Gera?
Valor Quem Gera?Valor Quem Gera?
Valor Quem Gera?
 
Scrum foundation in_english
Scrum foundation in_englishScrum foundation in_english
Scrum foundation in_english
 
Scrum fundamentos e canvas de fixação de aprendizado
Scrum fundamentos e canvas de fixação de aprendizadoScrum fundamentos e canvas de fixação de aprendizado
Scrum fundamentos e canvas de fixação de aprendizado
 
Os 7-saberes! (1)
Os 7-saberes! (1)Os 7-saberes! (1)
Os 7-saberes! (1)
 
Retrospectiva - Básico
Retrospectiva - BásicoRetrospectiva - Básico
Retrospectiva - Básico
 
Métodos ágeis - Panorama
Métodos ágeis - PanoramaMétodos ágeis - Panorama
Métodos ágeis - Panorama
 
PreGame by Canvas
PreGame by CanvasPreGame by Canvas
PreGame by Canvas
 
Mnt mulheres sao mais humanas ou exatas
Mnt mulheres sao mais humanas ou exatasMnt mulheres sao mais humanas ou exatas
Mnt mulheres sao mais humanas ou exatas
 
Engenharia Ágil
Engenharia ÁgilEngenharia Ágil
Engenharia Ágil
 
Cni cod revitalizado com métodos ágeis
Cni   cod revitalizado com métodos ágeisCni   cod revitalizado com métodos ágeis
Cni cod revitalizado com métodos ágeis
 
Tdd x testes unidades
Tdd x testes unidadesTdd x testes unidades
Tdd x testes unidades
 
Personas ágeis para user stories
Personas ágeis para user storiesPersonas ágeis para user stories
Personas ágeis para user stories
 
Contextualizando para Dojo
Contextualizando para DojoContextualizando para Dojo
Contextualizando para Dojo
 
Metadados
MetadadosMetadados
Metadados
 

TDD com LEGO #PHPExperience2016