26
BDD Collaboration & Hands-on practices Kostas Mamalis Principal Engineer MagenTys

BDD - Collaboration for Continuous Delivery

Embed Size (px)

Citation preview

Page 1: BDD - Collaboration for Continuous Delivery

BDD – Collaboration &

Hands-on practices

Kostas Mamalis

Principal Engineer – MagenTys

Page 2: BDD - Collaboration for Continuous Delivery

“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

Page 3: BDD - Collaboration for Continuous Delivery

➜ 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

Page 4: BDD - Collaboration for Continuous Delivery

➜ Ubiquitous Language or DSL

➜ Focus on business value

➜ Living Documentation

➜ Specifying By Example

How does BDD come to the picture?

Page 5: BDD - Collaboration for Continuous Delivery

In order to _________ As a __________ I want ___________

Page 6: BDD - Collaboration for Continuous Delivery

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

Page 7: BDD - Collaboration for Continuous Delivery
Page 8: BDD - Collaboration for Continuous Delivery
Page 9: BDD - Collaboration for Continuous Delivery

The Power of the 3 voices

The Voice of

the Solution

The Voice of

Quality

The Client’s

Voice

Page 10: BDD - Collaboration for Continuous Delivery

It’s all about:…

And Scenarios of course!

Page 11: BDD - Collaboration for Continuous Delivery

Who writes the Scenarios and When?

Page 12: BDD - Collaboration for Continuous Delivery
Page 13: BDD - Collaboration for Continuous Delivery

A few tips & ideas

Page 14: BDD - Collaboration for Continuous Delivery

Definition of Ready & Definition of Done

- Definition of Ready

- Definition of Done

- 2 parallel boards

Page 15: BDD - Collaboration for Continuous Delivery

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?

Page 16: BDD - Collaboration for Continuous Delivery

Roles

- Do we need Developers in Test?

- We are all developers

- Testers you are still needed!!!

Page 17: BDD - Collaboration for Continuous Delivery

• 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

Page 18: BDD - Collaboration for Continuous Delivery

Test Pyramid (no Ice-Cream cones please!)

Page 19: BDD - Collaboration for Continuous Delivery

- 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?

Page 20: BDD - Collaboration for Continuous Delivery

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

How about Fluent APIs then?

What if Gherkin language gets in the way?

Page 21: BDD - Collaboration for Continuous Delivery

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

Page 22: BDD - Collaboration for Continuous Delivery

http://cherryframe.work

Page 23: BDD - Collaboration for Continuous Delivery

BDD Dashboard

MagenTys toolset for Less boilerplate code, More meaningful reporting

Page 24: BDD - Collaboration for Continuous Delivery

- 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…

Page 25: BDD - Collaboration for Continuous Delivery

Thanks!You can find me at:

@mamalisk

http://kostasmamalis.com

http://magentys.io/blogs/

Page 26: BDD - Collaboration for Continuous Delivery