BDD for the non-Developer
with Mark Dewey
Core Instructor
Suncoast Developers Guild
Hello!
BDD
Behavior Driven Development
Non Techincal
- Business Analysis
- Stakeholders
- Project Managers
- Product Owners
Technical
- Developers
- QA Team
- Designers
- DevOps
- Project Managers
In software engineering, behavior-driven development (BDD) is a software development process that emerged from test-driven development (TDD).
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 development and management teams with shared tools and a shared process to collaborate on software development.
In software engineering, behavior-driven development (BDD) is a software development process that emerged from test-driven development (TDD).
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 development and management teams with shared tools and a shared process to collaborate on software development.
In software engineering, behavior-driven development (BDD) is a software development process that emerged from test-driven development (TDD).
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 development and management teams with shared tools and a shared process to collaborate on software development.
In software engineering, behavior-driven development (BDD) is a software development process that emerged from test-driven development (TDD).
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 development and management teams with shared tools and a shared process to collaborate on software development.
Test Driven Developement
// In my code somewhere
function DoSomethingCool(){
// does something cool
}
// In my tests:
Assert( ExpectedResult, DoSomethingCool() )
What does this look like?
In software engineering, behavior-driven development (BDD) is a software development process that emerged from test-driven development (TDD).
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 development and management teams with shared tools and a shared process to collaborate on software development.
In software engineering, behavior-driven development (BDD) is a software development process that emerged from test-driven development (TDD).
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 development and management teams with shared tools and a shared process to collaborate on software development.
In software engineering, behavior-driven development (BDD) is a software development process that emerged from test-driven development (TDD).
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 development and management teams with shared tools and a shared process to collaborate on software development.
In software engineering, behavior-driven development (BDD) is a software development process that emerged from test-driven development (TDD).
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 development and management teams with shared tools and a shared process to collaborate on software development.
In software engineering, behavior-driven development (BDD) is a software development process that emerged from test-driven development (TDD).
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 development and management teams with shared tools and a shared process to collaborate on software development.
Sounds Good.
What does this look like in practice?
User Stories.
(Scenarios, Use Cases, or Specification by Example)
Narrative
&
Scenarios
As a _____,
I want to do _____,
because ______
Actor
Reason
Action
Narrative
Actor
Action
Result
Scenarios
- Acceptance Criteria
- Implementation Details
- Edge Cases
Given [context]
And [some more context]...
When [event]
Then [outcome]
And [another outcome]...
Given user uploads picture
When the file is too big
Then display a friendly error message
And let the user try again
How we feeling?
So why all this?
Software is hard, but working on teams to create new solutions is harder.
This idea gives non-technical folks a way to describe what they want to technical people.
As the project grows, a specific language starts to emerge that can validated with TDD
How does this relate to agile?
When does this fall apart?
practice makes perfect.
Group Work!
Gathering in groups, choose an idea for piece of software, create a user story or two, and some scenarios.
Ideas:
- Music Suggestion App
- Financial Management App
- Pet Adoption Finder
- New IoT Solution
- .... you own idea?
Sharing is caring!
So now what?
Thanks for listening,
Any Questions?
mark@suncoast.io @juggler2009
Wanna learn to code? Check out suncoast.io and see how far you get in 12 weeks.
BDD for non-developers
By Mark Dewey
BDD for non-developers
- 291