ݺߣ

ݺߣShare a Scribd company logo
Behavior Driven Development
Tomado de Code Magazine y Wikipedia 
 
Behavior­driven development combines the general techniques and principles of TDD with ideas 
from domain­driven design and object­oriented analysis and design to provide software 
developers and business analysts with shared tools and a shared process to collaborate on 
software development, with the aim of delivering "software that matters" 
 
Test­driven development focuses on the developer’s opinion on how parts of the software 
should work. Behavior­driven development focuses on the users’ opinion on how they want 
your application to behave. ­ Codeship 
 
User Stories
User stories are the central axis around which a software project rotates. Developers use user 
stories to capture requirements and to express customer expectations. User stories provide the 
unit of effort that project management uses to plan and to track progress. Estimations are made 
against user stories, and user stories are where software design begins. User stories help to 
shape a system’s usability and user experience. 
 
User stories express requirements in terms of The Role, The Goal, and The Motivation. 
A user story isn’t concerned with a named user, like “Bob Smith” or “Anne Wilson.” User stories 
are concerned with a user role, for example: a customer, or a salesman, or a call center 
operator. 
 
User stories describe what that user wants to do from the perspective of an interaction with a 
business process, like purchasing, or ordering, or paying a bill. A user story describes the user’s 
goal in terms of needing to get something done with the business, rather than in terms of using 
the system itself. 
 
A user story also captures the user’s motivation for wanting to accomplish the goal. The 
motivation captures some of the back­story and the context for the user’s interaction with the 
business. 
 
Example User Story
 
As a <role> I want to <goal> so that <motivation> 
 
As an account holder, I want to transfer funds 
between two of my accounts 
Documento creado por Francisco Quintero 
 
Although the reasons for doing a funds transfer seem self­evident, suppose that you discussed 
this with the user a few times to try and surface the motivation. Often, it’s these aspects of a 
story that seem so self evident that are ultimately not so evident at all when you try to express 
them. 
 
As an account holder, I want to transfer funds 
between two of my accounts so that I can maximize 
the performance of my savings and avoid any fees 
associated with overdrafts and minimum balance rules. 
 
The differentiation of roles gives you a mental framework for considering a user’s particular 
needs and assess whether his role and his particular motivation might require you to write 
specific code to address any unique needs. 
 
Enlaces
 
Web oficial de Cucumber: http://cukes.info/ 
Gherkin DSL: https://github.com/cucumber/cucumber/wiki/Gherkin 
Introducing BDD: http://dannorth.net/introducing­bdd/ 
Say hello to BDD: 
http://www.codeproject.com/Articles/148043/Say­Hello­To­Behavior­Driven­Development­BDD­
Part 
Say Hello to BDD part 2: 
http://www.codeproject.com/Articles/150740/Say­Hello­To­Behavior­Driven­Development­BDD­
Part 
Jasmine JS BDD Framework: https://github.com/pivotal/jasmine 
Documento creado por Francisco Quintero 

More Related Content

Resumen y explicación de Behavior Driven Development