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.