Behavior Driven Development (BDD, deutsch verhaltensgetriebene Softwareentwicklung), auch als Specification Driven Development (SDD, deutsch anforderungsgetriebene Softwareentwicklung) bezeichnet, ist eine Technik der agilen Softwareentwicklung, welche die Zusammenarbeit zwischen Qualitätsmanagement und Business-Analyse in Softwareentwicklungsprojekten stärkt. Beim Behavior Driven Development werden während der Anforderungsanalyse die Aufgaben, Ziele und Ergebnisse der Software in einer bestimmten Textform festgehalten, die später als automatisierte Tests ausgeführt werden kann. Damit kann die Software auf ihre korrekte Implementierung getestet werden. Die Softwareanforderungen werden dabei meist in „Wenn-dann“-Sätzen basierend auf der Sprache des Domain-driven Designs verfasst. Damit soll der Übergang zwischen der Sprache der Definition der fachlichen Anforderungen und der Programmiersprache, mittels derer die Anforderungen umgesetzt werden, erleichtert werden.
Behavior Driven Development wurde erstmals 2003 durch Dan North[1] als Antwort auf testgetriebene Entwicklung beschrieben und hat sich seit damals weiterentwickelt.[2] Dan North entwickelte auch das erste Framework für die Umsetzung von BDD, JBehave.[1]