Test Driven Development vs Behaviour Driven Development

TDD 

Meaning: Test Driven Development

Who involves: developers

Summary: developers start writing code defining tests (in general unit tests). It could sounds strange but it's a good approach for having a wide code coverage and, in particular, allows forcing devs to "think" about what they are doing. TDD can be applied to any kind of software.

BDD 

Meaning: Behaviour Driven Development

Who involves: in theory anyone

Summary: allows defining a-priori the expected behaviours of a software. There are several tools, like Cucumber, for writing "Behaviours". You should write the expected behaviour using a predefined syntax that will be translated into code by developers and into test by QA. BDD cannot be applied to any kind of software