I think there is actually a meaningful distinction between the two. "Specification Driven Development" refers to the artifact you are creating; whereas "Test Driven Development" refers to the activity you are using that specification for. You are right that in the case of TDD as typically practiced, it doesn't really matter since the specifications are only used to conduct tests. However, if you treat the specifications as _data_ rather than code, you greatly increase kinds of verification activities you can with those specifications; such as theorem proving, model checking, test generation, code contracts, and documentation. See the talk "Beyond Contracts: An Exploration into Unified Specifications" -- (http://www.infoq.com/presentations/Unified-Specifications-Cl...) for more on this idea.
Comments
I think there is actually a meaningful distinction between the two. "Specification Driven Development" refers to the artifact you are creating; whereas "Test Driven Development" refers to the activity you are using that specification for. You are right that in the case of TDD as typically practiced, it doesn't really matter since the specifications are only used to conduct tests. However, if you treat the specifications as _data_ rather than code, you greatly increase kinds of verification activities you can with those specifications; such as theorem proving, model checking, test generation, code contracts, and documentation. See the talk "Beyond Contracts: An Exploration into Unified Specifications" -- (http://www.infoq.com/presentations/Unified-Specifications-Cl...) for more on this idea.