Test Driven Development (TDD) is a method of programming discovering features through tests.
See also Test Driven Development (Book) by Kent Beck.
Go Time had Bill Kennedy, Chris James, and Mat Ryer talk about if you should or should not use TDD. Interview
Kent Beck and Kelly Sutton while at Gusto have discussions about structuring tests. Github