उत्पाद की गुणवत्ता को सुरक्षित करने के लिए परीक्षण अब सॉफ्टवेयर विकास जीवन चक्र का एक महत्वपूर्ण चरण है। इसके अलावा, परीक्षण किए बिना, हम सभी आवश्यकताओं की पूर्ति सुनिश्चित नहीं कर सकते। यहां स्वचालन प्रयासों और समय को कम करने के लिए परीक्षण चक्र में एक आवश्यक भूमिका निभा रहा है। बाजार में, परीक्षण प्रक्रिया को स्वचालित करने के लिए कई परीक्षण उपकरण उपलब्ध हैं। सबसे अधिक इस्तेमाल किया जाने वाला ऑटोमेशन टेस्टिंग टूल UFT है।
इस विषय में, हम यूएफटी ऑब्जेक्ट रिपोजिटरी, वर्णनात्मक प्रोग्रामिंग दृष्टिकोण और यूएफटी में वर्चुअल ऑब्जेक्ट की अवधारणा के बारे में जानने जा रहे हैं, जो यूएफटी की सबसे महत्वपूर्ण विशेषताएं हैं।
यूएफटी ट्यूटोरियल - सामग्री की तालिका
UFT ट्यूटोरियल # 1: यूएफटी अवलोकन
यूएफटी ट्यूटोरियल 2 #: यूएफटी सेटअप - डाउनलोड, इंस्टॉल, लाइसेंस कॉन्फ़िगरेशन और एएलएम कनेक्शन
यूएफटी ट्यूटोरियल 3 #: UFT ऑब्जेक्ट रिपोजिटरी
यूएफटी ट्यूटोरियल 4 #: UFT क्रियाएँ और समारोह पुस्तकालय
यूएफटी ट्यूटोरियल 5 #: यूएफटी परिमाणीकरण
यूएफटी ट्यूटोरियल 6 #: यूएफटी में वीबी स्क्रिप्टिंग
यूएफटी ट्यूटोरियल 7 #: UFT में टेस्ट केस बनाने के लिए स्टेप गाइड बाई स्टेप
यूएफटी ट्यूटोरियल 8 #: UFT में अपवाद हैंडलिंग
यूएफटी ट्यूटोरियल 9 #: चेकप्वाइंट और डिक्शनरी ऑब्जेक्ट के साथ UFT में रिकॉर्डिंग
यूएफटी ट्यूटोरियल 10 #: UFT साक्षात्कार प्रश्न और उत्तर
UFT ट्यूटोरियल #3: UFT ऑब्जेक्ट रिपोजिटरी
UFT ऑब्जेक्ट रिपोजिटरी:
एक वस्तु भंडार एक स्वचालन परीक्षण उपकरण के रूप में UFT का प्राथमिक घटक है। यह परीक्षण वस्तुओं का संग्रह है जो यूएफटी परीक्षण स्क्रिप्ट के साथ अनुप्रयोगों को मैप करने के लिए उपयोग किया जाता है। मूल रूप से, एक या एक से अधिक गुण जो विशिष्ट रूप से अनुप्रयोग के किसी भी परीक्षण ऑब्जेक्ट का प्रतिनिधित्व कर सकते हैं, वस्तु भंडार में संग्रहीत किए जाते हैं। उदाहरण के लिए, नाम, आईडी, आंतरिक पाठ, ये किसी भी वस्तु का प्रतिनिधित्व करने के लिए उपयोग किए जाने वाले सामान्य गुण हैं। यह क्षेत्र की वस्तुओं की पहचान करने के लिए निम्न गुणों का अनुसरण करता है -
अनिवार्य संपत्ति -> सहायक संपत्ति -> साधारण पहचानकर्ता -> स्मार्ट पहचान
ऑब्जेक्ट रिपोजिटरी वर्गीकरण:
UFT में दो प्रकार के ऑब्जेक्ट रिपोजिटरी उपलब्ध हैं -
- स्थानीय वस्तु भंडार
- साझा वस्तु भंडार
साझा वस्तु भंडार - एक वस्तु भंडार जो परीक्षण मामले के बाहर स्थित है, एक साझा वस्तु भंडार के रूप में जाना जाता है। इसे कई क्रियाओं या परीक्षण स्क्रिप्ट में साझा किया जा सकता है। हम इसे ऑब्जेक्ट रिपॉजिटरी मैनेजर की मदद से बना सकते हैं। इसका उपयोग पुन: प्रयोज्य उद्देश्यों के लिए किया जाता है। हम इसे किसी भी स्थान पर .tsr फ़ाइल के रूप में संग्रहीत कर सकते हैं। इस प्रकार के ऑब्जेक्ट रिपॉजिटरी का उपयोग ज्यादातर कीवर्ड या हाइब्रिड टेस्ट फ्रेमवर्क में पुन: प्रयोज्य उद्देश्यों के लिए किया जाता है।
ऑब्जेक्ट रिपोजिटरी के लिए दिशानिर्देश:
- रिपॉजिटरी में ऑब्जेक्ट का तार्किक नाम एप्लिकेशन की कार्यक्षमता के आधार पर दिया जाना चाहिए।
- प्रदर्शन बढ़ाने के लिए स्मार्ट पहचान को अक्षम किया जाना चाहिए।
- ऑब्जेक्ट रिपोजिटरी का आकार बड़ा नहीं होना चाहिए; आकार को कम करने के लिए वर्णनात्मक प्रोग्रामिंग का आंशिक उपयोग किया जा सकता है।
- नियमित अभिव्यक्ति या वर्णनात्मक प्रोग्रामिंग के माध्यम से गतिशील वस्तुओं को संभालें।
- एक स्थानीय के बजाय एक साझा वस्तु भंडार का उपयोग करें।
- रिपॉजिटरी में एक ही ऑब्जेक्ट के लिए कई प्रविष्टियों का उपयोग न करें।
ऑब्जेक्ट रिपोजिटरी में विभिन्न विकल्प:
वस्तु खोजक - परीक्षण वस्तु का विश्लेषण करने के लिए यह UFT की सबसे महत्वपूर्ण और सहायक विशेषताओं में से एक है। इस विकल्प के माध्यम से, हम ऑब्जेक्ट रिपोजिटरी में जोड़ने से पहले परीक्षण वस्तुओं के विभिन्न गुणों को देख/विश्लेषण कर सकते हैं। यह हमें परीक्षण स्वचालन के लिए वस्तु पहचान दृष्टिकोण को परिभाषित करने में मदद करेगा। ऑब्जेक्ट फ़ाइंडर के बिना, वर्णनात्मक प्रोग्रामिंग दृष्टिकोण को परिभाषित करना बहुत मुश्किल है।
ऑब्जेक्ट जोड़ें - इसका उपयोग रिपॉजिटरी में किसी एप्लिकेशन ऑब्जेक्ट को जोड़ने के लिए किया जाता है।
एप्लिकेशन से अपडेट करें - हम किसी भी ऑब्जेक्ट को अद्यतन कर सकते हैं जो पहले से ही इस विकल्प के माध्यम से सीधे आवेदन से रिपॉजिटरी में जोड़ा जाता है।
हाइलाइट - एप्लिकेशन में ऑब्जेक्ट को हाइलाइट किया जा सकता है।
रिपोजिटरी में पता लगाएँ - हम आवेदन से भंडार में उपलब्ध वास्तविक वस्तु का पता लगा सकते हैं।
ऑब्जेक्ट प्रॉपर्टीज सेक्शन - वर्णनात्मक गुण, क्रमिक पहचानकर्ता और स्मार्ट पहचान विन्यास इस खंड से देखे / संपादित किए जा सकते हैं।
UFT ऑब्जेक्ट पदानुक्रम: यूएफटी परीक्षण वस्तु पदानुक्रम परीक्षण के एक या कई स्तर शामिल हैं वस्तुओं। का उच्चतम स्तर उदेश्य एक खिड़की, संवाद बॉक्स या ब्राउज़र प्रकार का प्रतिनिधित्व कर सकता है वस्तु, पर्यावरण पर निर्भर करता है। किसी भी वेब एप्लिकेशन के लिए, वस्तु पदानुक्रम के तीन स्तर उपलब्ध हैं - ब्राउज़र, पेज और व्यक्तिगत परीक्षण ऑब्जेक्ट। इसलिए, पहचान को क्रमिक रूप से ऊपर से नीचे तक बनाया गया है।
ब्राउज़र ("टेस्ट ब्राउज़र")। पेज ("टेस्ट पेज")। लिंक ("टेस्ट लिंक")। क्लिक करें
ऑब्जेक्ट पहचान तंत्र:
आवेदन में प्रदर्शित गुण या व्यवहार के आधार पर भंडार से वस्तुओं की पहचान की जा सकती है। तीन अलग-अलग प्रकार के संपत्ति विकल्प हैं जो किसी भी वस्तु को विशिष्ट रूप से खोजने के लिए उपलब्ध हैं। वो है -
वर्णनात्मक गुण - अनुप्रयोग के विकास के आधार पर, व्यवहार या गुणों को अनुप्रयोग में परिभाषित किया जाता है। इसके दो भाग हैं - अनिवार्य गुण और सहायक गुण। गुणों की विशिष्टता के आधार पर, यूएफटी वस्तुओं की पहचान करने में सक्षम है। सबसे पहले, उपकरण को अनिवार्य गुण जैसे नाम, आईडी, पाठ आदि की पहचान करने का प्रयास करना है, जो कि अनुप्रयोग विकास के दौरान परिभाषित किए गए हैं, का उपयोग ऑब्जेक्ट की पहचान करने के लिए किया जाता है। यदि कोई अनूठा संयोजन उपलब्ध नहीं है, तो UFT कुछ अतिरिक्त गुणों की मदद से एप्लिकेशन की पहचान करने की कोशिश कर रहा है, जिन्हें सहायक संपत्ति के रूप में जाना जाता है।
साधारण पहचानकर्ता - जब वर्णनात्मक गुण किसी भी वस्तु को विशिष्ट रूप से पहचानने के लिए पर्याप्त नहीं हैं, तो यूएफटी पहचान करने के लिए आवेदन में वस्तुओं की उपस्थिति के आधार पर कुछ अतिरिक्त गुणों को परिभाषित करने की कोशिश कर रहा है। इन गुणों को एक साधारण पहचानकर्ता कहा जाता है। तीन प्रकार के क्रमिक पहचानकर्ता उपलब्ध हैं -
सूची - यह अनुप्रयोग में ऑब्जेक्ट की स्थिति के आधार पर परिभाषित किया गया है। इंडेक्स वैल्यू हमेशा 0 से शुरू होती है।
पता - यह अनुप्रयोग में ऑब्जेक्ट के स्थान के आधार पर परिभाषित किया गया है। स्थान मान हमेशा 0 से शुरू होता है।
रचना समय - यह अनुप्रयोग में ऑब्जेक्ट के निर्माण समय के आधार पर परिभाषित किया गया है। क्रिएशनटाइम का मान हमेशा 0 से शुरू होता है।
स्मार्ट पहचान - जब वर्णनात्मक गुण और साधारण पहचानकर्ता किसी वस्तु की पहचान करने में विफल होते हैं, तो कुछ अतिरिक्त कॉन्फ़िगरेशन / गुणों का उपयोग किया जाता है, जो इस मामले में वस्तुओं की पहचान करने के लिए पूर्वनिर्धारित होते हैं। वस्तुओं की पहचान करने के लिए स्मार्ट पहचान अंतिम विकल्प है। यह तभी लागू होता है जब हम मान को सही मानते हैं। लेकिन इस सुविधा ने परीक्षण निष्पादन को धीमा कर दिया है। इसलिए, सर्वोत्तम प्रथाओं के रूप में, ज्यादातर मामलों में, हमें इन सुविधाओं को अक्षम करना होगा।
ऑब्जेक्ट जोड़ने के लिए चरण-दर-चरण मार्गदर्शिका:
- परीक्षण एप्लिकेशन खोलें और वस्तुओं को जोड़ने के लिए इच्छा पृष्ठ / स्क्रीन पर जाएं।
- ऑब्जेक्ट रिपोजिटरी आइकन पर क्लिक करके या "Ctrl + R" कुंजी दबाकर UFT से स्थानीय ऑब्जेक्ट रिपॉजिटरी खोलें। एक साझा भंडार के मामले में, हम इसे "संसाधन-> ऑब्जेक्ट रिपोजिटरी प्रबंधक" से खोल सकते हैं।
- रिपॉजिटरी में ऐड ऑब्जेक्ट बटन (ग्रीन प्लस बटन) पर क्लिक करें। अब टूल हमें एप्लिकेशन में वांछित फ़ील्ड पर क्लिक करके ऑब्जेक्ट का चयन करने की अनुमति देगा।
- एक वस्तु के चयन के बाद, एक मध्यवर्ती "ऑब्जेक्ट चयन - रिपोजिटरी में जोड़ें" पॉपअप दिखाई देगा। ऑब्जेक्ट जोड़ने के लिए ओके बटन पर क्लिक करें।
- ऑब्जेक्ट को जोड़ने के बाद, हम आवश्यकताओं के आधार पर गुणों या तार्किक नामों को संपादित कर सकते हैं।
ऑब्जेक्ट रिपोजिटरी प्रबंधक:
ऑब्जेक्ट रिपॉजिटरी प्रबंधक का उपयोग एक साझा रिपॉजिटरी के साथ प्रबंधन / कार्य करने के लिए किया जाता है। हम विज़ार्ड के माध्यम से साझा भंडार से वस्तुओं को जोड़ सकते हैं, अपडेट कर सकते हैं, हटा सकते हैं। नेविगेशन को खोलने के लिए - संसाधन -> ऑब्जेक्ट रिपोजिटरी प्रबंधक।
साझा वस्तु भंडार कैसे बनाएँ:
विभिन्न दृष्टिकोण हैं -
- ऑब्जेक्ट रिपोजिटरी प्रबंधक के माध्यम से बनाएं - "संसाधन-> ऑब्जेक्ट रिपोजिटरी प्रबंधक" खोलें और इस विंडो से ऑब्जेक्ट जोड़ें। वस्तुओं को जोड़ने के बाद, हम इसे एक साझा ऑब्जेक्ट रिपॉजिटरी बनाने के लिए एक .tsr फ़ाइल के रूप में सहेज सकते हैं।
- साझा भंडार में स्थानीय भंडार को परिवर्तित करना - एक साझा वस्तु भंडार में स्थानीय वस्तु भंडार (फ़ाइल -> निर्यात स्थानीय वस्तुओं) का निर्यात करना।
- ड्रैग ड्रॉप अप्रोच - ऑब्जेक्ट्स को स्थानीय रिपॉजिटरी से खींचें और उन्हें एक साझा भंडार में छोड़ दें।
सहयोगी कार्रवाई में वस्तु भंडार साझा किया:
दो विकल्प उपलब्ध हैं -
- UFT के समाधान एक्सप्लोरर में, एक्शन नाम नोड पर राइट-क्लिक करें और एक्शन के साथ एसोसिएट रिपॉजिटरी का चयन करें।
- साझा साझा रिपॉजिटरी संवाद बॉक्स में, ऑब्जेक्ट रिपॉजिटरी चुनें और ओपन पर क्लिक करें।
ऑब्जेक्ट रिपॉजिटरी तुलना उपकरण:
इसका उपयोग दो साझा रिपॉजिटरी की तुलना करने और बेमेल पहचान करने के लिए किया जाता है।
- इस टूल को "ऑब्जेक्ट रिपोजिटरी मैनेजर" से निम्न पथ द्वारा खोला जा सकता है - "टूल-> ऑब्जेक्ट रिपॉजिटरी तुलना टूल"।
- दोनों साझा भंडार का चयन करें और ओके बटन दबाएं।
- अब तुलनात्मक विवरण विश्लेषण के लिए उपलब्ध होगा।
ऑब्जेक्ट रिपोजिटरी मर्ज टूल:
इसका उपयोग दो साझा भंडार को एक में विलय करने के लिए किया जाता है।
- मर्ज टूल को "ऑब्जेक्ट रिपोजिटरी मैनेजर" से निम्न पथ द्वारा खोला जा सकता है - "टूल-> ऑब्जेक्ट रिपोजिटरी मर्ज टूल।"
- विलय के लिए हमें प्राथमिक और द्वितीयक रिपॉजिटरी का चयन करना होगा।
- अब संघर्षों का विश्लेषण करें और दोनों रिपॉजिटरी को प्राथमिक भंडार में विलय करने के लिए बचाएं।
गतिशील वस्तुओं को संभालना:
गतिशील वस्तुओं को संभालने के लिए दो विकल्प उपलब्ध हैं -
- वर्णनात्मक प्रोग्रामिंग दृष्टिकोण - हम इस लेख में वर्णनात्मक प्रोग्रामिंग के बारे में बाद में।
- नियमित अभिव्यक्ति - यह पात्रों की एक श्रृंखला है जो एक पैटर्न / स्ट्रिंग बनाती है जिसका उपयोग वस्तुओं की पहचान करने के लिए किया जाता है। हम जंगली पात्रों के साथ किसी भी गुण के गतिशील भाग को बदलकर इसे परिभाषित कर सकते हैं। नीचे दिए गए उदाहरण देखें -
हमारे पास पाठ के साथ एक गतिशील लिंक है - "वर्तमान तिथि 03-04-2000"। यहां हम यह देख सकते हैं कि इस लिंक में, "वर्तमान तिथि" भाग स्थिर है, बाकी हिस्सा हर दिन बदल रहा है। तो हम ऑब्जेक्ट रिपोजिटरी में वस्तुओं को परिभाषित करते हुए नीचे दिए गए पैटर्न में से किसी का भी उपयोग कर सकते हैं -
"वर्तमान तिथि है। *"- यहाँ '। *' किसी भी आकार के किसी भी तार का प्रतिनिधित्व करता है।
"वर्तमान तिथि \\d\\d-\\d\\d-\\d\\d\\d\\d है” - यहां '\\d' केवल एक संख्यात्मक अंक को प्रतिस्थापित कर सकता है।
इसी तरह, अधिक नियमित अभिव्यक्ति उपलब्ध हैं। फिर से लॉगिन करने के लिए यहाँ उत्पन्न करें यह देखने के लिए।
वर्णनात्मक प्रोग्रामिंग:
निष्पादन समय के दौरान वर्णनात्मक प्रोग्रामिंग वस्तु के विवरण को परिभाषित करने के लिए एक दृष्टिकोण है। इस दृष्टिकोण के माध्यम से, हम परीक्षण मामलों को निष्पादित कर सकते हैं जब ऑब्जेक्ट ऑब्जेक्ट रिपॉजिटरी में संग्रहीत नहीं होते हैं।
वर्णनात्मक प्रोग्रामिंग दृष्टिकोण का उपयोग करने के उद्देश्य हैं -
- परीक्षण वस्तु प्रकृति में गतिशील है।
- ऑब्जेक्ट रिपोजिटरी में ऑब्जेक्ट्स को जोड़े बिना परीक्षण मामलों को निष्पादित करने के लिए।
- यदि हम किसी बड़े ऑब्जेक्ट रिपोजिटरी का उपयोग करते हैं तो निष्पादन प्रदर्शन कम हो सकता है। इससे बचने के लिए वर्णनात्मक प्रोग्रामिंग का उपयोग किया जा सकता है।
- चाइल्डऑब्जेक्ट्स का उपयोग उन ऑब्जेक्ट्स का एक संग्रह बनाने के लिए किया जाता है, जो परिभाषित ऑब्जेक्ट विवरणों के आधार पर मेल खाते हैं। पैरेंट ऑब्जेक्ट चाइल्डऑब्जेक्ट को आगे बढ़ाते हैं। उदाहरण - उपर्युक्त उदाहरण।
वर्णनात्मक प्रोग्रामिंग के साथ काम करना:
वर्णनात्मक प्रोग्रामिंग का उपयोग करके परीक्षण मामलों को विकसित करने के दो तरीके हैं -
1. विवरण - स्क्रिप्ट आवश्यक गुणों के साथ विवरण ऑब्जेक्ट का उपयोग करके बनाई गई है। उदाहरण - वर्णनात्मक प्रोग्रामिंग दृष्टिकोण के नीचे एक विशेष वेबपेज पर उपलब्ध लिंक की संख्या का पता लगाने के लिए उपयोग किया जाता है।
2. विवरण विवरण - वस्तु का विवरण परीक्षण मामले के निर्माण के दौरान एक स्ट्रिंग के रूप में पारित किया जाता है। उदाहरण -
ब्राउज़र ("MyApp")। पृष्ठ ("MyApp")। लिंक ("पाठ: = लॉगिन", "प्रकार:" लिंक "" क्लिक करें।
वस्तु भंडार और वर्णनात्मक प्रोग्रामिंग के बीच तुलना अध्ययन:
ऑब्जेक्ट रिपोजिटरी | वर्णनात्मक प्रोग्रामिंग |
ऑब्जेक्ट को यहां जोड़ना होगा। | OR में ऑब्जेक्ट जोड़ने की आवश्यकता नहीं है। |
गतिशील वस्तुओं को संभालने में कठिनाई। | गतिशील वस्तुओं को संभालने में आसान। |
निष्पादन के प्रदर्शन को कम करें। | निष्पादन के प्रदर्शन को बढ़ाएं। |
निष्पादन से पहले वस्तु को परिभाषित करने की आवश्यकता है। | निष्पादन के दौरान वस्तुओं को परिभाषित किया जाता है। |
UFT में वर्चुअल ऑब्जेक्ट:
कभी-कभी, हमने देखा है कि परीक्षण अनुप्रयोगों में वस्तुओं को स्वचालन के लिए यूएफटी द्वारा मान्यता प्राप्त नहीं है। इसके बजाय, पूरे क्षेत्र को मानक विंडो ऑब्जेक्ट के रूप में पहचाना जाता है। इस तरह के परिदृश्य को संभालने के लिए, UFT अपने व्यवहार के आधार पर उन अपरिचित वस्तुओं को बटन, लिंक, टेक्स्टबॉक्स आदि के रूप में परिभाषित करने के लिए एक आभासी वस्तु के रूप में एक सुविधा प्रदान करता है।
हम वर्चुअल ऑब्जेक्ट निर्माण विज़ार्ड को पथ से खोल सकते हैं - "टूल-> वर्चुअल ऑब्जेक्ट-> न्यू वर्चुअल ऑब्जेक्ट।" इस विज़ार्ड से निर्देश द्वारा चरण का पालन करके, हम वर्चुअल ऑब्जेक्ट्स को परिभाषित कर सकते हैं।
आभासी वस्तु की सीमाएँ हैं -
- UFT वर्चुअल ऑब्जेक्ट्स को रिकॉर्ड करने में सक्षम नहीं है।
- यह ऑब्जेक्ट रिपोजिटरी द्वारा नियंत्रित नहीं है।
- यहां चेकपॉइंट नहीं जोड़े जा सकते हैं।
- वस्तु खोजक आभासी वस्तुओं का निरीक्षण नहीं कर सकता है।
- यदि स्क्रीन रिज़ॉल्यूशन को बदल दिया गया है, तो निष्पादन विफल हो सकता है।
UFT में वर्चुअल ऑब्जेक्ट का निर्माण:
1. नेविगेशन "टूल-> वर्चुअल ऑब्जेक्ट" से वर्चुअल ऑब्जेक्ट मैनेजर खोलें और न्यू बटन पर क्लिक करें।
2. "वर्चुअल ऑब्जेक्ट मैनेजर में आपका स्वागत है" स्क्रीन से नेक्स्ट पर क्लिक करें।
3. क्लास चुनें और "मैप से एक स्टैंडर्ड क्लास" स्क्रीन पर क्लिक करें।
4. अब माउस का उपयोग करके एप्लिकेशन से टेस्ट ऑब्जेक्ट को चिह्नित करें और अगले पर क्लिक करें।
5. अब ऑब्जेक्ट को कॉन्फ़िगर करें और अगले पर क्लिक करें।
6. अब वर्चुअल ऑब्जेक्ट सेव करने के लिए फिनिश पर क्लिक करें।
निष्कर्ष:
यूएफटी ऑब्जेक्ट रिपोजिटरी के बारे में इस लेख में, हमने परीक्षण और वर्गीकरण के तहत आवेदन से वस्तुओं की पहचान करने के तरीके के बारे में सीखा है। क्लिक यहाँ उत्पन्न करें माइक्रोफोकस समर्थन पोर्टल से अधिक समझने के लिए। इसके अलावा, यदि आप UFT साक्षात्कार प्रश्न तैयार करना चाहते हैं, तो कृपया क्लिक करें यहाँ उत्पन्न करें.
नमस्ते, मैं के. मंडल हूं, मैं एक अग्रणी संगठन से जुड़ा हूं। मेरे पास एप्लिकेशन डेवलपमेंट, ऑटोमेशन टेस्टिंग, आईटी कंसल्टेंट जैसे डोमेन में काम करने का 12+ साल का अनुभव है। मुझे विभिन्न तकनीकों को सीखने में बहुत रुचि है। मैं अपनी आकांक्षा को पूरा करने के लिए यहां हूं और वर्तमान में लैम्ब्डागीक्स में एक लेखक और वेबसाइट डेवलपर दोनों के रूप में योगदान दे रहा हूं।
आइए लिंक्डइन के माध्यम से जुड़ें-