टेस्ट हार्नेस क्या है? (उदाहरण)

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

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

  • 🧩 परिभाषा: एक हार्नेस टेस्ट केस, स्टब्स, ड्राइवर, टारगेट डिप्लॉयमेंट पोर्ट डिटेल्स और टेस्ट की जा रही सोर्स फाइल को एक रन करने योग्य यूनिट में बंडल करता है।
  • 🎯 यह क्यों मायने रखती है: डेटाबेस, गेटवे या बैकएंड मॉड्यूल के अस्तित्व में आने से पहले ही परीक्षण शुरू हो जाता है, इसलिए दोष जल्दी ही सामने आ जाते हैं जब मरम्मत की लागत सबसे कम रहती है।
  • 🔧 मुख्य भाग: एक्जीक्यूशन इंजन, स्क्रिप्ट रिपॉजिटरी, टेस्ट डेटा स्टोर, स्टब्स, ड्राइवर्स, आउटपुट वैलिडेटर और रिपोर्टिंग लेयर में से प्रत्येक की एक-एक जिम्मेदारी होती है।
  • 🔁 कार्यप्रवाह: स्क्रिप्ट लोड करें, परीक्षण के तहत एप्लिकेशन को इनवोक करें, अनुपलब्ध मॉड्यूल को प्रतिस्थापित करें, आउटपुट कैप्चर करें, अपेक्षाओं के साथ तुलना करें और एक रिपोर्ट प्रकाशित करें।
  • 🛠 टूलींग: JUnit फिट JavaNUnit .NET के अनुकूल है, जबकि Selenium, TestNG, पायटेस्ट, और JMeter वेब, पैरेलल और लोड वर्क के लिए हार्नेस कवरेज का विस्तार करें।
  • 📈 अनुकूलन: स्टब्स को वास्तविक मॉड्यूल व्यवहार के साथ संरेखित रखें, परीक्षण डेटा को स्क्रिप्ट के बाहर संग्रहीत करें, और प्रत्येक निरंतर एकीकरण बिल्ड पर हार्नेस चलाएं।

सॉफ्टवेयर परीक्षण में टेस्ट हार्नेस

सॉफ्टवेयर परीक्षण में टेस्ट हार्नेस परीक्षण निष्पादन को स्वचालित करने के लिए आवश्यक स्टब्स, ड्राइवर और अन्य सहायक उपकरणों का एक संग्रह है। टेस्ट हार्नेस एक परीक्षण लाइब्रेरी का उपयोग करके परीक्षणों को निष्पादित करता है और परीक्षण रिपोर्ट तैयार करता है। टेस्ट हार्नेस में परीक्षण को संकलित करने और चलाने के लिए आवश्यक सभी जानकारी होती है जैसे परीक्षण मामले, लक्ष्य परिनियोजन पोर्ट (TDP), परीक्षण के तहत स्रोत फ़ाइल, स्टब्स, आदि।

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

टेस्ट हार्नेस का उपयोग क्यों करें?

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

टेस्ट हार्नेस

  • परीक्षण प्रक्रिया को स्वचालित करें
  • परीक्षण मामलों के परीक्षण सूट निष्पादित करें
  • संबंधित परीक्षण रिपोर्ट तैयार करें
  • डिबगिंग के लिए समर्थन
  • प्रत्येक परीक्षण के लिए परीक्षण परिणाम रिकॉर्ड करना
  • डेवलपर्स को कोड स्तर पर कोड कवरेज मापने में मदद करता है
  • स्वचालन के माध्यम से प्रणाली की उत्पादकता बढ़ाएँ
  • सॉफ्टवेयर घटकों और अनुप्रयोग की गुणवत्ता में वृद्धि
  • उस जटिल स्थिति को संभालने के लिए जिसे परीक्षकों को अनुकरण करने में कठिनाई हो रही है

ये लाभ छोटे रिलीज़ चक्रों में सबसे अधिक मायने रखते हैं। जब कोड सप्ताह में कई बार शिप होता है, तो एकीकरण चरण तक बनी रहने वाली कोई भी त्रुटि कहीं अधिक लागत का कारण बनती है। tracजिस दिन इसे लिखा गया था, उस दिन एक से अधिक बार यह किसी रुकावट के कारण अटक गया था। हालाँकि, इसका लाभ तभी मिलता है जब सही हिस्सों को जोड़कर पूरा ढांचा तैयार किया जाता है।

टेस्ट हार्नेस के प्रमुख घटक

एक हार्नेस कोई एक प्रोग्राम नहीं है, बल्कि कई हिस्सों का एक संयोजन है, जिनमें से प्रत्येक एक ऐसी बाधा को दूर करता है जो अन्यथा किसी परीक्षण को बिना किसी की देखरेख के चलने से रोक सकती है।

  • टेस्ट स्क्रिप्ट: स्वचालित निर्देश जिनमें किए जाने वाले चरणों और अपेक्षित परिणाम का उल्लेख हो, जो निम्नलिखित के अनुसार लिखे गए हों। परीक्षण स्क्रिप्ट सम्मेलनों।
  • परीक्षण निष्पादन इंजन: यह रनर स्क्रिप्ट को क्रम से पढ़ता है, निर्भरताओं को हल करता है और अनुक्रमिक या समानांतर निष्पादन को ट्रिगर करता है।
  • परीक्षण डेटा भंडार: इनपुट मान स्क्रिप्ट के बाहर CSV, JSON, XML, या पहले से मौजूद डेटाबेस में रखे जाते हैं, जिन्हें अक्सर भरा जाता है डेटा जनरेशन टूल का परीक्षण करें.
  • ड्राइवर्स: डमी कॉलिंग मॉड्यूल जो परीक्षण के तहत घटक को तब आह्वान करते हैं जब वास्तविक ऊपरी परत, जैसे कि उपयोगकर्ता इंटरफ़ेस, अधूरी होती है।
  • स्टब्स: उदाहरण के लिए, डमी मॉड्यूल पहले से तैयार उत्तर लौटाते हैं, जैसे कि एक भुगतान सेवा जो बैंक से संपर्क किए बिना "भुगतान सफल" का उत्तर देती है।
  • आउटपुट वैलिडेटर: अभिकथन तर्क जो वास्तविक आउटपुट की तुलना अपेक्षित मान से करता है और प्रत्येक मामले को सफल या असफल के रूप में चिह्नित करता है।
  • लॉगिंग और रिपोर्टिंग परत: टाइमस्टैम्प, स्क्रीनशॉट, कंसोल आउटपुट और रन सारांश जो हर विफलता को दर्शाते हैं tracबाद में सक्षम।

किसी भी एक हिस्से को हटा देने पर वायरिंग हार्नेस स्वचालित रूप से काम करना बंद कर देता है, क्योंकि तब प्रत्येक बार चलाने पर कुछ न कुछ हाथ से देना पड़ता है।

टेस्ट हार्नेस कैसे काम करता है?

एक हार्नेस हर बार उसी लूप को दोहराता है। उस लूप को जानने से आपको ठीक-ठीक पता चल जाता है कि आपका अपना हार्नेस कहाँ है। स्वचालन परीक्षण एसेट्स प्लग इन होते हैं, और रन के दौरान लाल रंग दिखने पर कौन सा चरण विफल हो रहा है।

  1. पर्यावरण तैयार करें: यह हार्नेस पर्यावरण कॉन्फ़िगरेशन को हल करता है, कनेक्शन खोलता है और फिक्स्चर लोड करता है, इसलिए प्रत्येक रन एक ही ज्ञात स्थिति से शुरू होता है।
  2. टेस्ट स्क्रिप्ट लोड करें: स्क्रिप्ट, पैरामीटर और अपेक्षित परिणाम रिपॉजिटरी से पढ़े जाते हैं। रन टाइम पर कुछ भी टाइप नहीं किया जाता है, यही कारण है कि दूसरा रन पहले रन के समान होता है।
  3. लुप्त मॉड्यूल को प्रतिस्थापित करें: ड्राइवर उन कॉल करने वालों की जगह लेते हैं जो अभी मौजूद नहीं हैं, और स्टब्स उन सेवाओं की जगह लेते हैं जो अधूरी, अस्थिर या कॉल करने के लिए महंगी हैं।
  4. परीक्षण के तहत एप्लिकेशन को प्रारंभ करें: एक्जीक्यूशन इंजन स्क्रिप्ट द्वारा वर्णित वर्कफ़्लो को ट्रिगर करता है, चाहे वह मेथड कॉल हो या कुछ और। API अनुरोध, या ब्राउज़र के साथ परस्पर क्रिया।
  5. वास्तविक आउटपुट कैप्चर करें: रिटर्न वैल्यू, रिस्पॉन्स पेलोड, डेटाबेस पंक्तियाँ, लॉग लाइनें और स्क्रीन की स्थिति, ये सभी उत्पन्न होते ही रिकॉर्ड कर लिए जाते हैं।
  6. अपेक्षित परिणामों से तुलना करें: आउटपुट वैलिडेटर प्रत्येक कैप्चर किए गए मान पर दावा करता है। किसी भी प्रकार की विसंगति मामले को असफल के रूप में चिह्नित करती है और अपेक्षित तथा प्रेक्षित दोनों मानों को रिकॉर्ड करती है।
  7. लॉग करें और रिपोर्ट करें: हार्नेस एक टाइमस्टैम्प्ड रिकॉर्ड करता है। tracयह रन को रिकॉर्ड करता है और एक पास/फेल रिपोर्ट तैयार करता है जिसे डेवलपर बिना कुछ दोबारा चलाए पढ़ सकता है।
  8. चीथड़े कर दो: अस्थायी डेटा, कनेक्शन और स्टब स्थिति को साफ़ कर दिया जाता है ताकि अगला मामला इस मामले से कोई अवशेष विरासत में न ले सके।

💡टिप: जब भी वास्तविक मॉड्यूल में बदलाव हो, अपने स्टब्स को रीफ़्रेश करें। यदि कोई स्टब अभी भी पिछली तिमाही के प्रारूप में उत्तर दे रहा है, तो वह सही रन दिखाएगा जबकि लाइव इंटीग्रेशन पहले ही टूट चुका होगा।

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

ऐसे दो संदर्भ हैं जहां टेस्ट हार्नेस का उपयोग किया जाता है

वही तंत्र दो अलग-अलग उद्देश्यों की पूर्ति करता है, और आप जिस तंत्र में हैं उसके आधार पर शब्दावली में थोड़ा बदलाव आता है।

  1. स्वचालन परीक्षण: इसमें शामिल है परीक्षण स्क्रिप्ट, इन स्क्रिप्ट को चलाने के लिए आवश्यक पैरामीटर और इसका विश्लेषण करने के लिए परिणाम एकत्र करना
  2. एकीकरण परीक्षण: इसका उपयोग कोड या मॉड्यूल की दो इकाइयों को एक साथ रखने के लिए किया जाता है जो एक दूसरे के साथ बातचीत करते हैं ताकि यह जांचा जा सके कि संयुक्त व्यवहार अपेक्षा के अनुरूप है या नहीं

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

टेस्ट हार्नेस के प्रकार

क्योंकि सॉफ्टवेयर कई परतों में निर्मित होता है, इसलिए वायरिंग हार्नेस आमतौर पर उस परत के लिए विशिष्ट होता है जिसकी वह जांच करता है। चार प्रकार लगभग हर परियोजना को कवर करते हैं।

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

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

A सिस्टम टेस्ट हार्नेस यह इंटरफ़ेस, सेवा और डेटाबेस में संपूर्ण एंड-टू-एंड प्रवाह को संचालित करता है, इसलिए प्रणाली परीक्षण यह पुष्टि की जा सकती है कि सभी परतें मौजूद होने पर व्यावसायिक नियम लागू होते हैं। प्रतिगमन परीक्षण हार्नेस फिर प्रत्येक परिवर्तन के बाद संचित प्रक्रिया को पुनः चलाया जाता है, यही कारण है कि प्रतिगमन परीक्षण यह तब व्यावहारिक होता है जब प्रत्येक मर्ज पर सैकड़ों परिदृश्यों को दोहराना पड़ता है।

टेस्ट हार्नेस उपकरण

इनमें से प्रत्येक प्रकार को सामान्यतः किसी मौजूदा टूल पर बनाया जाता है, न कि बिल्कुल नए सिरे से। दो प्रमुख विकल्प यूनिट-लेवल फ्रेमवर्क ही हैं:

इन दो के अलावा, अधिकांश टीमें ऐसे टूल जोड़ती हैं जो ब्राउज़र, एपीआई लेयर या लोड प्रोफ़ाइल तक पहुंच को बढ़ाते हैं। नीचे दी गई तालिका सामान्य विकल्पों को उनकी भूमिका के साथ दर्शाती है।

उपकरण के लिए सबसे उपयुक्त हार्नेस के अंदर भूमिका
JUnit Java यूनिट और एकीकरण सूट आपूर्ति चालक, फिक्स्चर और दावे
नुनीत .NET प्लेटफॉर्म पर C# और VB.NET कोड वही भूमिका JUnit .NET भाषाओं के लिए
Selenium ब्राउज़र आधारित एंड-टू-एंड फ़्लो यह यूजर इंटरफेस लेयर के ड्राइवर के रूप में कार्य करता है।
TestNG बड़ा Java समूह की आवश्यकता वाले सुइट्सping और समानांतर दौड़ यह परीक्षण निष्पादन इंजन के रूप में कार्य करता है।
पायटेस्ट Python सेवाएं और एपीआई स्तर की जांच फिक्स्चर स्टब्स और डेटा प्रदाताओं दोनों के रूप में कार्य करते हैं।
Apache JMeter लोड, तनाव और प्रदर्शन परिदृश्य परीक्षणधीन एप्लिकेशन के विरुद्ध कृत्रिम ट्रैफ़िक उत्पन्न करता है
Postman REST API contracटी सत्यापन यह अधूरे एंडपॉइंट्स के स्थान पर काम करने वाले मॉक सर्वर प्रदान करता है।

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

टेस्ट हार्नेस बनाम टेस्ट फ्रेमवर्क

हार्नेस और ऑटोमेशन फ्रेमवर्क को अक्सर एक ही चीज़ समझा जाता है, जबकि वे अलग-अलग सवालों के जवाब देते हैं: हार्नेस वह है जो टेस्ट को निष्पादित करता है, जबकि फ्रेमवर्क वह संरचना है जिसके भीतर टेस्ट डिज़ाइन किए जाते हैं। नीचे दी गई तालिका में दोनों की तुलना की गई है।

टेस्ट हार्नेस ऑटोमेशन फ्रेमवर्क का परीक्षण करें
परीक्षण हार्नेस ड्राइवर्स और स्टब्स से बना होता है, जो छोटे डमी प्रोग्राम होते हैं जो परीक्षण के तहत सॉफ्टवेयर के साथ इंटरैक्ट करते हैं यह प्रक्रियाओं, कार्यविधियों, सारों का एक समूह है।tracएक ऐसी अवधारणा और वातावरण जिसमें स्वचालित परीक्षणों को डिज़ाइन और कार्यान्वित किया जाता है
आप टेस्ट हार्नेस में स्क्रिप्ट को “रिकॉर्ड और प्लेबैक” नहीं कर सकते एक परीक्षक इस फ्रेमवर्क में मैन्युअल रूप से “रिकॉर्ड और प्लेबैक” स्क्रिप्ट कर सकता है
परीक्षण हार्नेस में परीक्षण को संकलित करने और चलाने के लिए आवश्यक सभी जानकारी होती है, जैसे परीक्षण मामले, लक्ष्य परिनियोजन पोर्ट (टीडीपी), परीक्षण के अंतर्गत स्रोत फ़ाइल, स्टब्स, आदि। परीक्षण स्वचालन फ्रेमवर्क में परीक्षण लाइब्रेरी, परीक्षण उपकरण, स्वचालित परीक्षण पद्धतियां, परीक्षण प्लेटफॉर्म आदि जैसी जानकारी शामिल होती है।
परीक्षण हार्नेस को निम्न श्रेणियों में वर्गीकृत किया गया है
स्वचालन परीक्षण
एकीकरण जांच
स्वचालन ढांचा उदाहरण
डेटा-संचालित परीक्षण
कीवर्ड संचालित परीक्षण
मॉड्यूलरिटी संचालित परीक्षण
हाइब्रिड परीक्षण
मॉडल-आधारित परीक्षण
Code संचालित परीक्षण
व्यवहार-संचालित परीक्षण

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

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

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

पाइपलाइन प्रत्येक कमिट के बाद हार्नेस को कॉल करती है। JenkinsGitHub Actions या GitLab CI द्वारा रन को ट्रिगर किया जाता है, हार्नेस स्टब्स के विरुद्ध स्क्रिप्ट निष्पादित करता है, और जब कोई अभिकथन सही नहीं होता है तो बिल्ड स्वचालित रूप से विफल हो जाता है।

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

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

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