![Page 1: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/1.jpg)
Bem Vindos!
Created by Simone Píttner
![Page 2: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/2.jpg)
TDD – TEST DRIVEN DESIGN
![Page 3: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/3.jpg)
Tempo de WS – 1 hora e meia
![Page 4: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/4.jpg)
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!?
![Page 5: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/5.jpg)
Test Driven Development
TDD
Te faz pensar no resultadoTe faz codificar menosTe faz falhar mais rápido #failfast
Você gostará de TDD
![Page 6: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/6.jpg)
Test Driven Development
Escreva um Teste
Veja o Teste Falhar
Faça-o Passar
Refatore
![Page 7: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/7.jpg)
Baby Steps
![Page 8: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/8.jpg)
Escrever o Teste...#writetest
![Page 9: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/9.jpg)
Ver o teste falhar...#failtest
![Page 10: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/10.jpg)
Fazer o teste passar ...#simplecode
![Page 11: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/11.jpg)
Melhorar o código...#refactoring
![Page 12: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/12.jpg)
EXERCÍCIO 1...
.Construa uma casa
.Construa uma pessoa
![Page 13: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/13.jpg)
EXERCÍCIO 1...
ADMIRE SEU TRABALHOtrabalho.Tire uma foto
![Page 14: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/14.jpg)
Referências
![Page 15: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/15.jpg)
12:3
8
TDD é aprendizado contínuo
![Page 16: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/16.jpg)
EXERCÍCIO 2...
.Construa uma casa
.Construa uma pessoa
COM LEGO!!
![Page 17: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/17.jpg)
Lego – vamos praticar!
![Page 18: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/18.jpg)
EXERCÍCIO 2...
PREPARE O AMBIENTE
.Limpe a sua área de trabalho
![Page 19: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/19.jpg)
EXERCÍCIO 2...
PRIMEIRO TESTE
.Existe uma pessoa? Não?
![Page 20: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/20.jpg)
EXERCÍCIO 2...
COMEMORE
IUHUUUU!! Falhamos o primeiro teste
![Page 21: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/21.jpg)
EXERCÍCIO 2...
Pegue um bloco, isto é uma pessoa!
...é o “mínimo” para o teste passar.
![Page 22: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/22.jpg)
EXERCÍCIO 2...
COMEMORE
IUHUUUU!! Existe uma pessoa, o teste passou!
![Page 23: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/23.jpg)
EXERCÍCIO 2...
REFATORE
Melhore, remova duplicações Neste caso pouco há a ser feito.
![Page 24: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/24.jpg)
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.
![Page 25: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/25.jpg)
EXERCÍCIO 2...
SOFTWARE
.deve funcionar!!
.deve ser extensível (“updatable”),.deve ser compreensível.
![Page 26: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/26.jpg)
EXERCÍCIO 2...
TESTES
.a pessoa cabe na casa? Não?IUHUHHH #failtest
![Page 27: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/27.jpg)
EXERCÍCIO 2...
TESTES
.faça o mínimo para esse teste passar
![Page 28: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/28.jpg)
EXERCÍCIO 2...
TESTES
.cabem três pessoas na casa? Não?IUHUUU! #failtest
![Page 29: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/29.jpg)
EXERCÍCIO 2...
TESTES
.faça o mínimo para esse teste passar
![Page 30: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/30.jpg)
Pair Programming
![Page 31: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/31.jpg)
EXERCÍCIO 3...
TESTES
Vamos trabalhar em P A R E S.
![Page 32: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/32.jpg)
EXERCÍCIO 3...
REQUISITOS
Seu programa, agora, precisa:.01 pessoa.01 casa.01 animal.01 veículo
![Page 33: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/33.jpg)
EXERCÍCIO 3...
TRABALHEM JUNTOS
. Iniciem pelos testes,
. Faça-o falhar,
. Construa o mínimo,
. Faça o passar,
. Refatore.
![Page 34: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/34.jpg)
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.
![Page 35: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/35.jpg)
Retrospectiva
Retrospectiva
![Page 36: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/36.jpg)
EXERCÍCIO 4...
MONTE UM GRUPO
. Monte um grupo de legos com 6 peças. Exemplo: empilhe: amarelo, vermelho, verde, vermelho, preto e preto.
![Page 37: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/37.jpg)
EXERCÍCIO 4...
CLASSE e MÉTODO
. O grupo de legos é uma classe.
. Cada cor de lego é um método.
![Page 38: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/38.jpg)
EXERCÍCIO 4...
CLASSE e MÉTODO
. O grupo de legos é uma classe.
. Cada cor de lego é um método.
![Page 39: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/39.jpg)
EXERCÍCIO 3...
DUPLICAÇÃO
. Identifique métodos duplicados e remova-os #fixit
![Page 40: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/40.jpg)
EXERCÍCIO 3...
EXTRAIR MÉTODO
. Para extrair método precisamos de?
![Page 41: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/41.jpg)
Retrospectiva
Retrospectiva
![Page 42: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/42.jpg)
Dúvidas???
![Page 43: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/43.jpg)
EXERCÍCIO 4...
![Page 44: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/44.jpg)
EXERCÍCIO 4...
VAMOS TRABALHAR EM GRUPO
. Defina os requisitos em um grupo de 5 a 6 pessoas.
![Page 45: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/45.jpg)
Construa a ideia do grupo.EXERCÍCO 4...
Escreva um Teste
Veja o Teste Falhar
Faça-o Passar
Refatore
![Page 46: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/46.jpg)
EXERCÍCIO 4...
![Page 47: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/47.jpg)
Dúvidas???
![Page 48: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/48.jpg)
Treinar sempre!
![Page 49: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/49.jpg)
@SimonePittner
Agradecimentos à
Bryan Beecham - criadorBilly Garnet - criador
![Page 50: PHP Experience 2016 - [Workshop] Agile: Test Driven Development](https://reader036.vdocument.in/reader036/viewer/2022062412/5870ea891a28abcf288b69f7/html5/thumbnails/50.jpg)
@SimonePittner