Docstoc

apresentaov2-110526130753-phpapp02

Document Sample
apresentaov2-110526130753-phpapp02 Powered By Docstoc
					    DESENVOLVIMENTO
INCREMENTAL COM TEST
 DRIVEN DEVELOPMENT
               Quem sou Eu?
            Leonardo R. Aguiar
       (Mais conhecido como Léo ¬¬)

#SouDev na #TGS (Thomas Greg)

leonardo.r.aguiar@gmail.com
@L30n4rdo
http://leonardoRaguiar.com.br/blog/
                Agenda do dia!
• Manifesto Ágil
• Princípios S.O.L.I.D.
• O que é Test Driven Development?
    – Ciclo do TDD
    – TDD Não é uma técnica de Teste de Software
    – Objetos Mock e Stub
•   Desenvolvimento “Tradicional”
•   Desenvolvimento com TDD
•   Benefícios do TDD
•   Paradigmas e Falácias sobre TDD
                  Manifesto Ágil

• Indivíduos e interação entre eles mais que processos e
  ferramentas
• Software em funcionamento mais que documentação
  abrangente
• Colaboração com o cliente mais que negociação de
  contratos
• Responder a mudanças mais que seguir um plano
                  Princípios S.O.L.I.D.
SRP
 • Single Responsability Principle

OCP
 • Open-Closed Principle

LSP
 • Liskov Substitution Principle

DIP
 • Dependency Inversion Principle

ISP
 • Interface Segregation Principle
O Que é Test Driven Development?




TDD = Test-First + Design Incremental
    Ciclo do TDD

Escrever um teste que falhe

 Fazer o teste passar

Refactoring
Ciclo do TDD
 TDD x Teste de Software


        Unidade    Integração

TDD
         Sistema   Aceitação


              Operação
         Objetos Mock



            Comporta-   Objeto /
Estado        mento     Instancia
             Mock x Stub


Mock
• Testa a Interação entre Objetos

Stub
• Testa o Estado do Objeto
Desenvolvimento Tradicional

Escrevemos o Código Primeiro


Código com Alto Acoplamento


Código Difícil de Entender

• Necessidade de comentários para dizer o que o código faz
• Necessidade de alguém para explicar o que o código faz

Debug
    Desenvolvimento com TDD

Código Claro


Documentação Executável
• Cada teste representa uma funcionalidade do sistema

Feedback rápido sobre qualquer alteração no sistema


Diminuição de Debug
         Benefícios do TDD
Cobertura de Teste


Documentação


Arquitetura

• Design Patterns
• Princípios S.OL.I.D.
Paradigmas e Falácias sobre TDD
É mais demorado
                    Eu não sei o que
desenvolver com                          Testar é difícil
                         testar
      TDD


 Desenvolvendo
                     O projeto está      Eu não tenho
  com TDD não
                       atrasado        tempo para testar
preciso de testes


                     TDD só funciona
                    com metodologias
                          ágeis
                     Conclusão

“TDD não é sobre testes, é sobre como utilizar testes para
criar sistemas de forma simples e incremental. Isto não
somente aumenta a qualidade do software, mas também
simplifica o processo de desenvolvimento.”

Fonte: Test-Driven Development:       A   J2EE   Example.
Berkeley: Apress, 2004.
PERGUNTAS?

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:5
posted:6/5/2011
language:Portuguese
pages:17