Behaviour Driven Development
-
Upload
milfont-consulting -
Category
Technology
-
view
12 -
download
0
description
Transcript of Behaviour Driven Development
Behaviour Driven Development [BDD]
Desenvolvimento guiado a comportamento
Christiano MilfontXPCE 2009, FortalezaCopyleft 2009 Milfont.org
Use Case Um caso de uso captura um contrato entre os interessados de um sistema sobre seus comportamentos.
Writing Effective Use Cases
Alistair Cockburn
User Story Uma estoria descreve funcionalmente o que será valioso para os usuários e aos compradores de um software.
User Stories Applied
Mike Cohn
Behaviour Driven Development
User Story
• Card [cartão]• Conversation [conversação]• Confirmation [confirmação]
“Ron Jeffries, 2001”
Behaviour Driven Development
User Story• Independente• Negociável• Valioso ao comprador• Estimável• Small [Pequena]• Testável
User Stories Applied
Mike Cohn
Behaviour Driven Development
Story Card
Behaviour Driven Development
Story Card
Behaviour Driven Development
Story Card
Behaviour Driven Development
Behaviour Driven Development
Story Card• As a… • I want…• so that…
“BDD fornece uma linguagem ubíqua
para análise”Dan North
Behaviour Driven Development
Story Card• As a [X]• I want [Y]• so that [Z]Onde: Y é alguma funcionalidade ou característica, Z é o benefício ou valor dessa funcionalidade e X é a pessoa ou perfil/papel beneficiado
Behaviour Driven Development
Story Card• As a [role]• I want to [activity]• To do [a task]
Behaviour Driven Development
Story Card• As a “membro do projeto”• I want “Criar uma issue”• so that “Eu possa acompanhar a resolução”
• As a “gerente do projeto”• I want “aceitar a entrada de uma issue”• so that “seja descartada ou resolvida apenas
com minha permissão”
Behaviour Driven Development
Acceptance CriteriaGiven [dado]When [quando]Then [então]
Behaviour Driven Development
Acceptance CriteriaGiven uma issue preenchida e um projeto
informadoWhen um membro requisitar o cadastroThen garantir que ela seja armazenada no
sistema And uma mensagem seja informadaAnd a issue esteja na lista de não-confirmadas
Behaviour Driven Development
Acceptance CriteriaGiven uma issue preenchida
And um projeto informado And um membro autorizado
When um membro requisitar o cadastroThen garantir que ela seja armazenada no sistema
And uma mensagem seja informadaAnd a issue esteja na lista de "novas issues" a serem resolvidas
Behaviour Driven DevelopmentTitulo: Cadastrar IssuesAs a membro do projetoI want criar uma issueSo that eu possa acompanhar a resolução do mesmo.Cenário 1Given uma issue preenchida e um projeto informadoWhen um membro requisitar o cadastroThen garantir que ela seja armazenada no sistema
And uma mensagem seja informada And a issue esteja na lista de não-confirmadas
Cenário 2Given um nome e um tipo e um nivel e um sumario a um projetoWhen o membro requisitar o cadastroThen garantir que seja criada uma issue
And armazenada no sistema And uma mensagem seja informada And a issue esteja na lista de não-confirmadas
Behaviour Driven DevelopmentGiven um nome e um tipo e um nivel e um sumario a um projetoWhen o membro requisitar o cadastroThen garantir que seja criada uma issue
And armazenada no sistema And uma mensagem seja informada And a issue esteja na lista de não-confirmadas
@Given("a $name and a $type and a $level and a $summary and a $project")public void relatar(String name…) throws IllegalArgumentIssueException {
throw new IllegalArgumentIssueException("erro");}
Behaviour Driven DevelopmentGiven um nome e um tipo e um nivel e um sumario a um projetoWhen o membro requisitar o cadastroThen garantir que seja criada uma issue
And armazenada no sistema And uma mensagem seja informada And a issue esteja na lista de não-confirmadas
@Given("a $name and a $type and a $level and a $summary and a $project")public void relatar(String name…) throws IllegalArgumentIssueException {
Issue issue = member.createIssue(name).withType(type).withLevel(level).withSummary(summary).toProject(project);
ensureThat(issue.getStatus(), equalTo(Status.UNCONFIRMED));…
}
Behaviour Driven Development
Reference
http://groups.google.com.br/group/xpce