मॉड्यूल परीक्षण क्या है? परिभाषा, उदाहरण

⚡ स्मार्ट सारांश

मॉड्यूल टेस्टिंग में असेंबल किए गए प्रोग्राम के बजाय अलग-अलग सबप्रोग्राम, सबरूटीन, क्लास और प्रोसीजर की जांच की जाती है, इसलिए दोष कोड के एक छोटे, अच्छी तरह से समझे जाने वाले ब्लॉक के भीतर सामने आते हैं जहां उन्हें ढूंढना और ठीक करना सस्ता रहता है।

  • 🎯 उद्देश्य: इसका उद्देश्य मॉड्यूल में मौजूद त्रुटियों को उजागर करना है, न कि यह प्रदर्शित करना कि मॉड्यूल काम करता है।
  • ⚪ अभिविन्यास: यह तकनीक काफी हद तक व्हाइट बॉक्स है, जिसमें विनिर्देशों से लिए गए ब्लैक बॉक्स केसों का उपयोग किया गया है।
  • ⏩ समानांतरवाद: एक ही समय में कई मॉड्यूल का परीक्षण किया जा सकता है, जिससे समग्र परीक्षण अवधि कम हो जाती है।
  • 🔗 दो विधियाँ: मॉड्यूल को या तो क्रमिक रूप से, चरण दर चरण, या गैर-क्रमिक रूप से एक ही बार में संयोजित किया जाता है।
  • 🧰 मचान: ड्राइवर मॉड्यूल को परीक्षण डेटा प्रदान करते हैं, जबकि स्टब्स उन मॉड्यूल का प्रतिनिधित्व करते हैं जिन्हें वे कॉल करते हैं।
  • 🆚 स्वामित्व: टेस्टर कोडिंग के बाद मॉड्यूल टेस्ट लिखते हैं, जबकि डेवलपर कोडिंग के दौरान यूनिट टेस्ट लिखते हैं।
  • ⚠️ चुनौतियां: गैर-क्रमिक कार्य, गलत समझे गए टेस्ट डुप्लिकेट और बार-बार डिबगिंग करने में ही अधिकांश प्रयास खर्च हो जाता है।

मॉड्यूल परीक्षण को विधियों, ड्राइवरों, स्टब्स और तुलनाओं के साथ समझाया गया है।

मॉड्यूल परीक्षण क्या है?

मॉड्यूल परीक्षण मॉड्यूल टेस्टिंग एक प्रकार का सॉफ्टवेयर टेस्टिंग है जो किसी प्रोग्राम के अलग-अलग सबप्रोग्राम, सबरूटीन, क्लास या प्रोसीजर की जांच करता है। पूरे सॉफ्टवेयर प्रोग्राम को एक साथ टेस्ट करने के बजाय, मॉड्यूल टेस्टिंग प्रोग्राम के छोटे-छोटे घटकों को टेस्ट करने की सलाह देता है।

मॉड्यूल परीक्षण मुख्य रूप से व्हाइट बॉक्स आधारित होता है। मॉड्यूल परीक्षण का उद्देश्य मॉड्यूल के सही ढंग से काम करने को प्रदर्शित करना नहीं है, बल्कि उसमें मौजूद त्रुटि को प्रदर्शित करना है। यह अंतर महत्वपूर्ण है: यदि परीक्षण में कोई त्रुटि नहीं मिलती है, तो इससे बहुत कम पुष्टि होती है, जबकि यदि परीक्षण में कोई दोष उजागर होता है, तो इसका अर्थ है कि परीक्षण ने अपना काम कर दिया है।

मॉड्यूल स्तर की टेस्टिंग से टेस्टिंग प्रक्रिया में समानांतरता लाने की सुविधा भी मिलती है, क्योंकि इससे पूरी बिल्ड प्रक्रिया का इंतजार करने के बजाय एक साथ कई मॉड्यूल का परीक्षण करने का अवसर मिलता है।

मॉड्यूल परीक्षण क्यों करें

मॉड्यूल परीक्षण की अनुशंसा की जाती है क्योंकि यह दोष का पता लगाने की लागत को बदल देता है।

  • प्रोग्राम के छोटे-छोटे हिस्सों में त्रुटियों या बग्स की पहचान करने की संभावना अधिक हो जाती है।
  • एक साथ कई मॉड्यूल का परीक्षण किया जा सकता है, और इसलिए यह दृष्टिकोण समानांतर परीक्षण का समर्थन करता है।
  • परीक्षण की जटिलता को आसानी से प्रबंधित किया जा सकता है, क्योंकि प्रत्येक मॉड्यूल के बारे में अलग से तर्क दिया जाता है।
  • एक मॉड्यूल के अंदर एक दोष पाया गया है tracकम मात्रा में कोड को प्रोसेस करने में सक्षम होने के कारण, डिबगिंग का समय काफी कम हो जाता है।

मॉड्यूल परीक्षण कैसे करें?

डिजाइनिंग ए परीक्षण का मामला मॉड्यूल टेस्टिंग का यह एक महत्वपूर्ण हिस्सा है। मॉड्यूल टेस्ट के लिए टेस्ट केस डिजाइन करते समय, एक टेस्टर को दो बातों का ध्यान रखना होता है।

  • मॉड्यूल के लिए विशिष्टता
  • मॉड्यूल का स्रोत कोड

मॉड्यूल के तर्क का विश्लेषण करने के लिए निम्नलिखित में से एक या अधिक का उपयोग करें। सफेद बॉक्स विधियों का प्रयोग करें, और फिर इन परीक्षण मामलों को लागू करके पूरक करें। ब्लैक बॉक्स मॉड्यूल विनिर्देश के लिए विधियों का चयन करें। चुने गए पथों के साथ-साथ यथार्थवादी मान भी उतने ही महत्वपूर्ण हैं, इसलिए तैयारी करें। परीक्षण डेटा मामलों के बाद नहीं बल्कि मामलों के साथ-साथ।

टेस्ट केस डिज़ाइन हो जाने के बाद, अगला चरण परीक्षण के लिए मॉड्यूल को संयोजित करना है। इसके लिए उपयोग की जाने वाली विधि या तो एक वृद्धिशील या एक गैर-वृद्धिशील विधि.

  • गैर-वृद्धिशील विधि सभी मॉड्यूल का परीक्षण स्वतंत्र रूप से किया जाता है। यह पहले सभी मॉड्यूल को संयोजित करता है और फिर पूरे प्रोग्राम का परीक्षण करता है।
  • वृद्धिशील विधि — प्रत्येक मॉड्यूल का पहले परीक्षण किया जाता है और फिर उसे धीरे-धीरे परीक्षण किए गए मॉड्यूल के संग्रह में जोड़ा जाता है। यह चरणबद्ध तरीके से पुनः परीक्षण करता है।
  • इंक्रीमेंटल टेस्टिंग के अंतर्गत दो दृष्टिकोण हैं, ऊपर नीचे करो और नीचे तक परीक्षण.
  • चयनित डेटा के साथ मॉड्यूल को निष्पादित करने के लिए, परीक्षण डेटा प्रदान करने, निष्पादन की निगरानी करने और परिणामों को कैप्चर करने के लिए एक ड्राइवर की आवश्यकता होती है।

इन दोनों विधियों के बीच चुनाव करना सेटअप में लगने वाले प्रयास और निदान की संभावना के बीच एक संतुलन बनाने पर निर्भर करता है।

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

मॉड्यूल परीक्षण में ड्राइवर और स्टब्स

ऊपर उल्लिखित ड्राइवर एक जोड़ी का एक हिस्सा है। चूंकि परीक्षण के तहत मॉड्यूल शायद ही कभी कॉल चेन के शीर्ष या नीचे स्थित होता है, इसलिए परीक्षक इसके दोनों ओर जो भी कोड गायब होता है, उसके स्थान पर डमी कोड का उपयोग करते हैं।

  • चालक — यह परीक्षण किए जा रहे मॉड्यूल के ऊपर स्थित कॉलिंग मॉड्यूल को प्रतिस्थापित करता है। यह परीक्षण डेटा प्रदान करता है, मॉड्यूल को सक्रिय करता है, निष्पादन की निगरानी करता है और परिणामों को कैप्चर करता है। बॉटम-अप परीक्षण ड्राइवरों पर निर्भर करता है, क्योंकि निचले मॉड्यूल ऊपरी मॉड्यूल से पहले तैयार होते हैं।
  • ठूंठ — यह परीक्षण किए जा रहे मॉड्यूल के नीचे स्थित किसी कॉल किए गए मॉड्यूल को प्रतिस्थापित करता है। यह कॉल स्वीकार करता है और एक निश्चित, ज्ञात प्रतिक्रिया लौटाता है ताकि परीक्षण किया जा रहा मॉड्यूल अपना कार्य पूरा कर सके। टॉप-डाउन परीक्षण स्टब्स पर निर्भर करता है, क्योंकि उच्चतर मॉड्यूल पहले तैयार होते हैं।

एक उदाहरण से यह युग्मन स्पष्ट हो जाता है। यदि भुगतान-गणना मॉड्यूल पूरा हो चुका है, जबकि उसे कॉल करने वाली चेकआउट स्क्रीन पूरी नहीं हुई है, तो ड्राइवर मॉड्यूल को ऑर्डर के कुल योग का एक सेट भेजता है और जो परिणाम आता है उसे रिकॉर्ड करता है। यदि मॉड्यूल द्वारा कॉल की जाने वाली कर-खोज सेवा भी अधूरी है, तो एक स्टब एक निश्चित कर दर लौटाता है ताकि गणना जारी रह सके। कोई भी ढांचागत भाग भेजा नहीं जाता; असली मॉड्यूल आने पर दोनों को हटा दिया जाता है, यही कारण है कि बाद में परीक्षण दोहराव की गलतफहमी को एक आवर्ती चुनौती के रूप में सूचीबद्ध किया गया है।

मॉड्यूल परीक्षण के लिए उदाहरण युक्तियाँ

मॉड्यूल टेस्टिंग करने से पहले कुछ बातों का ध्यान रखना चाहिए।

  • Revउपयोग करने से पहले टेस्ट केस देख लें।
  • विसंगतियों के स्रोत को लेकर भ्रम से बचें।
  • स्वचालित परीक्षण उपकरणों का उपयोग करें।
  • उन चरों की जांच करें जिनमें कोई बदलाव नहीं होना चाहिए।
  • सेल्फ-टेस्ट से बचने के लिए परीक्षकों के बीच मॉड्यूल की अदला-बदली करें।
  • टेस्ट केस का पुनः उपयोग करें।

पांचवीं सलाह अपनी लंबाई से कहीं अधिक महत्वपूर्ण है। जो डेवलपर केवल अभी-अभी लिखे गए मॉड्यूल का परीक्षण करता है, वह उन्हीं मान्यताओं को दोहराता है जिनके कारण दोष उत्पन्न हुआ था, इसलिए मॉड्यूल को अलग-अलग लोगों के बीच बारी-बारी से उपयोग करना गुणवत्ता में सुधार के सबसे सस्ते तरीकों में से एक है।

यूनिट परीक्षण बनाम मॉड्यूल परीक्षण

कई टीमों में इन दोनों शब्दों का प्रयोग एक दूसरे के स्थान पर किया जाता है, फिर भी इनके लेखक और कार्यक्षेत्र अलग-अलग होते हैं।

मॉड्यूल परीक्षण इकाई का परीक्षण
मॉड्यूल परीक्षण, डेवलपर द्वारा कुछ कोड लिखे जाने के बाद परीक्षक द्वारा लिखे गए परीक्षणों का एक संग्रह है इकाई परीक्षण सॉफ्टवेयर विकास प्रक्रिया के दौरान डेवलपर द्वारा लिखे गए परीक्षणों का संग्रह ही परीक्षण कहलाता है।
मॉड्यूल परीक्षण में यूनिट परीक्षणों को संयोजित करना शामिल हो सकता है। यूनिट परीक्षण में इकाइयों का अलग-अलग परीक्षण किया जा सकता है।

मॉड्यूल टेस्टिंग बनाम कंपोनेंट टेस्टिंग बनाम इंटीग्रेशन टेस्टिंग

मॉड्यूल परीक्षण दो संबंधित स्तरों के बगल में स्थित है, जिन्हें आसानी से इसके साथ भ्रमित किया जा सकता है। तालिका उन्हें परीक्षण के अंतर्गत आने वाले विषय और सामान्यतः परीक्षण करने वाले व्यक्ति के आधार पर अलग करती है।

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

रोजमर्रा के उपयोग में घटक परीक्षण मॉड्यूल परीक्षण को अक्सर एक ही गतिविधि के रूप में माना जाता है, जबकि एकीकरण जांच यह प्रक्रिया तभी शुरू होती है जब सभी मॉड्यूल अपने-अपने चरण में उत्तीर्ण हो जाते हैं।

मॉड्यूल परीक्षण में चुनौतियाँ

मॉड्यूल टेस्टिंग शुरू करने पर टीमों को अक्सर इन्हीं चुनौतियों का सामना करना पड़ता है।

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

अक्सर पूछे जाने वाले प्रश्न

xUnit परिवार लगभग सभी भाषाओं को कवर करता है, जिसमें मॉकिंग लाइब्रेरी स्टब्स प्रदान करती हैं और एक कवरेज टूल यह दर्शाता है कि किन-किन पाथ तक पहुंचा गया। भाषा का चुनाव मॉड्यूल की भाषा के आधार पर किया जाता है, न कि परीक्षण स्तर के आधार पर।

एक मॉडल मॉड्यूल स्रोत को पढ़ता है, शाखाओं की गणना करता है और प्रत्येक के लिए एक मामला प्रस्तावित करता है, जिसमें सीमा मान भी शामिल होते हैं जिन्हें मैन्युअल पास अक्सर अनदेखा कर देता है। Revयह देखना आवश्यक बना रहता है, क्योंकि उत्पन्न मामले इस बात की पुष्टि करते हैं कि कोड क्या करता है न कि विनिर्देश में क्या आवश्यक है।

जी हां, और स्केफोल्डिंग ही वह जगह है जहां ऐसे सहायक सबसे अच्छा प्रदर्शन करते हैं, क्योंकि ड्राइवर या स्टब एक ज्ञात आकार वाला दोहराव वाला कोड होता है। लौटाए गए मानों के लिए अभी भी मानवीय निर्णय की आवश्यकता होती है, क्योंकि एक विश्वसनीय दिखने वाला स्टब उस दोष को छिपा सकता है जिसकी खोज की जा रही है।

यह पर्याप्त है कि मॉड्यूल की प्रत्येक शाखा और प्रत्येक सीमा का कम से कम एक बार अभ्यास किया गया हो। केवल प्रतिशत लक्ष्य भ्रामक है, क्योंकि उच्च कथन कवरेज के बावजूद भी संपूर्ण निर्णय परिणाम अछूते रह सकते हैं।

मॉड्यूल के कंपाइल होने के बाद और उसके इंटरफेस के एक साथ उपयोग होने से पहले, डिलीवर किए गए कोड पर यह पहला परीक्षण स्तर होता है, यही कारण है कि यहाँ पकड़े गए दोष कभी भी एकीकरण या सिस्टम चरणों तक नहीं पहुँचते।

मौजूदा कोड का पालन करें। टॉप-डाउन विधि उन परियोजनाओं के लिए उपयुक्त है जहां नियंत्रण लॉजिक पहले लिखा जाता है और निचले मॉड्यूल को स्टब किया जाता है; बॉटम-अप विधि उन परियोजनाओं के लिए उपयुक्त है जहां यूटिलिटी मॉड्यूल पहले आते हैं और ड्राइवर उन्हें कॉल करते हैं।

मॉड्यूल सुचारू रूप से संकलित हो जाता है, इसका विनिर्देश उपलब्ध है, इसकी निर्भरताएँ या तो मौजूद हैं या अधूरी हैं, और परीक्षण डेटा तैयार है। विनिर्देश के बिना शुरू करने से यह अभ्यास कोड के विवरण में बदल जाता है।

परीक्षण से यह कभी सिद्ध नहीं हो सकता कि मॉड्यूल में कोई दोष नहीं है, बल्कि यह केवल यह साबित करता है कि परीक्षण किए गए मामलों में यह सफल रहा। इसलिए, मॉड्यूल को विफल करने का प्रयास करने वाले परीक्षण रन डिज़ाइन करने से सफल होने की अपेक्षा वाले परीक्षण रन डिज़ाइन करने की तुलना में अधिक जानकारी प्राप्त होती है।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: