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