Slide 1

Slide 1 text

BDD - Behavior Driven Development Wagner Fusca

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

O que resolve? Construir o software corretamente (eficiência) Construir o software certo (eficácia) Conhecimento distribuído Entregar mais valor BDD

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

“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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

Isso parece alguma técnica? - User Story - Invest - 3Cs - Smart - Critérios de aceitação - GIVEN – WHEN – THEN - Prática de refinamento coletivo

Slide 12

Slide 12 text

Isso parece alguma técnica? ATDD - Acceptance Test-Driven Development https://www.agilealliance.org/glossary/atdd

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

Isso parece alguma técnica? 3 C - Card, Conversation, Confirmation https://www.agilealliance.org/glossary/three-cs https://ronjeffries.com/xprog/articles/expcardconversationconfirmation/

Slide 15

Slide 15 text

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?

Slide 16

Slide 16 text

Isso parece alguma técnica? Specification by Example

Slide 17

Slide 17 text

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.

Slide 18

Slide 18 text

Mas como iniciar com BDD?

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

Junte as pessoas (LOS 3 AMIGOS)

Slide 23

Slide 23 text

Definir o que é feature!

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

Exemplo

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

https://writeafeature.com/

Slide 28

Slide 28 text

Prática!!!!!

Slide 29

Slide 29 text

Bedel - exercício Why Who How What Reduzir % de colaboradores sem horas apontadas Business Goal Stakeholders Capabilities Features Colaboradores Ter mais apontamentos diários ? ? ?

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

Vamos compartilhar!

Slide 32

Slide 32 text

Melhorando o Gherkin - mais cenários

Slide 33

Slide 33 text

Melhorando o Gherkin - Background/Contexto

Slide 34

Slide 34 text

Melhorando o Gherkin -And e But

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

Agora é bem mais “tecniquês”!

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

No content

Slide 39

Slide 39 text

No content

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

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