Upgrade to Pro — share decks privately, control downloads, hide ads and more …

BDD - Behavior Driven Development

BDD - Behavior Driven Development

Wagner Voltz - Fusca

October 21, 2022
Tweet

More Decks by Wagner Voltz - Fusca

Other Decks in Programming

Transcript

  1. 3

  2. Definições • Prática de engenharia de software (não é método

    ou metodologia) • Toda prática precisa de disciplina • A prática te leva a excelência técnica e isso lhe torna mais ágil Benefícios • Documentação atualizada • Conhecimento compartilhado (propriedade coletiva) • Redução de desperdício / Software com menos bugs • Redução de custo • Mudanças seguras e fáceis • Lançamento de software mais rápido (a longo prazo) Definições e benefícios 5
  3. BDD mal escritos podem levar a custos mais altos de

    manutenção BDD requer alto envolvimento e colaboração do time de negócios BDD só funciona com contexto ágil BDD não funciona quando existem silos Desvantagens 6
  4. O que resolve? Construir o software corretamente (eficiência) Construir o

    software certo (eficácia) Conhecimento distribuído Entregar mais valor BDD 7
  5. 8

  6. 9

  7. 10

  8. “O uso do BDD não requer ferramentas ou linguagens de

    programação específicas e é principalmente uma abordagem conceitual; torná-lo uma prática puramente técnica ou que dependa de ferramentas específicas seria perder completamente o ponto” Agile Alliance 11
  9. 13

  10. Como BDD é aplicado? • User Story • 3Cs -

    Cartão - conversa - confirmação • Critérios de aceitação • GIVEN – WHEN – THEN (Gherkins) • Prática de refinamento coletivo (los 3 amigos) 14
  11. Usar uma linguagem ubíqua - Gherkin Feature: short title As

    a (Como) ………… I want to (quero) ………… so that I can (para) ………… Scenario: Short title Given (dado) … When (quando) … Then (então) … Início/configuração/contexto Ação/gatilho Resultado/Reação 15
  12. Usar uma linguagem ubíqua - Gherkin Feature: Movimentar conta corrente

    As a (Como) um correntista bancário I want to (quero) transferir dinheiro pelo app so that I can (para) evitar de ir a uma agência Scenario: …… Given (dado) When (quando) Then (então) 17
  13. Usar uma linguagem ubíqua - Gherkin Feature: Movimentar conta corrente

    As a (Como) um correntista bancário I want to (quero) transferir dinheiro pelo app so that I can (para) evitar de ir a uma agência Scenario: Transferir dinheiro para uma conta poupança Given (dado) que eu tenho 1000,00 em minha conta corrente When (quando) transfiro 600,00 para minha conta poupança Then (então) ficarei com saldo de 400,00 19
  14. Cuidado com BDT (Behavior driven testing) BDT - mais técnico,

    orientado ao domínio, testa a parte técnica e não de negócio BDT - imperativo (descrevem como deveria ser o comportamento do cenário e não exatamente o que ele quer) BDD - declarativo BDT BDD 21
  15. 27

  16. 28

  17. 30

  18. 33