Version almost final

lecture: The Pyramid is a Lie!


So you decided that automated testing is awesome and you plan to do it all the time. Every new feature gets a mix of UI-level tests and unit-level tests, since following the "test pyramid" approach is the best way to avoid this whole discussion about how "Integration Tests Are a Scam" and "Unit Testing is Dead".
You even start to write the tests first but after a couple of weeks things get weird. Suddenly you find yourself spending way too much of time on maintaining the test suite. The burden of tests of any level seem to grow disproportionally and you start wondering if automated testing might just not work for you.
But don't fret! And let me show you how to combine the best of BDD, TDD and even DDD to supercharge your test suite by combining the advantages of different testing levels while mitigating their weaknesses. And why the test pyramid is a lie.