key successful unit testing how developers test their own code
ब्लैक बॉक्स परीक्षक यूनिट परीक्षण के बारे में परवाह नहीं है। उनका मुख्य लक्ष्य कार्यान्वयन विवरण में जाने के बिना आवश्यकताओं के खिलाफ आवेदन को मान्य करना है।
लेकिन एक जिज्ञासा के रूप में या बॉक्स आउट ऑफ़ थिंकिंग , क्या आपने कभी सोचा है कि डेवलपर्स अपने कोड का परीक्षण कैसे करते हैं? परीक्षण के लिए कोड जारी करने से पहले वे परीक्षण करने के लिए किस विधि का उपयोग करते हैं? चुस्त प्रक्रिया में देव-परीक्षण कैसे महत्वपूर्ण है? इस सब का जवाब है यूनिट टेस्टिंग। मैं आपको यूनिट परीक्षण के महत्व पर शिक्षित करना चाहता हूं ताकि विकास और परीक्षण दल एक उत्कृष्ट अनुप्रयोग को डिजाइन, परीक्षण और जारी करने के लिए अधिक सहयोग कर सकें।
भविष्य में कौन जानता है कि आप में से कुछ भी सफेद बॉक्स परीक्षण पर स्विच कर सकते हैं और इन कोड सत्यापन और सुधार तकनीकों का उपयोग कर सकते हैं!
आप क्या सीखेंगे:
यूनिट परीक्षण क्या है?
यूनिट टेस्टिंग कोई नई अवधारणा नहीं है। प्रोग्रामिंग के शुरुआती दिनों से ही यह वहां मौजूद है। आमतौर पर, डेवलपर्स और कभी-कभी सफेद बॉक्स परीक्षक कार्यात्मक आवश्यकताओं को लागू करने के लिए उपयोग किए गए कोड की प्रत्येक इकाई को सत्यापित करके कोड गुणवत्ता में सुधार करने के लिए यूनिट परीक्षण लिखें (उर्फ परीक्षण ने विकास टीडीडी या परीक्षण-पहले विकास किया)।
हम में से अधिकांश क्लासिक परिभाषा जान सकते हैं -
'यूनिट परीक्षण अपने उद्देश्य के खिलाफ परीक्षण योग्य कोड के सबसे छोटे टुकड़े को सत्यापित करने की विधि है।' यदि उद्देश्य या आवश्यकता विफल हो गई तो इकाई परीक्षण विफल हो गया है।
सरल शब्दों में, इसका मतलब है - आवश्यकताओं को लागू करने के लिए लिखे गए कोड (यूनिट) को सत्यापित करने के लिए कोड (यूनिट टेस्ट) का एक टुकड़ा लिखना।
एसडीएलसी में यूनिट परीक्षण
यूनिट परीक्षण में, डेवलपर्स यह सुनिश्चित करने के लिए मैनुअल या स्वचालित परीक्षणों का उपयोग करते हैं कि सॉफ्टवेयर में प्रत्येक इकाई ग्राहक की आवश्यकता को पूरा करती है। यह इकाई परीक्षण के तहत सॉफ्टवेयर में एक व्यक्तिगत कार्य, वस्तु, विधि, प्रक्रिया या मॉड्यूल हो सकती है।
व्यक्तिगत इकाइयों का परीक्षण करने के लिए इकाई परीक्षण लिखना व्यापक परीक्षणों को लिखना आसान बनाता है क्योंकि सभी इकाइयों को एक साथ रखा जाता है। सॉफ्टवेयर विकास के दौरान, यह परीक्षण के पहले स्तर के रूप में किया जाता है।
लेखन इकाई परीक्षण का महत्व
यूनिट टेस्टिंग का उपयोग मजबूत सॉफ्टवेयर घटकों को डिजाइन करने के लिए किया जाता है जो कोड को बनाए रखने और कोड इकाइयों में मुद्दों को खत्म करने में मदद करते हैं। हम सभी सॉफ्टवेयर विकास चक्र के शुरुआती चरण में दोषों को खोजने और ठीक करने के महत्व को जानते हैं। यह परीक्षण उसी उद्देश्य को पूरा करता है।
यह फुर्तीली सॉफ्टवेयर विकास प्रक्रिया का एक अभिन्न अंग है। जब एक रात का निर्माण रन यूनिट टेस्ट सूट चलना चाहिए और रिपोर्ट उत्पन्न की जानी चाहिए। यदि यूनिट परीक्षण में से कोई भी विफल हो गया है, तो क्यूए टीम को सत्यापन के लिए उस बिल्ड को स्वीकार नहीं करना चाहिए।
यदि हम इसे एक मानक प्रक्रिया के रूप में निर्धारित करते हैं, तो कई दोषों को प्रारंभिक विकास चक्र में पकड़ा जाएगा, जिससे बहुत परीक्षण समय की बचत होगी।
मुझे पता है कि कई डेवलपर्स यूनिट टेस्ट लिखने से नफरत करते हैं। वे या तो खराब शेड्यूल या गंभीरता की कमी के कारण खराब यूनिट टेस्ट के मामलों को अनदेखा करते हैं या लिखते हैं (जैसे कि वे खाली यूनिट टेस्ट लिखते हैं, इसलिए उनमें से 100% सफलतापूर्वक गुजरते हैं ;-))। अच्छी इकाई परीक्षण लिखना या उन्हें लिखना बिल्कुल महत्वपूर्ण नहीं है। यह प्रदान करना और भी महत्वपूर्ण है पर्याप्त समय और वास्तविक लाभों के लिए एक सहायक वातावरण।
इकाई परीक्षण के तरीके
इसे 2 तरीकों से किया जा सकता है:
- मैनुअल परीक्षण
- स्वचालित परीक्षण
में मैनुअल परीक्षण परीक्षक किसी भी स्वचालन उपकरण का उपयोग किए बिना परीक्षण मामलों को मैन्युअल रूप से निष्पादित करता है। यहां, परीक्षण के प्रत्येक चरण को मैन्युअल रूप से निष्पादित किया जाता है। मैन्युअल परीक्षण विशेष रूप से परीक्षणों के लिए थकाऊ है जो दोहराव वाले होते हैं और परीक्षण मामलों को बनाने और निष्पादित करने के लिए अधिक प्रयास की आवश्यकता होती है। मैन्युअल परीक्षण के लिए किसी परीक्षण उपकरण के ज्ञान की आवश्यकता नहीं होती है।
यह एक तथ्य है कि 100% स्वचालन संभव नहीं है और इस प्रकार हमेशा कुछ स्तर का मैनुअल परीक्षण किया जाएगा।
में स्वचालित परीक्षण, सॉफ्टवेयर परीक्षण स्वचालन उपकरण का उपयोग परीक्षणों / परीक्षण मामलों को स्वचालित करने के लिए किया जाता है। स्वचालन उपकरण आपके परीक्षण को रिकॉर्ड और सहेज सकता है और इसे किसी भी आगे के मानवीय हस्तक्षेप के बिना आवश्यकतानुसार कई बार फिर से खेला जा सकता है।
ये उपकरण सिस्टम में परीक्षण डेटा भी दर्ज कर सकते हैं और साथ ही साथ परीक्षण के वास्तविक परिणामों की तुलना कर सकते हैं और स्वचालित रूप से रिपोर्ट उत्पन्न कर सकते हैं। हालांकि, परीक्षण स्वचालन उपकरण स्थापित करने की प्रारंभिक लागत अधिक है।
इकाई परीक्षण के भीतर तकनीक
(1) सफेद बॉक्स परीक्षण:
निरंतर एकीकरण और निरंतर वितरण उपकरण
सफेद-बॉक्स परीक्षण में, परीक्षक कोड सहित सॉफ़्टवेयर की आंतरिक संरचना को जानता है और इसे डिज़ाइन और आवश्यकताओं के विरुद्ध परीक्षण कर सकता है। इसलिए सफेद बॉक्स परीक्षण के रूप में भी जाना जाता है पारदर्शी परीक्षण ।
# 2) ब्लैक बॉक्स परीक्षण:
ब्लैक-बॉक्स परीक्षण में, परीक्षक आंतरिक संरचनाओं को या तो सॉफ्टवेयर के कोड को नहीं जानता है।
# 3) ग्रे बॉक्स परीक्षण:
यह भी कहा जाता है अर्ध-पारदर्शी तकनीक परीक्षण जिसका मतलब है, परीक्षक केवल आंशिक रूप से जागरूक होते हैं आवश्यकताओं के साथ आंतरिक संरचना, कार्य और डिजाइन। बैक-एंड में सटीक डेटा प्राप्त करने के लिए फ्रंट-एंड से वास्तविक इनपुट द्वारा डिबगिंग किया जाता है। इसलिए ग्रे बॉक्स को ब्लैक बॉक्स और व्हाइट बॉक्स टेस्टिंग तकनीकों का संयोजन माना जाता है।
ग्रे बॉक्स परीक्षण निम्न प्रकार के परीक्षण को शामिल करता है:
- मैट्रिक्स परीक्षण।
- पैटर्न परीक्षण।
- ऑर्थोगोनल पैटर्न परीक्षण।
- प्रतिगमन परीक्षण।
यूनिट परीक्षण के लाभ
- प्रक्रिया चुस्त हो जाती है: मौजूदा सॉफ़्टवेयर में नए कार्यों या सुविधाओं को जोड़ने के लिए हमें पुराने कोड में बदलाव करने की आवश्यकता है। लेकिन पहले से ही परीक्षण किए गए कोड में चीजों को बदलना जोखिम भरा होने के साथ-साथ महंगा भी हो सकता है।
- कोड की गुणवत्ता में सुधार: जब यूनिट परीक्षण किया जाता है तो कोड की गुणवत्ता में स्वचालित रूप से सुधार होता है। इस परीक्षण के दौरान पहचाने जाने वाले कीड़े एकीकरण परीक्षण चरण के लिए भेजे जाने से पहले तय किए जाते हैं। डेवलपर्स के रूप में मजबूत डिजाइन और विकास में परिणाम पहले विनिर्देशों को समझकर परीक्षण के मामले लिखते हैं।
- जल्दी कीड़े का पता लगाता है: जैसा कि डेवलपर्स इकाई परीक्षण चलाते हैं, वे सॉफ़्टवेयर विकास जीवन चक्र में बग का पता लगाते हैं और उन्हें हल करते हैं। इसमें विनिर्देशन में खामियों या लापता भागों के साथ-साथ प्रोग्रामर के कार्यान्वयन में कीड़े शामिल हैं।
- आसान परिवर्तन और सरलीकृत एकीकरण: इकाई परीक्षण करने से डेवलपर के लिए कोड का पुनर्गठन, परिवर्तन करना और कोड को बनाए रखना आसान हो जाता है। यह बहुत आसान एकीकरण के बाद कोड का परीक्षण भी करता है। यूनिट टेस्टिंग में एक समस्या को ठीक करना बाद के विकास और परीक्षण चरणों में होने वाले कई अन्य मुद्दों को ठीक कर सकता है
- प्रलेखन उपलब्धता: डेवलपर्स जो बाद के चरण में कार्यक्षमता देख रहे हैं, वे इकाई परीक्षण प्रलेखन का उल्लेख कर सकते हैं और आसानी से इकाई परीक्षण इंटरफ़ेस और सही या तेजी से और आसानी से काम कर सकते हैं।
- आसान डिबगिंग प्रक्रिया: यह डिबगिंग प्रक्रिया को सरल बनाने में मदद करता है। यदि परीक्षण किसी भी स्तर पर विफल हो जाता है तो कोड को डीबग करना होगा अन्यथा प्रक्रिया को बिना किसी बाधा के जारी रखा जा सकता है।
- कम दाम: जब यूनिट परीक्षण के दौरान बग का पता लगाया और हल किया जाता है, तो लागत और विकास का समय कम हो जाता है। इस परीक्षण के बिना, यदि कोड एकीकरण के बाद बाद के चरण में समान बग्स का पता लगाया जाता है, तो इसे ट्रेस करना और हल करना अधिक कठिन हो जाता है, जिससे यह अधिक महंगा और विकास का समय बढ़ जाता है।
- इकाई परीक्षणों का उपयोग करके कोड पूर्णता का प्रदर्शन किया जा सकता है: यह चुस्त प्रक्रिया में अधिक उपयोगी है। एकीकरण पूर्ण होने तक परीक्षण करने के लिए परीक्षकों को कार्यात्मक बिल्ड नहीं मिलते हैं। कोड को पूरा करना उचित नहीं दिखाया जा सकता है कि आपने कोड में लिखा और चेक किया है। लेकिन यूनिट परीक्षण चलाने से कोड पूर्णता प्रदर्शित हो सकती है।
- विकास का समय बचाता है: कोड पूरा होने में अधिक समय लग सकता है लेकिन सिस्टम और स्वीकृति परीक्षण में कम कीड़े के कारण, समग्र विकास समय बचाया जा सकता है।
- कोड कवरेज़ मापा जा सकता है
इकाई परीक्षण चक्र
[छवि स्रोत ]
एक अच्छा यूनिट टेस्ट क्या है?
वैसे, मैं यह बताने के लिए सही व्यक्ति नहीं हूँ कि एक अच्छा यूनिट टेस्ट क्या होता है, लेकिन विभिन्न परियोजनाओं पर मेरी टिप्पणियों के आधार पर मैं एक अच्छे यूनिट टेस्ट की विशेषताओं को बता सकता हूँ। खराब यूनिट टेस्ट परियोजना में मूल्य नहीं जोड़ता है। इसके बजाय, परियोजना लागत में खराब यूनिट टेस्ट लिखने और प्रबंधन में काफी वृद्धि होती है।
अच्छा यूनिट टेस्ट कैसे लिखें?
- एक इकाई परीक्षण कोड की एक इकाई को सत्यापित करने के लिए लिखा जाना चाहिए न कि एकीकरण।
- स्पष्ट नामकरण के साथ छोटे और पृथक इकाई परीक्षण लिखने और बनाए रखने में बहुत आसान बनाते हैं।
- यदि वे अलग-थलग हैं और कोड की एक विशिष्ट इकाई के लिए लिखे गए हैं तो सॉफ्टवेयर के दूसरे भाग को बदलने से यूनिट परीक्षण को प्रभावित नहीं होना चाहिए।
- इसे जल्दी से चलना चाहिए
- एक यूनिट परीक्षण पुन: प्रयोज्य होना चाहिए
यूनिट टेस्टिंग फ्रेमवर्क
यूनिट टेस्टिंग फ्रेमवर्क का उपयोग ज्यादातर यूनिट परीक्षणों को जल्दी और आसानी से लिखने में मदद करने के लिए किया जाता है। अधिकांश प्रोग्रामिंग भाषाएं इनबिल्ट कंपाइलर के साथ यूनिट टेस्टिंग का समर्थन नहीं करती हैं। थर्ड-पार्टी ओपन सोर्स और कमर्शियल टूल्स का इस्तेमाल यूनिट टेस्टिंग को और भी मजेदार बनाने के लिए किया जा सकता है।
लोकप्रिय की सूची इकाई परीक्षण उपकरण विभिन्न प्रोग्रामिंग भाषाओं के लिए:
- जावा फ्रेमवर्क - JUnit
- PHP फ्रेमवर्क - PHPUnit
- सी ++ फ्रेमवर्क - यूनिटटेस्ट ++ तथा Google C ++
- ।शुद्ध रूपरेखा - NUnit
- अजगर की रूपरेखा - py.test
गलतफहमी और सच्चाई
- यूनिट परीक्षण मामलों के साथ कोड लिखने में अधिक समय लगता है, और हमारे पास उसके लिए समय नहीं है - वास्तव में, यह आपके विकास के समय को लंबे समय में बचाएगा।
- यूनिट परीक्षण में सभी कीड़े मिलेंगे - यह नहीं हुआ, क्योंकि यूनिट परीक्षण का उद्देश्य बगों को ढूंढना नहीं है, बल्कि मजबूत सॉफ्टवेयर घटकों को विकसित करना है जो एसडीएलसी के बाद के चरणों में कम दोष होंगे।
- 100% कोड कवरेज का अर्थ है 100% परीक्षण कवरेज - यह गारंटी नहीं देता कि कोड त्रुटि-रहित है।
यूनिट टेस्टिंग को कैसे स्वीकार करें?
3 मूल भागों में अच्छी इकाई परीक्षण किया जा सकता है।
- यूनिट टेस्ट कोड लिखें
- यह जांचने के लिए यूनिट परीक्षण कोड चलाएं कि क्या यह सिस्टम की आवश्यकता को पूरा करता है
- किसी भी दोष के लिए परीक्षण करने के लिए सॉफ़्टवेयर कोड निष्पादित करें और क्या कोड सिस्टम की आवश्यकता को पूरा करता है।
उपरोक्त 3 चरणों को पूरा करने के बाद, यदि कोड सही प्रतीत होता है, तो यूनिट टेस्ट को पास कर दिया जाता है। और अगर यह सिस्टम की आवश्यकताओं को पूरा नहीं करता है, तो परीक्षण विफल हो जाता है। इस मामले में, डेवलपर को कोड को रीचेक और सही करने की आवश्यकता है।
कुछ उदाहरणों में, इस परीक्षण को अधिक सटीक रूप से करने के लिए कोड को अलग करना आवश्यक है।
सर्वश्रेष्ठ प्रणालियां
इस परीक्षण के दौरान सर्वश्रेष्ठ कोड बनाने के लिए, नीचे दिए गए बिंदुओं पर विचार करें:
- कोड मजबूत होना चाहिए: ऐसे उदाहरण हैं जहां परीक्षण विफल हो जाता है या सबसे खराब मामलों में कोड टूट जाने पर बिल्कुल निष्पादित नहीं होता है।
- समझ और उचित: कोड को समझना आसान होना चाहिए। इससे डेवलपर के लिए कोड लिखना आसान हो जाता है और यहां तक कि अन्य डेवलपर्स जो कोड पर काम करेंगे, बाद में डिबग करना आसान होगा।
- एकल मामला होना चाहिए: एक में कई मामलों को परिभाषित करने वाले परीक्षण, साथ काम करने के लिए जटिल हैं। इस प्रकार एकल केस कोड लिखना सबसे अच्छा अभ्यास है, जिससे कोड को समझना और डीबग करना आसान हो जाता है।
- स्वचालित परीक्षण की अनुमति दें: डेवलपर्स को यह सुनिश्चित करना चाहिए कि परीक्षण स्वचालित रूप से चलता है। यह एक सतत वितरण प्रक्रिया या एकीकरण प्रक्रिया में होना चाहिए।
अन्य बिंदुओं को ध्यान में रखा जाना इस प्रकार है:
- सभी स्थितियों के लिए परीक्षण मामले बनाने के बजाय, उस परीक्षण पर ध्यान केंद्रित करें जो सिस्टम के व्यवहार को प्रभावित करता है।
- ब्राउज़र के कैश के कारण बग के दोबारा आने की संभावना है।
- परीक्षण मामलों पर अन्योन्याश्रित नहीं होना चाहिए।
- लूप की स्थिति पर भी ध्यान दें।
- अधिक बार परीक्षण मामलों की योजना बनाएं।
निष्कर्ष
इकाई परीक्षण तस्वीर में आता है जब हर फ़ंक्शन को अलग से परीक्षण करना आवश्यक होता है। इस परीक्षण के दौरान बगों का पता लगाना और उन्हें ठीक करना बहुत उचित है, बजाय सॉफ़्टवेयर डेवलपमेंट के बाद के चरण को खोजने के।
यह कई फायदे प्रदान करता है, वहीं इसका उपयोग करने से जुड़ी सीमाएँ भी हैं। सॉफ्टवेयर डेवलपमेंट प्रक्रिया के दौरान कठोर अनुशासन और निरंतरता की आवश्यकता होती है सीमाओं को दूर करने और इच्छित लाभ प्राप्त करने के लिए।
आपकी टिप्पणियाँ सबसे स्वागत कर रहे हैं!
एक ब्लैक बॉक्स परीक्षक के रूप में, आपकी टीम पर यूनिट परीक्षण के बारे में आपकी क्या टिप्पणियां हैं? किसी को भी सफल इकाई परीक्षण के लिए एक बेहतर विचार है?
अनुशंसित पाठ
- यूनिट परीक्षण, एकीकरण परीक्षण और कार्यात्मक परीक्षण के बीच अंतर
- 2021 में 20 सबसे लोकप्रिय इकाई परीक्षण उपकरण
- स्पॉक फ्रेमवर्क के साथ यूनिट टेस्ट लिखना
- सर्वश्रेष्ठ सॉफ्टवेयर परीक्षण उपकरण 2021 [क्यूए टेस्ट स्वचालन उपकरण]
- ब्लैक बॉक्स परीक्षण और व्हाइट बॉक्स परीक्षण के बीच मुख्य अंतर
- एचपी लोडरनर ट्यूटोरियल के साथ लोड परीक्षण
- डेस्कटॉप, क्लाइंट सर्वर परीक्षण और वेब परीक्षण के बीच अंतर
- गामा परीक्षण क्या है? अंतिम परीक्षण चरण