पेशेवर चालक र परीक्षण चालित विकास को कन्स
टेस्ट ड्राइभ डेभलपमेन्ट (TDD) का पेशेवर र विपक्षहरू के हुन्?
परीक्षण ड्राइभ विकास एक सफ्टवेयर विकास पद्धति हो जहाँ तपाईं लेख्नुहुन्छ र गर्नुहुन्छ चलाउनुहोस् तपाईले कोड लेख्नु अघि परीक्षणहरूको सेट।
विचार यो छ कि ती परीक्षाहरू पहिले असफल हुनेछन् र त्यसपछि तपाईं सबै कोडहरू पारित गर्न प्रयास गर्न पर्याप्त कोड लेख्न थाल्नुहुन्छ। सबै परीक्षणहरू पास गर्नु सम्पन्न मापदण्डको एक उपाय हुन सक्छ (देव-गरेको) र कोडको गुणस्तरमा विश्वास बढाउँदछ।
त्योले भने, कुनै पनि अन्य विकास विधिहरू जस्तै त्यहाँ टीडीडीसँग सम्बन्धित केही पेशेवरहरू र विपक्षहरू छन्। यहाँ हामी तिनीहरु मध्ये केही सूचीबद्ध गर्छौं, तर त्यो भन्दा पहिले सबै भन्दा राम्रो बुँदाहरू स्पष्ट पार्नु पर्छ।
- एकाई परीक्षण गर्नु भनेको TDD गर्नु भनेको होइन। तपाईं दोस्रो दोस्रो बिना नै गर्न सक्नुहुनेछ। वास्तवमा, तपाई एकाई जाँचबिना TDD गर्न सक्नुहुनेछ (तर प्रायः व्यक्तिहरू गर्छन्) यस अवस्थामा, व्यक्तिहरू सामान्य रूपमा परीक्षणको स्वादका साथ यूनिट परीक्षण पूरक हुन्छन्। के तपाईंलाई निश्चितको लागि चाहिन्छ स्वचालित परीक्षण हो, जे भए पनि।
- तपाईको कोड जाँच गर्न, सेतो बक्स जाँचको लागि TDD गर्न सक्नुहुन्छ। तर तपाईं ब्ल्याक बक्स परीक्षणको लागि TDD पनि गर्न सक्नुहुनेछ, जुन प्राय जसो व्यवहार ड्राइभ विकास भनिन्छ।
परम्परागत रूपमा, प्रक्रिया धेरै मोड्युलहरू कोड गर्नुपर्दछ र त्यसपछि कोड प्रमाणित गर्न युनिट टेस्ट लेख्नुहोस्। यो कोड-प्रथम हो, पछि विधि परीक्षण गर्नुहोस्। तर यदि कोडिंग पछि त्यहाँ कुनै समय छैन वा तपाइँ रिलीजको लागि पुश हुनुभयो भने, त्यसपछि युनिट परीक्षणको सम्पूर्ण अभ्यास छोडिनेछ, वा उत्तम रूपमा पूर्वव्यापी रूपमा गरिन्छ।
अब, TDD को पक्ष र विपक्षमा:
परीक्षण चालित विकास को पेशेवरहरु
- किनकि तपाईं एक समयमा साना परीक्षणहरू लेख्दै हुनुहुन्छ, यसले तपाईंको कोडलाई अधिक मोड्युलर हुन बाध्य पार्छ (अन्यथा तिनीहरू यसको विरुद्धमा परीक्षण गर्न कठिन हुनेछ)। टीडीडीले तपाईंलाई राम्रो मोड्युलर डिजाइनको मुख्य सिद्धान्तहरू सिक्न, बुझ्न, र आन्तरिककरणमा मद्दत गर्दछ।
- TDD ले राम्रो वास्तुकला पनि जोड दिन्छ। तपाईको कोड एकाई-परीक्षण योग्य बनाउनको लागि, यसलाई राम्रोसँग परिमार्जन गरिएको हुनुपर्दछ। परीक्षणहरू लेख्नु अघि, बिभिन्न वास्तुगत समस्याहरू पहिले सतहमा झल्किन्छ।
- कागजातहरू तपाईंको कागजात भन्दा कागजातहरू भन्दा राम्रो हुन्छ (यो मितिमा मिल्दैन जुन तपाईं यसलाई जहिले पनि चलाइरहनुभएको छ)।
- कोड कायम राख्न र रिफेक्टर गर्न सजिलो बनाउँदछ। TDD कार्यान्वयन प्रक्रियाको बखत स्पष्टता प्रदान गर्न मद्दत गर्दछ र सुरक्षा-नेट प्रदान गर्दछ जब तपाईं भर्खर लेख्नुभएको कोड रिफ्याक्टर गर्न चाहानुहुन्छ।
- सहकार्यलाई सजिलो र अधिक कुशल बनाउँदछ, टोली सदस्यहरूले एक अर्काको कोड विश्वासको साथ सम्पादन गर्न सक्दछन् किनकि परीक्षणले उनीहरूलाई सूचित गर्दछ यदि परिवर्तनहरू कोडले अनपेक्षित रूपमा व्यवहार गरिरहेको छ भने।
- किनकि TDD ले अनिवार्य रूपमा तपाईंलाई कार्यान्वयन कोड लेख्नु अघि एकाइ परीक्षणहरू लेख्न बाध्य पार्छ, कोडको रिफ्याक्टोरिंग सजिलो र छिटो हुन्छ। दुई वर्ष पहिले लेखिएको रिफ्याक्टोरि code कोड हो कडा । यदि त्यो कोड राम्रो इकाई परीक्षणको सेट द्वारा ब्याक अप गरिएको छ भने, प्रक्रिया यति सजिलो हुन्छ।
- कम गर्न कम से कम यसले तपाईंलाई सुरुमा डिजाइन वा आवश्यकता सम्बन्धी समस्याहरू फेला पार्न मद्दत गर्दछ। TDD ले समस्याहरू डिजाइन गर्न प्रारम्भिक चेतावनी प्रदान गर्दछ (जब ती समाधान गर्न सजिलो हुन्छ)।
- प्रोग्रामरहरूलाई वास्तवमै तिनीहरूको कोड बुझ्न मद्दत गर्दछ।
- मूल रूपमा नि: शुल्कको लागि एक स्वचालित रिग्रेसन टेस्ट सुइट सिर्जना गर्दछ। अर्थात् कार्यान्वयन कोड जाँच गर्न तपाईले पछि युट टेस्ट लेख्न समय खर्च गर्नु पर्दैन।
- यसले साना चरणहरूलाई प्रोत्साहित गर्दछ र डिजाईन सुधार गर्दछ किनकि यसले तपाईंलाई सेटअप सहज पार्न अनावश्यक निर्भरताहरू कटौती गर्दछ।
- यसले आवश्यकताहरू स्पष्ट गर्न मद्दत गर्दछ किनकि तपाईंले कस्ता खालका इनपुटहरू खानु हुन्छ र के आशा गर्नुहुन्छ तपाईंले कस्तो आशा गर्नुहुन्छ।
- युनिट परीक्षणहरू सुरक्षा जालको रूपमा विशेष गरी मूल्यवान हुन्छन् जब कोड परिवर्तन गर्न आवश्यक हुन्छ कि त नयाँ सुविधाहरू थप्न वा अवस्थित बग फिक्स गर्न। सफ्टवेयर जीवन चक्रको maintenance० देखि 90 ०% बीचको रखरखाव खाता भएकोले, परियोजनाको जीवनकालमा बारम्बार एकाई परीक्षणहरूको सभ्य सेट सिर्जना गर्न अगाडि लिइएको समय कसरी आफूलाई खर्च गर्न सकिन्छ भनेर सोच्न गाह्रो छ।
- लेख्ने क्रममा परीक्षण गर्दा पनि तपाईंलाई तपाईंको ईन्टरफेस सफा बनाउनको लागि पर्याप्त बाध्य पार्छ। कहिलेकाँही यसको फाइदा देख्न गाह्रो हुन्छ जबसम्म तपाईं कोडको मुख्य भागमा काम नगरेसम्म यो काम नगर्नु भएको थियो र दिइएको कोडको टुक्रामा व्यायाम र फोकस गर्ने एक मात्र तरिका सम्पूर्ण प्रणाली चलाएर ब्रेक-पोइन्ट सेट गर्नु हो। ।
- 'मूर्ख' गल्तीहरू तुरुन्तै समातिन्छ। यसले विकासकर्ताहरूलाई गल्तीहरू फेला पार्न मद्दत गर्दछ जसले QA मा फेला पर्यो भने सबैको समय बर्बाद गर्दछ।
परीक्षण संचालित विकास को विपक्षमा
- परीक्षण सुइट आफैंमा राख्नु पर्छ; परीक्षणहरू पूर्णतया निवारक नहुन सक्छ (अर्थात् बाह्य निर्भरतामा निर्भर)।
- परीक्षण लेख्न गाह्रो हुन सक्छ, esp। एकाई परीक्षण स्तर बाहिर।
- सुरुमा, यसले विकासलाई ढिलो बनाउँछ; द्रुत पुनरावृति स्टार्टअप वातावरणका लागि कार्यान्वयन कोड केहि समयका लागि तयार नहुन सक्छ पहिले लिखित परीक्षण समय खर्च गरेको कारण। (तर लामो समय मा, यो वास्तव मा विकास को गति)
- कुनै पनि प्रोग्रामिंग जस्तै, त्यहाँ यो गर्ने र यसलाई राम्रोसँग गर्नु बीच ठूलो भिन्नता छ। राम्रो एकाई परीक्षण लेख्नु एक कला रूप हो। टीडीडीको यस पक्षको प्रायः छलफल हुँदैन, धेरै प्रबन्धकहरूले कोड कभरेज जस्ता मेट्रिक्समा ध्यान केन्द्रित गर्छन्; ती मेट्रिक्सले तपाईको बारेमा केहि पनि बताउँदैन गुण एकाई परीक्षण को।
- एकाई परीक्षण केहि चीज हो जुन पूरा टोलीले किन्नुपर्दछ।
- सिक्न को लागी एक चुनौती। यो डरलाग्दो हुन सक्दछ र कसैलाई पहिले सिक्न को लागी सजिलो हुँदैन, विशेष गरी तपाई आफैंमा यो सिक्ने प्रयास गर्दै। यसको लागि धेरै समर्पण आवश्यक छ (अनुशासन, अभ्यास, लगनशीलता) र तपाइँसँग लक्ष्य छ जुन तपाइँ निरन्तर यसमा राम्रो हुन चाहानुहुन्छ।
- अवस्थित लिगेसी कोडमा लागू गर्न गाह्रो।
- धेरै गलत धारणा हो जुन प्रोग्रामरलाई यो सिक्नबाट रोक्दछ।
- यस तरिकाले काम गर्न कठिन छ। विशेष गरी यदि तपाईंसँग धेरै वर्ष अन्य तरिकाले कार्य गर्ने भएको छ भने।
- तपाईंले कहिलेकाँही धेरै चीजहरू वा चीजहरू बनाउनु हुन्छ जुन उपहास गर्न गाह्रो छ। यो लामो अवधिको लागि लाभदायक हो, तर अहिले कष्टकर छ।
- तपाईले लगातार हाउसकीपिंग गर्नु पर्छ। किनभने अधिक र अधिक परीक्षण बुकिंगले तपाईंको निर्माणलाई लामो र लामो बनाउँदछ, ती परीक्षणहरूलाई अझ चाँडो चलाउन वा बेमानी परीक्षण हटाउनको लागि यसलाई परिष्कृत गर्नु आवश्यक छ।
- कुनै पनि राम्रो प्रविधि जस्तै, एकाई परीक्षण चरम गर्न सकिन्छ। सबैभन्दा राम्रो फाइदाहरू मध्यम प्रयासबाट आउँदछन्, परीक्षणहरूको साथ सँधै सरल तरिकामा कोडको व्यायाम। यदि तपाइँ आफैंलाई बारम्बार आफ्ना परीक्षणहरू रिफ्याक्टर गर्न पाउनुहुन्छ भने, त्यहाँ राम्रो मौका छ तपाईं परीक्षण सुटमा धेरै समय खर्च गरिरहनु भएको छ।
- एकाइ परीक्षण ढाँचामा 'फ्लफ' वा फेन्सी सुविधाहरूबाट अलमल्याउन सजिलो हुन सक्छ। हामीले यो याद राख्नुपर्दछ कि साधारण परीक्षणहरू बनाउनको लागि सब भन्दा चाँडो र व्यवस्थित गर्न सब भन्दा सजिलो हो।
- यद्यपि यो पूर्ण रूपमा आवश्यक छ, असफलताको लागि परीक्षण बनाउने कठिन हुन सक्छ, तर यसले अन्तमा ठूलो समय तिर्दछ।
- प्रारम्भिक चरण रिफ्याक्टोरिका लागि रिफेक्टोरिंग टेस्ट कक्षा पनि आवश्यक पर्दछ।
- जबसम्म टिममा सबैले आफ्नो परीक्षण सही तरीकाले राख्दैनन्, सम्पूर्ण प्रणाली छिटो गिरावट गर्न सक्छ।