Otimizando Integrações com testes de Colaboração e Contrato
-
Upload
rafael-martins -
Category
Technology
-
view
577 -
download
1
description
Transcript of Otimizando Integrações com testes de Colaboração e Contrato
![Page 1: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/1.jpg)
@snit_ram
OTIMIZANDO INTEGRAÇÕES COM TESTES DE COLABORAÇÃO E CONTRATO
http://www.flickr.com/photos/viasualart2011/5941136672/sizes/l/in/photostream/
![Page 2: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/2.jpg)
TEORIA DAS FILAS
http://www.flickr.com/photos/57665680@N06/5649865356/sizes/l/in/photostream/
![Page 3: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/3.jpg)
TEORIA DAS FILAS
Dado um processo B, que sucede um processo A, as vezes, ao executar B,
precisamos refazer parte de A. Podemos evitar este retrabalho extraindo parte de B e executando-o antes do processo A
“
”
![Page 4: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/4.jpg)
TEORIA DAS FILAS
A B
![Page 5: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/5.jpg)
TEORIA DAS FILAS
A B20%
![Page 6: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/6.jpg)
TEORIA DAS FILAS
B A
Cicloscurtos
![Page 7: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/7.jpg)
REVENDO O WATERFALL
http://www.flickr.com/photos/chiaralily/4416226801/sizes/z/in/photostream/
![Page 8: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/8.jpg)
Requisitos
Análise
Design
Código
Testes
Manutenção
REVENDO O WATERFALL
![Page 9: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/9.jpg)
Código Teste
![Page 10: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/10.jpg)
Código
Bugs
Teste
![Page 11: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/11.jpg)
Teste Código
Cicloscurtos
![Page 12: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/12.jpg)
Teste
CódigoDesign
![Page 13: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/13.jpg)
Teste
CódigoDesign
“Não testável”
![Page 14: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/14.jpg)
Teste Código
Design
CiclosCurtos
![Page 15: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/15.jpg)
Teste Código
Design
CiclosCurtos
= TDD
![Page 16: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/16.jpg)
Teste Código
Design
Análise
![Page 17: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/17.jpg)
Teste Código
Design
Análise
“Não era isso que eu queria”
![Page 18: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/18.jpg)
Teste Código
DesignAnálise
CiclosCurtos
![Page 19: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/19.jpg)
Teste Código
DesignAnálise
CiclosCurtos
= Agile
![Page 20: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/20.jpg)
INTEGRAÇÃO
http://www.edge-ka.com/uploads/Image/BioRails/collaboration.jpg
![Page 21: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/21.jpg)
A B
![Page 22: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/22.jpg)
ATeste Código B
![Page 23: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/23.jpg)
ATeste Código BTeste Código
![Page 24: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/24.jpg)
ATeste Código BTeste Código
![Page 25: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/25.jpg)
ATeste Código BTeste Código
Integração
![Page 26: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/26.jpg)
ATeste Código BTeste Código
Integração
BUGS
![Page 27: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/27.jpg)
WTF?
![Page 28: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/28.jpg)
Teste
CódigoIntegração
![Page 29: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/29.jpg)
“quando juntei deu erro”
Teste
CódigoIntegração
![Page 30: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/30.jpg)
O QUE?
![Page 31: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/31.jpg)
Teste Código
Integração
Cicloscurtos
![Page 32: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/32.jpg)
COMO?
![Page 33: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/33.jpg)
TESTES DE COLABORAÇÃO E CONTRATO
http://www.flickr.com/photos/25143703@N04/2491903629/sizes/m/in/photostream/
![Page 34: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/34.jpg)
2 3
4 5 6 7
8 9
1
COMO FUNCIONA
![Page 35: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/35.jpg)
51
Contrato
Testes de
Colaboração
Testes de
Contrato
COMO FUNCIONA
![Page 36: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/36.jpg)
5Mock
1
Colaboração
Fiz a pergunta certa?
Sei tratar a resposta?
COMO FUNCIONA
![Page 37: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/37.jpg)
5
Contrato
Sou capaz de responder?
Respondo como esperado?
COMO FUNCIONA
![Page 38: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/38.jpg)
Contraato
COMO FUNCIONA
5
Contrato
Sou capaz de responder?
Respondo como esperado?
1
Fiz a pergunta certa?
Sei tratar a resposta?
Colaboração
![Page 39: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/39.jpg)
![Page 40: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/40.jpg)
Correspondência
entre testes
![Page 41: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/41.jpg)
TheCoffee Maker
EXEMPLO REAL
https://github.com/snit-ram/contract-tests-lab
![Page 42: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/42.jpg)
THE COFFEE MAKER
CoffeeMaker
WaterDispenser
Led
Led
Ground Coffee
Dispenser
![Page 43: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/43.jpg)
Init
CoffeeMaker
WaterDispenser
Led
Led
Ground Coffee
Dispenser
![Page 44: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/44.jpg)
InitInit
Init
CoffeeMaker
WaterDispenser
Led
Led
Ground Coffee
Dispenser
![Page 45: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/45.jpg)
InitOn
On
CoffeeMaker
WaterDispenser
Led
Led
Ground Coffee
Dispenser
![Page 46: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/46.jpg)
Fill
CoffeeMaker
WaterDispenser
Led
Led
Ground Coffee
Dispenser
![Page 47: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/47.jpg)
Fillfill
f ill
CoffeeMaker
WaterDispenser
Led
Led
Ground Coffee
Dispenser
![Page 48: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/48.jpg)
FillOff
Off
CoffeeMaker
WaterDispenser
Led
Led
Ground Coffee
Dispenser
![Page 49: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/49.jpg)
Make coffee
CoffeeMaker
WaterDispenser
Led
Led
Ground Coffee
Dispenser
![Page 50: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/50.jpg)
Make coffee
Make coffee
CoffeeMaker
WaterDispenser
Led
Led
Ground Coffee
Dispenser
![Page 51: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/51.jpg)
Make coffee
has?
has?
CoffeeMaker
WaterDispenser
Led
Led
Ground Coffee
Dispenser
![Page 52: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/52.jpg)
Make coffee
y/n
y/n
CoffeeMaker
WaterDispenser
Led
Led
Ground Coffee
Dispenser
![Page 53: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/53.jpg)
Make coffee
exception
CoffeeMaker
WaterDispenser
Led
Led
Ground Coffee
Dispenser
![Page 54: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/54.jpg)
Make coffee
CoffeeMaker
WaterDispenser
Led
Led
Ground Coffee
Dispenser
get
get
![Page 55: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/55.jpg)
Make coffee
CoffeeMaker
WaterDispenser
Led
Led
Ground Coffee
DispenserGive
Give
![Page 56: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/56.jpg)
Make coffeehas?
has?
CoffeeMaker
WaterDispenser
Led
Led
Ground Coffee
Dispenser
![Page 57: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/57.jpg)
Make coffeeOn
On
CoffeeMaker
WaterDispenser
Led
Led
Ground Coffee
Dispenser
![Page 58: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/58.jpg)
Make coffee
CoffeeMaker
WaterDispenser
Led
Led
Ground Coffee
Dispensercoffee
![Page 59: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/59.jpg)
CoffeeMakerWater
DispenserMock
has(5)
True
COLABORAÇÃO
![Page 60: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/60.jpg)
CoffeeMakerWater
DispenserMock
has(5)
True
has(5)
CoffeeMakerWater
DispenserMock
False
COLABORAÇÃO
![Page 61: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/61.jpg)
WaterDispenser
has(5)amount=5
assertTrue()
CONTRATO
![Page 62: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/62.jpg)
WaterDispenser
has(5)amount=5
assertTrue()
has(5)
WaterDispenser
amount=2
assertFalse()
CONTRATO
![Page 63: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/63.jpg)
WaterDispenser
LedMock
assertFalse( led.on.called )
COLABORAÇÃOget(5)
amount=10
![Page 64: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/64.jpg)
WaterDispenser
LedMock
assertFalse( led.on.called )
COLABORAÇÃOget(5)
amount=10
assertTrue( led.on.called )
WaterDispenser
LedMock
get(5)
amount=5
![Page 65: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/65.jpg)
Led
on()
assertTrue( self.is_on )
CONTRATO
![Page 66: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/66.jpg)
Led
on()
assertTrue( self.is_on )
off()
Led
assertFalse( self.is_on )
CONTRATO
![Page 67: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/67.jpg)
POR QUE?
![Page 68: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/68.jpg)
Integração durante o fluxo de TDD
![Page 69: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/69.jpg)
Integração durante o fluxo de TDD
Feedback mais rápido
![Page 70: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/70.jpg)
Integração durante o fluxo de TDD
Feedback mais rápido
Continuous integration
![Page 71: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/71.jpg)
Contratos sólidos
![Page 72: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/72.jpg)
Contratos sólidos
Reduz bugs / retrabalho
![Page 73: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/73.jpg)
Contratos sólidos
Colaborações transparentes
Reduz bugs / retrabalho
![Page 74: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/74.jpg)
Contratos sólidos
Colaborações transparentes
Reduz bugs / retrabalho
Aumenta paralelismo
![Page 75: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/75.jpg)
Reduz testes integrados
![Page 76: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/76.jpg)
Reduz testes integrados
Suite mais rápida
![Page 77: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/77.jpg)
Reduz testes integrados
Suite mais rápida
Menos código para manter
![Page 78: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/78.jpg)
Reduz testes integrados
Suite mais rápida
Menos código para manter
Trabalho focado
![Page 79: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/79.jpg)
Outside-in Development
![Page 80: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/80.jpg)
Outside-in Development
Design simples
![Page 81: Otimizando Integrações com testes de Colaboração e Contrato](https://reader038.fdocument.pub/reader038/viewer/2022110309/558cafe5d8b42a1a188b4755/html5/thumbnails/81.jpg)
Outside-in Development
Código independente
Design simples