Article image
Augusto Gonçalves
Augusto Gonçalves21/02/2024 23:53
Compartilhe

BDD simples assim!

  • #BDD

Direto ao ponto, o que é BDD?

BDD é uma mudança de pensamento é ser protagonista!

  • BDD é Behavior Driven Development ou em português, desenvolvimento guiado por comportamento.

Podemos notar que na frase “Behavior Driven Development” não se encontra a palavra “Teste”, não existe “Behavior Driven test”, portanto escrever cenários em BDD deve ser uma especificação para guiar o processo de desenvolvimento de um software.

A sintaxe Gherkin é utilizada para especificar cenários utilizando o:

image

O BDD não tem como motivo ser utilizado para Teste de software, e sim escrever os cenários em BDD para enriquecer o processo como um todo, para trazer uma documentação rica e colaborativa com o time de desenvolvimento.

BDD vem antes da atividade de codificação do software, antes de codificar a funcionalidade, escreve-se os cenários podendo utilizar essa técnica para enriquecer as histórias dos usuários, tornando assim o objetivo daquela funcionalidade mais clara, trazendo um alinhamento de entendimento e expectativas junto a toda equipe.

Então usar o BDD é, vamos desenvolver essa feature orientada a esse comportamento e consequentemente testar orientado a esse comportamento. Dessa forma, temos um processo de desenvolvimento orientado a comportamento utilizado da maneira correta.

Exemplo disso tudo na prática:

Personagens: PO 🧕, Dev 👨🏻‍💻, QA 🕵️‍♀️

Utilizando a técnica do BDD um QA enriquecerá uma “user story” dentro de um time que utiliza técnicas do desenvolvimento ágil. Dessa forma o QA será um agregador/colaborador dentro do time, garantindo a qualidade em todo o processo e não garantir a qualidade somente na etapa do teste.

Vamos imaginar que o PO 🧕 compartilhou alguns artefatos para o QA 🕵️‍♀️, esses artefatos são:

Uma história do usuário para fazer o desenvolvimento da funcionalidade em questão.

image

  • Wireframe da tela a ser desenvolvida.

image

🕵️‍♀️. Então a principal função aqui como testador é, esclarecer de uma forma efetiva para que os stackholders entenda qual é o nosso objetivo, quais são as nossas expectativas e efetuar o alinhamento dessas expectativas.

Para identificar que uma história de usuário foi bem feita ela deve conter três linhas:

1ª Linha: identifica o ator, é quem vai utilizar a funcionalidade

image

2ª Linha: indica aquilo que deve ser desenvolvido

image

3ª Linha: indica o valor agregado para o negócio (o motivo do negócio)

image

CONVERSA COM O PO 🧕💬

image

— 🕵️‍ , olá PO veja se é isso mesmo que você deseja, perguntou o QA;

image

O que acontece PO? quando eu clicar no botão cadastrar, para onde eu serei redirecionado, pois, pelo wireframe não consigo perceber isso? (“…eu preciso entender o que vai acontecer para que eu possa lhe ajudar a especificar, para que o nosso time desenvolva com muita qualidade e evitar possíveis bug’s…”)

— 🧕, “quando o utilizador submeter o cadastro ele deve ser redirecionado para a página home da área logada, disse o PO”.

— 🕵️‍♀️ “ahh entendi…”

image

— 🕵️‍♀️ “é isso que você precisa PO?”

— 🧕, “exatamente, é isso que eu quero, estou satisfeito com esse resultado.”

Até aqui tudo bem, certo? Não tem muito mistério, o BDD é bem intuitivo, o que faz o BDD mais eficaz é atuação do profissional que o está utilizando ;)

Vamos lá…

— 🕵️‍♀️ “olha que legal PO, vou lhe passar outros cenários para tentarmos cobrir o máximo possível e garantirmos a qualidade dessa feature…”

— 🧕, “muito bem QA, vamos nessa!”

— 🕵️‍♀️ “então, PO, o que acontece se o usuário não informar o e-mail?”

— 🧕, “humm… eu não tinha pensado nisso…”

— 🕵️‍♀️ “mas, tudo bem, podemos mostrar uma mensagem informando que o e-mail é um campo obrigatório”

— 🕵️‍♀️ 🧕 “Vamos especificar esse cenário!”

image

— 🕵️‍♀️ “ e se eu não digitar a senha PO?

— 🕵️‍♀️ 🧕 “Vamos especificar esse cenário também QA!”

image

— 🕵️‍♀️ “PO faz sentido isso para você?”

— 🧕, “Sim, QA é exatamente isso que eu quero.”

— 🕵️‍♀️ “ótimo estamos indo bem, e se… no campo confirmar a senha o usuário digitar a senha errada?, o que acontecerá PO?

— 🧕, “nessa ocasião o sistema deverá retornar uma mensagem para informar que a senha está divergente.”

— 🧕 🕵️‍♀️, “Vamos especificar esse cenário também…”

image

— 🧕, “ Uau..!!! agora estou confiante, o sistema está muito bom ✓

— 🕵️‍♀️ “mas…”

— 🧕, “ … o que foi QA?”

— 🕵️‍♀️ “e se o usuário não preencher nenhum dos campos…”

— 🤦‍♀️🧕, “…nossa, não tinha percebido esse ponto…”

— 🕵️‍♀️ “Podemos fazer o seguinte cenário…”

image

— 🕵️‍♀️ agora sim, com esses cinco cenários acredito que a nossa feature está pronta para ser implementada.

🧕 🤝 🕵️‍♀️

Podemos visualizar que a técnica de desenvolvimento guiado por comportamento é muito eficiente, e ajuda a evitar possíveis bugs que passariam desapercebidos em outras metodologias convencionais, podemos ir além e considerar isso como um contrato entre o PO, Dev e com o time de qualidade, ou seja todos trabalhando com a mesma documentação orientado ao mesmo resultado.

image

Essa técnica envolve todos na cultura de uma qualidade mais abrangente, e não somente focada na hora dos testes.

Olha só que interessante, antes mesmos de começarmos a testar, ou até mesmo pensar em automatizar os testes, já garantimos e cobrimos uma grande parte da qualidade do nosso software.

Essa especificação de cenário voltada ao négocio, é simplesmente incrível e facinante!

Nos encontramos em breve, espero que tenha sido útil e agradável 🥰

Compartilhe
Comentários (0)