php experience 2016 - [workshop] agile: test driven development

50
Bem Vin dos ! Created by Simone Píttner

Upload: imasters

Post on 16-Apr-2017

277 views

Category:

Education


1 download

TRANSCRIPT

Page 1: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

Bem Vindos!

Created by Simone Píttner

Page 2: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

TDD – TEST DRIVEN DESIGN

Page 3: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

Tempo de WS – 1 hora e meia

Page 4: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

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

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

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

Baby Steps

Page 8: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

Escrever o Teste...#writetest

Page 9: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

Ver o teste falhar...#failtest

Page 10: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

Fazer o teste passar ...#simplecode

Page 11: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

Melhorar o código...#refactoring

Page 12: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

EXERCÍCIO 1...

.Construa uma casa

.Construa uma pessoa

Page 13: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

EXERCÍCIO 1...

ADMIRE SEU TRABALHOtrabalho.Tire uma foto

Page 14: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

Referências

Page 15: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

12:3

8

TDD é aprendizado contínuo

Page 16: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

EXERCÍCIO 2...

.Construa uma casa

.Construa uma pessoa

COM LEGO!!

Page 17: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

Lego – vamos praticar!

Page 18: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

EXERCÍCIO 2...

PREPARE O AMBIENTE

.Limpe a sua área de trabalho

Page 19: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

EXERCÍCIO 2...

PRIMEIRO TESTE

.Existe uma pessoa? Não?

Page 20: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

EXERCÍCIO 2...

COMEMORE

IUHUUUU!! Falhamos o primeiro teste

Page 21: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

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

EXERCÍCIO 2...

COMEMORE

IUHUUUU!! Existe uma pessoa, o teste passou!

Page 23: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

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

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

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

EXERCÍCIO 2...

TESTES

.a pessoa cabe na casa? Não?IUHUHHH #failtest

Page 27: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

EXERCÍCIO 2...

TESTES

.faça o mínimo para esse teste passar

Page 28: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

EXERCÍCIO 2...

TESTES

.cabem três pessoas na casa? Não?IUHUUU! #failtest

Page 29: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

EXERCÍCIO 2...

TESTES

.faça o mínimo para esse teste passar

Page 30: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

Pair Programming

Page 31: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

EXERCÍCIO 3...

TESTES

Vamos trabalhar em P A R E S.

Page 32: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

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

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

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

Retrospectiva

Retrospectiva

Page 36: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

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

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

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

EXERCÍCIO 3...

DUPLICAÇÃO

. Identifique métodos duplicados e remova-os #fixit

Page 40: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

EXERCÍCIO 3...

EXTRAIR MÉTODO

. Para extrair método precisamos de?

Page 41: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

Retrospectiva

Retrospectiva

Page 42: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

Dúvidas???

Page 43: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

EXERCÍCIO 4...

Page 44: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

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

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

EXERCÍCIO 4...

Page 47: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

Dúvidas???

Page 48: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

Treinar sempre!

Page 49: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

@SimonePittner

Agradecimentos à

Bryan Beecham - criadorBilly Garnet - criador

Page 50: PHP Experience 2016 - [Workshop] Agile: Test Driven Development

@SimonePittner