O que é Desenvolvimento Orientado a Comportamento (BDD)?



Pontos Principais

  • O desenvolvimento orientado por comportamento (BDD) é um processo de desenvolvimento que prioriza a colaboração entre equipes técnicas e não técnicas.
  • Usando BDD, os casos de teste são escritos em linguagem natural e levam em consideração seus objetivos de negócios e a funcionalidade do usuário. O LoadView pode ser uma ferramenta útil no kit de desenvolvimento BDD porque oferece uma plataforma acessível com relatórios que usuários técnicos e não técnicos podem entender rapidamente.

Os desenvolvedores são parte integral para lançar um site, aplicativo ou API, mas não são os únicos envolvidos. Todos, desde gerentes de produto até analistas de negócios, têm interesse em desenvolver e manter uma presença web forte. Diferentes equipes têm diferentes pontos fortes, conhecimentos e conjuntos de habilidades. Um associado de marketing pode não estar tão familiarizado com desenvolvimento quanto um engenheiro de software, então como garantir que todos os membros do time estejam alinhados? É aí que o desenvolvimento orientado por comportamento entra.

O desenvolvimento orientado por comportamento (BDD) é um processo de desenvolvimento que prioriza a colaboração entre equipes para ajudá-lo a construir um site, aplicativo ou API de uma forma que atenda a todos os envolvidos. Ao implementar um processo BDD, uma equipe consegue formar uma linguagem consistente e acessível que pode ser entendida tanto por programadores quanto por não programadores. Os casos de teste são escritos em linguagem natural e levam em consideração seus objetivos de negócio, funcionalidade do usuário e resultados esperados.

Nós do LoadView estamos investidos em ajudar seu negócio a prosperar em todos os departamentos, então vamos aprender um pouco mais sobre BDD e ver como o BDD pode ajudar sua equipe a trabalhar junta.

behavior driven development

Uma Breve História do BDD

Em 2006, o desenvolvedor de software Dan North percebeu que havia lacunas na comunicação entre os departamentos da empresa onde trabalhava. Parecia que equipes menos técnicas, como gerentes de produto e marketing, estavam sendo deixadas no escuro sobre desenvolvimentos-chave, e os desenvolvedores de software estavam alheios às principais preocupações dos usuários ao navegar em seu site.

De tais lacunas, North conseguiu desenvolver um novo sistema. Ramificando-se do desenvolvimento orientado por testes (TDD), o BDD foca no comportamento humano real, inglês simples e um modelo lógico claro. Esse processo considera preocupações de negócio, assim como demandas técnicas. Pegou modelos antes complexos e os traduziu em uma nova linguagem específica de domínio (DSL) que chegava o mais próximo possível do inglês simples e conversacional.

Essa DSL virou o fator definidor do BDD, o modelo given/when/then.

O Modelo Given/When/Then

No modelo given/when/then, cada parte define uma etapa de uma transação ou interação online.

  • Given: Refere-se à condição inicial antes que a interface seja usada pelo usuário.
  • When: Refere-se à ação executada pelo usuário que inicia a interação. Um clique, transação ou palavra-chave digitada em uma barra de pesquisa são exemplos de ações “when”.
  • Then: Refere-se ao resultado esperado após a ação ocorrer.

Aqui está um exemplo de um cenário given/when/then:

  • Dado que a Conta 1 tem $0 e a Conta 2 tem $100
  • Quando a Conta 2 transfere $50 para a Conta 1
  • Então a Conta 1 tem $50 e a Conta 2 tem $50

Esse modelo em inglês simples torna as situações de programação mais fáceis de compartilhar entre departamentos. A DSL pode ser entendida por qualquer pessoa, seja ela desenvolvedora ou não. Ao executar testes funcionais e não funcionais, usar um modelo given/when/then ajuda a reduzir lacunas na comunicação.

Essa é a função essencial do BDD: usar inglês simples para desenvolver uma DSL entendida por todos. Existem muitos benefícios em usar BDD para desenvolver seu site, aplicativo ou API, e desenvolver uma DSL é apenas um deles.

Vantagens de Desenvolver com BDD

BDD oferece grandes vantagens se você está trabalhando com uma equipe diversificada. Seu foco na funcionalidade, comunicação clara e experiência do usuário faz dele um processo útil para negócios online e serviços digitais com stakeholders não técnicos. BDD é:

  • Efetivo: Ter uma funcionalidade claramente definida e linguagem acordada por todos os envolvidos é um benefício chave do BDD. Com todos alinhados, o desenvolvimento sob os ângulos de negócio e técnico pode tomar forma de maneira oportuna. Com todas as equipes trabalhando juntas, há menos necessidade de retrabalhar elementos não funcionais.
  • Custo-efetivo: BDD não é só bom para os valores do seu negócio, ele também pode ajudar a reduzir desperdícios no processo de desenvolvimento. Linguagem bem definida torna mais fácil criar e validar casos de teste. Esses casos podem ser automatizados com uma compreensão clara do que se espera e quando. Automatizar esses testes pode ajudar a reduzir o custo dos testes de aplicação.
  • Alta qualidade: Com a ajuda de equipes não relacionadas ao desenvolvimento, designers e programadores recebem feedback sobre a experiência do usuário mais cedo no processo. Isso incentiva as equipes a pensar e desenvolver do ponto de vista do usuário. Desenvolver do ponto de vista do usuário também ajuda os desenvolvedores a escrever código estável, escalável e testável. Isso ajuda a prevenir problemas para o usuário antes que eles ocorram.

Desvantagens de Desenvolver com BDD

Embora o BDD possa ser um processo ótimo em certas situações, ele não é universal. O BDD foi criado para resolver problemas e fechar lacunas na abordagem TDD. Se os programadores são menos experientes, não estão familiarizados com o processo TDD, ou estão fortemente ligados a ferramentas e linguagens específicas, o BDD pode exigir esforço adicional para ser implementado efetivamente.

O BDD depende de boa comunicação. Isso significa ter uma equipe de desenvolvedores dedicados, proprietários de produto, times de QA e stakeholders de negócios que se comuniquem efetivamente com clientes, usuários e representantes de outras equipes. Isso pode criar uma sobrecarga adicional se a equipe não tiver um processo claro estabelecido.

Ferramentas Populares de BDD

O BDD provou ser popular na comunidade de desenvolvedores. Muitas equipes adoptaram a abordagem BDD e usam uma variedade de ferramentas para suportá-la. Aqui estão algumas ferramentas populares de BDD.

  • Cucumber: Cucumber é uma plataforma open-source popular para colaboração em BDD. Ajuda equipes a construir funcionalidades em texto simples e oferece coesão usando uma DSL fácil de compartilhar com toda a equipe. Implementa sintaxe Gherkin.
  • Lettuce: Lettuce é construído sobre o Cucumber e funciona bem para aplicações baseadas em Python.
  • SpecFlow: SpecFlow é outra plataforma BDD open-source que usa sintaxe Gherkin. É construída para a plataforma .NET.

Desenvolvimento Orientado por Comportamento com LoadView

BDD é um processo, e testes de performance podem ser uma parte importante desse processo. À medida que equipes conectam fluxos de trabalho BDD com pipelines CI/CD e testes automatizados, as expectativas de performance também podem ser definidas mais cedo no ciclo de desenvolvimento. Por exemplo, equipes podem criar expectativas compartilhadas sobre velocidade de login, confiabilidade de checkout, tempos de resposta de API, ou como um aplicativo deve se comportar sob carga de usuário esperada.

O LoadView executa testes de performance que simulam o comportamento real do usuário com scripts simples para que você possa apoiar seu processo BDD com dados de performance realistas. Poder testar como seu site desempenha sob várias cargas de usuários, localizações de usuários e níveis de estresse pode ajudar todos os departamentos envolvidos no desenvolvimento orientado por comportamento a entender se a aplicação está atendendo tanto às expectativas técnicas quanto às de negócio.

O LoadView é uma plataforma acessível que não requer conhecimento prévio de codificação, tornando-o uma escolha excelente para uma equipe que trabalha em múltiplos departamentos técnicos e não técnicos. O LoadView foi desenvolvido para testar:

  • Páginas web
  • Apps móveis nativos
  • APIs

behavior driven development

Experimente o LoadView Hoje

BDD é projetado para centrar os valores do negócio durante o processo de desenvolvimento enquanto mantém o resultado final para o usuário em mente. O LoadView pode ajudar você a adicionar testes de performance a esse processo com testes e relatórios que são mais fáceis de entender tanto para equipes técnicas quanto não técnicas. Experimente o LoadView gratuitamente ou agende uma demonstração hoje para ver como você pode implementar testes de performance no processo BDD da sua empresa.

Leve Seus Testes de Carga para o
Próximo Nível

Experimente recursos incomparáveis com escalabilidade ilimitada. Sem cartão de crédito, sem contrato.