Ein Softwareentwicklungsverfahren, bei dem die Testfälle entwickelt und oft automatisiert werden, und anschließend die Software inkrementell entwickelt wird, um diese Testfälle zu bestehen.