Specification By Example - BluDotNet
-
Upload
rafaelmueller -
Category
Technology
-
view
249 -
download
5
description
Transcript of Specification By Example - BluDotNet
Acceptance Test-Driven Development (ATDD)
Behavior-Driven Development (BDD)
Specification by Example (SBE)
@rmueller
Software sem bugs não é suficiente, é preciso escrever o software certo.
Fracasso Comercial Sucesso
Lixo Pesadelo
Produto Certo
Construir sem defeitos
ATDD“The first rule of any technology used in a business is that automation applied to an
efficient operation will magnify the efficiency. The second is that automation applied to an
inefficient operation will magnify the inefficiency.”
Bill Gates
ATDD• Transformar user stories em testes
• TDD em um nível mais alto
BDD“a second-generation, outside-in, pull-based,
multiple-stakeholder, multiple-scale, high-automation, agile methodology”
Dan North, 2009
BDD• Maior foco no cliente
• Preocupação maior com entrega de valor
• Descoberta de novas informações
SBE• Foca nos exemplos• Busca a colaboração • Busca a descoberta • Não tem a carga de má interpretações• Fornece uma documentação viva• Amigável para não técnicos
Derivar escopo dos objetivos
Especifique em colaboração
Ilustre utilizando exemplos
Refine a especificação
Refine a especificação
• Precisa e testável
• Especificação não é script
• Auto explicativa
• Escrita na linguagem do domínio
Automatize
Automatize• Trate código de teste com muito
cuidado
• Automatize em diferentes níveis
• Investimento inicial alto
• Feedback imediato, documentação viva e testes de regressão
• Automatize sem alterar as especificações
Automatize
Valide com frequência
Construa uma documentação
SpecFlow• Framework open source BDD/ATDD
• Utilizar Gherkin como DSL para as especificações
• Utiliza ferramentas padrões do .net, como o VisualStudio e nUnit, msTest ou xUnit
• Iniciou desenvolvimento em 2009
• Já foi utilizado em vários projetos
Gherkin• Uma DSL para escrita de especificações no
estilo de estórias. Dado / Ao / Então• Nasceu na comunidade ruby• Permite automatização e execução da
especificação• Utiliza vocabulário próprio• Dado, E, Então, Cenário, Mas...
Pickles
DEMO
SpecFlow
Integração
Negócio
“SBE”• Usar SpecFlow para automatização de teste• Cliente?! Que cliente??• Usar como ferramenta de testes de integração• Ligar o turbo!• Especificar tudo
http://www.jamesshore.com/Blog/Five-Ways-to-Misuse-Fit.html
SBE!• Colaboração
• Exemplos bem escritos
• Automatização
• Documentação