Behaviour Driven Development (BDD)

Por
Atualizado em
Publicado em
6 min. de leitura

O Behaviour Driven Development (BDD) surgiu em 2003 com Dan North, como uma evolução natural das metodologias TDD (Test Driven Development) e ATDD (Acceptance Test Driven Development). Seu objetivo principal é melhorar a comunicação entre as áreas de negócio e tecnologia, aproximando programadores, testadores e stakeholders por meio de uma linguagem comum e baseada em exemplos concretos.

O BDD se posiciona como uma estratégia ágil, centrada na entrega de valor real ao cliente, e reduz a ambiguidade de requisitos com descrições comportamentais claras e legíveis. Diferente do TDD, que foca na criação de testes unitários, o BDD começa do comportamento esperado do sistema, e só depois passa à implementação técnica.

Por que exemplos são essenciais?

Ao lidar com domínios de negócio complexos, a comunicação pode se tornar confusa. O BDD resolve esse problema ao utilizar exemplos reais como ponto central. Eles tornam o entendimento mais fácil, intuitivo e direto. Esses exemplos são usados para descrever como o sistema deve se comportar frente a determinadas situações.

Práticas Fundamentais do BDD

As práticas do BDD seguem uma lógica de desenvolvimento Outside-in (“de fora para dentro”), em que o comportamento esperado do sistema orienta as decisões técnicas. Abaixo estão os principais pilares:

PráticaDescrição
Outside-in DevelopmentEnvolver os stakeholders desde o início e desenvolver a aplicação com base em suas expectativas.
Uso de exemplosDescrever funcionalidades com base em exemplos reais, tornando o comportamento esperado claro e objetivo.
Automatização de testesOs exemplos se tornam testes automatizados que são usados como validação contínua (regressão e feedback rápido).
Uso de linguagem natural e ubíquaA escrita de cenários em linguagem acessível minimiza ruídos entre negócio e TI.
Uso de “deve”Frases como “O sistema deve fazer X” tornam os objetivos mais claros e rastreáveis.
Simuladores de testeTécnicas como Mocks, Stubs, Spies, Fakes e Dummies ajudam a isolar dependências ainda não implementadas.

Formatos do BDD: Histórias e Cenários

User Story (História de Usuário)

Formato padrão que expressa o desejo do negócio:

“Eu, como <papel>, desejo <necessidade> para <motivação>”
Exemplo:
Eu, como Analista de Relacionamento, desejo poder manipular os dados de um chamado para que eu possa resolvê-lo.

Cenário

Formato padrão do comportamento esperado, baseado em evento:

“Dado que <contexto>, quando <evento>, então <resultado esperado>”
Exemplo:
Dado que não existam chamados abertos, quando um novo chamado for aberto, então eu devo poder manipulá-lo.

Essas estruturas são base para ferramentas como Cucumber, SpecFlow e Behave, que convertem linguagem natural em testes executáveis.

Quadro Resumo – Fundamentos do BDD

AspectoBDD
OrigemDan North (2003), como evolução do TDD e ATDD
FocoComportamento esperado do sistema
LinguagemNatural + ubíqua (acessível para todos os stakeholders)
ComunicaçãoBaseada em exemplos concretos
Principal estruturaUser Stories e Cenários (Gherkin – Dado/Quando/Então)
TestesAutomatizados, baseados em critérios de aceitação
ParticipaçãoEnvolve desenvolvedores, testadores, analistas e usuários
Ferramentas popularesCucumber, JBehave, SpecFlow, Behave, Lettuce

Exemplo do uso do BDD:

Descrevendo uma funcionalidade a ser testada:

Funcionalidade a ser testada: [ nome da funcionalidade]
Para [valor da funcionalidade para o negócio / sistema como um todo]
Eu, como [Papel / ator]
Desejo conseguir realizar [Funcionalidade]

Logo após, você precisará dos cenários de testes propriamente ditos. Utilize as pré-condições (Given /Dado) , às ações ( When /Quando), o comportamento esperado (Then / Então):

Cenário: [Nome do cenário do teste]
Dado que [Condição inicial do sistema]
Quando [Ação a ser realizada no sistema]
Então [Procedimentos a serem realizados após a ação]

Agora iremos para algumas questões para fixarmos o conteúdo.

01 Ano: 2024 Banca: FGV Órgão: EPE Prova: FGV – 2024 – EPE – Analista de Gestão Corporativa – Tecnologia da Informação (Soluções)


O Desenvolvimento Orientado por Comportamento (BDD) facilita a colaboração entre as partes interessadas e desenvolvedores ao usar uma linguagem comum para descrever o comportamento do sistema.

Sobre o BDD, analise as afirmativas a seguir.


I. No BDD, os novos comportamentos são adicionados e testados em pequenos ciclos contínuos, sendo assim um método iterativo, mas não incremental.

II. No BDD, a documentação é atualizada automaticamente a cada ciclo.

III. A prática de escrever testes antes do desenvolvimento do código é um elemento essencial do BDD.

Está correto o que se afirma em 

A I, apenas.

B II, apenas.

C III, apenas.

D II e III, apenas.

E I, II e III.

COMENTÁRIO:

I. Incorreta. O BDD é iterativo e incremental. A cada ciclo, novos comportamentos são adicionados e testados, o que caracteriza ambas as naturezas — há repetição de ciclos (iterativo) com acúmulo funcional (incremental).

II. Correta. O BDD usa ferramentas (como Cucumber ou SpecFlow) que geram documentação viva a partir das especificações dos testes, mantendo a documentação sempre atualizada conforme o código evolui.

III. Correta. BDD segue o princípio do test-first herdado do TDD. Os comportamentos são descritos antes da implementação, geralmente em uma linguagem como Gherkin, que se transforma em testes automatizados.

Gabarito é a letra D.

02 Ano: 2024 Banca: Instituto Consulplan Órgão: Prefeitura de Campos dos Goytacazes – RJ Prova: Instituto Consulplan – 2024 – Prefeitura de Campos dos Goytacazes – RJ – Analista de Sistemas

Analise as afirmativas a seguir a respeito das principais diferenças entre BDD, TDD e ATDD.
I. BDD é, exclusivamente, para equipes de desenvolvimento; TDD é para testadores; e, ATDD é para gerentes de projeto.
II. BDD e TDD são a mesma coisa, apenas com siglas diferentes; e, ATDD é uma técnica de teste de acessibilidade.
III. BDD normalmente abrange funcionalidades ou cenários completos do software; TDD se concentra em testes unitários para funções ou métodos individuais; e, ATDD valida se os requisitos de negócios são atendidos por meio de testes de aceitação que abrangem fluxos de funcionalidade específicos.

Está correto o que se afirma apenas em
A) I.
B) III.
C) I e II.
D) II e III.

Comentário:

  • I – Errada. BDD, TDD e ATDD são voltados a diferentes papéis, mas todos envolvem desenvolvedores e equipes multidisciplinares. Nenhum deles é exclusivo a um único papel.
  • II – Errada. BDD, TDD e ATDD têm propósitos e escopos distintos. TDD foca em testes unitários, BDD foca em comportamento de funcionalidades, e ATDD em requisitos de aceitação.
  • III – Correta. Define bem o foco de cada abordagem: TDD atua no nível de unidade, BDD descreve comportamentos esperados, e ATDD valida requisitos de negócio com testes de aceitação.

Gabarito é a letra B.

03 Ano: 2024 Banca: OBJETIVA Órgão: Prefeitura de Senador Salgado Filho – RS
Prova: OBJETIVA – 2024 – Prefeitura de Senador Salgado Filho – RS – Analista e Programador

Sobre técnicas de desenvolvimento de software, assinalar a alternativa que, respectivamente, descreve de forma CORRETA o significado das siglas TDD, BDD e FDD.


A) Transaction-driven development, Branch-driven Development e Framework-driven Development.
B) Test-driven development, Behavior-driven Development e Feature-driven Development.
C) Transaction-driven development, Behavior-driven Development e Function-driven Development.
D) Test-driven development, Branch-driven Development e Function-driven Development.

Comentário:

  • TDD significa Test-Driven Development (Desenvolvimento Orientado por Testes).
  • BDD significa Behavior-Driven Development (Desenvolvimento Orientado por Comportamento).
  • FDD significa Feature-Driven Development (Desenvolvimento Orientado a Funcionalidades).

Gabarito é a letra B.

04 Ano: 2024 Banca: FGV Órgão: CGM de Belo Horizonte – MG Prova: FGV – 2024 – CGM de Belo Horizonte – MG – Auditor Interno – Ciência da Computação – Manhã

Os benefícios da introdução do Behavior-Driven Development (BDD) em uma organização são significativos, ainda que sua implementação nem sempre ocorra sem dificuldades.
Com relação aos desafios da introdução do BDD, analise as afirmativas a seguir e assinale (V) para a verdadeira e (F) para a falsa.

I. O BDD requer um alto envolvimento e colaboração empresarial. As práticas de BDD são baseadas em conversas e feedback dos usuários, que impulsionam e constroem a compreensão da equipe sobre os requisitos e sobre como eles podem agregar valor ao negócio com base nesses requisitos.
II. O BDD funciona melhor com a adoção de metodologias ágeis ou iterativa. As práticas de análise de requisitos do BDD mostram que é difícil, se não impossível, definir completamente os requisitos de modo antecipado, e que estes evoluirão à medida que a equipe aprenda mais sobre o projeto.
III. Os testes, mesmo que mal escritos, não ocasionam custos de manutenção elevados. A criação de testes automatizados, especialmente para aplicações web complexas, requer baixa habilidade, e as equipes que estão começando a adotar o BDD não consideram isso um desafio significativo.

As afirmativas são, respectivamente:

Alternativas
A) F – V – F
B) V – F – V
C) V – V – F
D) F – F – V

Comentário:

  • I – Verdadeira. O BDD depende fortemente da colaboração entre áreas técnicas e de negócio.
  • II – Verdadeira. O BDD se alinha bem com abordagens iterativas e evolutivas, como as do ágil.
  • III – Falsa. Testes mal escritos geram alto custo de manutenção. Automatizar testes, especialmente em aplicações web, exige boa habilidade técnica.

Gabarito é a letra C.

05 Ano: 2022 Banca: CESPE / CEBRASPE Órgão: BANRISUL Prova: CESPE / CEBRASPE – 2022 – BANRISUL – Quality Assurance (QA) e Analistas de Teste

Julgue o item a seguir, relativos aos conceitos de TDD e BDD.

Desenvolvedores que se beneficiam das vantagens do BDD escrevem os testes em sua língua nativa, em combinação com a linguagem ubíqua.

Comentário:
O BDD (Behavior-Driven Development) utiliza uma linguagem onipresente (ubíqua), compreendida tanto por desenvolvedores quanto por stakeholders do negócio. Linguagem Ubíqua (ou Linguagem Onipresente) é um conceito central de DDD. Ela consiste de um conjunto de termos que devem ser plenamente entendidos tanto por especialistas no domínio (usuários do sistema) como por desenvolvedores (implementadores do sistema).

Gabarito está CORRETO.

06 Ano: 2024 Banca: CESPE / CEBRASPE Órgão: CNPQ Prova: CESPE / CEBRASPE – 2024 – CNPQ – Analista em Ciência e Tecnologia Pleno I – Especialidade: Desenvolvimento e Arquitetura de Software

Julgue o item seguinte, a respeito do desenvolvimento orientado ao comportamento (BDD).

Durante o período do BDD, os planos serão validados pelos desenvolvedores conforme previsto pelo TDD por meio de ferramentas de teste como JUnit e Mockito.

Comentário:
A afirmativa mistura conceitos de BDD e TDD de forma incorreta. Embora o BDD compartilhe com o TDD a ideia de escrever testes antes do código, sua principal característica é a validação de comportamento com foco no negócio, utilizando ferramentas específicas como Cucumber, SpecFlow ou Behave, que permitem escrever testes em linguagem natural (ex.: Gherkin). Já JUnit e Mockito são ferramentas comumente associadas ao TDD, focadas em testes unitários e mocks em nível técnico, e não na definição de comportamento de alto nível esperada no BDD.

Gabarito: Errado.

GABARITO DAS QUESTÕES

QuestãoGabarito
1D
2B
3B
4C
5CERTO
6ERRADO

REFERÊNCIAS BIBLIOGRÁFICAS

Desenvolvimento orientado por comportamento (BDD). Disponível em https://www.devmedia.com.br/desenvolvimento-orientado-por-comportamento-bdd/21127

Um guia básico sobre BDD (Behavior-Driven Development). Disponível em https://medium.com/@racheloliveira07/um-guia-b%C3%A1sico-sobre-bdd-behavior-driven-development-942e0b586e04

Desenvolvimento orientado por comportamento (BDD). Disponível em https://pt.scribd.com/document/405256157/BDD

Entendendo BDD: Como o Behavior-Driven Development Pode Transformar a Escrita das Suas User Stories? Disponível em https://www.linkedin.com/pulse/entendendo-bdd-como-o-behavior-driven-development-pode-geovane-lima-qfgqc/

Por
Atualizado em
Publicado em
6 min. de leitura