प्रोट्रैक्टर - जावास्क्रिप्ट परीक्षण की अवधारणा

चूंकि इस अध्याय में प्रोट्रैक्टर के साथ काम करने के लिए जावास्क्रिप्ट का ज्ञान आवश्यक है, इसलिए आइए जावास्क्रिप्ट परीक्षण की अवधारणाओं को विस्तार से समझें।

जावास्क्रिप्ट परीक्षण और स्वचालन

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

स्वचालित परीक्षण की अवधारणा

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

उपरोक्त कारणों के कारण, कुछ उपकरणों के लिए हमेशा उपयोगी होता है जो इन परीक्षणों को स्वचालित कर सकते हैं और प्रोग्रामर को इन दोहराव और उबाऊ चरणों से छुटकारा पाने में मदद कर सकते हैं। परीक्षण प्रक्रिया को स्वचालित बनाने के लिए एक डेवलपर को क्या करना चाहिए?

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

जावास्क्रिप्ट के लिए परीक्षण के प्रकार

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

इकाई का परीक्षण

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

इकाई परीक्षण के फायदों में से एक यह है कि इकाइयों का परीक्षण किसी भी क्रम में किया जा सकता है क्योंकि इकाइयाँ एक दूसरे से स्वतंत्र होती हैं। यूनिट टेस्टिंग का एक और फायदा जो वास्तव में मायने रखता है कि वह परीक्षण को किसी भी समय चला सकती है -

  • विकास की प्रक्रिया की शुरुआत से ही।
  • किसी भी मॉड्यूल / सुविधा के विकास को पूरा करने के बाद।
  • किसी भी मॉड्यूल / सुविधा को संशोधित करने के बाद।
  • मौजूदा एप्लिकेशन में कोई नई सुविधा जोड़ने के बाद।

जावास्क्रिप्ट अनुप्रयोगों के स्वचालित इकाई परीक्षण के लिए, हम कई परीक्षण उपकरण और ढांचे जैसे मोचा, जैस्मीन और क्वनिट से चुन सकते हैं।

एंड-टू-एंड टेस्टिंग

यह परीक्षण पद्धति के रूप में परिभाषित किया जा सकता है कि क्या परीक्षण का उपयोग शुरू से अंत तक (एक छोर से दूसरे छोर तक) डिजाइन के अनुसार ठीक काम कर रहा है।

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

उदाहरण के लिए, मान लें कि हमारे पास एक पंजीकरण मॉड्यूल है जहां उपयोगकर्ता को पंजीकरण पूरा करने के लिए कुछ वैध जानकारी प्रदान करने की आवश्यकता है, तो उस विशेष मॉड्यूल के लिए E2E परीक्षण परीक्षण पूरा करने के लिए निम्नलिखित चरणों का पालन करेगा -

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

प्रत्येक चरण अपना स्वयं का परिणाम देता है जिसकी तुलना अपेक्षित परिणाम सेट के साथ की जाएगी।

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

परीक्षण उपकरण और चौखटे

हमारे पास कोणीय परीक्षण के लिए विभिन्न परीक्षण उपकरण और चौखटे हैं। निम्नलिखित कुछ प्रसिद्ध उपकरण और रूपरेखाएँ हैं -

कर्मा

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

कर्म का उपयोग करने का नियम

मैनुअल प्रक्रिया की तुलना में कर्मा का उपयोग करने के कुछ नियम निम्नलिखित हैं -

  • कई ब्राउज़रों और साथ ही उपकरणों में परीक्षण स्वचालित करता है।
  • त्रुटियों के लिए फ़ाइलें मॉनिटर करता है और उन्हें ठीक करता है।
  • ऑनलाइन समर्थन और प्रलेखन प्रदान करता है।
  • एक निरंतर एकीकरण सर्वर के साथ एकीकरण को मिटा देता है।

कर्म का उपयोग करने वाला

कर्म के उपयोग के कुछ उपाय निम्नलिखित हैं -

कर्म का उपयोग करने का मुख्य नुकसान यह है कि इसे कॉन्फ़िगर करने और बनाए रखने के लिए एक अतिरिक्त उपकरण की आवश्यकता होती है।

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

चमेली

जैस्मीन, जावास्क्रिप्ट कोड के परीक्षण के लिए एक व्यवहार-चालित विकास ढांचा, Pivotal Labs पर विकसित किया गया है। जैस्मिन फ्रेमवर्क के सक्रिय विकास से पहले, JsUnit नामक एक समान इकाई परीक्षण ढांचा भी Pivotal Labs द्वारा विकसित किया गया था, जिसमें एक इनबिल्ट टेस्ट धावक है। ब्राउज़र्स परीक्षण Specrunner.html फ़ाइल को शामिल करके या कमांड लाइन टेस्ट धावक के रूप में भी इसका उपयोग करके जैस्मीन परीक्षणों के माध्यम से चलाया जा सकता है। इसका उपयोग कर्म के साथ या उसके बिना भी किया जा सकता है।

जैस्मीन का उपयोग करने का नियम

अनुगमन जैस्मीन के उपयोग के कुछ नियम हैं -

  • ब्राउज़र, प्लेटफ़ॉर्म और भाषा से स्वतंत्र एक ढांचा।

  • व्यवहार संचालित विकास के साथ-साथ परीक्षण संचालित विकास (TDD) का समर्थन करता है।

  • कर्म के साथ डिफ़ॉल्ट एकीकरण है।

  • वाक्यविन्यास समझने में आसान।

  • परीक्षण जासूस, फेक और पास-थ्रू कार्यक्षमता प्रदान करता है जो अतिरिक्त कार्यों के रूप में परीक्षण में सहायता करता है।

जैस्मीन का उपयोग करने की विपक्ष

निम्नलिखित जैस्मीन का उपयोग करने की एक अवधारणा है -

  • परीक्षण को उपयोगकर्ता द्वारा वापस किया जाना चाहिए क्योंकि वे बदलते हैं क्योंकि परीक्षण चलाते समय जैस्मीन में कोई फ़ाइल-देखने की सुविधा उपलब्ध नहीं है।

कहवा

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

मोचा का उपयोग करने के पेशेवरों

मोचा के उपयोग के कुछ नियम निम्नलिखित हैं -

  • मोचा स्थापित करना और कॉन्फ़िगर करना बहुत आसान है।
  • उपयोगकर्ता के अनुकूल और सरल प्रलेखन।
  • कई नोड परियोजनाओं के साथ प्लगइन्स शामिल हैं।

मोचा का उपयोग करने की विपक्ष

मोचा का उपयोग करने के कुछ तरीके निम्नलिखित हैं -

  • इसे अभिकथन, जासूस आदि के लिए अलग मॉड्यूल की आवश्यकता होती है।
  • यह भी कर्म के साथ उपयोग करने के लिए अतिरिक्त विन्यास की आवश्यकता है।

QUnit

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

क्विट का उपयोग करने का नियम

निम्नलिखित क्वनेट के उपयोग के कुछ नियम हैं -

  • स्थापित करने और कॉन्फ़िगर करने में आसान।
  • उपयोगकर्ता के अनुकूल और सरल प्रलेखन।

Qunit का उपयोग करने की विपक्ष

निम्नलिखित क्वनीट का उपयोग करने की एक अवधारणा है -

  • यह मुख्य रूप से jQuery के लिए विकसित किया गया था और इसलिए अन्य चौखटे के साथ उपयोग के लिए इतना अच्छा नहीं है।

सेलेनियम

सेलेनियम, जिसे मूल रूप से 2004 में ThoughtWorks में एक आंतरिक उपकरण के रूप में जेसन ह्यूजिन्स द्वारा विकसित किया गया था, एक खुला स्रोत परीक्षण स्वचालन उपकरण है। सेलेनियम खुद को परिभाषित करता है "सेलेनियम ब्राउज़रों को स्वचालित करता है। बस!"। ब्राउज़रों के स्वचालन का अर्थ है कि डेवलपर्स ब्राउज़रों के साथ बहुत आसानी से बातचीत कर सकते हैं।

सेलेनियम का उपयोग करने के पेशेवरों

सेलेनियम का उपयोग करने के कुछ नियम निम्नलिखित हैं -

  • इसमें बड़ी सुविधा सेट है।
  • वितरित परीक्षण का समर्थन करता है।
  • SaaS को Sauce Labs जैसी सेवाओं के माध्यम से समर्थन प्राप्त है।
  • सरल दस्तावेज़ और उपलब्ध समृद्ध संसाधनों के साथ उपयोग करना आसान है।

सेलेनियम का उपयोग करने की विपक्ष

पालन ​​सेलेनियम का उपयोग करने के कुछ विपक्ष हैं -

  • सेलेनियम का उपयोग करने का एक मुख्य नुकसान यह है कि इसे एक अलग प्रक्रिया के रूप में चलाया जाना चाहिए।
  • कॉन्फ़िगरेशन थोड़ा बोझिल है क्योंकि डेवलपर को कई चरणों का पालन करने की आवश्यकता है।