behaviour-driven development: escrevendo especificações ágeis

35
Behaviour-Driven Development especificando software de forma ágil Hugo Lopes Tavares Universidade Cândido Mendes - Campos Novembro 2009

Upload: hugo-lopes-tavares

Post on 05-Dec-2014

1.221 views

Category:

Technology


0 download

DESCRIPTION

Apresentação feita na UCAM - Campos com o objetivo de mostrar as idéias de BDD e algumas ferramentas pra aplicar tal metodologia.

TRANSCRIPT

Page 1: Behaviour-Driven Development: escrevendo especificações ágeis

Behaviour-Dr iven Developmentespecificando software de forma ágil

Hugo Lopes TavaresUniversidade Cândido Mendes - Campos

Novembro 2009

Page 2: Behaviour-Driven Development: escrevendo especificações ágeis

Por que ter especificações de software?

Page 3: Behaviour-Driven Development: escrevendo especificações ágeis

http://upload.wikimedia.org/wikipedia/commons/0/08/Modelo_em_cascata.png

Page 4: Behaviour-Driven Development: escrevendo especificações ágeis

http://www.flickr.com/photos/toastforbrekkie/3488847960

Page 5: Behaviour-Driven Development: escrevendo especificações ágeis

http://www.flickr.com/photos/wongjunhao/2189540204

Page 6: Behaviour-Driven Development: escrevendo especificações ágeis

http://www.flickr.com/photos/vox/3966754898

testes manuais

Page 7: Behaviour-Driven Development: escrevendo especificações ágeis

http://www.flickr.com/photos/rwphoto/3476071029

Page 8: Behaviour-Driven Development: escrevendo especificações ágeis

http://www.flickr.com/photos/slipstreamblue/2677206060

Page 9: Behaviour-Driven Development: escrevendo especificações ágeis
Page 10: Behaviour-Driven Development: escrevendo especificações ágeis
Page 11: Behaviour-Driven Development: escrevendo especificações ágeis

O que é BDD?

Page 12: Behaviour-Driven Development: escrevendo especificações ágeis

Como fazer BDD no dia-a-dia?

Page 13: Behaviour-Driven Development: escrevendo especificações ágeis
Page 14: Behaviour-Driven Development: escrevendo especificações ágeis

http://www.flickr.com/photos/jnicho02/2827250133

Page 15: Behaviour-Driven Development: escrevendo especificações ágeis

stakeholder + dev

Page 16: Behaviour-Driven Development: escrevendo especificações ágeis
Page 17: Behaviour-Driven Development: escrevendo especificações ágeis
Page 18: Behaviour-Driven Development: escrevendo especificações ágeis

exemplos

Page 19: Behaviour-Driven Development: escrevendo especificações ágeis

http://www.agileprogrammer.com/uploads/bradwils/red_2Dgreen_2Drefactor.png

Page 20: Behaviour-Driven Development: escrevendo especificações ágeis

Mock Objects

Page 21: Behaviour-Driven Development: escrevendo especificações ágeis

http://z.about.com/d/chemistry/1/0/G/f/stinkbomb.jpg

um caso de falha: pyhistor ian

Page 22: Behaviour-Driven Development: escrevendo especificações ágeis

http://www.flickr.com/photos/wwworks/3337409383

Page 23: Behaviour-Driven Development: escrevendo especificações ágeis

http://www.flickr.com/photos/editor/172690560/

YAGNI

Page 24: Behaviour-Driven Development: escrevendo especificações ágeis

http://www.flickr.com/photos/myelectricsheep/241058566

flexibilidade

Page 25: Behaviour-Driven Development: escrevendo especificações ágeis

http://www.flickr.com/photos/visionwithin/513293155

COLABORAÇÃO

Page 26: Behaviour-Driven Development: escrevendo especificações ágeis
Page 27: Behaviour-Driven Development: escrevendo especificações ágeis
Page 28: Behaviour-Driven Development: escrevendo especificações ágeis

http://www.informit.com/ShowCover.aspx?isbn=0321125215

Page 29: Behaviour-Driven Development: escrevendo especificações ágeis
Page 30: Behaviour-Driven Development: escrevendo especificações ágeis

http://www.flickr.com/photos/m2w2/191545978

Ferramentas

Page 31: Behaviour-Driven Development: escrevendo especificações ágeis

pyhistorian pyccuracy

Freshen pyCukes pyMock Mockito Ludibrio

Should-DSL

Page 32: Behaviour-Driven Development: escrevendo especificações ágeis

Cucumber Webrat RSpec

Remarkable Mocha

Factory Girl Machinist

Object Daddy

Page 33: Behaviour-Driven Development: escrevendo especificações ágeis

JBehave 2.0 Easyb

Mockito EasyMock

JMock Hamcrest

JUnit TestNG

Page 34: Behaviour-Driven Development: escrevendo especificações ágeis

Cuke4nukeSpecflow

NspecNbehave

MspecSpecunit

Cucubmer + IronRuby

Page 35: Behaviour-Driven Development: escrevendo especificações ágeis

Obrigado!Email : [email protected]

Twitter: @hltbraGithub: http://hugolt.wordpress.com

Blog: http://github.com/hugobr