BDD - Collaboration for Continuous Delivery

Preview:

Citation preview

BDD – Collaboration &

Hands-on practices

Kostas Mamalis

Principal Engineer – MagenTys

“The most important problem that we face as software professionals is this: If somebody thinks of a good idea,

how do we deliver it to users as quickly as possible?”

- “Continuous Delivery” book

➜ Because we have to deliver

‘software that matters’ – Agile

Manifesto

➜Because BDD “describes a

cycle of interactions with well-

defined outputs, resulting in

the delivery of working, tested

software that matters”.

Why do we need to focus on software

behaviour

➜ Ubiquitous Language or DSL

➜ Focus on business value

➜ Living Documentation

➜ Specifying By Example

How does BDD come to the picture?

In order to _________ As a __________ I want ___________

“Here’s the water you’ve asked for, sir!”

The Power of the 3 voices

The Voice of

the Solution

The Voice of

Quality

The Client’s

Voice

It’s all about:…

And Scenarios of course!

Who writes the Scenarios and When?

A few tips & ideas

Definition of Ready & Definition of Done

- Definition of Ready

- Definition of Done

- 2 parallel boards

Acceptance Criteria & Example Mapping

- Acceptance Criteria – how are they related to

Scenarios?

- Example Mapping

- How about Non Functional Requirements/Criteria?

- Automation is not always the outcome of a

Specification session

- Team Rotation?

Roles

- Do we need Developers in Test?

- We are all developers

- Testers you are still needed!!!

• What happens when business are

not as involved into your processes?

• Product Owner/Business Analysts

are a catalyst to the BDD process

• Unit & Integration Tests, then

Acceptance

Business Involvement + Test-First Maturity

Test Pyramid (no Ice-Cream cones please!)

- BDD describes behaviour

- BDD doesn’t need UI

- BDD doesn’t restrict on one layer of your

system

- You can do BDD with xUnit frameworks

- Unit + Service tests with Test Doubles

- Drive majority of tests from API

- How about SPAs?

I’m a full-stack developer, can I do BDD?

“Given, Given, And, Then, When, Then…”

How about Fluent APIs then?

What if Gherkin language gets in the way?

MISSION PATTERN

A pattern for Fluent

APIs:

http://magentys.io/blogsPlace your screenshot here

https://dzone.com/articles/mission-pattern-a-means-to-modularise-automation-c

http://cherryframe.work

BDD Dashboard

MagenTys toolset for Less boilerplate code, More meaningful reporting

- Collaboration, Collaboration, Collaboration

- Drive your tests using Specifications, don’t

automate after

- Use Cucumber/Jbehave etc. when it’s

meaningful for your project.

- Fluent APIs can help you apply BDD

- It’s all about continuous quality-focused

delivery of software that matters

The message is…

Thanks!You can find me at:

@mamalisk

http://kostasmamalis.com

http://magentys.io/blogs/

Recommended