This document discusses test-driven development (TDD) and strategies for testing Sitecore applications. It covers: 1. The basics of TDD including writing unit tests first, making them pass, and then refactoring code. This helps ensure code always works and allows for safe refactoring. 2. Isolating dependencies by using interfaces, dependency injection with AutoFac, and fake objects with NSubstitute to isolate code from external systems. 3. Strategies for isolating and testing Sitecore code, including using Glass Mapper to map Sitecore items to lightweight objects and the Sitecore.FakeDB library for faking Sitecore data. 4. Tools for testing Sitecore itself