SlideShare uma empresa Scribd logo
1 de 36
Baixar para ler offline
Bio Labs #1


Por que testar é importante
  e algumas boas práticas.

          Lucas Catón
Por que testar é importante?



  Garantir que nada que fizemos
   anteriormente irá quebrar.
Por que testar é importante?




  Facilidade para refatorar código.
Por que testar é importante?




    Entendimento do projeto.
Por que testar é importante?


   Testes irão garantir que tudo
 funciona quando as camadas são
        executadas juntas.
Por que testar é importante?



            E o mais importante...

 Testes são guias, os quais podem te ajudar no
desenvolvimento e na qualidade do seu código.
Resumindo...
Por que testar ANTES é importante?

                 Simples!

     Testar antes garante que você irá
     implementar o que foi previsto e
          não o que é mais fácil.
Por que testar ANTES é importante?



     Para que você não “force” o teste
                 a passar.
!
Ferramentas para testes
             (em Ruby)


“A coisa importante, é claro, é que consigamos
 fazer as pessoas testarem, então ferramentas
    não deveriam importar muito.” (DHH)
Ferramentas para testes
      (em Ruby)


       Testes unitários

  Test::Unit, RSpec, Shoulda
Ferramentas para testes
      (em Ruby)


 Macros para testes unitários

Remarkable, Shoulda-machers
Ferramentas para testes
        (em Ruby)


              Factories

Machinist, Factory Girl, Object Daddy
Ferramentas para testes
      (em Ruby)


    Testes de integração

  RSpec, Cucumber, Steak
Ferramentas para testes
         (em Ruby)


Frameworks para testes de integração

         Capybara, WebRat
Ferramentas para testes
        (em Ruby)

Drivers para frameworks de testes de
              integração

     Selenium Webdriver, env.js,
          Capybara-webkit
Ferramentas para testes
      (em Ruby)


  Geradores de exemplos

      Faker, Forgery
Ferramentas para testes
      (em Ruby)


Mocking de recursos externos

    FakeWeb, WebMock
Ok, uma variedade de ferramentas, mas...
          O que e como usar?




                 ?
Primera coisa:
Saia da zona de conforto!
O que usamos hoje na
RSpec




                                          !



Para testes de models, helpers, libs...
Shoulda-matchers
Shoulda-matchers
Factories



Factory Girl + Faker

Factory.define :user do |u|
  u.name(Faker::Name.name)
  u.username(Faker::Internet.user_name)
  u.email(Faker::Internet.email)
  u.password('secret')
end
Testes de integração

RSpec + Capybara (com nova DSL)
Testes de integração
             com JS


RSpec + Capybara (com nova DSL)
+ Selenium Webdriver + browser
O que NÃO testamos!




   Métodos privados
O que NÃO testamos!




       Views
O que NÃO testamos!



        Controllers
(coisas que já seriam cobertas
  pelos testes de integração)
O que NÃO testamos!




   Javascript (ainda!)
Thanks!
         @lucascaton
http://blog.lucascaton.com.br
Referências

 http://logbr.reflectivesurface.com/

http://cassiomarques.wordpress.com/

   http://twitter.com/danielvlopes

      http://akitaonrails.com/
Dúvidas?

Mais conteúdo relacionado

Mais procurados

Tester, pegue suas coisas, você está demitido
Tester, pegue suas coisas, você está demitidoTester, pegue suas coisas, você está demitido
Tester, pegue suas coisas, você está demitidoLeonardo Galani
 
Por que automatizar testes de software?
Por que automatizar testes de software?Por que automatizar testes de software?
Por que automatizar testes de software?Samuel Lourenço
 
QConRio 2014 - Uso de Headless Browsers em Testes Automatizados
QConRio 2014 - Uso de Headless Browsers em Testes AutomatizadosQConRio 2014 - Uso de Headless Browsers em Testes Automatizados
QConRio 2014 - Uso de Headless Browsers em Testes AutomatizadosStefan Teixeira
 
Agile Brazil 2014 - Visual Regression Testing com PhantomCSS
Agile Brazil 2014 - Visual Regression Testing com PhantomCSSAgile Brazil 2014 - Visual Regression Testing com PhantomCSS
Agile Brazil 2014 - Visual Regression Testing com PhantomCSSStefan Teixeira
 
Automação de Testes com Robot Framework - GUTS-SC
Automação de Testes com Robot Framework - GUTS-SCAutomação de Testes com Robot Framework - GUTS-SC
Automação de Testes com Robot Framework - GUTS-SCMayara Fernandes
 
Minas Testing Conference 2016 - Testes de Carga com Locust
Minas Testing Conference 2016 - Testes de Carga com LocustMinas Testing Conference 2016 - Testes de Carga com Locust
Minas Testing Conference 2016 - Testes de Carga com LocustStefan Teixeira
 
Zend Framework Estrutura e TDD
Zend Framework Estrutura e TDDZend Framework Estrutura e TDD
Zend Framework Estrutura e TDDPHP Day Curitiba
 
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)Júlio de Lima
 
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
 
Minas Testing Conference 2015 - Visual Regression Testing em ambientes na nuvem
Minas Testing Conference 2015 - Visual Regression Testing em ambientes na nuvemMinas Testing Conference 2015 - Visual Regression Testing em ambientes na nuvem
Minas Testing Conference 2015 - Visual Regression Testing em ambientes na nuvemStefan Teixeira
 
Testes Unitários: Começando a escrever testes no seu dia-a-dia
Testes Unitários: Começando a escrever testes no seu dia-a-diaTestes Unitários: Começando a escrever testes no seu dia-a-dia
Testes Unitários: Começando a escrever testes no seu dia-a-diaAlex Tercete
 
Agile Testing - entregando valor do início a fim
Agile Testing - entregando valor do início a fimAgile Testing - entregando valor do início a fim
Agile Testing - entregando valor do início a fimElias Nogueira
 
Ruby para testers I
Ruby para testers IRuby para testers I
Ruby para testers ITestRock!
 
Test Driven Development: Abre alas
Test Driven Development: Abre alasTest Driven Development: Abre alas
Test Driven Development: Abre alasMarcos Pereira
 
Mtc docker - utilizando no seu dia a dia
Mtc   docker - utilizando no seu dia a diaMtc   docker - utilizando no seu dia a dia
Mtc docker - utilizando no seu dia a diaRafael Chiavegatto
 
Ruby para testers III - Selenium
Ruby para testers III - SeleniumRuby para testers III - Selenium
Ruby para testers III - SeleniumTestRock!
 
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
 

Mais procurados (20)

Tester, pegue suas coisas, você está demitido
Tester, pegue suas coisas, você está demitidoTester, pegue suas coisas, você está demitido
Tester, pegue suas coisas, você está demitido
 
Por que automatizar testes de software?
Por que automatizar testes de software?Por que automatizar testes de software?
Por que automatizar testes de software?
 
QConRio 2014 - Uso de Headless Browsers em Testes Automatizados
QConRio 2014 - Uso de Headless Browsers em Testes AutomatizadosQConRio 2014 - Uso de Headless Browsers em Testes Automatizados
QConRio 2014 - Uso de Headless Browsers em Testes Automatizados
 
Agile Brazil 2014 - Visual Regression Testing com PhantomCSS
Agile Brazil 2014 - Visual Regression Testing com PhantomCSSAgile Brazil 2014 - Visual Regression Testing com PhantomCSS
Agile Brazil 2014 - Visual Regression Testing com PhantomCSS
 
Automação de Testes com Robot Framework - GUTS-SC
Automação de Testes com Robot Framework - GUTS-SCAutomação de Testes com Robot Framework - GUTS-SC
Automação de Testes com Robot Framework - GUTS-SC
 
Minas Testing Conference 2016 - Testes de Carga com Locust
Minas Testing Conference 2016 - Testes de Carga com LocustMinas Testing Conference 2016 - Testes de Carga com Locust
Minas Testing Conference 2016 - Testes de Carga com Locust
 
Zend Framework Estrutura e TDD
Zend Framework Estrutura e TDDZend Framework Estrutura e TDD
Zend Framework Estrutura e TDD
 
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
 
Testando como um profissional
Testando como um profissionalTestando como um profissional
Testando como um profissional
 
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
 
Minas Testing Conference 2015 - Visual Regression Testing em ambientes na nuvem
Minas Testing Conference 2015 - Visual Regression Testing em ambientes na nuvemMinas Testing Conference 2015 - Visual Regression Testing em ambientes na nuvem
Minas Testing Conference 2015 - Visual Regression Testing em ambientes na nuvem
 
Testes Unitários: Começando a escrever testes no seu dia-a-dia
Testes Unitários: Começando a escrever testes no seu dia-a-diaTestes Unitários: Começando a escrever testes no seu dia-a-dia
Testes Unitários: Começando a escrever testes no seu dia-a-dia
 
Selenium
SeleniumSelenium
Selenium
 
Agile Testing - entregando valor do início a fim
Agile Testing - entregando valor do início a fimAgile Testing - entregando valor do início a fim
Agile Testing - entregando valor do início a fim
 
Ruby para testers I
Ruby para testers IRuby para testers I
Ruby para testers I
 
Test Driven Development: Abre alas
Test Driven Development: Abre alasTest Driven Development: Abre alas
Test Driven Development: Abre alas
 
Mtc docker - utilizando no seu dia a dia
Mtc   docker - utilizando no seu dia a diaMtc   docker - utilizando no seu dia a dia
Mtc docker - utilizando no seu dia a dia
 
Behaviour Driven Development
Behaviour Driven DevelopmentBehaviour Driven Development
Behaviour Driven Development
 
Ruby para testers III - Selenium
Ruby para testers III - SeleniumRuby para testers III - Selenium
Ruby para testers III - Selenium
 
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
 

Semelhante a Por que testar é importante e boas práticas em Bio Labs

Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMAdriano Bertucci
 
TDD para "meros mortais"
TDD para "meros mortais"TDD para "meros mortais"
TDD para "meros mortais"thiagobapt
 
Tdd em django sem desculpas versao final
Tdd em django sem desculpas versao finalTdd em django sem desculpas versao final
Tdd em django sem desculpas versao finalAdriano Petrich
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesCamilo Ribeiro
 
Testes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio NasTestes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio NasWordCamp Floripa
 
Drupal e a Qualidade de Software
Drupal e a Qualidade de SoftwareDrupal e a Qualidade de Software
Drupal e a Qualidade de SoftwareDaniel Carvalhinho
 
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes AutomatizadosScrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes AutomatizadosStefan Teixeira
 
Mantendo a Qualidade dos Códigos de Teste
Mantendo a Qualidade dos Códigos de TesteMantendo a Qualidade dos Códigos de Teste
Mantendo a Qualidade dos Códigos de Testemauricioszabo
 
Os Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de softwareOs Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de softwareDextra Sistemas / Etec Itu
 
Padrões para Desenvolvimento de Software Guiado por Testes
Padrões para Desenvolvimento de Software Guiado por TestesPadrões para Desenvolvimento de Software Guiado por Testes
Padrões para Desenvolvimento de Software Guiado por TestesEverton Rodrigues
 
Desenvolvimento orientado a testes
Desenvolvimento orientado a testesDesenvolvimento orientado a testes
Desenvolvimento orientado a testesCarlos Santana
 
Leonardo Galani - Tester, pegue suas coisas porque vc está demitido
Leonardo Galani - Tester, pegue suas coisas porque vc está demitidoLeonardo Galani - Tester, pegue suas coisas porque vc está demitido
Leonardo Galani - Tester, pegue suas coisas porque vc está demitidominastestingconference
 
Assespro pr-workshop-robot framework
Assespro pr-workshop-robot frameworkAssespro pr-workshop-robot framework
Assespro pr-workshop-robot frameworkMayara Fernandes
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitDomingos Teruel
 

Semelhante a Por que testar é importante e boas práticas em Bio Labs (20)

Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALM
 
TDD para "meros mortais"
TDD para "meros mortais"TDD para "meros mortais"
TDD para "meros mortais"
 
Test day 2012
Test day 2012Test day 2012
Test day 2012
 
Tdd em django sem desculpas versao final
Tdd em django sem desculpas versao finalTdd em django sem desculpas versao final
Tdd em django sem desculpas versao final
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por Testes
 
Testes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio NasTestes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio Nas
 
Testes - Para que?
Testes - Para que?Testes - Para que?
Testes - Para que?
 
Drupal e a Qualidade de Software
Drupal e a Qualidade de SoftwareDrupal e a Qualidade de Software
Drupal e a Qualidade de Software
 
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes AutomatizadosScrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
 
TDD
TDDTDD
TDD
 
TDD (Resumo)
TDD (Resumo)TDD (Resumo)
TDD (Resumo)
 
Teste automatizados e tdd
Teste automatizados e tddTeste automatizados e tdd
Teste automatizados e tdd
 
Tdd na veia
Tdd na veiaTdd na veia
Tdd na veia
 
Mantendo a Qualidade dos Códigos de Teste
Mantendo a Qualidade dos Códigos de TesteMantendo a Qualidade dos Códigos de Teste
Mantendo a Qualidade dos Códigos de Teste
 
Os Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de softwareOs Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de software
 
Padrões para Desenvolvimento de Software Guiado por Testes
Padrões para Desenvolvimento de Software Guiado por TestesPadrões para Desenvolvimento de Software Guiado por Testes
Padrões para Desenvolvimento de Software Guiado por Testes
 
Desenvolvimento orientado a testes
Desenvolvimento orientado a testesDesenvolvimento orientado a testes
Desenvolvimento orientado a testes
 
Leonardo Galani - Tester, pegue suas coisas porque vc está demitido
Leonardo Galani - Tester, pegue suas coisas porque vc está demitidoLeonardo Galani - Tester, pegue suas coisas porque vc está demitido
Leonardo Galani - Tester, pegue suas coisas porque vc está demitido
 
Assespro pr-workshop-robot framework
Assespro pr-workshop-robot frameworkAssespro pr-workshop-robot framework
Assespro pr-workshop-robot framework
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnit
 

Por que testar é importante e boas práticas em Bio Labs

Notas do Editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n