SlideShare uma empresa Scribd logo
1 de 37
Test-driven
                                           Felipe Elias Philipp @ W3BOX
                           Development
 15/01/2010

Friday, January 29, 2010
O dia a dia de um
       desenvolvedor




Friday, January 29, 2010
Pensamentos comuns
       (e errados) sobre testes




Friday, January 29, 2010
Pensamentos comuns
       (e errados) sobre testes

       • Eu sou desenvolvedor, não sou
         testador.




Friday, January 29, 2010
Pensamentos comuns
       (e errados) sobre testes

       • Eu sou desenvolvedor, não sou
         testador.


       • Vou deixar alguém que
         conheça as regras de negócio
         testar.




Friday, January 29, 2010
Pensamentos comuns
       (e errados) sobre testes

       • Eu sou desenvolvedor, não sou
         testador.


       • Vou deixar alguém que
         conheça as regras de negócio
         testar.


       • É melhor deixar outra pessoa
         testar.




Friday, January 29, 2010
Pensamentos comuns
       (e errados) sobre testes

       • Eu sou desenvolvedor, não sou
         testador.


       • Vou deixar alguém que
         conheça as regras de negócio
         testar.


       • É melhor deixar outra pessoa
         testar.


       • Não tenho tempo para testar.




Friday, January 29, 2010
Quem deve testar?   Quem é responsável pelos testes?


Friday, January 29, 2010
Por que o
       desenvolvedor deve
       testar?




Friday, January 29, 2010
Como testar?




Friday, January 29, 2010
TDD - Test-driven
       Development




Friday, January 29, 2010
“É uma técnica de desenvolvimento de software em que se
               desenvolve em pequenas iterações, onde primeiro se escreve o
               teste e depois o código. Cada iteração deve começar com um
                 teste que falhe, e terminar com todos os testes passando”




Friday, January 29, 2010
O ciclo de TDD

       • O programador escreve um
         teste que falhe.




Friday, January 29, 2010
O ciclo de TDD

       • O programador escreve um
         teste que falhe.


       • O programador escreve o
         código mais simples possível
         para o teste passar.




Friday, January 29, 2010
O ciclo de TDD

       • O programador escreve um
         teste que falhe.


       • O programador escreve o
         código mais simples possível
         para o teste passar.


       • Com todos os testes passando,
         refatora-se o código se
         necessário.




Friday, January 29, 2010
O ciclo de TDD

       • O programador escreve um
         teste que falhe.


       • O programador escreve o
         código mais simples possível
         para o teste passar.


       • Com todos os testes passando,
         refatora-se o código se
         necessário.


       • Ciclo se repete.




Friday, January 29, 2010
Quais as vantagens do TDD?




Friday, January 29, 2010
Mais segurança e
       confiança no código
       Se alguém introduzir um bug, o
       teste falhará.




Friday, January 29, 2010
Desacoplamento
       entre os
       componentes
       Sem aquela história: “mexe de
       um lado, estraga de outro”




Friday, January 29, 2010
Melhor qualidade do
                                                 Facilidade na refatoração
                                        código
Friday, January 29, 2010
Os testes servem como
                                               e são executáveis!
                                especificação
Friday, January 29, 2010
TDD não é...

       • ... teste caixa preta.




Friday, January 29, 2010
TDD não é...

       • ... teste caixa preta.


       • ... teste de aceitação.




Friday, January 29, 2010
TDD não é...

       • ... teste caixa preta.


       • ... teste de aceitação.


       • ... perda de tempo.




Friday, January 29, 2010
TDD não é...

       • ... teste caixa preta.


       • ... teste de aceitação.


       • ... perda de tempo.


       • ... bala de prata.




Friday, January 29, 2010
Algumas dicas




Friday, January 29, 2010
Algumas dicas

       • Faça um brainstorm antes para pensar nos testes possíveis.




Friday, January 29, 2010
Algumas dicas

       • Faça um brainstorm antes para pensar nos testes possíveis.


       • Escreva um teste legível.




Friday, January 29, 2010
Algumas dicas

       • Faça um brainstorm antes para pensar nos testes possíveis.


       • Escreva um teste legível.


       • Crie testes simples de resolver.




Friday, January 29, 2010
Algumas dicas

       • Faça um brainstorm antes para pensar nos testes possíveis.


       • Escreva um teste legível.


       • Crie testes simples de resolver.


       • Use dados reais!




Friday, January 29, 2010
Alguns mantras




Friday, January 29, 2010
Alguns mantras

       • Não tente resolver todos os problemas de uma vez.




Friday, January 29, 2010
Alguns mantras

       • Não tente resolver todos os problemas de uma vez.


       • Não vá para o próximo teste quando você ainda está resolvendo o atual.




Friday, January 29, 2010
Alguns mantras

       • Não tente resolver todos os problemas de uma vez.


       • Não vá para o próximo teste quando você ainda está resolvendo o atual.


       • Se você precisa de mais funcionalidades, exponha-as em um teste.




Friday, January 29, 2010
Alguns mantras

       • Não tente resolver todos os problemas de uma vez.


       • Não vá para o próximo teste quando você ainda está resolvendo o atual.


       • Se você precisa de mais funcionalidades, exponha-as em um teste.


       • Se você encontrar um bug, exponha-o em um teste.




Friday, January 29, 2010
Alguns mantras

       • Não tente resolver todos os problemas de uma vez.


       • Não vá para o próximo teste quando você ainda está resolvendo o atual.


       • Se você precisa de mais funcionalidades, exponha-as em um teste.


       • Se você encontrar um bug, exponha-o em um teste.


       • Não refatore até os testes estarem passando (verde).




Friday, January 29, 2010
Perguntas?




Friday, January 29, 2010

Mais conteúdo relacionado

Mais procurados

Test-Driven Development - Introdução ao método de construção de software guia...
Test-Driven Development - Introdução ao método de construção de software guia...Test-Driven Development - Introdução ao método de construção de software guia...
Test-Driven Development - Introdução ao método de construção de software guia...Thiago Faria de Andrade
 
Hacktoberfest - Contribuindo com Open Source
Hacktoberfest  - Contribuindo com Open SourceHacktoberfest  - Contribuindo com Open Source
Hacktoberfest - Contribuindo com Open Sourceakamud
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Diego Pacheco
 
E no Sétimo dia ele escreveu testes - Seminario PHP
E no Sétimo dia ele escreveu testes - Seminario PHPE no Sétimo dia ele escreveu testes - Seminario PHP
E no Sétimo dia ele escreveu testes - Seminario PHPRafael Dohms
 
O que faz (ou não) um tester no mundo ágil
O que faz (ou não) um tester no mundo ágilO que faz (ou não) um tester no mundo ágil
O que faz (ou não) um tester no mundo ágilSamanta Cicilia
 

Mais procurados (9)

Testes de unidade - Conhecendo e aplicando
Testes de unidade - Conhecendo e aplicandoTestes de unidade - Conhecendo e aplicando
Testes de unidade - Conhecendo e aplicando
 
Testes de Sistema
Testes de SistemaTestes de Sistema
Testes de Sistema
 
Test-Driven Development - Introdução ao método de construção de software guia...
Test-Driven Development - Introdução ao método de construção de software guia...Test-Driven Development - Introdução ao método de construção de software guia...
Test-Driven Development - Introdução ao método de construção de software guia...
 
O poder do TDD
O poder do TDDO poder do TDD
O poder do TDD
 
Hacktoberfest - Contribuindo com Open Source
Hacktoberfest  - Contribuindo com Open SourceHacktoberfest  - Contribuindo com Open Source
Hacktoberfest - Contribuindo com Open Source
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1
 
E no Sétimo dia ele escreveu testes - Seminario PHP
E no Sétimo dia ele escreveu testes - Seminario PHPE no Sétimo dia ele escreveu testes - Seminario PHP
E no Sétimo dia ele escreveu testes - Seminario PHP
 
O que faz (ou não) um tester no mundo ágil
O que faz (ou não) um tester no mundo ágilO que faz (ou não) um tester no mundo ágil
O que faz (ou não) um tester no mundo ágil
 
Testando como um profissional
Testando como um profissionalTestando como um profissional
Testando como um profissional
 

Destaque

Destaque (9)

Autoretrato
AutoretratoAutoretrato
Autoretrato
 
Catalogo Wv 2009
Catalogo Wv 2009Catalogo Wv 2009
Catalogo Wv 2009
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Artículo revista beatriz risco
Artículo revista  beatriz riscoArtículo revista  beatriz risco
Artículo revista beatriz risco
 
Trabajo para el blog
Trabajo para el blogTrabajo para el blog
Trabajo para el blog
 
DecáLogo Del Docente Edja
DecáLogo Del Docente EdjaDecáLogo Del Docente Edja
DecáLogo Del Docente Edja
 
Por que somos feos?
Por que somos feos?Por que somos feos?
Por que somos feos?
 
Ciro alegria
Ciro alegriaCiro alegria
Ciro alegria
 
Why Men Die Young
Why Men Die YoungWhy Men Die Young
Why Men Die Young
 

Semelhante a Test-driven Development - Introdução

Testador Tipo T
Testador Tipo TTestador Tipo T
Testador Tipo TGTS-CE
 
Você ainda não pratica TDD?
Você ainda não pratica TDD?Você ainda não pratica TDD?
Você ainda não pratica TDD?Maurício Aniche
 
TDD depois do mainstream. E agora?
TDD depois do mainstream. E agora?TDD depois do mainstream. E agora?
TDD depois do mainstream. E agora?Maurício Aniche
 
Teste de software, na visão de um desenvolvedor
Teste de software, na visão de um desenvolvedorTeste de software, na visão de um desenvolvedor
Teste de software, na visão de um desenvolvedorAndré Phillip Bertoletti
 
Método pista
Método pistaMétodo pista
Método pistaPUC Minas
 
Quero ser um caçador de bugs
Quero ser um caçador de bugsQuero ser um caçador de bugs
Quero ser um caçador de bugsSarah Pimentel
 
Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?Maurício Aniche
 
Boas práticas no desenvolvimento de software através do uso de TDD
Boas práticas no desenvolvimento de software através do uso de TDDBoas práticas no desenvolvimento de software através do uso de TDD
Boas práticas no desenvolvimento de software através do uso de TDDJony Ferreira dos Santos
 
Desenvolvimento Orientado a Testes
Desenvolvimento Orientado a TestesDesenvolvimento Orientado a Testes
Desenvolvimento Orientado a TestesAndre Carlucci
 
Testes de Unidade, por que você deve começar a fazer? - Javaneiros
Testes de Unidade, por que você deve começar a fazer? - JavaneirosTestes de Unidade, por que você deve começar a fazer? - Javaneiros
Testes de Unidade, por que você deve começar a fazer? - JavaneirosRenan Siravegna
 
Test driven development teste e design no mundo real by mauricio aniche (z-li...
Test driven development teste e design no mundo real by mauricio aniche (z-li...Test driven development teste e design no mundo real by mauricio aniche (z-li...
Test driven development teste e design no mundo real by mauricio aniche (z-li...GessdaSilvaMachado
 
TDD - Desenvolvendo softwares orientado à testes
TDD - Desenvolvendo softwares orientado à testesTDD - Desenvolvendo softwares orientado à testes
TDD - Desenvolvendo softwares orientado à testesThiago Lunardi
 
Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?Raphael Paiva
 

Semelhante a Test-driven Development - Introdução (20)

Testador Tipo T
Testador Tipo TTestador Tipo T
Testador Tipo T
 
Testador tipo t
Testador tipo tTestador tipo t
Testador tipo t
 
Você ainda não pratica TDD?
Você ainda não pratica TDD?Você ainda não pratica TDD?
Você ainda não pratica TDD?
 
TDD depois do mainstream. E agora?
TDD depois do mainstream. E agora?TDD depois do mainstream. E agora?
TDD depois do mainstream. E agora?
 
Teste de software, na visão de um desenvolvedor
Teste de software, na visão de um desenvolvedorTeste de software, na visão de um desenvolvedor
Teste de software, na visão de um desenvolvedor
 
Método pista
Método pistaMétodo pista
Método pista
 
Quero ser um caçador de bugs
Quero ser um caçador de bugsQuero ser um caçador de bugs
Quero ser um caçador de bugs
 
Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?Test-Driven Development serve pra mim?
Test-Driven Development serve pra mim?
 
Boas práticas no desenvolvimento de software através do uso de TDD
Boas práticas no desenvolvimento de software através do uso de TDDBoas práticas no desenvolvimento de software através do uso de TDD
Boas práticas no desenvolvimento de software através do uso de TDD
 
Tdd x testes unidades
Tdd x testes unidadesTdd x testes unidades
Tdd x testes unidades
 
Desenvolvimento Orientado a Testes
Desenvolvimento Orientado a TestesDesenvolvimento Orientado a Testes
Desenvolvimento Orientado a Testes
 
Testes de Unidade, por que você deve começar a fazer? - Javaneiros
Testes de Unidade, por que você deve começar a fazer? - JavaneirosTestes de Unidade, por que você deve começar a fazer? - Javaneiros
Testes de Unidade, por que você deve começar a fazer? - Javaneiros
 
Test driven development teste e design no mundo real by mauricio aniche (z-li...
Test driven development teste e design no mundo real by mauricio aniche (z-li...Test driven development teste e design no mundo real by mauricio aniche (z-li...
Test driven development teste e design no mundo real by mauricio aniche (z-li...
 
TIU Testing Dojo
TIU Testing DojoTIU Testing Dojo
TIU Testing Dojo
 
TDD e Refactoring
TDD e RefactoringTDD e Refactoring
TDD e Refactoring
 
TDD - Desenvolvendo softwares orientado à testes
TDD - Desenvolvendo softwares orientado à testesTDD - Desenvolvendo softwares orientado à testes
TDD - Desenvolvendo softwares orientado à testes
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
TDD com Python
TDD com PythonTDD com Python
TDD com Python
 
Introdução a TDD
Introdução a TDDIntrodução a TDD
Introdução a TDD
 
Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?
 

Test-driven Development - Introdução

  • 1. Test-driven Felipe Elias Philipp @ W3BOX Development 15/01/2010 Friday, January 29, 2010
  • 2. O dia a dia de um desenvolvedor Friday, January 29, 2010
  • 3. Pensamentos comuns (e errados) sobre testes Friday, January 29, 2010
  • 4. Pensamentos comuns (e errados) sobre testes • Eu sou desenvolvedor, não sou testador. Friday, January 29, 2010
  • 5. Pensamentos comuns (e errados) sobre testes • Eu sou desenvolvedor, não sou testador. • Vou deixar alguém que conheça as regras de negócio testar. Friday, January 29, 2010
  • 6. Pensamentos comuns (e errados) sobre testes • Eu sou desenvolvedor, não sou testador. • Vou deixar alguém que conheça as regras de negócio testar. • É melhor deixar outra pessoa testar. Friday, January 29, 2010
  • 7. Pensamentos comuns (e errados) sobre testes • Eu sou desenvolvedor, não sou testador. • Vou deixar alguém que conheça as regras de negócio testar. • É melhor deixar outra pessoa testar. • Não tenho tempo para testar. Friday, January 29, 2010
  • 8. Quem deve testar? Quem é responsável pelos testes? Friday, January 29, 2010
  • 9. Por que o desenvolvedor deve testar? Friday, January 29, 2010
  • 11. TDD - Test-driven Development Friday, January 29, 2010
  • 12. “É uma técnica de desenvolvimento de software em que se desenvolve em pequenas iterações, onde primeiro se escreve o teste e depois o código. Cada iteração deve começar com um teste que falhe, e terminar com todos os testes passando” Friday, January 29, 2010
  • 13. O ciclo de TDD • O programador escreve um teste que falhe. Friday, January 29, 2010
  • 14. O ciclo de TDD • O programador escreve um teste que falhe. • O programador escreve o código mais simples possível para o teste passar. Friday, January 29, 2010
  • 15. O ciclo de TDD • O programador escreve um teste que falhe. • O programador escreve o código mais simples possível para o teste passar. • Com todos os testes passando, refatora-se o código se necessário. Friday, January 29, 2010
  • 16. O ciclo de TDD • O programador escreve um teste que falhe. • O programador escreve o código mais simples possível para o teste passar. • Com todos os testes passando, refatora-se o código se necessário. • Ciclo se repete. Friday, January 29, 2010
  • 17. Quais as vantagens do TDD? Friday, January 29, 2010
  • 18. Mais segurança e confiança no código Se alguém introduzir um bug, o teste falhará. Friday, January 29, 2010
  • 19. Desacoplamento entre os componentes Sem aquela história: “mexe de um lado, estraga de outro” Friday, January 29, 2010
  • 20. Melhor qualidade do Facilidade na refatoração código Friday, January 29, 2010
  • 21. Os testes servem como e são executáveis! especificação Friday, January 29, 2010
  • 22. TDD não é... • ... teste caixa preta. Friday, January 29, 2010
  • 23. TDD não é... • ... teste caixa preta. • ... teste de aceitação. Friday, January 29, 2010
  • 24. TDD não é... • ... teste caixa preta. • ... teste de aceitação. • ... perda de tempo. Friday, January 29, 2010
  • 25. TDD não é... • ... teste caixa preta. • ... teste de aceitação. • ... perda de tempo. • ... bala de prata. Friday, January 29, 2010
  • 27. Algumas dicas • Faça um brainstorm antes para pensar nos testes possíveis. Friday, January 29, 2010
  • 28. Algumas dicas • Faça um brainstorm antes para pensar nos testes possíveis. • Escreva um teste legível. Friday, January 29, 2010
  • 29. Algumas dicas • Faça um brainstorm antes para pensar nos testes possíveis. • Escreva um teste legível. • Crie testes simples de resolver. Friday, January 29, 2010
  • 30. Algumas dicas • Faça um brainstorm antes para pensar nos testes possíveis. • Escreva um teste legível. • Crie testes simples de resolver. • Use dados reais! Friday, January 29, 2010
  • 32. Alguns mantras • Não tente resolver todos os problemas de uma vez. Friday, January 29, 2010
  • 33. Alguns mantras • Não tente resolver todos os problemas de uma vez. • Não vá para o próximo teste quando você ainda está resolvendo o atual. Friday, January 29, 2010
  • 34. Alguns mantras • Não tente resolver todos os problemas de uma vez. • Não vá para o próximo teste quando você ainda está resolvendo o atual. • Se você precisa de mais funcionalidades, exponha-as em um teste. Friday, January 29, 2010
  • 35. Alguns mantras • Não tente resolver todos os problemas de uma vez. • Não vá para o próximo teste quando você ainda está resolvendo o atual. • Se você precisa de mais funcionalidades, exponha-as em um teste. • Se você encontrar um bug, exponha-o em um teste. Friday, January 29, 2010
  • 36. Alguns mantras • Não tente resolver todos os problemas de uma vez. • Não vá para o próximo teste quando você ainda está resolvendo o atual. • Se você precisa de mais funcionalidades, exponha-as em um teste. • Se você encontrar um bug, exponha-o em um teste. • Não refatore até os testes estarem passando (verde). Friday, January 29, 2010