Your SlideShare is downloading. ×
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,076
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
28
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Test-Driven development (TDD)EBehavior Driven Development
    Anderson Cella
    Benhur Griffante
    Márcio H. Brufatto
  • 2. TEST-DRIVEN DEVELOPMENT (TDD)
    ou
    DESENVOLVIMENTO DIRIGIDO POR TESTES
  • 3. HISTÓRIA
    O TDD foi criado por Kenk Beck em 2003.
    A utilização do TDD iniciou com o eXtremme Programming.
  • 4. O que é Tdd?
    É uma técnica de desenvolvimento de software que se baseia em ciclos de repetição curtos, onde o desenvolvedor cria um caso de teste e depois cria o código para o teste criado.
  • 5. PROCESSO TDD
    Design
    Test
    Implementação
    Test
  • 6. CICLO TDD
    Red | Green | Refactor
    Red
    Refactor
    Green
  • 7. REFACTOR
    Melhorar o código.
  • 8. VANTAGENS
    Testando primeiro, você sabe exatamente o que seu sofware precisa fazer;
    Foco: Escrever o código mais simples que resolve o problema;
    Saber quando parar: Teste define quando se atinge o “suficiente”;
    Código mais limpo e organizado;
    Identificar o mais cedo possível problemas de regressão;
    Segurança e refactoring sem medo.
  • 9. TIPOS DE TESTES
    Teste Unitário
    Teste de Integração
    Teste de Sistema
    Teste de regressão
  • 10. FERRAMENTAS
    .NET: MSTest (Visual Studio), Nunit, csUnit, xUnit.net
    Java: JUnit, Jtest
    Ruby: Test::Unit
    Python: PyUnit
    PHP: PHPUnit, SimpleTest
    JavaScript: JSUnit
    cppUnit
    Cunit
    Delphi: Dunit
    DBFit
    DBUnit
  • 11. FERRAMENTAS
    HTMLUnit
    HTTPUnit
    Jmock
    Moq
    NDbUnit
    Nunit
    OUNIT
    TestNG
    VB: VBUnit
    XTUnit
  • 12. BEHAVIOR DRIVEN DEVELOPMENT (BDD)
    ou
    DESENVOLVIMENTO GUIADO POR COMPORTAMENTO
  • 13. HISTÓRIA
    Foi originalmente concebido em 2003, por Dan North como uma resposta à Test DrivenDevelopment.
    FRAMEWORKS
    JbehaveJava
    RbehaveRuby
    CucumberRspec
  • 14. O que é bdd?
    Técnica de desenvolvimento ágil que encoraja colaboração entre desenvolvedores, setores de qualidade e pessoas não-técnicas.
  • 15. Objetivo
    Objetivo do BDD é juntar o todas as boas práticas existentes sob uma só bandeira com uma terminologia consistente e sem ambiguidades.
  • 16. Atingindo o Objetivo
    Definido um vocabulário comum (UbiquitousLanguage);
    Une quem entende de tecnologia com as pessoas que entendem do negócio.
  • 17. UbiquitousLanguage
    Linguagem do usuário/cliente . Manter uma única linguagem de domínio que seja entendível tanto para os desenvolvedores quanto para o cliente.
  • 18. Príncipios
    A área de negócios e a de tecnologia precisam se referir a mesma parte do sistema da mesma forma- Tudo é comportamento
    Toda parte do sistema precisa ter um valor identificável e verificável para o negócio- Valor de negócio
    Analisar, projetar e planejar tudo de cima a baixo tem retorno decrescente.- O suficiente é suficiente
  • 19. Vantagens
    Melhorentendimento do negócio do cliente;
    Desenvolvedor, cliente e analista se entendem;
    Reduçãoemerros de entendimento do negócio.
  • 20. Tipos de Teste
    Teste Unitário
    Teste de Integração
    Teste de Sistema
    Teste de regressão
    Teste de aceitação
  • 21. FERRAMENTAS
    • Java: JBee, Bumblebee, beanSpec, Concordion, easyb, Instinct, JavaStubs, Jbehave, JDave;
    • 22. ASSpec: ActionScript 3;
    • 23. Bdoc: RubyonRails;
    • 24. C++: CppSpec, Spec-cpp;
    • 25. ColdFusion: cfSpec;
    • 26. C: Cspec;
    • 27. Delphi: dSpec;
  • FERRAMENTAS
    • TecnologiasWeb: Cucumber;
    • 28. Groovy: easyb, Gspec, tepec;
    • 29. JavaFX: JFXtrasTest;
    • 30. JavaScript: Jspec, JSSpec;
    • 31. .NET: NBehave , Nspec, Nspecify, Nunit, Specter, StoryQ;
    • 32. PHP: PHPSpec;
    • 33. Python: Pyccuracy, Pyhistorian,PyCukes;
  • CONCLUSÃO
    Qualidade no produto final
    Fácil de executar mudanças
    Diminuição de erros em códigos
    Melhor entendimento do negócio
    Todos “falam a mesma língua”
    Criação de padrão
  • 34.
  • 35. BIBLIOGRAFIAS
    http://jefferson.eti.br/?p=96BDD
    http://domaindrivendesign.org/node/132UbiquitousLanguage
    http://www.handersonfrota.com.br/ubiquitous-language/UbiquitousLanguage
    http://www.slideshare.net/ Slides
    http://pt.wikipedia.org/wiki/Test_Driven_Development TDD
    http://pt.wikipedia.org/wiki/Behavior_Driven_Development BDD
  • 36. LIVROS INDICADOS
  • 37. OBRIGADO !
  • 38. RSPEC
    &
    CUCUMBER
  • 39. INSTALAÇÃO TDD & BDD NO RAILS
    RSpec
    gem install rspecrspec-rails
    Para utilizar com Rails:
    Dentro do projeto: script/generate rspec
    Cucumber
    gem install cucumber
    Para utilizar com Rails:
    Dentro do projeto: script/generate cucumber
  • 40. EXEMPLO RSPEC
    script/generaterspec_modelListtitle:stringdescription:string
  • 41. EXEMPLO CUCUMBER
    Para que seja possível executar uma UserStorie utilizando o Cucumber, ela precisa ter uma estrutura básica.
    • Para o cucumber, todas as UserStories referentes a uma funcionalidade do sistema estarão agrupadas em um arquivo com a extensão .feature
    • 42. No início de cada arquivo existe um resumo da funcionalidade com um formato bem simples: um título, qual o problema a ser resolvido, qual ator trabalha nesta história e qual o resultado desejado.
    • 43. Logo depois são definidos os cenários, que são as histórias em si, cada arquivo tem pelo menos um cenário.
  • EXEMPLO CUCUMBER
    • Cada história, ou cenário é composto por uma descrição ou título, uma ou mais pré condições, uma ou mais ações e uma ou mais verificações.
  • EXEMPLO CUCUMBER
    Palavras chave apresentadas são:
  • EXEMPLO CUCUMBER
    Estas mesmas palavras podem ser traduzidas para o
    portuguescomo:
  • SITES DAS FERRAMENTAS
    http://cukes.infoCucumber
    http://rspec.info RSPEC

×