- Publicado em
- · 10 de julho de 2026
BDD: O que é o Desenvolvimento Orientado por Comportamento
- Blog

- Renata Weber
- Renata Weber
- Growth Specialist at Pareto Plus
Growth Specialist at Pareto Plus

O Desenvolvimento Orientado por Comportamento (BDD, Behavior-Driven Development) é uma metodologia ágil que especifica o software pelo comportamento esperado, em cenários Dado-Quando-Então de linguagem natural. Criado por Dan North em 2006, o BDD alinha negócio, desenvolvimento e qualidade nos mesmos requisitos.
- O que é BDD (Desenvolvimento Orientado por Comportamento)?
- Como funciona um cenário BDD na prática?
- Qual a diferença entre BDD e TDD?
- Por que o BDD melhora a comunicação da equipe?
- Frameworks BDD: Cucumber, JBehave e Spock
- Quais as vantagens e os limites do BDD?
O que é BDD (Desenvolvimento Orientado por Comportamento)?
O BDD é uma técnica de desenvolvimento ágil baseada em ciclos curtos: a equipe descreve o comportamento esperado de uma funcionalidade em cenários concretos, transforma esses cenários em testes automatizados e só então escreve o código que os faz passar. O software nasce validado contra as necessidades do cliente, e não contra suposições técnicas.
A abordagem foi formalizada por Dan North no artigo "Introducing BDD", publicado na revista Better Software em março de 2006. North vinha ensinando TDD (Test-Driven Development, desenvolvimento orientado a testes) e percebia sempre as mesmas dúvidas: por onde começar, o que testar, o que não testar e como nomear os testes. A resposta dele foi trocar o vocabulário: em vez de "testes", falar de "comportamentos".
Nas palavras do próprio North: "I found the shift from thinking in tests to thinking in behaviour so profound that I started to refer to TDD as BDD" — achei a mudança de pensar em testes para pensar em comportamento tão profunda que passei a me referir ao TDD como BDD.
Na prática, o BDD foca no comportamento observável dos objetos e do sistema, não nos detalhes internos de implementação. Analistas de negócio raramente detalham aspectos técnicos, como armazenamento em banco de dados; eles descrevem o que o sistema deve fazer pelo usuário. O BDD captura exatamente essa descrição e a torna executável.
Como funciona um cenário BDD na prática?
Um cenário BDD estrutura qualquer requisito em três blocos: Given (Dado) define o contexto inicial, When (Quando) descreve o evento ou a ação, e Then (Então) indica o resultado esperado. Essa estrutura é padronizada pela sintaxe Gherkin, que segundo a documentação oficial do Cucumber já foi traduzida para mais de 70 idiomas — incluindo o português, com as palavras-chave Dado, Quando e Então.
Um exemplo em português:
Funcionalidade: Saque no caixa eletrônico
Cenário: Saque com saldo suficiente
Dado que o cliente tem saldo de R$ 500
Quando ele solicita um saque de R$ 200
Então o caixa entrega R$ 200
E o saldo passa a ser R$ 300
Cada linha do cenário é ligada a um passo de automação (step definition) escrito pelo desenvolvedor. O mesmo texto que o analista de negócio valida com o cliente roda como teste automatizado na esteira de CI/CD, acusando qualquer regressão de comportamento. É por isso que cenários BDD funcionam como documentação viva: se o texto e o sistema divergem, o teste falha.
Qual a diferença entre BDD e TDD?
O BDD não substitui o TDD — ele o aprimora. O TDD, popularizado por Kent Beck com o livro "Test-Driven Development: By Example" (2002), orienta o desenvolvedor a escrever o teste unitário antes do código funcional. O BDD parte do mesmo princípio, mas muda o nível da conversa: em vez de unidades técnicas, especifica comportamentos do sistema em linguagem que o negócio entende.
| Aspecto | TDD | BDD |
|---|---|---|
| Foco | Unidades de código | Comportamento do sistema |
| Linguagem | Código de teste | Linguagem natural (Gherkin) |
| Público | Desenvolvedores | Equipe inteira e negócio |
| Ponto de partida | Teste unitário que falha | Cenário de comportamento |
| Pergunta central | "O código funciona?" | "O sistema faz o que o usuário precisa?" |
| Ferramentas típicas | JUnit, pytest, Jest | Cucumber, JBehave, Spock |
Na rotina de uma equipe madura, as duas práticas convivem: o BDD define os cenários de aceitação de fora para dentro, e o TDD guia o design das unidades internas — muitas vezes com apoio de objetos mock para isolar dependências nos testes. Quem quiser revisar a base conceitual pode começar pelo nosso guia sobre a importância dos testes de software.
Por que o BDD melhora a comunicação da equipe?
O BDD melhora a comunicação porque obriga negócio, desenvolvimento e qualidade a descrever o sistema com o mesmo vocabulário: a chamada linguagem ubíqua. Essa linguagem é estruturada em torno do modelo de domínio e extraída das histórias e especificações fornecidas pelo cliente durante o levantamento de requisitos — cada termo do cenário corresponde a um conceito real do negócio.
Antes do BDD, o TDD sozinho deixava lacunas de comunicação: desenvolvedores escreviam testes unitários que a equipe de qualidade não lia, enquanto QA (Quality Assurance) validava o comportamento do sistema por outros caminhos. Com cenários Dado-Quando-Então, todos leem e revisam o mesmo artefato, e o desenvolvedor entende por que cada trecho de código deve existir antes de escrevê-lo.
Aslak Hellesøy, criador do Cucumber, resumiu esse espírito em um artigo de 2014 no blog oficial do Cucumber: "If you think Cucumber is a testing tool, please read on, because you are wrong" — se você acha que o Cucumber é uma ferramenta de teste, você está errado. Para Hellesøy, o Cucumber é antes de tudo uma ferramenta de colaboração, que cria entendimento comum entre papéis diferentes do time; os testes de regressão são um subproduto dessa colaboração.
Frameworks BDD: Cucumber, JBehave e Spock
O ecossistema BDD é dominado por frameworks que executam cenários escritos em linguagem natural. O mais conhecido é o Cucumber, com implementações para Java, JavaScript, Ruby e outras linguagens. O crescimento foi rápido: no mesmo artigo de 2014, Hellesøy registrou que o Cucumber alcançou 1 milhão de downloads nos três primeiros anos e 5 milhões de downloads três anos depois.
Na comunidade Java, destacam-se ainda o JBehave, criado pelo próprio Dan North como primeira ferramenta BDD, e o Spock, que usa Groovy para escrever especificações expressivas com blocos given/when/then nativos. A escolha entre eles depende da linguagem do projeto e do quanto o time de negócio participará da escrita dos cenários — se você ainda está se situando nesse vocabulário, veja o que são frameworks e como escolher o ideal.
Quais as vantagens e os limites do BDD?
O BDD entrega quatro vantagens principais, todas derivadas de especificar comportamento antes de implementar:
- Código de melhor qualidade, porque cada funcionalidade nasce com critério de aceitação explícito.
- Alta coesão e redução de bugs, já que o comportamento esperado é validado continuamente.
- Manutenção mais barata e vida útil maior, pois os cenários documentam o sistema de forma sempre atualizada.
- Testes que refletem o comportamento desejado pelo usuário, e não apenas a estrutura interna do código.
Há, porém, limites claros. Cenários em Gherkin exigem manutenção constante: quando o negócio não participa da escrita, eles viram apenas uma camada extra de sintaxe sobre testes comuns, com custo sem benefício. O BDD também não elimina a necessidade de outras estratégias de verificação, como testes unitários, de integração e exploratórios. A regra prática: adote BDD onde a conversa com o negócio é o gargalo, não onde o desafio é puramente técnico.
Conclusão
O BDD continua sendo, duas décadas depois do artigo de Dan North, a forma mais eficaz de transformar requisitos de negócio em especificações executáveis — mas só entrega valor quando o time trata os cenários como ferramenta de colaboração, e não como burocracia de teste. Se a sua equipe sofre com requisitos mal interpretados e retrabalho, comece pequeno: escolha uma funcionalidade crítica, escreva três cenários Dado-Quando-Então com o negócio na mesa e automatize-os. Aqui no CodeCrush, essa é a nossa recomendação padrão para times que querem elevar a qualidade sem inflar o processo.
## faq
Perguntas frequentes
Para que serve o BDD no desenvolvimento de software?
O BDD serve para alinhar negócio, desenvolvedores e QA em torno do comportamento esperado do sistema antes da implementação. Os requisitos viram cenários Dado-Quando-Então em linguagem natural, que depois se transformam em testes automatizados. Isso reduz retrabalho, evita mal-entendidos de requisitos e documenta o software de forma viva e executável.
BDD vs TDD: qual a diferença?
O TDD (Test-Driven Development) guia o desenvolvedor com testes unitários escritos antes do código, com foco em unidades técnicas. O BDD amplia a ideia: descreve o comportamento do sistema em linguagem natural, envolvendo também analistas e QA. O BDD não substitui o TDD; as duas práticas se complementam no mesmo projeto.
O que significam Given, When e Then (Dado, Quando, Então)?
São as três palavras-chave que estruturam um cenário BDD: Given (Dado) define o contexto inicial, When (Quando) descreve a ação ou evento, e Then (Então) indica o resultado esperado. Na sintaxe Gherkin, esses cenários podem ser escritos em português e executados como testes automatizados por ferramentas como o Cucumber.
Quais ferramentas usar para aplicar BDD?
O Cucumber é a ferramenta BDD mais conhecida, com suporte a Java, JavaScript, Ruby e outras linguagens. No ecossistema Java também se destacam o JBehave, criado por Dan North, e o Spock, baseado em Groovy. Todas executam cenários escritos em linguagem natural e se integram a pipelines de automação de testes.
Vale a pena adotar BDD em 2026?
Vale a pena quando existe colaboração real entre negócio e desenvolvimento: os cenários viram especificação executável e documentação viva. Em equipes puramente técnicas, sem participação do negócio, o custo de manter cenários em Gherkin pode superar o ganho — nesse caso, testes automatizados tradicionais com TDD tendem a ser suficientes.
Temas deste artigo
## continue lendo
Artigos relacionados
Continue navegando
Artigo anterior

Dev Júnior, Pleno e Sênior: qual a diferença na prática?
Dev júnior precisa de supervisão, pleno atua com autonomia e sênior lidera projetos complexos, mentora o time e toma decisões de arquitetura.
Leia maisPróximo artigo

O que é Power BI e para que serve na análise de dados
O Power BI é a suíte de business intelligence da Microsoft que transforma dados brutos em painéis interativos e relatórios para decisões orientadas por dados.
Leia maisSobre o autor



