प्रतिगमन परीक्षण
यह सब प्रतिगमन परीक्षण के बारे में है ।
अपने तरीके को देखने वाले अगले डेवलपर की कल्पना करें और ध्यान दें कि आप जादुई संख्या का उपयोग कर रहे हैं। उसे बताया गया था कि जादुई संख्याएं बुराई हैं, इसलिए वह दो स्थिरांक बनाता है, एक संख्या दो के लिए, दूसरा नंबर तीन के लिए - यह परिवर्तन करने में कुछ भी गलत नहीं है; यह ऐसा नहीं है कि वह आपके पहले से ही सही कार्यान्वयन को संशोधित कर रहा है।
विचलित होने के कारण, वह दो स्थिरांक का आविष्कार करता है।
वह कोड करता है, और सब कुछ ठीक काम करने लगता है, क्योंकि प्रत्येक प्रतिबद्ध के बाद कोई प्रतिगमन परीक्षण नहीं चल रहा है।
एक दिन (हफ्तों बाद हो सकता है), कहीं और कुछ टूट जाता है। और कहीं और से, मेरा मतलब कोड बेस के पूरी तरह से विपरीत स्थान से है, जो polynominal
फ़ंक्शन के साथ कुछ भी नहीं लगता है । दर्दनाक डिबगिंग के घंटे अपराधी तक पहुंचते हैं। इस समय के दौरान, एप्लिकेशन उत्पादन में विफल रहता है, जिससे आपके ग्राहकों को बहुत सारे मुद्दों का सामना करना पड़ता है।
आपके द्वारा लिखे गए मूल परीक्षणों को ध्यान में रखते हुए ऐसे दर्द को रोका जा सकता है। विचलित डेवलपर कोड प्रतिबद्ध होगा, और लगभग तुरंत देखेगा कि उसने कुछ तोड़ दिया है; ऐसा कोड उत्पादन तक भी नहीं पहुंचेगा। इकाई परीक्षण अतिरिक्त रूप से त्रुटि के स्थान के बारे में सटीक होगा । इसे हल करना मुश्किल नहीं होगा।
एक पक्ष प्रभाव ...
दरअसल, ज्यादातर रिफ़ेक्टरिंग रिग्रेशन टेस्टिंग पर आधारित होती है। एक छोटा सा बदलाव करें। परीक्षा। यदि यह गुजरता है, तो सब कुछ ठीक है।
साइड इफेक्ट यह है कि अगर आपके पास परीक्षण नहीं हैं, तो व्यावहारिक रूप से कोई भी रिफैक्टरिंग कोड को तोड़ने का एक बड़ा जोखिम बन जाता है। यह देखते हुए कि कई मामले हैं, पहले से ही प्रबंधन को यह समझाना मुश्किल है कि रिफैक्टरिंग की जानी चाहिए, आपके पिछले रीफैक्टरिंग प्रयासों के बाद कई बगों का सामना करना मुश्किल होगा।
परीक्षणों का एक पूरा सूट होने से, आप रिफैक्टरिंग और इतने बेहतर, क्लीनर कोड को प्रोत्साहित कर रहे हैं। जोखिम मुक्त, यह नियमित रूप से अधिक रिफ्लेक्टर के लिए बहुत आकर्षक है।
आवश्यकताओं में परिवर्तन
एक और आवश्यक पहलू यह है कि आवश्यकताएं बदल जाती हैं। आपको जटिल संख्याओं को संभालने के लिए कहा जा सकता है , और अचानक, आपको पिछले परीक्षणों को खोजने, उन्हें पुनर्स्थापित करने और नए परीक्षण जोड़ना शुरू करने के लिए अपने संस्करण नियंत्रण लॉग की खोज करने की आवश्यकता है।
यह सब झंझट क्यों? बाद में उन्हें जोड़ने के लिए परीक्षणों को क्यों हटाया गया? आप उन्हें पहले स्थान पर रख सकते थे।