https://en.wikipedia.org/wiki/Test-driven_development#Test-driven_development_cycle
- Write a test
 - Write your code so the tests pass
 - Refactor your code so it isn't 💩
 - GOTO 1
 
https://en.wikipedia.org/wiki/Behavior-driven_development#Behavioral_specifications
BDD tests are written in a language called Ghurkin. There are lots of tools and frameworks in almost every language that can process files written in Ghurkin.
For Python pytest-bdd looks OK, there is also behave.