विषय-सूचि
परिभाषा (Definition of Debugging in Hindi)
टेस्टिंग टीम या क्लाइंट से किसी सॉफ्टवेयर में मौजूद खराबियों (bug) की टेस्ट रिपोर्ट लेने के बाद जब डेवलपमेंट टीम या डेवलपर उस सॉफ्टवेयर में मौजूद bug को ठीक करने के लिए बैठते हैं, तो इस प्रक्रिया को Debugging कहा जाता है।
इसके दौरान डेवेलपर सॉफ्टवेयर में मौजूद नुक्स या डिफेक्ट का कारण जानने की कोशिश करते हैं और उसे ठीक करते हैं।
इसके लिए डेवेलपर कोड के हर लाइन की जाँच करते हैं जिससे पता चल सके कि कोड के किस भाग में डिफेक्ट है। जब उस bug का पता चल जाता है, वे उस कोड में बदलाव करते हैं और रन करके देखते हैं जिससे पता चल सके कि डिफेक्ट ठीक हुआ या नहीं। इसके बाद डेवेलपर दुबारा उस सॉफ्टवेयर को टेस्टर के पास टेस्टिंग के लिए भेज देते हैं।
Debugging के दौरान कुछ निर्देशों का पालन किया जाता है, जो इस प्रकार हैं:-
- Debugging किसी त्रुटि को हल करने का तरीका है। इस प्रक्रिया को शुरू करने से पहले Debugging टीम के सदस्यों को त्रुटि के सारे कारण समझने चाहिए।
- Debugging के दौरान सॉफ्टवेयर के कोड में कोई दूसरा बदलाव नहीं करना चाहिए। ऐसे में कोड में और भी bug जुड़ सकते हैं।
- अगर प्रोग्राम के किसी एक हिस्से में error आता है, तब इस बात की ज्यादा सम्भावना रहती है कि उस प्रोग्राम में और भी जगह error हो। इसलिए यह सुझाव दिया जाता है कि अगर एक हिस्से में error मिले तो पूरा प्रोग्राम स्कैन किया जाना चाहिए।
- error को ठीक करने के लिए अगर प्रोग्राम के किसी कोड में बदलाव किया गया है तो वह सही होना चाहिए और उसकी वजह से बाकि प्रोग्राम के आउटपुट पर प्रभाव नहीं पड़ना चाहिए। इसके लिए रिग्रेशन टेस्टिंग किया जाता है।
तकनीक (debugging techniques in hindi)
Debugging के दौरान कई प्रकार के error सामने आते हैं, जिनमे से कुछ कम हानिकारक होते हैं, जैसे कोड में गलत function का होना। अगर कोई error खतरनाक हो तो उससे सिस्टम failure भी हो सकता है।
एक बार जैसे ही सॉफ्टवेयर सिस्टम के error के बारे में पता चल जाता है, उसको हल करने के लिए निम्नलिखित कदम उठाए जाते हैं:-
- Defect का पता लगाना:- सिस्टम के error को पहचाना जाता है और उसकी Defect रिपोर्ट बनाई जाती है।
- डिफेक्ट के सबूत:- एक सॉफ्टवेयर इंजीनियर फिर Defect रिपोर्ट की जाँच करता है। डिफेक्ट की पुष्टि करने से पहले वह कुछ बातें जांचता है जैसे कि क्या सिस्टम में वाकई डिफेक्ट है? क्या वह डिफेक्ट फिर से आ सकता है? डिफेक्ट होने पर सिस्टम कैसे काम कर रहा है आदि।
- डिफेक्ट का हल:- जैसे ही डिफेक्ट के असली कारण का पता चल जाता है, कोड में बदलाव करके error को इस तरह सुधारा जाता है कि उसमे दुबारा कोई डिफेक्ट न आये।
नियम (debugging strategies in hindi)
Debugging का काम कठिन और समय लेने वाला होता है, इसलिए इसको करने से पहले एक स्ट्रेटेजी बनाना जरूरी होता है। इनमें से कुछ स्ट्रेटेजी इस प्रकार हैं:-
Brute Force मेथड: यह सबसे प्रमुख तरीका है लेकिन कम असरदार है। इसका उपयोग तब होता है जब Debugging के दूसरे तरीके बेअसर हो जाते हैं। यहाँ मेमोरी या स्टोरेज डंप के आधार पर Debugging किया जाता है। प्रोग्राम में ऐसे बहुत से आउटपुट स्टेटमेंट होते हैं जिनमें बहुत से information होते हैं।
इनके जाँच से error के कारण का पता चल जाता है। लेकिन यह सब करने के लिए बहुत मात्रा में अनावश्यक (irrevalent) डाटा की जरूरत होती है इसमें बहुत समय लगता है और कोई एक्सपर्ट ही इसे कर सकता है।
Induction स्ट्रेटेजी:– इस प्रक्रिया में यह मान कर चला जाता है कि एक बार जब error का पता चल जाता है तब उनके बीच का रिलेशन बनाया जाता है फिर error को इन रिलेशनशिप के आधार पर पहचाना जाता है।
इसके अंतर्गत पहले जरुरी डाटा को पहचाना किया जाता है, उनको organize किया जाता है, डाटा के लिए hypothesis तैयार किया जाता है फिर उसको prove करते हैं जिससे error के होने का सबूत मिलता है। अगर hypothesis के आधार पर error नहीं मिलते यानि कि उस hypothesis में गड़बड़ी है।
Deduction स्ट्रेटेजी:– यहां पहले सभी कारण को पहचाना जाता है। फिर हर कारण की जाँच की जाती है। अगर कोई जाँच invalid निकलता है तो उस कारण को हटा दिया जाता है। यह लगभग Induction स्ट्रेटेजी के समान है।
आप अपने सवाल और सुझाव नीचे कमेंट बॉक्स में व्यक्त कर सकते हैं।
Bahut badhiya likha he aapne debugging ke bare me