Test-driven development was first introduced as part of the extreme programming (XP) paradigm. While not everyone agrees with all aspects of XP, most developers believe in the benefits of test-driven development. Although the basic techniques of test-driven development are simple to understand, its application in the real world requires knowledge of certain tools and techniques needed to effectively create, run and organize tests.