Desenvolvimento Orientado a Comportamento - Introdução
O Behavior Driven Development (BDD) é um processo de desenvolvimento de software que surgiu originalmente do Test Driven Development (TDD).
De acordo com Dan North, que é responsável pela evolução do BDD, “o BDD está usando exemplos em vários níveis para criar uma compreensão compartilhada e incerteza superficial para fornecer software que importa”.
O BDD usa exemplos para ilustrar o comportamento do sistema que são escritos em uma linguagem legível e compreensível para todos os envolvidos no desenvolvimento. Esses exemplos incluem -
Convertido em especificações executáveis.
Usado como testes de aceitação.
BDD - Principais recursos
O Desenvolvimento Orientado ao Comportamento se concentra em -
Proporcionar um processo compartilhado e ferramentas compartilhadas que promovam a comunicação aos desenvolvedores de software, analistas de negócios e stakeholders para colaborar no desenvolvimento de software, com o objetivo de entregar produto com valor de negócio.
O que um sistema deve fazer e não como deve ser implementado.
Fornecendo melhor legibilidade e visibilidade.
Verificar não apenas o funcionamento do software, mas também se ele atende às expectativas do cliente.
Origem do BDD
O custo para corrigir um defeito aumenta em múltiplas vezes se o defeito não for detectado no momento certo e corrigido como e quando for detectado. Considere o seguinte exemplo.
Isso mostra que, a menos que os requisitos sejam obtidos corretamente, seria caro corrigir os defeitos resultantes da má compreensão dos requisitos em um estágio posterior. Além disso, o produto final pode não atender às expectativas do cliente.
A necessidade da hora é uma abordagem de desenvolvimento que -
Baseia-se nos requisitos.
Concentra-se nos requisitos ao longo do desenvolvimento.
Garante que os requisitos sejam atendidos.
Uma abordagem de desenvolvimento que pode cuidar dos requisitos mencionados acima é o BDD. Assim, Desenvolvimento Orientado por Comportamento -
Deriva exemplos de diferentes comportamentos esperados do sistema.
Permite escrever os exemplos em uma linguagem usando os termos do domínio de negócios para garantir o fácil entendimento por todos os envolvidos no desenvolvimento, incluindo os clientes.
Obtém os exemplos ratificados com o cliente de vez em quando por meio de conversas.
Concentra-se nos requisitos do cliente (exemplos) ao longo do desenvolvimento.
Usa exemplos como testes de aceitação.
Práticas BDD
As duas principais práticas de BDD são -
Especificação por Exemplo (SbE)
Desenvolvimento Orientado a Testes (TDD)
Especificação por Exemplo
A Especificação por Exemplo (SbE) usa exemplos em conversas para ilustrar as regras de negócios e o comportamento do software a ser construído.
A Especificação por Exemplo permite que os proprietários do produto, analistas de negócios, testadores e desenvolvedores eliminem mal-entendidos comuns sobre os requisitos de negócios.
Desenvolvimento Orientado a Testes
O Test Driven Development, no contexto do BDD, transforma exemplos em especificações executáveis legíveis por humanos.
Os desenvolvedores usam essas especificações como um guia para implementar incrementos de novas funcionalidades. Isso resulta em uma base de código enxuta e um conjunto de testes de regressão automatizados que mantêm os custos de manutenção baixos durante a vida útil do software.
Agile BDD
No desenvolvimento de software Agile, o método BDD é usado para chegar a um entendimento comum sobre as especificações pendentes.
As etapas a seguir são executadas no Agile BDD -
Os desenvolvedores e o product owner colaborativamente escrevem especificações pendentes em um editor de texto simples.
O proprietário do produto especifica os comportamentos que espera do sistema.
Os desenvolvedores
Preencha as especificações com esses detalhes de comportamento.
Faça perguntas com base em sua compreensão do sistema.
Os comportamentos atuais do sistema são considerados para verificar se o novo recurso interromperá algum dos recursos existentes.
Manifesto Ágil e BDD
O Manifesto Ágil afirma o seguinte -
Estamos descobrindo melhores maneiras de desenvolver software, fazendo isso e ajudando outros a fazê-lo. Por meio deste trabalho, chegamos a valorizar -
Individuals and interactions - sobre processos e ferramentas
Working software - sobre documentação abrangente
Customer collaboration - sobre negociação de contrato
Responding to change - acabou Seguindo um plano
Ou seja, embora haja valor nos itens da direita, valorizamos mais os itens da esquerda.
O BDD se alinha ao manifesto Agile da seguinte forma -
Manifesto Ágil | Alinhamento BDD |
---|---|
Indivíduos e interações sobre processos e ferramentas. | BDD é ter conversas. |
software que trabalha sobre uma documentação completa. | O BDD se concentra em facilitar a criação de software com valor comercial. |
Colaboração com o cliente na negociação do contrato. | O BDD foca em cenários baseados em ideias com comunicação contínua com o cliente conforme o desenvolvimento avança. Não é baseado em nenhuma promessa. |
Respondendo à mudança seguindo um plano. | O BDD se concentra na comunicação e colaboração contínuas que facilitam a absorção de mudanças. |