I provide a self-paced article-based course: Automated Testing & TDD in Legacy Code.
Stage 1: Pipeline Setup
✔ Outcome: Implementing Pipeline Architecture to support Automated Testing
Commit Stage
Acceptance Stage
Release Stage
Stage 1: System Level Testing
✔ Outcome: Automated Testing of User Stories & Bug Fixes, eliminating End User Bugs
E2E Testable & Acceptance Testable Architecture
Smoke Tests & E2E Tests
Acceptance Tests & External System Contract Tests
Acceptance Test Driven Development (ATDD)
Stage 2: Component Level Testing
✔ Outcome: Automated Testing of Frontend and Backend Microservices, eliminating inter-team bugs
Component Testable Architecture
Component Tests & Contract Tests
Component Test Driven Development (CTDD)
Stage 3: Unit Level Testing
✔ Outcome: Automated Testing of Business Logic, reducing business logic regression bugs, eliminating business logic regression bugs
Unit Testable Architecture - Hexagonal Architecture
Unit Tests & Narrow Integration Tests
Code Coverage & Mutation Coverage
Test Driven Development (TDD)
During the Course, developers will be building a Sandbox Project to learn skillsets.
Developers make a Sandbox Project (GitHub open source project)
Developers read the step-by-step articles in the Course, and implement the Homework Tasks on their Sandbox Project
Developers comment on the articles with their Sandbox Project link, so that I can provide feedback
Developers update their Sandbox Project based on my feedback
Developers can ask any questions via comments at any time (I generally respond to comments within 1-2 working days)
After the Course, developers will be translating the skillsets from their Sandbox Project to their Real Life Project. This should be done incrementally - to transform one part of the Real Life Project and then replicate it over time.
If there are any problems in applying a step in their Real Life Project, developers can write a comment on the corresponding article, so that I can provide advice
Developers may also choose to update their Real Life Project to simulate that specific issue, so that I can review their solution
If developers are stuck in shifting the mindset of others or get resistance in the Real Life Project, they can also ask me via comments