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