Ein Ansatz zur Softwareentwicklung, bei dem die Testfälle entworfen und implementiert werden, bevor die zugehörige Komponente oder das zugehörige System entwickelt wird.