There is a flow from external requirements to internal tests. Requirement Driven
Development (RDD) (aka Behavior Driven Development / Acceptance Test Driven
Development / Specification by Example) focuses on the external behavior.
Test Driven Development focuses on the internal behavior that creates the
external behavior. There is an overlap between the two. TDD can go all the
way up to external behavior. RDD can differentiate into more detailed
behavior. Go here for html. Go here for PDF.