TDD in Legacy Code Outline
You’re stuck in Legacy Code. It’s a Big Ball of Mud, there are no tests. In the book Working Effectively with Legacy Code, Michael Feathers defined Legacy Code:
“To me, legacy code is simply code without tests.” - Michael Feathers
Legacy Code is a nightmare to maintain. Escape this by introducing TDD. That’s why I created this series to help you introduce TDD in Legacy Code step-by-step so you’ll finally be able to practice TDD Cycles. Here’s the transformation process:
Phase 1. TDD in Legacy Code - Pipeline
Part 3 - E2E Test Stage (coming up next Thursday - Oct 10th)
Part 4 - Acceptance Test Stage
Phase 2. TDD in Legacy Code - System Level
Part 5 - E2E Tests
Part 6 - Acceptance Tests
Part 7 - External System Contract Tests
Part 8 - Acceptance Test Driven Development (ATDD)
Phase 3. TDD in Legacy Code - Component Level
Part 9 - Component Tests
Part 10 - Contract Tests
Part 11 - Test Driven Development (TDD)
Phase 4. TDD in Legacy Code - Unit Level
Part 12 - Hexagonal Architecture
Part 13 - Unit Testing
Part 14 - Narrow Integration Testing
Part 15 - Test Driven Development (TDD)
Part 16 - Code Coverage & Mutation Testing
Part 17 - Static Code Analysis
Disclaimer: The series outline above is a rough draft. As I write the articles, I may update the outline (and may take into account reader feedback and questions).
Learn in practice
This Series will provide you with rough guidance. However, as you try to apply it to your project, you may face additional challenges due to real-life complexities.
As a Premium Subscriber, I’ll be your mentor. As you read the series and try some steps, as you face roadblocks or challenges, you can ask me any questions by commenting on the article. Comments are only available to Premium Subscribers.