A development methodology where tests are written before the code they test. The cycle is: write a failing test, write code to make it pass, then refactor. AI can participate in each step. (Ch. 21)