php experience 2016 - [workshop] agile: test driven development
TRANSCRIPT
Bem Vindos!
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 resultadoTe faz codificar menosTe faz falhar mais rápido #failfast
Você gostará de TDD
Test Driven Development
Escreva um Teste
Veja o Teste 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:3
8
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 o Teste Falhar
Faça-o Passar
Refatore
EXERCÍCIO 4...
Dúvidas???
Treinar sempre!
@SimonePittner
Agradecimentos à
Bryan Beecham - criadorBilly Garnet - criador
@SimonePittner