मान लीजिए कि किसी के पास एक अपेक्षाकृत बड़ा कार्यक्रम था (सी # में 900k एसएलओसी कहें), सभी ने अच्छी तरह से व्यवस्थित और अच्छी तरह से काम किया / टिप्पणी की। संपूर्ण कोड आधार एक एकल वरिष्ठ डेवलपर द्वारा लिखा गया था जो अब कंपनी के साथ नहीं है। सभी कोड के रूप में परीक्षण योग्य है और IoC भर में उपयोग किया जाता है - कुछ अजीब कारण को छोड़कर उन्होंने कोई इकाई परीक्षण नहीं लिखा। अब, आपकी कंपनी कोड को ब्रांच करना चाहती है और चाहती है कि कोर फंक्शनलिटी में बदलाव होने पर यूनिट टेस्ट को जोड़ा जाए।
- क्या परीक्षण एक अच्छा विचार है?
- यदि हां, तो कोई इस तरह से कैसे शुरू करेगा?
संपादित करें
ठीक है, इसलिए मैंने विपरीत निष्कर्ष के लिए अच्छे तर्क देने वाले उत्तर की उम्मीद नहीं की थी। मुद्दा वैसे भी मेरे हाथ से बाहर हो सकता है। मैंने "डुप्लीकेट प्रश्नों" के माध्यम से भी पढ़ा है और आम सहमति यह है कि "लेखन परीक्षण अच्छा है" ... हाँ, लेकिन इस विशेष मामले में बहुत उपयोगी नहीं है।
मुझे नहीं लगता कि एक विरासत प्रणाली के लिए लेखन परीक्षण पर विचार करने में मैं यहाँ अकेला हूँ। मैं मेट्रिक्स रखने जा रहा हूं कि कितना समय बिताया है और कितनी बार नए परीक्षण समस्याओं को पकड़ते हैं (और कितनी बार वे नहीं करते हैं)। मैं वापस आऊंगा और अपने परिणामों के साथ इसे अभी से अपडेट करूंगा।
निष्कर्ष
इसलिए यह पता चला है कि मूल रूप से रूढ़िवाद के किसी भी उदाहरण के साथ मौजूदा कोड में सिर्फ यूनिट टेस्ट जोड़ना असंभव है। एक बार कोड काम कर रहा है तो आप स्पष्ट रूप से अपने परीक्षणों को लाल-प्रकाश / हरा-प्रकाश नहीं कर सकते हैं, यह आमतौर पर स्पष्ट नहीं होता है कि कौन से व्यवहार परीक्षण के लिए महत्वपूर्ण हैं, स्पष्ट नहीं है कि कहां से शुरू करें और निश्चित रूप से जब आप समाप्त नहीं होते हैं तो स्पष्ट नहीं। वास्तव में यहां तक कि यह सवाल पूछना पहली जगह में परीक्षण लिखने के मुख्य बिंदु को याद करता है। अधिकांश मामलों में मैंने पाया कि वास्तव में टीडीडी का उपयोग करके कोड को फिर से लिखना आसान है, जिसका उद्देश्य निर्धारित कार्यों को समझने और इकाई परीक्षणों में शामिल करना है। किसी समस्या को ठीक करते समय या किसी नई सुविधा को जोड़ने के दौरान यह एक अलग कहानी होती है, और मेरा मानना है कि यह इकाई परीक्षणों को जोड़ने का समय है (जैसा कि नीचे बताया गया है)। अंततः अधिकांश कोड को फिर से लिखा जाता है, जितनी जल्दी आप अपेक्षा करते हैं, उतनी ही जल्दी - इस दृष्टिकोण को लेते हुए मैं '