This document discusses testing untestable code. It begins with an introduction and agenda. It then discusses what constitutes untestable code and some techniques for making code more testable, including dependency injection, manipulating include paths, namespaces, and mocking filesystems. It also discusses strategies for testing procedural code and internal functions. Finally, it introduces the concept of generative programming and generating test code from configurations.