World Congress 2021 Jun 29, 2021

How To Test A Ball of Mud

Ryan Latta

Stop using mocks as painkillers for bad architecture. Learn how to tame your monolithic codebase by enforcing strict test independence and deleting obsolete failing tests.

Pause
Mute Enter Fullscreen
#1 about 3 min

Characteristics of a ball of mud ecosystem

How inherent unpredictability and high complexity make software systems nearly impossible to navigate.

#2 about 8 min

Writing system tests to verify operational infrastructure

Checking baseline server stability with basic scripts prevents wasted effort diagnosing functional errors.

#3 about 6 min

Rules for forcing unit testing into developer workflows

Enforcing the creation and immediate execution of two new tests per standard work item.

#4 about 3 min

Redefining the testing unit based on real design

Building tests around messy code blocks exposes practical coupling rather than idealized class isolation.

#5 about 4 min

Navigating the risks of mocking code dependencies

Overusing automated mocks hides underlying design flaws and risks validating a shadow implementation instead.

#6 about 2 min

Decommissioning neglected and failing legacy test suites

Continually failing or ignored tests should be deleted completely instead of wasting time restoring past context.

#7 about 7 min

Isolating test execution to achieve reliable feedback

Running random and consecutive executions helps distinguish test state dependency issues from actual code bugs.

#8 about 3 min

Introducing smoke tests for critical application use cases

Full-system verifications become valuable only after lower-level tests eliminate underlying environmental variables.

#9 about 4 min

Adopting a new paradigm to untangle software functionality

Reversing massive architectural decay requires fundamentally different and practically unintuitive practices like rigorous foundation testing.

#10 about 3 min

Handling problematic singletons within legacy software systems

Managing state and controlling component lifecycles requires creative workarounds in heavily coupled singleton patterns.

#11 about 4 min

Evaluating the utility of snapshot and parameterized tests

Extensive test iteration loops often complicate debugging compared to individually asserting explicit functional values.

#12 about 3 min

Unearthing extreme logic bugs embedded inside god classes

Bizarre application architectures sometimes require strange configuration hacks precisely just to reach encapsulated business logic.

Matching moments

4:21 min

Reimagining test automation dynamics as spinning top mechanisms

Leszek Włodarski Leszek Włodarski · WWC Europe 2026

8:22 min

Navigating legacy systems and unconventional software testing practices

Philipp-Alexander Blum · LIVE

3:02 min

Refactoring architectural messes like the big ball of mud

Mustafa Toroman · WWC 2021

6:24 min

Applying key software design rules to test code

Gil Zilberfeld · LIVE

1:35 min

Shifting to a culture of continuous proof and best practices

Sonja Nesic Sonja Nesic · WWC Europe 2026

4:00 min

Adopting test-driven design as a strategic development methodology

Mirjam Aulbach · WWC 2022

Upcoming sessions on this topic

Open session

World Congress 2026 North America

Agents Can't Iterate Against Tests That Lie

Rocky Warren

Senior Staff Software Engineer at Clipboard

Rocky Warren
Open session

World Congress 2026 North America

Reinventing Testing Practices in the AI Era

Eric Deandrea

Java Champion & Senior Principal Software Engineer, IBM

Eric Deandrea
Open session

World Congress 2026 North America

One Repo, One Strategy: Scalable Full-Stack Testing in a Monorepo World

Bartosz Leczycki, Paweł Matynia

Bartosz Leczycki
Paweł Matynia
Open session

World Congress 2026 North America

Testing React Backends Like a Pro: Mocking Databases with SQLite

David Morris

Solution Architect

David Morris
Open session

World Congress 2026 North America

It’s Alive! Taming the MLOps Franken-Stack: Write, Run, and Serve with Michelangelo

Eric Wang, Paul Zimmerman

Eric Wang
Paul Zimmerman
Open session

World Congress 2026 North America

How to generate business value through performance optimizations

Nikolai Sidiropulo

Software Engineer at Meta

Nikolai Sidiropulo