170 likes | 368 Views
Test Driven Development. John Jonathan da Silva / 11 - 2010. 1. Test Driven Development. Agenda. O que é TDD? Fundamentos do TDD Vantagens de utilizar TDD 5 Desculpas para não usar TDD Ciclo do TDD Tipos de testes Stubs Fake it Mock Objects JMock 2 Hands on. 2.
E N D
Test Driven Development John Jonathan da Silva / 11 - 2010 1
Test Driven Development Agenda O que é TDD? Fundamentos do TDD Vantagens de utilizar TDD 5 Desculpas para não usar TDD Ciclo do TDD Tipos de testes Stubs Fake it Mock Objects JMock 2 Hands on 2
Test Driven Development O que é TDD? 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. Test Driven Development 3
Test Driven Development Fundamentos do TDD • 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; Test Driven Development 4
Test Driven Development Vantagens de usar TDD • Incentiva a simplicidade; • Aumente a confiança no código; • Ajuda como documentação; • Facilita refactorings. Test Driven Development 5
Test Driven Development Test Driven Development 5 Desculpas para não usar TDD • 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 Test Driven Development Test Driven Development 6 6
Test Driven Development Ciclo do TDD • Adicionar um teste e veja ele falhar; • Faça o teste passar; • Refatore; 7
Test Driven Development Ciclo do TDD
Test Driven Development Tipos de teste • Aceitação • Integração • Unitários • Stress 9
Test Driven Development Stubs 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. 10
Test Driven Development Fake it (til you make it) 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. 11
Test Driven Development Mock Objects São objetos que simulam o comportamento de objetos reais de forma controlada. São normalmente criados para testar o comportamento de outros objetos. 12
Test Driven Development JMock 2 O JMock é uma biblioteca que auxilia o Test Driven Developmentatravés dos mock objects. 13
Test Driven Development Referências • 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 14
Test Driven Development Referências - Continuação • 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/ 15
Test Driven Development Referências - Continuação • 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 16
Test Driven Development QUESTÕES John Jonathan da Silva john.silva@totvs.com.br aoshibr@gmail.com IMAGEM 17