1 test driven development john jonathan da silva / 11 - 2010

17
1 Test Driven Development John Jonathan da Silva / 11 - 2010

Upload: internet

Post on 21-Apr-2015

113 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: 1 Test Driven Development John Jonathan da Silva / 11 - 2010

1

Test Driven DevelopmentJohn Jonathan da Silva / 11 - 2010

Page 2: 1 Test Driven Development John Jonathan da Silva / 11 - 2010

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

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

• 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

• 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

• 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

• 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

Test Driven Development

Ciclo do TDD

Page 9: 1 Test Driven Development John Jonathan da Silva / 11 - 2010

• 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

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

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

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

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

• 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

– 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

– 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

17

John Jonathan da Silva

[email protected]

[email protected]

QUESTÕES

IMAGEM

Test Driven Development