Our experience with Behavior Driven Development in Python





3Pillar Global


Dan Claudiu Pop

Ramona Suciu

Our project...


  • Media streaming

  • 30M unique visitors/month

  • Linux, Python, Django, AWS

  • 99.98% uptime

Testers vs. Developers



...instead of strong collaboration

Quality - A Team Effort


Strong collaboration and shared understanding

are the keys to obtain...

What exactly is BDD?


  • An evolution in thinking behind TDD

  • Communication and collaboration

  • Different perspective on the system

  • Better engagement with our clients

  • ...and so much more

What do we want from BDD?


  • Confidence in our product's quality

  • Less rework

  • Better work alignment

  • Implementing changes efficiently

  • Living documentation

In the beginning...


The product management team...

...has an idea

Next


The same idea...


BACKLOG

The team gathers around


Product Management


Business Analyst

Business Analysts?!?


tech leads

developers

...and testers

The team takes the idea...


Various discussions emerge...


...and finally, a story appears

Challenges along the way...


  • Getting our clients on board

  • Using Gherkin language at its best

  • Striving towards Living Documentation

Gherkin example

DEMO



Where to now?


  • Permanent communication

  • Context driven approach

  • Testable code

  • Living Documentation

Test the right product, the right way!



TESTS THAT RUN > TEST PLANS THAT SIT ON A SHELF


The Pragmatic Bookshelf

Who are we?


You can find more about us and our activity at:

http://testerslab.herokuapp.com


Source code for the demo:

https://github.com/testers-lab/RTC-demo