Introdução ao Test Driven Development (TDD)

Preview:

DESCRIPTION

Apresentação introdutória sobre a prática do Test Driven Development (TDD), suas vantagens, ferramentas e como deve ser aplicado.

Citation preview

e design no mundo real

O que é TDD? Uma prática onde os testes são escritos antes do código

de produção

Escreva primeiro o teste, faça o teste falhar, escreva o código para o teste passar…

… e escreva mais um teste, veja ele falhar, faça-o passar… e assim por diante.

Design incremental Novas funcionalidades são introduzidas em pequenos

passos

Além dos testes automatizados, o TDD oferece um feedback rápido sobre as mudanças no código

E também dá dicas sobre pontos de melhoria no design das classes

Por isso, TDD é mais sobre design de software do que sobre testes

Quais as vantagens?

Foco na funcionalidade

Aumento da cobertura de

testes

Testes Automatizados

Código de maior qualidade

(refatoração)

Melhora o design de

classes

Quais as ferramentas?

Porque refatorar?Depois que o teste falha, o objetivo é escrever o código

mais simples possível para o teste passar.

Uma vez que o teste passou, é necessário refatorar o código, buscando aprimorá-lo e evitando repetição de

código.

Depois de refatorar, rode o teste novamente

Como escrever um teste?1. Escreva um caso de teste para determinada

funcionalidade da classe

2. O teste não vai compilar, pois sua classe sequer existe!

3. Implemente o suficiente para o teste compilar

4. Rode o teste e veja-o falhar

5. Implemente o código mais simples póssível para o teste passar

6. Rode o teste e veja-o passar

7. Refatore o código em busca de melhorias

8. Rode o teste e o veja-o passar novamente

9. Repita todos os passos

Exemplo - Calculadora1. Escrever o teste que ainda não compila

2. Criar a classe para o teste compilar

Exemplo - Calculadora3. Rode o teste e veja-o falhar

Exemplo - Calculadora4. Escreva o mínimo para o teste passar

4. Rode o teste e veja-o passar

5. Refatore (se necessário) e depois escreve mais casos de testes

Devo sempre utilizar TDD? Depende. Utilize quando...

A classe lida com funcionalidades complexas

A solução do problema não está tão clara para o desenvolvedor

Dessa forma, o desenvolvedor fica mais focado no problema que sua classe deve resolver e não se perde com caminhos desnecessários

Talvez não seja muito vantajoso se...

A solução para o problema é bastante simples

Devo sempre utilizar TDD? TDD é uma prática que ao mesmo tempo auxilia nos

testes de unidade de classe

E conduz o desenvolvedor a pensar na melhor solução para o seu problema

Resumindo:

É importante conhecer TDD e suas vantagens. A experiência deve dizer quando será melhor utilizá-

lo ou não

Exemplo - CalculadoraDeSalarioRegras de negócio

Desenvolvedores:

20% de desconto caso o salário seja maior que R$ 3000

10% de descontro caso o salário seja menor que R$ 3000

DBAs e Testadores

25% de desconto caso o salário seja maior que R$ 2500

15% de desconto caso o salário seja menor que R$ 2500

Exemplo - CalculadoraDeSalario

Exemplo - CalculadoraDeSalario Escrevendo um teste que não compila

Escreve o mínimo para o teste falhar

Exemplo - CalculadoraDeSalario Escrevendo o mínimo para o teste passar

Exemplo - CalculadoraDeSalario Refatorando

ConclusãoTDD não diz respeito somente a testes

O desenvolvedor que observa o feedback da prática, pode aprimorar o design das suas classes seguindo os

princípios de Orientação a Objetos.

O conhecimento e experiência do desenvolvedor são essenciais para isso

Para uma melhor leitura dos feedbacks que TDD nos diz e realizar as as mudanças, o desenvolvedor deve

conhecer bem sobre design de projetos OO

Bibliografia

Recommended