A good article that goes into the basics of how one can go about achieving a loosely coupled design. In addition it talks about how a loosely coupled design is good for testing.
Tame Your Software Dependencies for More Flexible Apps by James Kovacs (MSDN Magazine - March 2008)
This article discusses:
- What's wrong with tightly coupled architectures
- Testing and dependency woes
- Dependency inversion
- Dependency injection