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

- यूनिट परीक्षण विकास चक्र में कीड़े को जल्दी ठीक करने और लागत बचाने में मदद करते हैं।
- यह डेवलपर्स को परीक्षण कोड आधार को समझने में मदद करता है और उन्हें जल्दी से बदलाव करने में सक्षम बनाता है
- अच्छी इकाई परीक्षण परियोजना प्रलेखन के रूप में कार्य करते हैं
- यूनिट परीक्षण कोड के पुन: उपयोग में मदद करते हैं। अपने कोड और अपने परीक्षण दोनों को अपने नए प्रोजेक्ट पर माइग्रेट करें । जब तक परीक्षण फिर से न चलें तब तक कोड को घुमाएँ।
यूनिट टेस्टिंग कैसे करें
यूनिट टेस्टिंग करने के लिए , डेवलपर्स सॉफ्टवेयर एप्लिकेशन में एक विशिष्ट फ़ंक्शन का परीक्षण करने के लिए कोड का एक भाग लिखते हैं। डेवलपर्स इस फ़ंक्शन को और अधिक सख्ती से परीक्षण करने के लिए अलग कर सकते हैं जो फ़ंक्शन और अन्य इकाइयों के बीच अनावश्यक निर्भरता को प्रकट करता है ताकि निर्भरता को समाप्त किया जा सके। डेवलपर्स आमतौर पर यूनिट टेस्टिंग के लिए स्वचालित परीक्षण मामलों को विकसित करने के लिए यूनिटटेस्ट फ्रेमवर्क का उपयोग करते हैं।
यूनिट टेस्टिंग दो तरह की होती है
- गाइड
- स्वचालित
यूनिट परीक्षण आमतौर पर स्वचालित है, लेकिन फिर भी मैन्युअल रूप से प्रदर्शन किया जा सकता है। सॉफ्टवेयर इंजीनियरिंग एक दूसरे के पक्ष में नहीं है, लेकिन स्वचालन को प्राथमिकता दी जाती है। इकाई परीक्षण के लिए एक मैनुअल दृष्टिकोण चरण-दर-चरण अनुदेशात्मक दस्तावेज़ को नियोजित कर सकता है।
स्वचालित दृष्टिकोण के तहत-
- एक डेवलपर केवल फ़ंक्शन का परीक्षण करने के लिए एप्लिकेशन में कोड का एक भाग लिखता है। वे बाद में टिप्पणी करेंगे और अंत में परीक्षण कोड हटा देंगे जब आवेदन तैनात किया जाएगा।
- एक डेवलपर भी इसे अधिक कठोरता से परीक्षण करने के लिए फ़ंक्शन को अलग कर सकता है। यह एक अधिक गहन इकाई परीक्षण अभ्यास है जिसमें अपने प्राकृतिक वातावरण की तुलना में अपने स्वयं के परीक्षण वातावरण में कोड की कॉपी और पेस्ट शामिल है। कोड को अलग करने से कोड के परीक्षण और उत्पाद में अन्य इकाइयों या डेटा रिक्त स्थान के बीच अनावश्यक निर्भरता प्रकट करने में मदद मिलती है । ये निर्भरताएँ तब समाप्त की जा सकती हैं।
- एक कोडर आमतौर पर स्वचालित परीक्षण मामलों को विकसित करने के लिए एक यूनिटटेस्ट फ्रेमवर्क का उपयोग करता है। एक ऑटोमेशन फ्रेमवर्क का उपयोग करके, कोड की शुद्धता को सत्यापित करने के लिए डेवलपर कोड को परीक्षण में मापदंड बनाता है। परीक्षण मामलों के निष्पादन के दौरान, फ्रेमवर्क परीक्षण मामलों में विफल रहता है। सारांश में कई फ्रेमवर्क स्वचालित रूप से ध्वज और रिपोर्ट करेंगे, ये असफल परीक्षण के मामले हैं। एक विफलता की गंभीरता के आधार पर, फ्रेमवर्क बाद के परीक्षण को रोक सकता है।
- यूनिट टेस्टिंग का वर्कफ़्लो 1 है) टेस्ट केसेस बनाएँ 2) रिव्यू / रिवर्ट 3) बेसलाइन 4) एग्ज़िट टेस्ट केसेस।
इकाई परीक्षण तकनीक
यूनिट परीक्षण तकनीक मुख्य रूप से तीन भागों जो कि इनपुट और आउटपुट, व्हाइट बॉक्स टेस्टिंग कि सॉफ्टवेयर अनुप्रयोग और ग्रे बॉक्स टेस्टिंग कि परीक्षण निष्पादित करने के लिए प्रयोग किया जाता है के कार्यात्मक व्यवहार का परीक्षण शामिल है के साथ यूजर इंटरफेस का परीक्षण शामिल है ब्लैक बॉक्स टेस्टिंग कर रहे हैं में वर्गीकृत किया जाता सुइट्स, टेस्ट मेथड्स, टेस्ट केस और रिस्क एनालिसिस करना।
यूनिट टेस्टिंग में उपयोग की जाने वाली कोड कवरेज तकनीकों को नीचे सूचीबद्ध किया गया है:
- स्टेटमेंट कवरेज
- निर्णय कवरेज
- शाखा कवरेज
- हालत कवरेज
- परिमित स्टेट मशीन कवरेज
अधिक जानकारी के लिए https://www.guru99.com/code-coverage.html देखें
यूनिट टेस्ट उदाहरण: नकली वस्तुएं
यूनिट परीक्षण कोड के वर्गों का परीक्षण करने के लिए बनाई जा रही नकली वस्तुओं पर निर्भर करता है जो अभी तक एक पूर्ण अनुप्रयोग का हिस्सा नहीं हैं। मॉक ऑब्जेक्ट प्रोग्राम के लापता भागों के लिए भरते हैं।
उदाहरण के लिए, आपके पास एक फ़ंक्शन हो सकता है जिसे चर या ऑब्जेक्ट की आवश्यकता होती है जो अभी तक नहीं बनाई गई हैं। इकाई परीक्षण में, उन लोगों के लिए कोड के उस खंड पर किए गए इकाई परीक्षण के उद्देश्य के लिए पूरी तरह से बनाई गई नकली वस्तुओं के रूप में हिसाब किया जाएगा।
इकाई परीक्षण उपकरण
यूनिट परीक्षण के साथ सहायता के लिए कई स्वचालित इकाई परीक्षण सॉफ्टवेयर उपलब्ध हैं। हम नीचे कुछ उदाहरण प्रदान करेंगे:
- Junit: Junit जावा प्रोग्रामिंग भाषा के लिए उपयोग किए जाने वाले परीक्षण उपकरण का उपयोग करने के लिए एक स्वतंत्र है। यह परीक्षण विधि की पहचान करने के लिए प्रदान करता है। यह उपकरण पहले डेटा का परीक्षण करता है और फिर कोड के टुकड़े में डाला जाता है।
- NUnit: NUnit का व्यापक रूप से सभी .net भाषाओं के लिए यूनिट-टेस्टिंग फ्रेमवर्क उपयोग किया जाता है। यह एक खुला स्रोत उपकरण है जो मैन्युअल रूप से स्क्रिप्ट लिखने की अनुमति देता है। यह डेटा-संचालित परीक्षणों का समर्थन करता है जो समानांतर में चल सकते हैं।
- JMockit: JMockit ओपन सोर्स यूनिट टेस्टिंग टूल है। यह लाइन और पथ मैट्रिक्स के साथ एक कोड कवरेज उपकरण है। यह रिकॉर्डिंग और सत्यापन सिंटैक्स के साथ एपीआई की नकल करने की अनुमति देता है। यह उपकरण लाइन कवरेज, पथ कवरेज और डेटा कवरेज प्रदान करता है।
- EMMA: EMMA जावा भाषा में लिखे गए कोड के विश्लेषण और रिपोर्टिंग के लिए एक ओपन-सोर्स टूलकिट है। एम्मा विधि, लाइन, बुनियादी ब्लॉक जैसे कवरेज प्रकारों का समर्थन करता है। यह जावा-आधारित है इसलिए यह बाहरी पुस्तकालय निर्भरता के बिना है और स्रोत कोड तक पहुंच सकता है।
- PHPUnit: PHPUnit PHP प्रोग्रामर के लिए एक इकाई परीक्षण उपकरण है। यह कोड के छोटे हिस्से लेता है जिसे इकाइयाँ कहा जाता है और उनमें से प्रत्येक का अलग-अलग परीक्षण किया जाता है। उपकरण डेवलपर्स को पूर्व-परिभाषित अभिकथन विधियों का उपयोग करने की अनुमति भी देता है ताकि सिस्टम एक निश्चित तरीके से व्यवहार करे।
वे उपलब्ध इकाई परीक्षण उपकरणों में से कुछ ही हैं। विशेष रूप से सी भाषाओं और जावा के लिए बहुत अधिक हैं, लेकिन आप जिस भाषा का उपयोग करते हैं, उसकी प्रोग्रामिंग आवश्यकताओं के लिए एक इकाई परीक्षण उपकरण ढूंढना सुनिश्चित करें।
टेस्ट ड्रिवेन डेवलपमेंट (टीडीडी) और यूनिट टेस्टिंग
टीडीडी में इकाई परीक्षण में परीक्षण ढांचे का व्यापक उपयोग शामिल है। स्वचालित इकाई परीक्षण बनाने के लिए एक यूनिट टेस्ट फ्रेमवर्क का उपयोग किया जाता है। इकाई परीक्षण रूपरेखा टीडीडी के लिए अद्वितीय नहीं हैं, लेकिन वे इसके लिए आवश्यक हैं। नीचे हम कुछ को देखते हैं कि टीडीडी इकाई परीक्षण की दुनिया में क्या लाता है:
- कोड से पहले टेस्ट लिखे जाते हैं
- परीक्षण के ढांचे पर भरोसा करना
- आवेदनों में सभी वर्गों का परीक्षण किया जाता है
- त्वरित और आसान एकीकरण संभव है
यूनिट टेस्टिंग मिथ
मिथक: इसके लिए समय की आवश्यकता होती है, और मैं हमेशा ओवरसाइक्ड रहता हूं मेरा कोड रॉक सॉलिड है! मुझे यूनिट परीक्षणों की आवश्यकता नहीं है।
उनके स्वभाव से मिथक गलत धारणाएं हैं। इन मान्यताओं के कारण एक दुष्चक्र होता है -
सत्य है इकाई परीक्षण विकास की गति को बढ़ाता है।
प्रोग्रामर सोचते हैं कि एकीकरण परीक्षण सभी त्रुटियों को पकड़ लेगा और इकाई परीक्षण को निष्पादित नहीं करेगा। एक बार इकाइयाँ एकीकृत हो जाने के बाद, बहुत ही साधारण त्रुटियां जो बहुत आसानी से मिल सकती हैं और जांची गई इकाई में तय की गई है, का पता लगाने और तय होने में बहुत लंबा समय लगता है।
इकाई परीक्षण लाभ
- डेवलपर्स यह जानने की कोशिश कर रहे हैं कि यूनिट द्वारा क्या कार्यक्षमता प्रदान की जाती है और इसका उपयोग करने के लिए यूनिट एपीआई की बुनियादी समझ हासिल करने के लिए यूनिट परीक्षणों को कैसे देख सकते हैं।
- यूनिट परीक्षण प्रोग्रामर को बाद की तारीख में कोड को रिफलेक्टर करने की अनुमति देता है, और सुनिश्चित करें कि मॉड्यूल अभी भी सही तरीके से काम करता है (यानी प्रतिगमन परीक्षण)। प्रक्रिया सभी कार्यों और विधियों के लिए परीक्षण मामलों को लिखने के लिए है ताकि जब भी कोई परिवर्तन गलती करता है, तो इसे जल्दी से पहचाना और तय किया जा सके।
- इकाई परीक्षण के मॉड्यूलर प्रकृति के कारण, हम परियोजना के कुछ हिस्सों का परीक्षण कर सकते हैं बिना दूसरों की प्रतीक्षा किए।
यूनिट परीक्षण नुकसान
- यूनिट टेस्टिंग से किसी प्रोग्राम में हर एरर को पकड़ने की उम्मीद नहीं की जा सकती है। सबसे तुच्छ कार्यक्रमों में भी सभी निष्पादन मार्गों का मूल्यांकन करना संभव नहीं है
- इसकी प्रकृति द्वारा इकाई परीक्षण कोड की एक इकाई पर केंद्रित है। इसलिए यह एकीकरण त्रुटियों या व्यापक सिस्टम स्तर त्रुटियों को नहीं पकड़ सकता है।
यह सिफारिश की जाती है कि इकाई परीक्षण का उपयोग अन्य परीक्षण गतिविधियों के साथ किया जाए।
यूनिट टेस्टिंग बेस्ट प्रैक्टिस
- यूनिट टेस्ट के मामले स्वतंत्र होने चाहिए। किसी भी वृद्धि या आवश्यकताओं में परिवर्तन के मामले में, यूनिट परीक्षण मामलों को प्रभावित नहीं किया जाना चाहिए।
- एक बार में केवल एक कोड का परीक्षण करें।
- अपनी इकाई परीक्षणों के लिए स्पष्ट और सुसंगत नामकरण सम्मेलनों का पालन करें
- किसी भी मॉड्यूल में कोड में परिवर्तन के मामले में, सुनिश्चित करें कि मॉड्यूल के लिए एक संबंधित इकाई टेस्ट केस है, और मॉड्यूल कार्यान्वयन को बदलने से पहले परीक्षण पास करता है
- इकाई परीक्षण के दौरान पहचाने जाने वाले कीड़े एसडीएलसी में अगले चरण के लिए आगे बढ़ने से पहले तय किए जाने चाहिए
- "अपने कोड के रूप में परीक्षण" दृष्टिकोण को अपनाएं। बिना परीक्षण के आप जितना अधिक कोड लिखेंगे, त्रुटियों के लिए आपको उतने ही अधिक मार्ग देखने होंगे।

सारांश
- UNIT TESTING को एक प्रकार के सॉफ़्टवेयर परीक्षण के रूप में परिभाषित किया जाता है जहाँ किसी सॉफ़्टवेयर की व्यक्तिगत इकाइयों या घटकों का परीक्षण किया जाता है।
- जैसा कि आप देख सकते हैं, इकाई परीक्षण में बहुत कुछ शामिल हो सकता है। यह परीक्षण किया जा रहा है और परीक्षण रणनीतियों, उपकरण और दर्शन के आधार पर जटिल या सरल हो सकता है। यूनिट परीक्षण हमेशा कुछ स्तर पर आवश्यक होता है। यह एक निश्चितता है।