Quero me matricular
Artigos Alura Lingua

Qual é a diferença entre TDD e BDD?

Michel Rosas
Michel Rosas
Qual é a diferença entre TDD e BDD? #inset

Hello, there! Você sabe o que significam TDD e BDD em programação?

Essas duas siglas são muito usadas no mundo do desenvolvimento de software, mas nem sempre é fácil entender a diferença entre elas. Elas têm origem no inglês e indicam abordagens diferentes para criar e testar códigos.

Então vamos aprender o que são essas abordagens TDD e BDD e qual é a diferença entre elas? Confira abaixo a explicação de cada uma e exemplos de como usá-las. Check it out!

Qual é a diferença entre TDD e BDD?

Antes de mais nada, é importante conversarmos sobre a palavra driven em inglês. Driven significa algo como "guiado", "movido" ou "orientado". Quando usada em expressões como "data-driven", por exemplo, a ideia é que algo está sendo motivado a se guiar por um fator específico (nesse caso, algo está sendo movido com base em dados).

TDD (Test-Driven Development)

A sigla TDD significa "Test-Driven Development" ou, em português, "Desenvolvimento Guiado por Testes".

Em TDD, os desenvolvedores criam testes antes mesmo de escrever o código funcional. Primeiro, eles escrevem um teste que representa o que o código deve fazer. Depois, criam o código para passar nesse teste. Essa abordagem garante que o software seja testado desde o início.

For example:

  1. Escreva um teste: "The login function should return 'success' for correct credentials." (A função de login deve retornar 'sucesso' para credenciais corretas.)
  2. Escreva o código para passar no teste.
  3. Repita o processo para outros testes e funcionalidades.

Take a look at these examples:

BDD (Behavior-Driven Development)

Já a sigla BDD significa "Behavior-Driven Development", ou seja, "Desenvolvimento Guiado por Comportamento".

No BDD, o foco é no comportamento do sistema do ponto de vista do usuário final. Os testes são escritos de forma mais descritiva, geralmente em uma linguagem próxima do inglês ou português comum, para que todos na equipe (incluindo não programadores) possam entender. Like this:

  1. Escreva um cenário: "Given a user enters correct credentials, when they click 'login', then they should see a success message." (Dado que um usuário insira credenciais corretas, quando ele clicar em 'login', então ele deve ver uma mensagem de sucesso.)
  2. Crie o código que atenda a esse cenário.

Take a look at these examples:

Resumindo, a principal diferença está no foco:

Ambas as abordagens ajudam a criar software de qualidade, mas o TDD é mais técnico e centrado no código, enquanto o BDD é mais colaborativo e centrado no usuário.

Interesting, isn't it? Which of these approaches do you think works best for your team? (Interessante, não é? Qual dessas duas abordagens você acha que funciona melhor para o seu time?)

Continue estudando com a gente no nosso artigo "Aprenda 6 siglas de comandos para administração de sistemas". See you!

Aproveite e faça nosso teste de nível de inglês. Ou baixe nossa apostila que te ensina como aprender inglês de maneira eficiente!

Quer realmente aprender outras línguas, como inglês e espanhol? Conheça os nossos cursos que reforçam o aprendizado de inglês e espanhol.

Inglês e espanhol online de maneira eficaz!

Escolha um dos planos e tenha acesso aos cursos completos da plataforma

Plano Anual 12x R$40 ou R$480 Quero este plano
Plano Semestral 6x R$50 ou R$300 Quero este plano