test driven development - tdd - vinicius quaiato

Download Test Driven Development - TDD - Vinicius Quaiato

Post on 06-May-2015

2.890 views

Category:

Technology

1 download

Embed Size (px)

DESCRIPTION

Apresentação sobre o que é TDD e por que utilizá-lo.Para mais informações e uma série completa de artigos sobre TDD com C# e Visual Studio: http://viniciusquaiato.com

TRANSCRIPT

  • 1.Construindo software para durar Vinicius Quaiato

2.

  • Desenvolvimento guiado por testes;
  • Se escrever o teste antes, TDD, caso contrrio no ;

Vinicius Quaiato 3.

  • Escrevemos o cdigo primeiro;
  • Implementamos classes altamente acopladas;
  • Fazemos cdigo confuso
    • Cdigo que precisa de comentrios;
    • Cdigo que precisa de documentaes internas;
    • Cdigo que precisa ser explicado;
    • Cdigo que no entendvel.
  • Perdemos tempo demais com testes do macaco;

Vinicius Quaiato 4.

  • Cdigo mais claro;
  • Testes so documentaes executveis;
  • Testes representam/garantem features do domnio do problema;
  • Se algum teste parou de rodar, sabemos que algo deu errado;
  • Independncia de uma camada grfica para testar as camadas mais baixas(negcios, db, etc);
  • Economia de tempo e dinheiro em manuteno;

Vinicius Quaiato 5.

  • Testar fcil, se est difcil escrever um teste o cdigo est mal feito;
  • TDD nos leva a usar/descobrir/entender as boas prticas de design/arquitetura;
  • TDD nos leva a um baixo acoplamento;
    • Injeo de Dependncias;
    • Inverso de Controle
  • TDD nos leva a desenvolver para/depender interfaces;

Vinicius Quaiato 6.

  • Os testes de unidade (Unit Tests) focam em algo especfico;
  • SUT a mnima parte que est sendo testada;
  • No teste de um SUT no devemos nos preocupar com o resto do sistema

Vinicius Quaiato 7.

  • Classes simples que implementam o comportamento de classes mais complexas;
  • Facilitam e auxiliam os testes, permitindo focar no SUT;
  • No geral so usados para testar estados

Vinicius Quaiato 8.

  • Segundo Martin Fowler:
    • The term 'Mock Objects' has become a popular one to describe special case objects that mimic real objects for testing.
    • O termo Mock Objects se tornou popular para descrever tipos especiais de objetos que imitam objetos reais para testes. (traduo livre)

Vinicius Quaiato 9.

  • Mocks geralmente so usados para testar comportamentos e interaes entre objetos;
  • Framework de mocks auxiliam sua criao;
  • Podemos criar mocks de algo que no temos controle:
    • Database;
    • Webservice;
    • Logservices;
    • etc

Vinicius Quaiato 10.

  • Os testes devem evoluir, assim como o cdigo evolui;
  • Testes que no so atualizados so apenas cdigo legado;
  • Aprender a escrever testes tambm um processo gradativo

Vinicius Quaiato 11.

  • Use Case:
    • Criar um sistema de contas bancrias:
      • Criar novas contas;
      • Depositar, sacar e transferir;
      • Consultar saldo;
      • Persistir contas em um banco de dados;

Vinicius Quaiato 12.

  • .NET 3.5
  • MS Tests
  • Rhino Mocks Framework para mocks

Vinicius Quaiato 13.

  • Rhino Mocks:
      • http://www.ayende.com/projects/rhino-mocks.aspx
  • Martin Fowler:
      • http://martinfowler.com/articles/mocksArentStubs.html
  • Blog Vinicius Quaiato:
      • http://www.viniciusquaiato.com
  • .NET Magazine (edies 53, 54 e 55):

Vinicius Quaiato