42
T D D Introdução ao @CharlesFortes .com Community

Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

Embed Size (px)

Citation preview

Page 1: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

T D DIntrodução ao

@CharlesFortes

.com Community

Page 2: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

@CharlesFortes

.com Test-Driven Development Introdução ao

Cadastro de Usuário

Cadastro de Usuário

Cadastro de Usuário Cadastro de Usuário

Cadastro de Usuário Cadastro de Usuário

Cadastro de Usuário

Cadastro de Usuário

Page 3: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

@CharlesFortes

.com

• Meu sistema pode ter no máximo 6 usuários; • Para poder cadastrar um usuário, deve-se estar logado no sistema e possuir

permissão específica para isto;

• Não podem haver dois logins iguais no sistema;

• A senha deve ter no mínimo 6 caracteres e não pode ter mais de 50 caracteres;

• Nome, Login e senha são campos obrigatórios;

Test-Driven Development Introdução ao

Page 4: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

Test-Driven Development Introdução ao

@CharlesFortes

.com

O que é

Test-DrivenDevelopment?

Page 5: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

@CharlesFortes

.com

É Desenvolver Focado no Caso

de Testes, nas Especificações

Test-Driven Development Introdução ao

Page 6: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

@CharlesFortes

.com Test-Driven Development Introdução ao

É Desenvolver Focado no Caso

de Testes, nas Especificações

WTF?

Page 7: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

@CharlesFortes

.com

Casos de Testes são condições aos quais o

software deverá ser submetido para que possa ser testado quanto ao seu funcionamento adequado e verificando se ele

atende ao que foi solicitado

Test-Driven Development Introdução ao

Page 8: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

@CharlesFortes

.com

Entende-se que nossa tela de cadastro de usuário está

funcionando corretamente quando as seguintes condições estiverem

satisfeitas:

1. Logado no sistema e tendo permissão para cadastrar usuários, cadastrar um usuário Incluir

corretamente, exibir mensagem de sucesso

2. Tentar inserir 7 usuário O sistema não pode permitir, retornando uma exceção

3. Com 6 usuários cadastrados, remover um usuário e inserir um novo Incluir corretamente, exibir

mensagem de sucesso

4. Tentar cadastrar um usuário sem estar logado no sistema Não permitir, retornar exceção

5. Estando logado no sistema, tentar cadastrar um usuário sem ter permissão Não permitir, retornar

exceção

6. Tentar cadastrar dois usuários com o mesmo nome Não permitir, retornar uma exceção

7. Remover um usuário e cadastrar um novo com o mesmo nome

Test-Driven Development Introdução ao

Page 9: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

@CharlesFortes

.com

Entende-se que nossa tela de cadastro de usuário está

funcionando corretamente quando as seguintes condições estiverem

satisfeitas:

1. Tentar salvar um usuário com o login em branco não permitir, retornar uma exceção

2. Tentar salvar um usuário com o nome em branco não permitir, retornar uma exceção

3. Tentar cadastrar um usuário com senha em branco não permitir, retornar uma exceção

4. Tentar cadastrar uma senha com 5 dígitos não permitir, retornar uma exceção

5. Tentar cadastrar uma senha com 6 dígitos Incluir corretamente, exibir mensagem de sucesso

6. Tentar cadastrar uma senha de 50 dígitos Incluir corretamente, exibir mensagem de sucesso

7. Tentar cadastrar uma senha com 51 dígitos não permitir, retornar uma exceção

Test-Driven Development Introdução ao

Page 10: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

@CharlesFortes

.com

Para cada um dos casos de testes apresentados anteriormente,

deve existir um teste de unidade que o valide de forma

absoluta.

Test-Driven Development Introdução ao

Page 11: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

@CharlesFortes

.com

Para cada um dos casos de testes apresentados anteriormente,

deve existir um teste de unidade que o valide de forma

absoluta.

Test-Driven Development Introdução ao

WTF?

Page 12: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

@CharlesFortes

.com

“Testes de unidade é um método pelo qual as unidades individuais do

código-fonte são testados para determinar se eles estão aptos

para o uso.

A unidade é a menor parte testável de um aplicativo. Na programação

procedural uma unidade pode ser uma função individual ou

procedimento. Na programação orientada a objeto uma unidade é

normalmente um método.”

Test-Driven Development Introdução ao

Segundo a Wikipédia

Page 13: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

@CharlesFortes

.com

Um teste de unidade, é um teste automatizado que testa

uma funcionalidade/aspecto/Requisito do sistema

Test-Driven Development Introdução ao

i.e. Testar a capacidade do sistema de se permitir cadastrar um usuário dentro dos moldes do negócio

Page 14: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

@CharlesFortes

.com Test-Driven Development Introdução ao

Testa

Page 15: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

@CharlesFortes

.com Test-Driven Development Introdução ao

Teste de unidade deve ser executável independente dos dados

O teste de unidade deve conter tudo

o que o teste necessita, ele não pode depender de estados gerados por

outros testes, ele deve funcionar tão bem sendo executado sozinho como com todos os demais

Teste de unidade sempre será usado como teste de regressão

Page 16: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

@CharlesFortes

.com Test-Driven Development Introdução ao

Teste de unidade feito por fazer não tem valor

Page 17: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

@CharlesFortes

.com Test-Driven Development Introdução ao

Não altere ou exclua testes para ter um novo. O teste só deve mudar

quando a funcionalidade mudar

Teste de unidade deve testar o Contrato, não teste nada além do contrato

Page 18: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

@CharlesFortes

.com Test-Driven Development Introdução ao

No modelo tradicional de desenvolvimento, primeiro se cria o código, e

depois se implementam os testes necessários para seu funcionamento

Requisitos

Análise

Desenho

Código Teste de Unidade

Teste de Integração

Teste de Sistema

Teste de Aceite Planeja >

Planeja >

Planeja >

Planeja >

Page 19: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

@CharlesFortes

.com Test-Driven Development Introdução ao

O problema deste modelo é que o teste muitas vezes se torna viciado,

acaba sendo um teste criado para provar que o código funciona, e não

para validar se há ou não falhas

Page 20: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

@CharlesFortes

.com Test-Driven Development Introdução ao

Pensando em como solucionar este problema, foi criado o TDD

Desenho reaproveitado de uma tirinha do site vidadeprogramador.com.br O texto apresentado não é o texto original da tirinha.

Page 21: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

@CharlesFortes

.com Test-Driven Development Introdução ao

Pensando em como solucionar este problema, foi criado o TDD

Requisitos

Análise

Desenho

Código Teste de Unidade

Teste de Integração

Teste de Sistema

Teste de Aceite Planeja >

Planeja >

Planeja >

Planeja >

Page 22: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

@CharlesFortes

.com

Quem diz: _“o importante é testar, não importa quando” esta errado, porque entende TDD como uma abordagem de testes.

TDD utiliza testes para dirigir o desenvolvimento

da aplicação

Test-Driven Development Introdução ao

Page 23: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

@CharlesFortes

.com

“Testes escritos antes do código da aplicação, antes de serem testes, são especificações”

Giovanni Bassi

Test-Driven Development Introdução ao

Page 24: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

@CharlesFortes

.com Test-Driven Development Introdução ao

Dentre as vantagens desta abordagem estão o fato de que se desenvolve

apenas o necessário e com agilidade

E a segurança de que a aplicação continuará funcionando no

futuro (evitando regressões), qualquer erro que apareça pode ser facilmente

encontrado sem ficar debugando o código a esmo.

Page 25: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

@CharlesFortes

.com Test-Driven Development Introdução ao

O TDD NÃO realiza todos os testes que o projeto precisa, ele apenas fornece uma direção para ser seguida durante o desenvolvimento que foca as

especificações. Ele testa se o que foi solicitado funciona.

O TDD deve ser realizado pelo desenvolvedor, de forma que guie seu raciocínio quanto a como e o que implementar

Page 26: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

@CharlesFortes

.com

Lets Test

Test-Driven Development Introdução ao

0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0

Page 27: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

@CharlesFortes

.com Test-Driven Development Introdução ao

Pensando em como solucionar este problema, foi criado o TDD

Page 28: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

Pré-Condição

Deve ser preparado o ambiente de testes, suas pré-condições

Podem ser usados MOCKs, fakes, querys, a execução de

outro teste (ou outros), etc...

@CharlesFortes

.com Test-Driven Development Introdução ao

Page 29: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

Pré-Condição

O Visual Studio usa a marcação TestInitialize em um método para

executar algo que prepara o ambiente.

@CharlesFortes

.com Test-Driven Development Introdução ao

Page 30: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

Domain-Driven Design Introdução ao

@CharlesFortes

.com

Escreva o Teste Verifique se ele falhou Escreva o Código para que ele passe Rode todos os testes Refatore Escreva o Teste Verifique se ele falhou Escreva o Código para que ele passe Rode todos os testes Refatore

Page 31: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

Domain-Driven Design Introdução ao

@CharlesFortes

.com

Page 32: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

Domain-Driven Design Introdução ao

@CharlesFortes

.com

Escreva o Teste Verifique se ele falhou Escreva o Código para que ele passe Rode todos os testes Refatore Escreva o Teste Verifique se ele falhou Escreva o Código para que ele passe Rode todos os testes Refatore

Page 33: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

Domain-Driven Design Introdução ao

@CharlesFortes

.com

Page 34: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

Domain-Driven Design Introdução ao

@CharlesFortes

.com

Escreva o Teste Verifique se ele falhou Escreva o Código para que ele passe Rode todos os testes Refatore Escreva o Teste Verifique se ele falhou Escreva o Código para que ele passe Rode todos os testes Refatore

Page 35: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

Domain-Driven Design Introdução ao

@CharlesFortes

.com

Page 36: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

Domain-Driven Design Introdução ao

@CharlesFortes

.com

Escreva o Teste Verifique se ele falhou Escreva o Código para que ele passe Rode todos os testes Refatore Escreva o Teste Verifique se ele falhou Escreva o Código para que ele passe Rode todos os testes Refatore

Page 37: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

Domain-Driven Design Introdução ao

@CharlesFortes

.com

Page 38: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

Domain-Driven Design Introdução ao

@CharlesFortes

.com

Escreva o Teste Verifique se ele falhou Escreva o Código para que ele passe Rode todos os testes Refatore Escreva o Teste Verifique se ele falhou Escreva o Código para que ele passe Rode todos os testes Refatore

Page 39: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

VB6

@CharlesFortes

.com Test-Driven Development Introdução ao

Page 40: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

@CharlesFortes

.com

Lets Code

0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0

Test-Driven Development Introdução ao

Page 41: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

@CharlesFortes

.com Test-Driven Development Introdução ao

http://bugbang.com.br

http://artofunittesting.com

http://www.agiledata.org/essays/tdd.html

Page 42: Introdução ao T D D - api.ning.comapi.ning.com/.../TDD.pdfTest-Driven Development Introdução ao @CharlesFortes .com O que é T est-D riven D evelopment?

@CharlesFortes

pangeanet.org/profile/charlesfortes

br.linkedin.com/in/charlesfortes

Test-Driven Development Introdução ao