This is a re-telling of an experience in which we started from just getting the code under test, and over many months gradually improved those tests to the point where they became so clear and expressive that they were usable as a stakeholder documentation.
Tests provide much more than simple regression. Test scenarios tell a story of what your code does and how it's used. Unfortunately, most unit tests obscure this in setup, mocks, and cryptic asserts.
Great programmers listen to their code. There's so many ways to make tests tell better stories. Each time we pay attention to something that annoys us, we have an opportunity to not only improve the tests and the code — each time we see further, so that new issues and insights are allowed to surface with each iteration, cumulatively building on previous improvements.
Driven by a love of learning and technical excellence, Lada's at home with extreme programming, test-driven development, and domain-driven design. She has a way of unravelling accidental complexity, turning large tangled codebases into something you can actually work with – making it possible to finally add that feature everyone's been waiting for.She believes that positive change happens through ...

Llewellyn Falco is an independent agile coach. He discovered strong-style pair programming. He is the creator of the open-source testing tool ApprovalTests( www.approvaltests.com ). He spends most of his time programming in Java and C# specializing in improving legacy code. He is the co-founder of TeachingKidsProgramming.org and co-author of Mob Programming Guidebook...