Test-ilk programlamaya ilk yayınlanan referans nedir?


11

Tekrar Martin Fowler'ın Refactoring'i okuyorum. Bölüm 4, Bina Testleri'nde aşağıdaki bölüme rastladım.

Aslında, test yazmak için en yararlı zamanlardan biri, programlamaya başlamadan önce. Bir özellik eklemeniz gerektiğinde, testi yazarak başlayın. Bu göründüğü kadar geri değil. Testi yazarak, kendinize işlevi eklemek için ne yapılması gerektiğini soruyorsunuz. Testin yazılması, uygulamadan ziyade arayüze odaklanır (her zaman iyi bir şeydir). Ayrıca, test çalışırken kodlama yaptığınız açık bir noktanız olduğu anlamına gelir.

Şimdi test odaklı geliştirmenin savunucusuyken, bu kitabı yaklaşık 5 yıl önce okuduğumda bu kavramla tanıştığımı hatırlamıyordum.

Amazon.com'a göre, bu kitap ilk olarak 8 Temmuz 1999'da yayınlandı. Bu, test-ilk programlamaya yönelik ilk yayınlanmış referans mı yoksa daha erken bir şey mi var?


Bu öznel değil. Alakalı mı? Ben öyle düşünmüyorum. Bu soruyu yeniden açmak için iyi bir nedeniniz varsa, meta.programmers.stackexchange.com adresinde yayınlayın
Maniero

@bigown: Anladığımdan emin değilim. Bu soruyu sübjektif olmadığı veya göreceli olmadığı için kapattığınızı mı söylüyorsunuz?
Eric Weilnau

Açıkça nesneldir.
Maniero

2
Aynı zamanda programlama ile ilgili ve ilginç ve gerçek bir cevap olsa da, bunun kolay olmadığını kanıtlamak. Başka nereye gidiyor? ProgrammingHistory.stackexchange?
Eylül'de

4
burada nesnel sorulara izin verebiliriz - öznel soruları tercih ederiz, ancak Stack Overflow'un hayatta kalan bazı KONU soruları olduğu gibi, bu sitede hayatta kalan bazı HEDEF soruları olabilir. (Burada "Perl kodunu nasıl çalıştırabilirim" sorusunu görmeyi beklemiyorum)
Jeff Atwood

Yanıtlar:


9

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.


4

Jon Bently in Programming Pearls (orijinal olarak 1986'da yayınlandı) özellikle Test-First programlamasından bahsetmiyor. Ancak "Doğru Programların Yazılması" bölümünde, önce ön koşulları, değişmezleri ve son şartları tanımlayarak bir algoritma yazmayı ve bir sonraki bölümde otomatik bir test çerçevesini açıklar.

Öncelikle test değil, ama kesinlikle bazı temelleri atıyordu.

Ayrıca,

CIO Dergisi, Mart 1993, Bug Busters , Lucie Juneau, s. 84 :

Test senaryoları ... herhangi bir kod yazılmadan önce bile geliştirilebilir. İdeal olarak bu durumlar bir uygulamanın gereksinimlerine dayanır ... Geliştiricilere kod yazmaya başlamadan önce gereksinimlere dayalı testler verilirse, bu testleri geçebilecek bir ürün tasarlayacaklar ... "


Amazon.com'a göre 2. baskı 7 Ekim 1999'da yayınlandı. 1. baskı 1986'da yayınlandı. Bu referans 1. baskıda mıydı?
Eric Weilnau

Sadece 2. baskıyı okudum. Önsöz, yalnızca "Doğru Programların Yazılması" bölümünün 1. baskıda olduğunu, otomatik test bölümünün daha yeni olduğunu gösteriyor.
Eylül'de

3

That was Kent Beck adlı kitabında yer, Extreme Programming da yayımlanan 1999 .

alternatif metin


Amazon.com'a göre, bu kitap ilk olarak 5 Ekim 1999'da yayınlandı. Bu, Refactoring'in yayınlanmasından yaklaşık 3 ay sonra. Amazon.com'a göre sorumun tam yayın tarihini içerecek şekilde düzenledim. Kent'in kitabını okumadım, ancak önce test programlama hakkında çok daha fazla bilgi sağladığını varsayıyorum.
Eric Weilnau

3
Bu kitabın arka kapağında Kent Beck'in "öncüye yardımcı oldu .. ilk test programlamasının yeniden keşfedilmesine" yardımcı olması ilginç. Nereden yeniden keşfetti?
Eylül'de

İlginç bulma AShelly!

1
@AShelly: Birkaç yıl önce Kent Beck, RailsConf'da bir açılış konuşması yaptı. İçinde TDD ile nasıl geldiğini anlattı ve 60'lı yıllardan kalma eski bir makalede bunu okuduğundan bahsediyor.
Jörg W Mittag
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.