सहयोगी ओपन सोर्स प्रोजेक्ट्स में TDD व्यवहार्य है


11

मान लीजिए कि मैं एक ओपन सोर्स प्रोजेक्ट शुरू करना चाहता था जिसकी मुझे उम्मीद है / उम्मीद है कि बहुत से लोग पैच और व्हाट्सएप सबमिट करेंगे। क्या एक सख्त TDD दृष्टिकोण लेना व्यवहार्य है? क्या जब भी वे पैच-अप प्रस्तुत करते हैं, तो क्या मुझे गुणवत्ता परीक्षण लिखने के लिए सहयोगियों से अपेक्षा / विश्वास करना चाहिए?

एक बात जो मैं सोच रहा था कि व्यक्तिगत बग रिपोर्ट और सुविधा अनुरोधों के लिए परीक्षण सूट लिख रहा हूं और आवश्यकता है कि सभी पैच / पुल अनुरोध परीक्षण पास कर दें, लेकिन उस समय ऐसा लगता है कि यह सुविधा / बगफिक्स लिखने के लिए बेहतर होगा खुद।

जहां तक ​​मैं बता सकता हूं, ज्यादातर बड़े ओपन सोर्स प्रोजेक्ट्स जो TDD (या कम से कम राइट टेस्ट) का उपयोग करते हैं, ज्यादातर एक व्यक्ति या टीम द्वारा शुद्ध रूप से लिखे गए प्रतीत होते हैं, जहां टीडीडी जैसी प्रथाओं को लागू करना आसान है।


अपने शोध को साझा करना हर किसी की मदद करता है। हमें बताएं कि आपने क्या प्रयास किया है और यह आपकी आवश्यकताओं को पूरा क्यों नहीं करता है। यह दर्शाता है कि आपने खुद को मदद करने का प्रयास करने के लिए समय लिया है, यह हमें स्पष्ट उत्तरों को दोहराने से बचाता है, और सबसे अधिक यह आपको अधिक विशिष्ट और प्रासंगिक उत्तर प्राप्त करने में मदद करता है। यह भी देखें कैसे पूछें
gnat

@gnat मैंने StackExchange की खोज की है, और कुछ सवाल हैं जहां लोग यूनिट परीक्षणों के साथ ओपन सोर्स प्रोजेक्ट्स के उदाहरण पूछते हैं, जो मेरे प्रश्न के समान नहीं है। आपके अनुरोध के अनुसार, मैंने कुछ और जानकारी जोड़ी है।
डॉरमो नॉर्ड

1
DormoTheNord मेरा मानना ​​है कि @gnat का अर्थ विशिष्ट, उद्धृत उदाहरण हैं।
haneefmubarak

"यह बेहतर होगा कि फीचर / बगफिक्स को स्वयं लिखें।" परीक्षण के साथ या बिना? क्या आप एक टीडीडी प्रस्तावक हैं या सिर्फ यह देखने के लिए जाँच कर रहे हैं कि क्या यह इस संदर्भ में व्यवहार्य है?
जेफ़ो

जब भी आप एक पैच सबमिट करते हैं, तो आप निश्चित रूप से सहयोगियों से गुणवत्ता परीक्षण लिखने की अपेक्षा कर सकते हैं। यह न केवल फायदेमंद है - बड़े ओपन सोर्स प्रोजेक्ट्स में यह आज बहुत आम है (यदि आप चाहें तो मैं उदाहरण दे सकता हूं)।
बेंजामिन ग्रुएनबाम

जवाबों:


29

आप वास्तव में एक ओपन सोर्स प्रोजेक्ट पर टीडीडी (पहले परीक्षण) दृष्टिकोण लागू नहीं कर सकते हैं जहां पैच आम जनता द्वारा प्रस्तुत किए जा सकते हैं।

आप जो लागू कर सकते हैं वह यह है कि सभी पैच में शामिल फ़िक्सेस के लिए परीक्षण मामलों का एक सेट होना चाहिए और उन परीक्षण मामलों, साथ ही सभी मौजूदा परीक्षण मामलों को पास करना होगा। आप इसे केवल कुछ विश्वसनीय डेवलपर्स को प्रतिबद्ध अधिकार देकर लागू कर सकते हैं, जिन्हें प्रोजेक्ट की नीतियों का उपयोग करने और सहमति देने के लिए जाना जाता है और सार्वजनिक रूप से यह कहते हुए कि सबमिशन / पुल-रिक्वेस्ट को तभी शामिल किया जाएगा, जब वे पासिंग टेस्ट केस के साथ आते हैं (के साथ) पर्याप्त कवरेज)।

यह सुनिश्चित नहीं करता है कि परीक्षण पहले लिखा गया है , लेकिन यह सुनिश्चित करता है कि परीक्षण लिखा गया है


1
निश्चित रूप से रिपॉजिटरी मालिक किसी भी बदलाव को खींचने के लिए अस्वीकार कर सकता है जो परियोजना के गुणवत्ता मानकों के अनुरूप नहीं है? यदि योगदानकर्ताओं को यह नापसंद है, तो शायद गुणवत्ता और योगदान की मात्रा को नुकसान होगा, लेकिन यह नहीं कहना चाहिए कि आप इसे लागू नहीं कर सकते । निश्चित रूप से?
टॉम डब्ल्यू

2
@TomW: आप कैसे जाँचेंगे कि मेरा सबमिशन TDD प्रथाओं के अनुसार बनाया गया है और उदाहरण के लिए, कार्यान्वयन के बाद लिखे गए परीक्षणों के साथ नहीं?
बार्ट वैन इनगेन शेनॉ

ओह, अब समझा तुम्हारा क्या मतलब है। मुझे लगता है कि कठोरता का कुछ नुकसान अपरिहार्य है, लेकिन आप अभी भी सत्यापित कर सकते हैं कि कोड परीक्षणों के साथ आता है, कि परीक्षण पर्याप्त रूप से दानेदार हैं और वे सब कुछ कवर करते हैं जो वे करने वाले हैं। मैं गिट से परिचित नहीं हूं, लेकिन दिए गए पुल अनुरोध के लिए, क्या उस बदलाव के लिए कमिट के अनुक्रम का निरीक्षण करना संभव है, यह देखने के लिए कि डेवलपर ने इसे बनाने के लिए एक उपयुक्त प्रक्रिया का पालन किया है?
टॉम डब्ल्यू

दूसरे शब्दों में, आप किसी की आंतरिक प्रक्रिया की पुष्टि नहीं कर सकते, लेकिन आप यह सुनिश्चित कर सकते हैं कि एक निश्चित मानक को पूरा करता है। आवश्यक परीक्षण, और यह सुनिश्चित करना कि डिज़ाइन तार्किक है मालिक की शक्ति के भीतर है।
एड्रियन श्नाइडर

1

कोड पर काम करने की अनुमति देने से पहले आप लोगों को परीक्षण-केवल पैच प्रस्तुत करने के लिए कह सकते हैं ; यह कोड लिखे जाने से पहले नियोजित डिज़ाइन की समीक्षा करने का एक अतिरिक्त अवसर प्रदान करेगा।

व्यवहार में, यह परियोजना में योगदान करने के लिए किसी भी उत्साह वाले लोगों को मार सकता है - या यह उन लोगों में आग लगा सकता है जो आपकी कार्यप्रणाली से सहमत हैं।

समीक्षकों को डिजाइन की समीक्षाओं को जल्दी से चालू करने के बारे में बहुत अच्छा होना चाहिए, हालांकि, ताकि विकास को रोकना न हो।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.