Test-driven development/Definition

Software development practice where a programmer creates a failing test case before writing the implementation, then stopping when the test passes.