A software development process where you write tests before writing the code they are intended to validate.