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

BDD - Behaviour Driven Development

BDD - Behaviour Driven Development

Conteúdo de capacitação de BDD

Wagner Voltz - Fusca

March 30, 2022
Tweet

More Decks by Wagner Voltz - Fusca

Other Decks in Technology

Transcript

  1. 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 te torna mais ágil Benefícios • Redução de desperdício • Redução de custo • Mudanças seguras e fáceis • Lançamento de software mais rápido • Software com menos bugs Definições e benefícios
  2. 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 BDD mal escritos podem levar a custos mais altos de manutenção Desvantagens
  3. O que resolve? Construir o software corretamente (eficiência) Construir o

    software certo (eficácia) Conhecimento distribuído Entregar mais valor BDD
  4. “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
  5. O que é BDD? Conversas sobre exemplos concretos para entender

    como as features agregam valor ao negócio BDD é expresso em uma linguagem que stakeholders e a equipe de desenvolvimento entendem BDD pode transformar requisitos em testes automatizados que: • orientam o desenvolvimento • verificam/validam a feature • gera documentação atualizada de software
  6. Isso parece alguma técnica? - User Story - Invest -

    3Cs - Smart - Critérios de aceitação - GIVEN – WHEN – THEN - Prática de refinamento coletivo
  7. Isso parece alguma técnica? Given, when then (Dado) algum contexto

    (Quando) alguma ação é realizada (Então) um conjunto particular de consequências observáveis deve obter
  8. Isso parece alguma técnica? 3 C - Card, Conversation, Confirmation

    https://www.agilealliance.org/glossary/three-cs https://ronjeffries.com/xprog/articles/expcardconversationconfirmation/
  9. Isso parece alguma técnica? Los 3 amigos https://www.agilealliance.org/glossary/three-amigos/ Business –

    What problem are we trying to solve? Development – How might we build a solution to solve that problem? Testing – What about this, what could possibly happen?
  10. Princípios e valores ágeis Indivíduos e interações mais que processos

    e ferramentas Pessoas de negócio e desenvolvedores devem trabalhar diariamente em conjunto por todo o projeto. O método mais eficiente e eficaz de transmitir informações para e entre uma equipe de desenvolvimento é através de conversa face a face.
  11. Siga os estágios da adoção da equipe Disrupção Apreciação Compreensão

    Adoção Expansão https://johnfergusonsmart.com/five-stages-bdd-agile-adoption/ Estamos aprendendo Seguimos regras e receitas Entendemos o contexto e sei onde usar Tailoring - capacidade de nos adaptar TI apoiando o negócio - Treinamento - Workshop - Ficam mais lentos - Aplicam los 3 inimigos - Given, when, then
  12. Siga os estágios da adoção da equipe Disrupção Apreciação Compreensão

    Adoção Expansão https://johnfergusonsmart.com/five-stages-bdd-agile-adoption/ Estamos aprendendo Seguimos regras e receitas Entendemos o contexto e sei onde usar Tailoring - capacidade de nos adaptar TI apoiando o negócio - Treinamento - Workshop - Ficam mais lentos - Aplicam los 3 inimigos - Given, when, then Defina boas métricas e as torne visíveis! - Vazão - Qtd. Bugs - % Cobertura de feature
  13. Siga os estágios da adoção da equipe Disrupção Apreciação Compreensão

    Adoção Expansão https://johnfergusonsmart.com/five-stages-bdd-agile-adoption/ Estamos aprendendo Seguimos regras e receitas Entendemos o contexto e sei onde usar Tailoring - capacidade de nos adaptar TI apoiando o negócio - Treinamento - Workshop - Ficam mais lentos - Aplicam los 3 inimigos - Given, when, then Defina boas métricas e as torne visíveis! - Vazão - Qtd. Bugs - % Cobertura de feature
  14. Usar uma linguagem ubíqua - Gherkin Feature: Como um correntista

    bancário quero transferir dinheiro pelo app 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
  15. Bedel - exercício Why Who How What Reduzir % de

    colaboradores sem horas apontadas Business Goal Stakeholders Capabilities Features Colaboradores Ter mais apontamentos diários ? ? ?
  16. Usar uma linguagem ubíqua - Gherkin Feature: Como um correntista

    bancário quero transferir dinheiro pelo app 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
  17. Cuidado com BDD e BDT (Behavior driven testing) BDT -

    mais técnico, orientado ao domínio, testa a parte técnica e não de negócio (por exemplo mobile) BDT - imperativo (descrevem como deveria ser o comportamento do cenário e não exatamente o que ele quer.) BDD - declarativo BDT BDD
  18. SÃO PAULO | SP Rua Peixoto Gomide, 996 6º andar

    | Cerqueira César CEP: 01409-000 +55 11 3176-8100 CURITIBA | PR Av. João Gualberto, 1740 9º andar | Juvevê CEP: 80030-001 +55 41 3122-9100 MARINGÁ | PR Av. Horácio Raccanelo Filho, 5355 Sala 1 | Zona 7 CEP: 87020-035 +55 44 3032-9150 CHICAGO | IL | USA 222 Merchandise Mart Plaza Suite 1225 | Chicago | Illinois 60654 +1 312 885-7619