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
    Programming
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 Stories
Comportamento do
           Software
                        Ubiquitous
                        Language
     Behaviour
     Driven
     Development
Entendimento do
     DONE!
              User Stories
Comportamento do
           Software
                        Ubiquitous
                        Language
     Behaviour
     Driven
     Development
Entendimento do       Especificação
     DONE!
              User Stories
Comportamento do
             Software
Business Value             Ubiquitous
                           Language
       Behaviour
       Driven
       Development
 Entendimento do         Especificação
      DONE!
                 User Stories
(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
 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
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 é validada por builds
  automáticos.
• É necessário uma máquina separada para
  esse fim.
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 the
'Server Overview' plugin on 'example.com'
     Then 'cpu_last_minute' should be less
than 1
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
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
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']

Comandos:

inploy setup
inploy
           http://github.com/dcrec1/inploy
Deploy One-Click
Testes Exploratórios
Obrigado!

      Perguntas?
       @almeidaricardo
 github.com/ricardoalmeida
manifestonaweb.wordpress.com

Bdd e ci