Introdução ao
Conceito de Testes
         por Guilherme Vinicius
Guilherme Vinicius Moreira
Guilherme Vinicius Moreira
          (Harry)
Guilherme Vinicius Moreira
          (Harry)




    2007 - 2010 - 2011
Guilherme Vinicius Moreira
          (Harry)




    2007 - 2010 - 2011
Guilherme Vinicius Moreira
             (Harry)


Programação



              2007 - 2010 - 2011
Guilherme Vinicius Moreira
             (Harry)


Programação



              2007 - 2010 - 2011
Guilherme Vinicius Moreira
             (Harry)


Programação           RoR



              2007 - 2010 - 2011
Guilherme Vinicius Moreira
             (Harry)


Programação           RoR



              2007 - 2010 - 2011
Guilherme Vinicius Moreira
             (Harry)


Programação           RoR          Testes
                                   (profissionalmente)




              2007 - 2010 - 2011
Guilherme Vinicius Moreira
             (Harry)


Programação           RoR          Testes
                                   (profissionalmente)




              2007 - 2010 - 2011



                 @guivinicius
Guilherme Vinicius Moreira
             (Harry)


Programação           RoR          Testes
                                   (profissionalmente)




              2007 - 2010 - 2011



                 @guivinicius
        gui.vinicius@gmail.com
Objetivo de Hoje
Objetivo de Hoje


Despertar a necessidade de testar
Objetivo de Hoje


 Despertar a necessidade de testar


Sintam vergonha por não ter testado
Objetivo de Hoje


 Despertar a necessidade de testar


Sintam vergonha por não ter testado
                            (ainda)
Ao chegar em casa hoje ...
Pensem
Pensem


“Vou dar uma testada!”
Não uma testada qualquer ...
... mas uma testada de respeito!
Como você fazem hoje ?
?? WTF ??


Definição Brasileira




http://www.priberam.pt
?? WTF ??


Definição Brasileira

• Averiguação do funcionamento de algo.




http://www.priberam.pt
?? WTF ??

Definição Gringa




http://dictionary.reference.com/browse/test
?? WTF ??

Definição Gringa

• O meio pelo qual a presença, qualidade ou
veracidade de qualquer coisa é determinada; um meio
de prova.

• O julgamento da qualidade de uma coisa: para
colocar à prova.

• Um determinado processo ou método para tentar ou
avaliar.



http://dictionary.reference.com/browse/test
Qualidade
Qualidade do código!
Você confia no seu código ?
Test Driven Development
         (TDD)
Test Driven Development
             (TDD)



Escrever testes antes de código.
Test Driven Development
              (TDD)



Escrever testes antes de código.


          Escreve o teste.
Test Driven Development
               (TDD)



Escrever testes antes de código.


           Escreve o teste.
  Escreve código para passar o teste.
Test Driven Development
               (TDD)



Escrever testes antes de código.


           Escreve o teste.
  Escreve código para passar o teste.
         Refatore seu código.
Test Driven Development
               (TDD)



Escrever testes antes de código.


           Escreve o teste.
  Escreve código para passar o teste.
         Refatore seu código.
       Roda os testes novamente.
Quais são os objetivos de um
    projeto de software ?
Requerimentos são os objetivos.
Como fazer para atingir objetivos ?
Visualização.
Basicamente.
Basicamente.




TDD é uma forma de visualizar
          objetivos.
Behavior Driven Development
           (BDD)
Behavior Driven Development
           (BDD)




 Entender o comportamento
   desejado do software.
Por que devo testar ?
Por que devo testar ?


   • Qualidade
Por que devo testar ?


   • Qualidade
   • Confiabilidade
Por que devo testar ?


   • Qualidade
   • Confiabilidade
   • Estabilidade
Por que não devo testar ?
Por que não devo testar ?



• Toma muito tempo.
Por que não devo testar ?



• Toma muito tempo.
• Muito complicado.
Por que não devo testar ?



• Toma muito tempo.
• Muito complicado.
• No fim, não ainda muito.
Por que não devo testar ?



• Toma muito tempo.
• Muito complicado.
• No fim, não ainda muito.
Tipos de Testes



   Unitários

   Integração

   Aceitação
Testes Unitários




Testar um componente do sistema.
Testes de Integração




Testar a integração entre
     os componentes.
Testes de Aceitação




     Testam uma história,
funcionalidade ou caso de uso.
Todos eles são necessários ?
Todos eles são necessários ?



           SIM!
Todos eles são necessários ?



           SIM!

          TATFT
Todos eles são necessários ?



           SIM!

          TATFT
  (Test All The Fucking Time)
Todos eles são necessários ?



           SIM!

          TATFT
  (Test All The Fucking Time)

        No Matter How.
Se você ainda não testa.
Se você ainda não testa.




    Comece agora.
Perguntas ?
@guivinicius




     Obrigado!




gui.vinicius@gmail.com

Introdução ao conceito de testes.