In English

BDD

sem usar
ferramentas

ThoughtWorks Logo

Aviso!

sessão experimental

Antes de qualquer coisa...

Três coisas

Técnica rápida pra voltar ao foco

Rearranjando grupos

Quem são as pessoas à sua volta?

Show of hands

ouviu falar de BDD

tentou usar

usa no dia-a-dia

BDD

Que palavras tem vem à mente?

O que eu mais ouço?

Ferramenta

seguido de Cucumber

Noooooo...

Fixação por ferramentas

DANGER!

Tools are fine; but the solution to the software apocalypse is not more tools.

The solution is better programming discipline.


Uncle Bob @ Tools are not the answer

BDD é disciplina

não ferramentas

BDD - "Regras"

Nomes de testes devem ser frases

Nomes de testes devem ser expressivos

Comece o comportamento mais importante

Automatize o teste

BDD - Processo

Pensar na funcionalidade

... antes de começar

Quebrar em cenários

Começar pelo mais simples

Comecemos pelo requisito

qual formato?

[Título]

Para...

Eu, no papel de...

Quero...

Jedi Early Bird pra Agile Brazil

Para... garantir que vou ao Agile Brazil 2018 em Campinas com o melhor preço possível

Eu, no papel de... agilista interessada

Quero... pagar um preço bem menor se eu comprar ingresso antes de todo mundo

Jedi Early Bird pra Agile Brazil

Para... criar capital de giro desde cedo e medir o interesse na conferência

Eu, no papel de... pig da conferência

Quero... oferecer um desconto expressivo para quem se inscrever nesse ano, limitado a 50 inscrições

[2'] Em grupo...

Qual o cenário mais importante?

[5'] Refatoração!

Formato definido

Dado que... pré-condições

Quando faço... ação

Então... resultado esperado

O que falta?

O que eu quero discutir com vocês...

1. Quais as vantagens de pensar no comportamento de um requisito?

Participantes do Caipira Ágil mencionaram...

  • Nivelamento da informação do requisito
  • Foco sobre o que vai ser feito
  • Evitar retrabalho na validação
  • Dá pra pré-validar com cliente
  • Todos entendem o problema a ser resolvido
  • 2. Quais as vantagens de pensar no comportamento ANTES de codar?

    Participantes do Caipira Ágil mencionaram...

  • Visão maior do escopo facilita estimativas
  • Foca no que é importante
  • Evita fazer a mais (simplicidade)
  • Reaproveitamento de código de teste
  • 3. Quais as vantagens de automatizar esses testes?

    E quais os custos?


    Exemplo: testes automatizados no Calopsita Leitura relacionada: Acceptance Tests na AgileAlliance.org

    Participantes do Caipira Ágil mencionaram...

  • Segurança/regressão/cobertura
  • Evita efeito dominó
  • Imita usuário, sem falhas humanas
  • Mais barato e rápido do que testar manualmente
  • Novos integrantes do time entendem o negócio
  • Menos tempo pra entrega e dev
  • Muito mais lento e caro que testes de unidade
  • Custo de implementar o teste é maior
  • Mais instável que outros tipos de teste
  • 4. Quais as vantagens de escrever testes em linguagem natural?

    E quais os custos?


    Exemplo: Cucumber scenarios Leitura relacionada: experiência do James Shore com testes em linguagem natural

    Participantes do Caipira Ágil mencionaram...

  • Cliente consegue entender também
  • Se seu cliente exige um relatório escrito em linguagem natural
  • Teoricamente, consigo envolver o cliente na escrita
  • Na vida real: o cliente não lê testes no repo de código
  • Uma camada a mais de código, aumenta complexidade
  • Mais difícil de entender o código por trás da linguagem natural
  • Quebra um pouco o reaproveitamento de código de teste
  • Compiladores não conseguem te ajudar (em várias tecnologias)
  • BDD

    sem usar
    ferramentas

    Ceci Fernandes
    e galera do Caipira Ágil

    @cecifernandes

    cecifernandes.com

    ThoughtWorks Logo