TDD, işbirlikçi açık kaynak projelerinde uygulanabilir mi?


11

Diyelim ki birçok insanın yama göndermesini umduğum / beklediğim açık kaynaklı bir proje başlatmak istedim. Katı bir TDD yaklaşımı benimsemek uygun mu? Bir yama gönderdiklerinde ortak çalışanlardan kalite testleri yazmalarını bekleyebilir miyim / güvenebilir miyim?

Düşündüğüm bir şey, bireysel hata raporları ve özellik istekleri için test paketleri yazmak ve tüm yamaların / çekme isteklerinin testleri geçmesini gerektiriyor, ancak bu noktada sadece özelliği / bugfix'i yazmak daha iyi gibi görünüyor kendim.

Anlayabildiğim kadarıyla, TDD kullanan (veya en azından yazma testleri) büyük açık kaynak projelerinin çoğu çoğunlukla TDD gibi uygulamaları uygulamanın kolay olduğu bir kişi veya ekip tarafından yazılıyor gibi görünüyor.


Araştırmanızı paylaşmak herkese yardımcı olur. Neyi denediğinizi ve neden ihtiyaçlarınızı karşılamadığını bize bildirin. Bu, kendinize yardım etmeye zaman ayırdığınızı, bizi açık cevapları tekrar etmekten kurtardığını ve en önemlisi daha spesifik ve alakalı bir cevap almanıza yardımcı olduğunu gösteriyor. Ayrıca bkz. Nasıl
Sorulur

@gnat StackExchange'i araştırdım ve insanların soruları ile aynı olmayan, birim testleri ile açık kaynaklı projelerin örneklerini sorduğu birkaç soru oldu. İsteğinize göre biraz daha bilgi ekledim.
DormoTheNord

1
@Gnat'ın spesifik, alıntı yapılan örnekler anlamına geldiğine inanıyorum .
haneefmubarak

"sadece özelliği / bugfix'i kendim yazmak daha iyi olur." Testli veya testsiz mi? Bir TDD savunucusu musunuz veya sadece bu bağlamda uygulanabilir olup olmadığını kontrol ediyor musunuz?
JeffO

Tabii ki ortak çalışanlardan bir yama gönderdiklerinde kalite testleri yazmalarını bekleyebilirsiniz / bekleyebilirsiniz. Bu sadece yararlı değil - bugün büyük açık kaynak projelerinde son derece yaygındır (isterseniz örnek verebilirim).
Benjamin Gruenbaum

Yanıtlar:


29

Yamaların genel kamuoyu tarafından sunulabileceği açık kaynaklı bir projede TDD (önce test) yaklaşımını gerçekten uygulayamazsınız.

Ne yapabilirsiniz zorlamak tüm yamalar geçmelidir, bu test durumları yama ve o dahil düzeltmeleri için test durumlarda bir dizi, hem de tüm olarak mevcut test durumları olmalıdır olmasıdır. Bunu, yalnızca projenin politikalarını kullandığı ve kabul ettiği bilinen birkaç güvenilir geliştiriciye taahhüt hakları vererek ve gönderimlerin / çekme taleplerinin yalnızca test senaryoları ile birlikte gelmeleri durumunda dahil edileceğini açık bir şekilde belirterek uygulayabilirsiniz. yeterli kapsam).

Bu test yazılır sağlamak gelmez ilk ama testi emin gelmez yazılı .


1
Depo sahibi, projenin kalite standartlarına uymayan değişiklikleri almayı reddedebilir mi? Katkıda bu sevmediğim, ama bu eğer Belki katkıların kalitesi ve miktarı düşüş olacağını; Söyleyecek değil olamaz uygulanması. Şüphesiz?
Tom W

2
@TomW: Gönderimin, örneğin uygulama tamamlandıktan sonra yazılan testlerle değil, TDD uygulamalarına göre oluşturulduğunu nasıl kontrol edersiniz?
Bart van Ingen Schenau

Ne demek istediğini anlıyorum. Bazı titizlik kaybının kaçınılmaz olduğunu düşünüyorum, ancak yine de kodun testlerle geldiğini, testlerin yeterince granüler olduğunu ve olması gereken her şeyi kapsadığını doğrulayabilirsiniz. Git'e aşina değilim, ancak belirli bir çekme isteği için, geliştiricinin üretmek için uygun bir işlemi izlediğini görmek için bu değişiklik kümesinin taahhüt sırasını incelemek mümkün mü?
Tom W

Başka bir deyişle, kişinin dahili sürecini doğrulayamazsınız, ancak bunun çıktısının belirli bir standardı karşıladığından emin olabilirsiniz. Testler yapılması ve tasarımın mantıklı olduğundan emin olmak sahibinin gücü dahilindedir.
Adrian Schneider

1

Kullanıcılardan kod üzerinde çalışmalarına izin verilmeden önce yalnızca test yamalarını göndermelerini isteyebilirsiniz ; bu, kodun kendisi yazılmadan önce planlanan tasarımı gözden geçirmek için ek bir fırsat sağlayacaktır.

Uygulamada bu, insanların projeye katkıda bulunma hevesini öldürebilir - ya da metodolojinize katılmayı kabul edenlere ateş yakabilir.

Bununla birlikte, gözden geçirenlerin tasarım incelemelerini hızlı bir şekilde geri çevirmek konusunda çok iyi olması gerekir, böylece gelişimi durdurmazlar.

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.