1 test driven development john jonathan da silva / 11 - 2010
TRANSCRIPT
![Page 1: 1 Test Driven Development John Jonathan da Silva / 11 - 2010](https://reader036.vdocument.in/reader036/viewer/2022070311/552fc15e497959413d8e5432/html5/thumbnails/1.jpg)
1
Test Driven DevelopmentJohn Jonathan da Silva / 11 - 2010
![Page 2: 1 Test Driven Development John Jonathan da Silva / 11 - 2010](https://reader036.vdocument.in/reader036/viewer/2022070311/552fc15e497959413d8e5432/html5/thumbnails/2.jpg)
2
• Test Driven Development
I) O que é TDD?
II) Fundamentos do TDD
III) Vantagens de utilizar TDD
IV) 5 Desculpas para não usar TDD
V) Ciclo do TDD
VI) Tipos de testes
VII) Stubs
VIII) Fake it
IX) Mock Objects
X) JMock 2
XI) Hands on
Agenda
![Page 3: 1 Test Driven Development John Jonathan da Silva / 11 - 2010](https://reader036.vdocument.in/reader036/viewer/2022070311/552fc15e497959413d8e5432/html5/thumbnails/3.jpg)
TDD é método ágil que tem como objetivo aumentar a velocidade da entrega de produtos através da simplificação das atividades de desenvolvimento de software.
O que é TDD?
Test Driven Development
Test Driven Development
3
![Page 4: 1 Test Driven Development John Jonathan da Silva / 11 - 2010](https://reader036.vdocument.in/reader036/viewer/2022070311/552fc15e497959413d8e5432/html5/thumbnails/4.jpg)
• Escrever o teste da implementação da funcionalidade antes de escreve-lá;
• Escrever apenas código suficiente para fazer o teste passar;
• Escrever testes pequenos;
Fundamentos do TDD
Test Driven Development
Test Driven Development
4
![Page 5: 1 Test Driven Development John Jonathan da Silva / 11 - 2010](https://reader036.vdocument.in/reader036/viewer/2022070311/552fc15e497959413d8e5432/html5/thumbnails/5.jpg)
• Incentiva a simplicidade;• Aumente a confiança no código;• Ajuda como documentação;• Facilita refactorings.
Vantagens de usar TDD
Test Driven Development
Test Driven Development
5
![Page 6: 1 Test Driven Development John Jonathan da Silva / 11 - 2010](https://reader036.vdocument.in/reader036/viewer/2022070311/552fc15e497959413d8e5432/html5/thumbnails/6.jpg)
• Vai demorar muito mais• A funcionalidade é muito fácil• Não sei como testar• Isso não dá pra testar• Melhor deixar os testes com testadores
5 Desculpas para não usar TDD
Test Driven Development
Test Driven Development
6
Test Driven Development
Test Driven Development
6
![Page 7: 1 Test Driven Development John Jonathan da Silva / 11 - 2010](https://reader036.vdocument.in/reader036/viewer/2022070311/552fc15e497959413d8e5432/html5/thumbnails/7.jpg)
• Adicionar um teste e veja ele falhar;• Faça o teste passar; • Refatore;
Ciclo do TDD
Test Driven Development
7
![Page 8: 1 Test Driven Development John Jonathan da Silva / 11 - 2010](https://reader036.vdocument.in/reader036/viewer/2022070311/552fc15e497959413d8e5432/html5/thumbnails/8.jpg)
Test Driven Development
Ciclo do TDD
![Page 9: 1 Test Driven Development John Jonathan da Silva / 11 - 2010](https://reader036.vdocument.in/reader036/viewer/2022070311/552fc15e497959413d8e5432/html5/thumbnails/9.jpg)
• Aceitação• Integração• Unitários• Stress
Tipos de teste
Test Driven Development
9
![Page 10: 1 Test Driven Development John Jonathan da Silva / 11 - 2010](https://reader036.vdocument.in/reader036/viewer/2022070311/552fc15e497959413d8e5432/html5/thumbnails/10.jpg)
Stubs são classes que simulam o comportamento de classes mais complexas através de uma implementação simples. Com eles é possível isolar a classe testada do resto do sistema, simplificando os testes e deixando-os mais independentes.
Stubs
Test Driven Development
10
![Page 11: 1 Test Driven Development John Jonathan da Silva / 11 - 2010](https://reader036.vdocument.in/reader036/viewer/2022070311/552fc15e497959413d8e5432/html5/thumbnails/11.jpg)
A tenica Fake It consite em escrever um teste que falhe e para faze-lo passar, utiliza-se constantes. A medida em que o código evoluí e são adicionados novos testes estas constantes são gradualmente substituidas por variáveis.
Fake it (til you make it)
Test Driven Development
11
![Page 12: 1 Test Driven Development John Jonathan da Silva / 11 - 2010](https://reader036.vdocument.in/reader036/viewer/2022070311/552fc15e497959413d8e5432/html5/thumbnails/12.jpg)
São objetos que simulam o comportamento de objetos reais de forma controlada. São normalmente criados para testar o comportamento de outros objetos.
Mock Objects
Test Driven Development
12
![Page 13: 1 Test Driven Development John Jonathan da Silva / 11 - 2010](https://reader036.vdocument.in/reader036/viewer/2022070311/552fc15e497959413d8e5432/html5/thumbnails/13.jpg)
O JMock é uma biblioteca que auxilia o Test Driven Development através dos mock objects.
JMock 2
Test Driven Development
13
![Page 14: 1 Test Driven Development John Jonathan da Silva / 11 - 2010](https://reader036.vdocument.in/reader036/viewer/2022070311/552fc15e497959413d8e5432/html5/thumbnails/14.jpg)
• Web – Jmock 2
• http://www.jmock.org– Mock Objects
• http://www.mockobjects.com/
• Livros – Growing Object-Oriented Software Guided by Tests
• Steve Freeman • Nat Pryce
Referências
Test Driven Development
14
![Page 15: 1 Test Driven Development John Jonathan da Silva / 11 - 2010](https://reader036.vdocument.in/reader036/viewer/2022070311/552fc15e497959413d8e5432/html5/thumbnails/15.jpg)
– Test-Driven Development by Example• Kent Beck• Addison Wesley
– A arte do desenvolvimento ágil• James Shore• Shane Warden
– Refactoring: Improving the design of existing code• Marting Flower
• Ferramentas– FiTNesse - http://fitnesse.org/– Selenium - http://seleniumhq.org/– Apache JMeter - http://jakarta.apache.org/jmeter/
Referências - Continuação
Test Driven Development
15
![Page 16: 1 Test Driven Development John Jonathan da Silva / 11 - 2010](https://reader036.vdocument.in/reader036/viewer/2022070311/552fc15e497959413d8e5432/html5/thumbnails/16.jpg)
– Apache Maven - http://maven.apache.org– Eclipse - http://www.eclipse.org
• Bibliotecas | Frameworks– Jmock 2 - http://www.jmock.org– JUnit - www.junit.org– SwingUnit - https://swingunit.dev.java.net/– EasyMock - http://www.easymock.org– MockEJB Framework - http://www.mockejb.org– WSUnit - https://wsunit.dev.java.net/– XMLUnit – http://xmlunit.sourceforge.net
Referências - Continuação
Test Driven Development
16
![Page 17: 1 Test Driven Development John Jonathan da Silva / 11 - 2010](https://reader036.vdocument.in/reader036/viewer/2022070311/552fc15e497959413d8e5432/html5/thumbnails/17.jpg)
17
John Jonathan da Silva
QUESTÕES
IMAGEM
Test Driven Development