Se você pode derivar os cenários da descrição, está pronto.
Um antipadrão que muitas vezes vejo no BDD são as pessoas que sentem a necessidade de conversar e anotar todos os cenários em detalhes.
Alguns cenários são tão bem compreendidos que basta derivá-los de uma breve descrição. Por exemplo, se eu disser "Gostaria do recurso de login esta semana", você sabe como deve ser. Você sabe que existem cenários para a senha correta, a senha errada, o nome de usuário errado. Nós realmente não precisamos conversar sobre eles ou capturá-los em detalhes.
Da mesma forma, eu poderia dizer: "Aqui está o formulário para registro do usuário. Precisamos criar novos usuários, permitir que eles editem seus detalhes e se excluam, exceto que a exclusão não deve realmente ser excluída, deve apenas marcá-los como excluídos. para que eles possam recuperar suas contas, se quiserem ".
E você pode perguntar: "A recuperação da conta faz parte desse recurso?"
"Eles podem ser dois recursos, se você quiser."
"Ok, então temos cenários para criar, ler, atualizar, excluir; isso deve ser fácil o suficiente. Vamos falar sobre recuperação de conta; isso parece mais interessante."
Em geral, se a descrição do comportamento for suficiente para a equipe de desenvolvimento derivar os cenários, não será necessário conversar com eles. Você pode fazer isso se houver alguma dúvida, mas você pode apenas querer capturar quais cenários você precisa se lembrar, se você capturar algum.
Se você nunca fez isso antes ou não tem certeza, fale sobre os cenários.
Concentre-se nas áreas incomuns, principalmente se houver recursos que você nunca fez antes. Esses são lugares fantásticos para conversar e escrever exemplos surpreendentes que surgirem. Normalmente, tenho duas perguntas, com base no modelo do BDD:
Dado um contexto
Quando um evento acontece,
um resultado deve ocorrer.
- Existe algum outro contexto que, para o mesmo evento, produza um resultado diferente?
- Existe algum outro resultado que também seja importante?
Se todo mundo na mesa estiver entediado, o recurso pelo qual você está conversando provavelmente será bem compreendido. Muitas vezes basta dizer: "Deveria funcionar como X , mas com Y ". Isso é o que Dan North chama de padrão Ginger Cake ; é como a receita do bolo de chocolate, mas com gengibre em vez de chocolate.
Mesmo que a parte interessada do negócio consiga derivar os cenários, é realmente importante que a equipe de desenvolvimento possa conversar com ele, entender e internalizar seu idioma. Essa linguagem é então transportada para o código, permitindo que eles tenham melhores conversas no futuro e ajudando os novatos no projeto a entender o que está acontecendo. Se os desenvolvedores não conseguirem falar o idioma, eles não o usarão .
Se o interessado ou o analista de negócios realmente não deseja gastar o tempo capturando coisas na sessão, prefiro que os desenvolvedores anotem os cenários em colaboração com os testadores, e depois solicitem que ele os revise. É mais provável que descubra mal-entendidos do que o contrário.
Às vezes, o BDD não funciona.
Outra possibilidade é que você encontre um cenário sobre o qual as partes interessadas do negócio não tenham certeza. "Oh, eu não tinha pensado nisso! Não tenho certeza." Em vez de tentar prender a empresa e puni-la com certeza, pode valer a pena abandonar o BDD neste momento e tentar algo simples para obter algum feedback e fornecer à empresa algo sobre o qual eles possam iterar. Mantenha a mudança fácil e escreva os cenários assim que entender melhor o que está acontecendo.
O BDD bem feito pode realmente ajudar a descobrir lugares de incerteza. Uma vez que cada pena projeto fazendo tem algum aspecto do que há de novo e nunca foi feito antes, não é alguma incerteza lá, em algum lugar. Se você se concentrar em usar os cenários para ajudar a descobrir deliberadamente a ignorância , aprenderá mais rapidamente, e o aprendizado geralmente é uma grande parte do tempo gasto em um projeto.
Além disso, descobri que quanto mais as equipes de desenvolvimento colaboram dessa maneira, mais os negócios estão preparados para confiar nelas com incerteza e mais inovação começa a ocorrer. As empresas inovadoras, por sua própria natureza, têm muita incerteza em seus projetos.
Escrevi um post no Cynefin há algum tempo , o que acho realmente me ajuda a entender onde as conversas serão mais eficazes. Se você ler e entender os quatro domínios, aqui estão as regras que eu uso:
Coisas simples e complicadas (conhecidas) geralmente são bem compreendidas e você não precisa falar detalhadamente dos cenários.
Coisas altamente complexas (desconhecidas) não são compreendidas. Você pode descobrir isso falando dos cenários. A falta de certeza significa que o BDD não funcionará aqui, por isso repita algo fácil de mudar e obtenha feedback rápido. Qualquer prática que mantenha suas opções, como o teste AB, também é excelente neste espaço.
O BDD trabalha brilhantemente no espaço intermediário (conhecível) como um mecanismo para transmitir o conhecimento e descobrir os outros dois espaços. Não é um martelo, e nem tudo é um prego. De fato, se você pode concentrar o tempo gasto conversando em algo, não se trata dos exemplos que pode encontrar; trata-se de encontrar os exemplos que você não pode .