Ryan Latta
How To Test A Ball of Mud
#1about 2 minutes
Defining the 'ball of mud' software problem
A 'ball of mud' codebase is too complex to understand and its changes have unpredictable results, requiring a different approach like testing to solve.
#2about 7 minutes
Using system tests to verify infrastructure stability
Simple system tests running frequently in CI can confirm infrastructure is operational, which is a critical first step before tackling code correctness.
#3about 4 minutes
Rebuilding testing skills with incremental unit tests
Start by adding two unit tests per work item to gradually build the team's testing skills and integrate testing into the development process.
#4about 3 minutes
Redefining the 'unit' in a complex codebase
The 'unit' in a unit test for a ball of mud is the smallest testable group of code, which reveals the actual system design, not an idealized one.
#5about 3 minutes
Weighing the risks and benefits of mocking
Mocking can ease the pain of dependencies but risks creating a shadow implementation; isolating dependencies by design is a more robust alternative.
#6about 3 minutes
Dealing with legacy tests and test dependencies
Old, failing tests should be deleted, and new tests must be independent to avoid creating a debugging nightmare where test order affects outcomes.
#7about 4 minutes
Strategies for ensuring test independence and speed
Enforce test independence by running tests in a random order and optimize speed by decoupling code from frameworks, not just through parallelization.
#8about 3 minutes
Adding smoke tests for critical application use cases
Once infrastructure and unit tests are in place, add smoke tests for critical use cases to verify high-level application correctness.
#9about 11 minutes
Conclusion and Q&A on advanced testing topics
The talk concludes by summarizing the need for a different approach to legacy code, followed by a Q&A on singletons, snapshot testing, and parameterized tests.
Related jobs
Jobs that call for the skills explored in this talk.
Power Plus Communications
Mannheim, Germany
Intermediate
Senior
Python
Automated Testing
+1
Eltemate
Amsterdam, Netherlands
Intermediate
Senior
TypeScript
Continuous Integration
+1
Matching moments
03:16 MIN
Improving the developer feedback loop with specialized tools
Developer Time Is Valuable - Use the Right Tools - Kilian Valkhof
02:49 MIN
Using AI to overcome challenges in systems programming
AI in the Open and in Browsers - Tarek Ziadé
05:12 MIN
How to build structure and culture without killing agility
From Data Keeper to Culture Shaper: The Evolution of HR Across Growth Stages
09:00 MIN
Navigating the growing complexity of modern CSS
WeAreDevelopers LIVE – You Don’t Need JavaScript, Modern CSS and More
03:58 MIN
Making accessibility tooling actionable and encouraging
Developer Time Is Valuable - Use the Right Tools - Kilian Valkhof
01:32 MIN
Organizing a developer conference for 15,000 attendees
Cat Herding with Lions and Tigers - Christian Heilmann
06:28 MIN
Using AI agents to modernize legacy COBOL systems
Devs vs. Marketers, COBOL and Copilot, Make Live Coding Easy and more - The Best of LIVE 2025 - Part 3
03:38 MIN
Balancing the trade-off between efficiency and resilience
What 2025 Taught Us: A Year-End Special with Hung Lee
Featured Partners
Related Videos
How not to test
Golo Roden
How Unit Testing Saved My Career
Annelore Egger
Write tests you love, not hate
Jens Happe
How to TDD in legacy code
Gil Zilberfeld
Your Testing Strategy is broken - lets fix it!
Luise Freese
Keep your code refactorable
Gerrit Stapper
Continuous testing - run automated tests for every change!
Christian Kühn
Domain-Driven Transformation—How to Bring (Back) Sustainable Architecture to Legacy and Monoliths
Henning Schwentner
Related Articles
View all articles



From learning to earning
Jobs that call for the skills explored in this talk.


Confideck GmbH
Vienna, Austria
Remote
Intermediate
Senior
Node.js
MongoDB
TypeScript

Visonum GmbH
Remote
Junior
Intermediate
React
Redux
TypeScript

Code Healers LLC
Hinesville, United States of America
Remote
€30-40K
Intermediate
Senior
.NET
React
JavaScript
+2


Patronus Group
Berlin, Germany
Senior
Kotlin
Spring Boot
Amazon Web Services (AWS)

Test Yantra
Charing Cross, United Kingdom
£61K
Senior
Azure
Scrum
DevOps
Agile Methodologies

Zenstack Software Testing Ltd
Charing Cross, United Kingdom
Remote
Bash
YAML
Azure
DevOps
+8
