Pergunta

Depois de ter escrito uma pequeno artigo em BDD, eu tenho perguntas de pessoas perguntando se existem casos de uso em larga escala de BDD (e especificamente NBehave).

Então, minha pergunta vai para a comunidade: você tem um projeto que utilizado BDD com sucesso? Se assim for, quais os benefícios que você conseguiu, e que poderia ter sido melhor? Você faria BDD novo? Você recomendaria a outras pessoas?

Foi útil?

Solução

Nós usamos um pouco de BDD no nível de código em diferentes cenários (open source e projetos ND).

  1. Contar a vista no cenário MVC, que tipo de entrada para aceitar de usuário ( DDD e regra impulsionado UI validação em .NET )

    result = view.GetData(
      CustomerIs.Valid, 
      CustomerIs.From(AddressIs.Valid, AddressIs.In(Country.Russia)));
    
  2. Contar a camada de serviço, sobre o comportamento manipulação de exceção ( ActionPolicy é injectado nos decoradores):

    var policy = ActionPolicy
      .Handle<WebException>()
      .Retry(3);
    

Usando estas abordagens tem imensamente reduzida duplicação de código, feito a base de código mais estável e flexível. Além disso, ele fez tudo mais simples, devido ao encapsulamento lógico de detalhes complexos.

Outras dicas

Eu estava em uma pequena equipe que utilizado BDD em um site.

A forma que usamos era essencialmente TDD, mas os testes são simplesmente escrito como comportamentos usando uma conexão DSL. Nós não entrar em grandes concepção inicial de comportamentos, mas fizemos criar um grande número deles, e os usou exatamente como faria testes.

Como você poderia esperar, ele trabalhou tanto como TDD, geralmente bom. Fraseado os testes como comportamentos era bom quando interagindo com os clientes e feito para um documento bastante decente, mas eu tipo de desejo os comportamentos foram escritos em Inglês e os testes programados em vez de tentar chegar a alguma linguagem intermediária difícil que não faz caber qualquer propósito perfeitamente.

Ainda seria BDD, só que sem este truque bonito de tentar torcer a língua para uma língua delineada por um random_looking.set of_Punctuation rather_than simple.spaces, mas que foi apenas a minha atitude mal-humorada-old-programador, todos os outros estavam 100% feliz com isso.

O site está disponível e totalmente operacional, então eu diria que é um sucesso: Veja

Recentemente eu o usei o estilo BDD do GWT em um documento de requisitos de alto nível. Eu não recebi qualquer feedback sobre o GWT do cliente comprar o meu chefe disse que ele gostava, foi muito clara e fácil de entender. Nota que ele não tem conhecimento de BDD que eu saiba. Eu não colocar em histórias de usuários, pois isso provavelmente teria sido um pouco arejados de fadas para as pessoas com um fundo tradicional cascata. Talvez eu vou tentar colocar em histórias de usuários da próxima vez.

Pela forma como este não era um projeto UI globo ocular. Foi um projeto de integração de sincronizar dados de um serviço web em um banco de dados. Então, isso mostra que GWT funciona mesmo para UIs não "bola do olho".

Estou usando o estilo Contexto-Especificação em vários projetos (usando MSpec) com grande sucesso. Eu ainda estou tentando entender os benefícios reais do estilo Cenário. Quanto mais eu uso o estilo de contexto-especificação, mais eu gosto, e os mais apertados minhas aplicações sentir.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top