2011-10-26 15 views
5

मैं यूनिट परीक्षण, टीडीडी, और ठोस सिद्धांतों पर पढ़ रहा हूं और मुझे कुछ स्पष्टीकरण की आवश्यकता है। मेरी समझ यह है कि यदि कोई खुला/बंद सिद्धांत का पालन करता है, तो इस तथ्य के कारण यूनिट परीक्षण काफी हद तक अनावश्यक हो सकता है कि कोड संशोधन के लिए बंद है - इस प्रकार कोड को ठीक से अलग और decoupled अगर रीस्टेस्ट करने की कोई आवश्यकता नहीं है। यूनिट परीक्षण की अतिरिक्त अग्रिम लागत का दीर्घकालिक लाभ खो जाता है यदि कोड एक बार संबंधित इकाई परीक्षण पास करता है तो यह नहीं बदलेगा। कोड हमेशा पास होगा क्योंकि यह कभी नहीं बदलेगा, है ना? विरासत वाले वर्गों का परीक्षण करने की आवश्यकता होगी, लेकिन एक बार वे संबंधित परीक्षण पास करने के बाद, उन्हें भी संशोधन के लिए बंद कर दिया जाएगा और उन्हें पुन: स्थापित करने की आवश्यकता नहीं होगी। The Wikipedia article on OCP पहले पैराग्राफ में विचार की इस पंक्ति को मजबूत करता है, (मुझे एहसास है कि यह कानून नहीं बनाता है)।
सांसद is here में सांस लेने वाले ओसीपी और टीडीडी के लिए सबसे अच्छी व्याख्या मिली है, हालांकि ऐसा लगता है कि आर्नन कह रहा है कि ओसीपी प्रशंसा टीडीडी में डेवलपर को स्रोत कोड संशोधित करने से हतोत्साहित किया गया है क्योंकि परीक्षण में संशोधित होने पर मौजूदा परीक्षण विधियां जटिल हो सकती हैं नई कार्यक्षमता।
क्या यह सब कुछ है? आपको याद है कि मैं कोई तर्क नहीं ढूंढ रहा हूं, मैं इसके लिए नया हूं और मैं उन लोगों से स्पष्टीकरण की तलाश कर रहा हूं जिनके साथ मैं विषय के साथ अधिक अनुभव के साथ हूं।टेस्ट-संचालित विकास और खुले/बंद सिद्धांत एक साथ कैसे काम करते हैं?

उत्तर

8

भले ही आप यह स्वीकार करना चाहते हैं कि एक बार सॉफ्टवेयर काम करता है और नहीं बदलता है, आपको इसकी जांच करने की आवश्यकता नहीं है (जो मैं नहीं करता), आपको अभी भी यह दिखाने की ज़रूरत है कि एक घटक पहले स्थान पर काम करता है। मैं तर्क दूंगा कि ऐसा करने के सर्वोत्तम तरीकों में से एक इकाई परीक्षण है।

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

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

+3

हमेशा याद रखें कि सोलिड एक सर्वोत्तम अभ्यास है, भौतिकी का कानून नहीं है जिस पर ब्रह्मांड का सामंजस्यपूर्ण संतुलन निर्भर करता है; सॉलिड नियम आसानी से टूटा जा सकता है। यहां तक ​​कि अगर धार्मिक रूप से पालन किया जाता है, तो एक सोलिड डिज़ाइन को सभी संभावित परिवर्तनों पर बंद नहीं किया जा सकता है; एक प्रकार के परिवर्तन को बंद करके आप अक्सर एक और प्रकार का परिवर्तन अधिक संभावना बनाते हैं, और/या अधिक कठिन होते हैं। – KeithS

4

इकाई परीक्षण तथ्य यह है कि कोड संशोधन के

ठीक है, बिल्कुल नहीं बंद कर दिया है की वजह से बड़े पैमाने पर अनावश्यक बन सकता है। आप कैसे जानते हैं कि मूल, बंद, कार्यान्वयन सही है?

इकाई परीक्षण का जोड़ा अग्रिम लागत का दीर्घकालिक लाभ खो दिया है

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

यह

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

संबंधित मुद्दे