Diferença entre TDD e BDD

TDD e BDD são metodologias de desenvolvimento ágil. No TDD (Test Driven Development) o desenvolvimento deve ser guiado a testes, onde um teste unitário deve ser escrito antes que uma funcionalidade do sistema o seja. O objetivo, então, é fazer com que o teste passe com sucesso, significando que assim a funcionalidade está pronta e conta com garantia de qualidade.

No BDD (Behaviour Driven Development) o desenvolvimento deve ser guiado aos comportamentos que o sistema deve apresentar. Desta forma, um comportamento (requisito/especificação) é priorizado em relação ao teste unitário, o que não exclui a execução do fluxo do TDD neste processo. A figura abaixo apresenta o fluxo do TDD e BDD:

tdd_bdd

Existem algumas ferramentas que oferecem apoio à adoção de uma metodologia ou outra ao processo de codificação do sistemas, das quais RSpec(http://rspec.info/)  e Cucumber(http://cukes.info/) são exemplos. Em resumo elas permitem: 1) escrever uma especificação em uma “pseudo linguagem”; 2) transformar a especificação em uma função de teste. Isso porque esses frameworks implementam o TDD para guiar a realização do BDD.

Assim como o TDD e BDD, existem outras metodologias de desenvolvimento ágil que pode ser aplicadas à etapa de codificação do software (DDD, FDD, ATDD, etc). Cada uma delas evidencia uma etapa do ciclo de vida do processo de desenvolvimento do software ou um artefato que faça parte dele como forma de guiar a construção do sistema. Para saber qual deles utilizar é necessário realizar uma análise sobre o projeto, time e outros recursos envolvidos ao processo.

 

Referências:
http://sobrecodigo.com/comparacao-entre-tdd-e-bdd-como-aprender-um-me-ajudou-com-o-outro/
http://caironoleto.com/2008/06/11/diferenca-entre-tdd-e-bdd/
http://blog.fasagri.com.br/?p=113

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s