Test odaklı geliştirme, ön koşulların, değişmezlerin ve son koşulların olduğu sözleşme tasarımına benzer.
Terim, Bertrand Meyer tarafından Eyfel programlama dili tasarımı ile bağlantılı olarak üretildi ve ilk olarak 1986'da başlayan çeşitli makalelerde anlatıldı [Wikipedia]
Resmi yöntemler en az 1983'ten kalmadır ve B yöntemi kullanılarak sürücüsüz Paris metrosu gibi güvenlik açısından kritik sistemler için kullanılmıştır:
Soyut Makine adı verilen ilk ve en soyut versiyonda tasarımcı tasarımın amacını belirtmelidir. [Ara]
Bunlar, Kent Beck'in "önceliğe ... ilk testlerin yeniden keşfedilmesine" yardımcı olduğu şeyler olabilir.
Daha da önemlisi: Görünüşe göre Nasa'nın 1960'ların başı Projesi Mercury, test odaklı geliştirme ve diğer çevik uygulamaları kullanan ilk yazılım projesiydi. Herhangi bir erken belge bulamadım, ancak burada proje üyelerinin iletişimini anlatan 2003 raporu :
Mercury Projesi, zaman kutulu çok kısa (yarım gün) yinelemelerle koştu. Geliştirme ekibi, tüm değişikliklerin teknik bir incelemesini yaptı ve ilginç bir şekilde, her mikro artıştan önce test ilk geliştirme, planlama ve yazma testlerinin Aşırı Programlama uygulamasını uyguladı.
Raporun geri kalanı da ilginç, söylemeye devam ediyor:
Özellikle yinelemeli gelişimi tanımlamaya ve önermeye odaklandığına dair ilk referans, IBM TJ Watson Research'teki Brian Randell ve FW Zurcher'ın 1968 tarihli bir raporu oldu.
Otomatik sınamaya ek olarak, 1968 raporu , önce test edilmiyorsa paralel kodlama ve test etmeyi savunur:
g. Her program bloğunun detay tasarımı, kodlanması ve dokümantasyonu.
h. Adım (g) 'ye paralel olarak her bir program bloğu için test yöntemlerinin tasarımı ve dokümantasyonu.