tdd at scale - mash badar (ubs)

33
TDD at Scale Mashooq Badar @mashooq

Upload: jaxlondonconference

Post on 12-May-2015

394 views

Category:

Technology


0 download

DESCRIPTION

Presented at JAX London 2013 Test Driven Development is a practice generally endorsed by most people. However it is also one of the most difficult to get right. I am part of a very large project where we decided to use TDD from the very start. We encountered a number of challenges and learned a lot of lessons. We are still learning and evolving our approach to TDD. We discovered that doing TDD badly is actually worse than not doing TDD at all and that it is very important to get some basics rights otherwise you'll put yourself in a world of pain.

TRANSCRIPT

Page 1: TDD at scale - Mash Badar (UBS)

TDD at Scale

Mashooq Badar@mashooq

Page 2: TDD at scale - Mash Badar (UBS)

TDD is Cool?

Page 3: TDD at scale - Mash Badar (UBS)

A Clean Slate

… it’ll be rude not to!

Page 4: TDD at scale - Mash Badar (UBS)

SYSTEM

INTEGRATION

COMPONENTUNIT

A Clean Slate: The Testing Triangle

Page 5: TDD at scale - Mash Badar (UBS)

A Clean Slate: BDD

plain text specs means we can’t get too technical!

Page 6: TDD at scale - Mash Badar (UBS)

And then we grew

… 6 teams of 7 each in two countries.

Page 7: TDD at scale - Mash Badar (UBS)

It was all going so well

… until the codebase grew.

Page 8: TDD at scale - Mash Badar (UBS)

But we were doing TDD?

Page 9: TDD at scale - Mash Badar (UBS)

Or did we?

Lets dig in …

Page 10: TDD at scale - Mash Badar (UBS)

Extremely complicated Component Tests

Page 11: TDD at scale - Mash Badar (UBS)

Aggregates that maintain their integrity

… possibly use a DDD approach

Page 12: TDD at scale - Mash Badar (UBS)
Page 13: TDD at scale - Mash Badar (UBS)

A complicated set of test of fixtures

… and the god of all tests

Page 14: TDD at scale - Mash Badar (UBS)

A DSL for your tests

Page 15: TDD at scale - Mash Badar (UBS)

Slow Builds

Page 16: TDD at scale - Mash Badar (UBS)

Little Overlap & Parallel Executions

Page 17: TDD at scale - Mash Badar (UBS)

http://www.datamation.com/news/tech-comics-dont-worry-its-just-a-geek-2.html

Page 18: TDD at scale - Mash Badar (UBS)

Anemic System Tests

Page 19: TDD at scale - Mash Badar (UBS)

Well defined level for system tests.

Page 20: TDD at scale - Mash Badar (UBS)

Inflexible code

Page 21: TDD at scale - Mash Badar (UBS)

Automated tests are Software

If you write shit software you’ll write shit tests.

Page 22: TDD at scale - Mash Badar (UBS)
Page 23: TDD at scale - Mash Badar (UBS)

Defects in production

Page 24: TDD at scale - Mash Badar (UBS)

http://lisacrispin.com/2011/11/08/using-the-agile-testing-quadrants/

Page 25: TDD at scale - Mash Badar (UBS)

Look at testing holistically

Page 26: TDD at scale - Mash Badar (UBS)

The right balance of checking and testing

Page 27: TDD at scale - Mash Badar (UBS)

Moral of the Story

Page 28: TDD at scale - Mash Badar (UBS)

TDD is difficult

Page 29: TDD at scale - Mash Badar (UBS)

… that doesn’t mean we can’t do TDD!

Page 30: TDD at scale - Mash Badar (UBS)

We write good Software:

Hence we do TDD.

Page 31: TDD at scale - Mash Badar (UBS)

Keep the objective in mind

TDD supports the team!

Page 32: TDD at scale - Mash Badar (UBS)

Holistic approach to testing

Page 33: TDD at scale - Mash Badar (UBS)

Thanks for listening.

Mashooq Badar@mashooq