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

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).

Access now (20% discount)

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.