Legacy Code Retreat with test data builders and the mikado method
“Remember to add tests before you fix any bugs!” That’s very nice in theory, but a lot more tricky in practice.
We know we need to add tests, but it’s easier said than done. In legacy codebases, just setting up the objects for the test is most often an unjustifiable nightmarish 2 weeks of work. Mocks are a common workaround, but mocking legacy codebases usually makes them more difficult to change, not less!
In this hands-on pair programming code retreat, you will combine the mikado method with test data builders to build a baby-step plan to add your first test to an open-source legacy codebase. We'll draw a graph of nested test data builders so that we can instantiate test data, without mocks.
In more details:
* Test Data Builders simplify and factorize test data initialization
* The Mikado Method is a technique to split a large refactoring in a graph of baby-steps
* These baby steps remain deployable at any time and don’t block other development
* When we combine these 2 techniques together, we get an incremental plan to create test data builders
* At every step, test data is easier to initialize, the overall testability improves, helping everyone to add more tests
* Driven by usage, critical code parts naturally get testable first
* By making reuse and extend the easiest option, these techniques snowball
* Relying on a visual mikado graph, these techniques are collaborative by design
During the session, every pair will choose to experiment with test data builders, the mikado method, or both, thanks to self-service guides. By the end, we will all compare the different techniques to identify the best ways to apply them.
After this session, you will be able to inject these contagious testing techniques into your team!
This is a 2 to 3 hours hands-on, mob programming workshop. It's intended for developers, who should join with their laptops. It was first delivered at DDD Europe 2021.
A shorter "live-coding" version of the session was later delivered at CPPP 2021 and at Meetups.
Agile & Craft coach, solving technical challenges with people collaboration
Paris, FranceView Speaker Profile