Em "O que são TDD, BDD e ATDD e quais são as diferenças?" (Parte 1)" discute os conceitos de TDD, BDD e ATDD. Embora TDD, BDD e ATDD sejam métodos de teste usados no desenvolvimento de software, eles diferem em abordagem e foco.
As principais diferenças entre TDD, BDD e ATDD são foco, nível de abstração e colaboração.
1. Foco
O TDD se concentra em testar o código e garantir que ele atenda aos requisitos. O BDD se concentra no comportamento do software e em garantir que ele atenda às necessidades do negócio. ATDD se concentra nos critérios de aceitação e na garantia de que o software atenda às necessidades do negócio.
2. Nível de abstração
O TDD concentra-se no nível do código e usa testes unitários para verificar a funcionalidade do código. O BDD concentra-se no nível funcional e utiliza cenários para descrever o comportamento desejado. ATDD concentra-se em critérios de aceitação e utiliza testes de aceitação para verificar se o software atende aos requisitos.
3. Colaboração
TDD é principalmente um processo centrado no desenvolvedor que inclui a escrita de testes e código. BDD e ATDD envolvem colaboração entre desenvolvedores, testadores e partes interessadas para garantir que o software atenda às necessidades do negócio.
Embora estas três abordagens partilhem algumas semelhanças, elas diferem em abordagem, âmbito e propósito .
1 Escopo
O TDD se concentra no desenvolvimento de código e em testes para verificar seu comportamento. O processo começa escrevendo um caso de teste com falha, depois escrevendo a quantidade mínima de código necessária para passar no teste e, em seguida, refatorando o código. O TDD garante que o código seja exaustivamente testado e atenda aos requisitos antes de ser lançado.
O BDD estende o escopo do TDD para incluir o comportamento de todo o sistema. O BDD concentra-se no comportamento do sistema, não nos detalhes de implementação. Os cenários BDD são escritos em um formato específico chamado Gherkin, que usa a sintaxe Dado Quando Então para descrever as pré-condições, ações e consequências esperadas do comportamento do sistema. Esses cenários servem como critérios de aceitação do sistema, garantindo que a equipe esteja construindo as coisas certas e que o sistema atenda às necessidades de seus usuários.
ATDD concentra-se nos critérios de aceitação do sistema. A equipe colabora para definir critérios de aceitação do sistema na forma de testes automatizados. Os testes são escritos em um formato específico que é acessível a todas as partes interessadas e usam a sintaxe Dado Quando Então para descrever o comportamento esperado do sistema. O teste ATDD é o critério de aceitação do sistema, garantindo que a equipe esteja construindo a coisa certa e que o sistema atenda às necessidades do usuário.
2. Terminologia
O TDD usa um vocabulário de termos e foca no comportamento do código. Os testes TDD são escritos por desenvolvedores para garantir que o código se comporte conforme o esperado. Os testes TDD geralmente são escritos na mesma linguagem de programação do código de teste.
O BDD usa um vocabulário amigável aos negócios e concentra-se no comportamento do sistema. Os cenários BDD são escritos em um formato específico chamado Gherkin, que usa a sintaxe Dado Quando Então para descrever as pré-condições, ações e consequências esperadas do comportamento do sistema. Os cenários BDD são normalmente escritos por analistas de negócios ou proprietários de produtos que possuem um profundo conhecimento das necessidades e requisitos do usuário.
ATDD usa um vocabulário amigável aos negócios e concentra-se nos critérios de aceitação do sistema. Os testes ATDD são escritos em um formato específico que é acessível a todas as partes interessadas e usam a sintaxe Dado Quando Então para descrever o comportamento esperado do sistema. Os testes ATDD geralmente são escritos por analistas de negócios ou proprietários de produtos que possuem um profundo conhecimento das necessidades e requisitos do usuário.
3. Objetivo
O objetivo do TDD é garantir que o código seja exaustivamente testado e atenda aos requisitos antes de ser lançado. O teste TDD serve como uma especificação para o código, ajudando os desenvolvedores a encontrar bugs e defeitos no início do ciclo de desenvolvimento.
O objetivo do BDD é garantir que a equipe esteja construindo a coisa certa e que o sistema atenda às necessidades de seus usuários. Os cenários BDD servem como critérios de aceitação do sistema, garantindo que a equipe esteja construindo as coisas certas e que o sistema atenda às necessidades do usuário.
O objetivo do ATDD é garantir que a equipe esteja construindo a coisa certa e que o sistema atenda às necessidades dos usuários. O teste ATDD é o critério de aceitação do sistema, garantindo que a equipe esteja construindo a coisa certa e que o sistema atenda às necessidades do usuário. Os testes ATDD também orientam o processo de desenvolvimento, garantindo que o código seja testado e atenda aos critérios de aceitação antes do lançamento.
4. Método
O TDD segue uma abordagem de cima para baixo para o desenvolvimento de software. Ele começa escrevendo um caso de teste e depois escreve o código que passa nesse teste. Repita este ciclo até que todos os requisitos sejam atendidos. O TDD incentiva os desenvolvedores a escrever código testável e de fácil manutenção, resultando em produtos de maior qualidade.
O BDD segue uma abordagem orientada ao comportamento para o desenvolvimento de software. Primeiro define o comportamento desejado do sistema na forma de cenários, descrevendo como o sistema se comporta sob diferentes circunstâncias. Esses cenários são escritos em um formato específico chamado Gherkin, que usa a sintaxe Dado Quando Então para descrever as pré-condições, ações e consequências esperadas do comportamento do sistema. Os cenários BDD são normalmente escritos por analistas de negócios ou proprietários de produtos que possuem um profundo conhecimento das necessidades e requisitos do usuário.
O ATDD segue uma abordagem semelhante ao BDD, mas concentra-se nos critérios de aceitação do sistema. A equipe colabora para definir critérios de aceitação do sistema na forma de testes automatizados. Os testes são escritos em um formato específico que é acessível a todas as partes interessadas e usam a sintaxe Dado Quando Então para descrever o comportamento esperado do sistema. Os testes ATDD geralmente são escritos por analistas de negócios ou proprietários de produtos que possuem um profundo conhecimento das necessidades e requisitos do usuário.
Resumir
Desenvolvimento orientado a testes (TDD), desenvolvimento orientado a comportamento (BDD) e desenvolvimento orientado a testes de aceitação são métodos populares de desenvolvimento de software nos últimos anos. Embora todas as três abordagens visem melhorar a qualidade do software e reduzir defeitos, elas diferem em abordagem, escopo e propósito.