Ricardo Almeida




          BDD e CI
Extreme
Programming
Comunicação




      Extreme
    Programming
Comunicação

Feedback


      Extreme
    Programming
Comunicação
              Simplicidade
Feedback


      Extreme
    Programming
Comunicação                  Respeito
              Simplicidade
Feedback


      Extreme
    Programming
Comunicação                  Respeito
              Simplicidade
Feedback                     Coragem


      Extreme
    ...
Test
Driven
Development
Escreva um teste
    que falhe
Implemente o
  necessário
 para passar
Refatore:
Eliminar duplicidade
 Melhorar o design
TDD - Test First
Pair Programming
Não é fácil
começar!
Maior Produtividade
    com testes
Behaviour
Driven
Development
Comportamento do
    Software



Behaviour
Driven
Development
Comportamento do
    Software



Behaviour
Driven
Development

      User Stories
Comportamento do
    Software
                Ubiquitous
                Language
Behaviour
Driven
Development

      User...
Comportamento do
           Software
                        Ubiquitous
                        Language
     Behaviour
  ...
Comportamento do
           Software
                        Ubiquitous
                        Language
     Behaviour
  ...
Comportamento do
             Software
Business Value             Ubiquitous
                           Language
       Be...
(XP)
Acceptance
Test
Driven
Development
(BDD)
Acceptance
Test
Driven
Planning
Funcionalidade: Pagar conta online
 Para reduzir meu tempo pagando contas
 Como um cliente do banco com conta ativa
 Desej...
Capybara




http://github.com/jnicklas/capybara.git
Precisa testar
     JS?
Chega de
   Click.
Automatize!
Blue Ridge JavaScript Testing Rails Plugin
Integração
 Contínua
Faz parte da
cultura do time!
Alertas de fail
Alertas de fail
Alertas de fail
Alertas de fail

CCMenu
Alertas de fail
Alertas de fail
Integração
        Contínua
• Membros das equipes precisam integrar
  seus trabalhos frequentemente.
• Cada integração é v...
Integração
        Contínua

• A Suite de testes precisa ser rápida para se
  ter ter feedback
Automatização
Continuous
Deployment
Fail Fast
Mas e na produção?
Mailinator-Spec


• http://github.com/technicalpickles/
  mailinator-spec
Cucumber Scout

• http://github.com/jnewland/cucumber-scout/
Scenario: CPU usage is low
     When I get the metrics from t...
Cucumber-Newrelic
Scenario: Average Response time
    Given that my application is being
monitored by New Relic
    Then m...
Cucumber-Nagios

• http://github.com/auxesis/cucumber-nagios
Scenario: test queue 2
  Given I have a AMQP server on rabbit...
Integração Distríbuída




   http://github.com/brynary/testjour
Signal
Signal




http://github.com/dcrec1/signal.git
Inploy
Receita:

application = "signal"
repository = 'git://github.com/dcrec1/signal.git'
hosts = ['hooters', 'geni']

Com...
Deploy One-Click
Testes Exploratórios
Obrigado!

      Perguntas?
       @almeidaricardo
 github.com/ricardoalmeida
manifestonaweb.wordpress.com
Bdd e ci
Bdd e ci
Bdd e ci
Upcoming SlideShare
Loading in …5
×

Bdd e ci

1,301 views
1,164 views

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,301
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
15
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide






















































  • Bdd e ci

    1. 1. Ricardo Almeida BDD e CI
    2. 2. Extreme Programming
    3. 3. Comunicação Extreme Programming
    4. 4. Comunicação Feedback Extreme Programming
    5. 5. Comunicação Simplicidade Feedback Extreme Programming
    6. 6. Comunicação Respeito Simplicidade Feedback Extreme Programming
    7. 7. Comunicação Respeito Simplicidade Feedback Coragem Extreme Programming
    8. 8. Test Driven Development
    9. 9. Escreva um teste que falhe
    10. 10. Implemente o necessário para passar
    11. 11. Refatore: Eliminar duplicidade Melhorar o design
    12. 12. TDD - Test First
    13. 13. Pair Programming
    14. 14. Não é fácil começar!
    15. 15. Maior Produtividade com testes
    16. 16. Behaviour Driven Development
    17. 17. Comportamento do Software Behaviour Driven Development
    18. 18. Comportamento do Software Behaviour Driven Development User Stories
    19. 19. Comportamento do Software Ubiquitous Language Behaviour Driven Development User Stories
    20. 20. Comportamento do Software Ubiquitous Language Behaviour Driven Development Entendimento do DONE! User Stories
    21. 21. Comportamento do Software Ubiquitous Language Behaviour Driven Development Entendimento do Especificação DONE! User Stories
    22. 22. Comportamento do Software Business Value Ubiquitous Language Behaviour Driven Development Entendimento do Especificação DONE! User Stories
    23. 23. (XP) Acceptance Test Driven Development
    24. 24. (BDD) Acceptance Test Driven Planning
    25. 25. Funcionalidade: Pagar conta online Para reduzir meu tempo pagando contas Como um cliente do banco com conta ativa Desejo pagar minhas contas online Cenário: pagar uma conta Dado uma conta corrente com $50 E uma cobrança de Telefone no valor $37 Quando eu pago a conta de Telefone Então devo ter $13 de saldo E a conta de Telefone na lista de pagamentos recentes
    26. 26. Capybara http://github.com/jnicklas/capybara.git
    27. 27. Precisa testar JS?
    28. 28. Chega de Click. Automatize!
    29. 29. Blue Ridge JavaScript Testing Rails Plugin
    30. 30. Integração Contínua
    31. 31. Faz parte da cultura do time!
    32. 32. Alertas de fail
    33. 33. Alertas de fail
    34. 34. Alertas de fail
    35. 35. Alertas de fail CCMenu
    36. 36. Alertas de fail
    37. 37. Alertas de fail
    38. 38. Integração Contínua • Membros das equipes precisam integrar seus trabalhos frequentemente. • Cada integração é validada por builds automáticos. • É necessário uma máquina separada para esse fim.
    39. 39. Integração Contínua • A Suite de testes precisa ser rápida para se ter ter feedback
    40. 40. Automatização
    41. 41. Continuous Deployment
    42. 42. Fail Fast
    43. 43. Mas e na produção?
    44. 44. Mailinator-Spec • http://github.com/technicalpickles/ mailinator-spec
    45. 45. Cucumber Scout • http://github.com/jnewland/cucumber-scout/ Scenario: CPU usage is low When I get the metrics from the 'Server Overview' plugin on 'example.com' Then 'cpu_last_minute' should be less than 1
    46. 46. Cucumber-Newrelic Scenario: Average Response time Given that my application is being monitored by New Relic Then my application's 'response time' should be less than 500 milliseconds • http://github.com/jnewland/cucumber- newrelic
    47. 47. Cucumber-Nagios • http://github.com/auxesis/cucumber-nagios Scenario: test queue 2 Given I have a AMQP server on rabbit.github.com And I want to check on the fork queue Then it should have less than 400 messages Then it should have at least 5 consumers Then it should have less than 50 messages per consumer
    48. 48. Integração Distríbuída http://github.com/brynary/testjour
    49. 49. Signal
    50. 50. Signal http://github.com/dcrec1/signal.git
    51. 51. Inploy Receita: application = "signal" repository = 'git://github.com/dcrec1/signal.git' hosts = ['hooters', 'geni'] Comandos: inploy setup inploy http://github.com/dcrec1/inploy
    52. 52. Deploy One-Click
    53. 53. Testes Exploratórios
    54. 54. Obrigado! Perguntas? @almeidaricardo github.com/ricardoalmeida manifestonaweb.wordpress.com

    ×