कल्पना करें कि आप एक चॉकलेट केक बना रहे हैं और इसके तैयार होने के बाद ही आपको एहसास होता है कि आप आटे में चीनी मिलाना भूल गए, अब क्या?! अपने एप्लिकेशन को इस केक बैटर की तरह समझें, परीक्षण के बिना यह पहले तो अच्छा काम भी कर सकता है, लेकिन कुछ बिंदु पर जब इसे आज़माया जा रहा है तो कुछ उम्मीद के मुताबिक नहीं हो सकता है। और कौन गारंटी देता है कि यह परेशानी नहीं होगी?!
इस उदाहरण के आधार पर, परीक्षण आपके कोड के द्रव्यमान का प्रमाण हैं, वे सुनिश्चित करते हैं कि सब कुछ सही जगह पर है, तब भी जब आप नई परतें या कार्यक्षमता कवरेज जोड़ने का निर्णय लेते हैं।
सामान्य तौर पर, स्वचालित परीक्षण मूल रूप से अन्य कोड का परीक्षण करने के लिए बनाए गए कोड होते हैं, जो यह सुनिश्चित करते हैं कि एप्लिकेशन गुणवत्ता के साथ काम करता है।
चूंकि गुणवत्ता प्रमुख शब्द है, इसलिए यह महत्वपूर्ण है कि इंजीनियरिंग और उत्पाद टीम के भीतर हर कोई परीक्षणों से उत्पन्न होने वाले महत्व और मूल्य से अवगत हो, ताकि उन्हें प्राकृतिक तरीके से डिलीवरी में एकीकृत किया जा सके।
मैं आपको अभी से अपने कोड में परीक्षण लागू करना शुरू करने के लिए मनाने के लिए यहां कुछ कारण बता रहा हूं:
असफल-सुरक्षित कोड: परीक्षण यह सुनिश्चित करने में मदद करता है कि आपका कोड बग के बिना काम करेगा, भले ही आप नई सुविधाएं जोड़ें या बदलाव करें।
बिना किसी डर के परिवर्तन: एप्लिकेशन रखरखाव अधिक सुरक्षित होगा क्योंकि आप कुछ टूटने की चिंता किए बिना अपने कोड को रिफैक्टर या अपडेट करने में सक्षम होंगे क्योंकि कुछ गलत होने पर परीक्षण आपको चेतावनी देते हैं।
तेज़ समाधान: स्वचालित परीक्षणों से आप समस्याओं को अधिक आसानी से ठीक कर पाएंगे, जिससे बहुत अधिक समय की बचत होगी
परिनियोजन के दौरान कम आश्चर्य: क्या आप कल्पना कर सकते हैं कि आपने अभी-अभी तैनाती की है और पहले से ही उपयोगकर्ताओं से किसी ऐसी चीज़ में त्रुटि के साथ कॉल प्राप्त कर रहे हैं जिसकी भविष्यवाणी की जा सकती थी?! परीक्षण इसी रोकथाम में सहायता के लिए आते हैं
आपकी और आपके QA सहयोगी की मदद करना: क्या आप जानते हैं कि जब आप उस सुविधा को पूरा करते हैं और इसे परीक्षण के लिए QA को भेजते हैं और वह आपको 357 चीजों को ठीक करने के साथ एक रिपोर्ट देता है? यह समस्या भी कम हो जाएगी क्योंकि आपने अधिकांश त्रुटियों की भविष्यवाणी कर दी होगी जो संभवतः उसका सामना करेंगी
फ्रंट-एंड में कई प्रकार के परीक्षण विकसित किए जाने हैं, लेकिन आज मैं उनमें से तीन पर ध्यान केंद्रित करूंगा: यूजर इंटरफेस टेस्ट (यूआई), फंक्शनल टेस्ट (एंड-टू-एंड) और वैलिडेशन टेस्ट और टू के लिए उनमें से प्रत्येक का उदाहरण देते हुए, मैं टेस्टिंग लाइब्रेरी का उपयोग करके React.js एप्लिकेशन में एक साधारण लॉगिन स्क्रीन के लिए परीक्षण बनाऊंगा।
यूजर इंटरफ़ेस (यूआई) टेस्ट
यूजर इंटरफ़ेस (यूआई) परीक्षण यह जांचते हैं कि घटकों को अपेक्षा के अनुरूप प्रस्तुत किया जा रहा है या नहीं और, प्रतिपादन पर आधारित होने के अलावा, वे फॉर्म फ़ील्ड, बटन और लेबल जैसे महत्वपूर्ण तत्वों के अस्तित्व की जांच करते हैं।
it('should render login form', () => { render(); expect(screen.getByLabelText(/email/i)).toBeInTheDocument(); expect(screen.getByLabelText(/senha/i)).toBeInTheDocument(); expect(screen.getByRole('button', { name: /login/i })).toBeInTheDocument(); });
क्या परीक्षण किया जा रहा है: यह परीक्षण सुनिश्चित करता है कि लॉगिनफॉर्म घटक आवश्यक इंटरफ़ेस तत्वों को प्रस्तुत करता है: ईमेल और पासवर्ड फ़ील्ड और लॉगिन बटन। screen.getByLabelText तत्वों को उनके संबंधित लेबल द्वारा खोजता है और screen.getByRole बटन को उसके टेक्स्ट और फ़ंक्शन द्वारा खोजता है।
कार्यात्मक परीक्षण (एंड-टू-एंड)
कार्यात्मक परीक्षण या एंड-टू-एंड (ई2ई) परीक्षण, उपयोगकर्ता के दृष्टिकोण से एप्लिकेशन की संपूर्ण कार्यप्रणाली को सत्यापित करते हैं, इंटरफ़ेस के साथ वास्तविक इंटरैक्शन का अनुकरण करते हैं, जैसे फॉर्म भरना और बटन क्लिक करना, और मूल्यांकन करना कि क्या एप्लिकेशन अपेक्षा के अनुरूप इंटरैक्शन पर प्रतिक्रिया देता है।
it('should call onLogin with the username and password when submitted', async () => { const handleLogin = jest.fn(); render(); fireEvent.change(screen.getByLabelText(/email/i), { target: { value: '[email protected]' }, }); fireEvent.change(screen.getByLabelText(/senha/i), { target: { value: '123456' }, }); await fireEvent.click(screen.getByRole('button', { name: /login/i })); await waitFor(() => { expect(handleLogin).toHaveBeenCalledWith({ email: '[email protected]', password: '123456' }) }) await waitFor(() => { expect(handleLogin).toHaveBeenCalledTimes(1) }) });
क्या परीक्षण किया जा रहा है: यहां, ईमेल और पासवर्ड फ़ील्ड भरकर और फिर लॉगिन बटन पर क्लिक करके लॉगिन फॉर्म के साथ उपयोगकर्ता इंटरैक्शन का अनुकरण किया जाता है। परीक्षण यह भी जांचता है कि ऑनलॉगिन फ़ंक्शन को सही डेटा के साथ कॉल किया गया है और इसे बिल्कुल एक बार कॉल किया गया था।
सत्यापन परीक्षण
सत्यापन परीक्षण यह सुनिश्चित करते हैं कि एप्लिकेशन अमान्य इनपुट को मान्य करता है और उचित त्रुटि संदेश प्रदर्शित करता है। ये परीक्षण यह सत्यापित करने के लिए महत्वपूर्ण हैं कि फॉर्म गलत डेटा को प्रभावी ढंग से संभालता है और उपयोगकर्ता को पर्याप्त प्रतिक्रिया प्रदान करता है।
test('should show error messages for invalid inputs', async () => { render(); fireEvent.change(screen.getByLabelText(/email/i), { target: { value: 'invalid-email' }, }); fireEvent.change(screen.getByLabelText(/senha/i), { target: { value: '123' }, }); await fireEvent.click(screen.getByRole('button', { name: /login/i })); expect(await screen.findByText(/Email inválido/i)).toBeInTheDocument(); expect(await screen.findByText(/A senha deve ter pelo menos 6 caracteres/i)).toBeInTheDocument(); });
क्या परीक्षण किया जा रहा है: यहां हम जांचते हैं कि ईमेल और पासवर्ड फ़ील्ड अमान्य डेटा से भरे होने पर फॉर्म उचित त्रुटि संदेश प्रदर्शित कर रहा है या नहीं। अपेक्षित त्रुटि संदेश प्रदर्शित होते हैं या नहीं, इसकी जांच करके हम गलत मानों की प्रविष्टि का अनुकरण करते हैं।
ऐसी दुनिया में जहां उपयोगकर्ता अनुभव और सॉफ्टवेयर गुणवत्ता प्राथमिकता है, फ्रंट-एंड परीक्षण यह सुनिश्चित करने में महत्वपूर्ण भूमिका निभाता है कि हमारे एप्लिकेशन न केवल सही ढंग से काम करते हैं, बल्कि एक तरल, बग-मुक्त अनुभव भी प्रदान करते हैं।
इन परीक्षणों को अपने विकास प्रवाह में एकीकृत करके, आप न केवल समस्याओं को प्रमुख सिरदर्द बनने से पहले रोक रहे हैं, बल्कि एक अधिक विश्वसनीय और लचीला कोड आधार भी बना रहे हैं। प्रत्येक प्रकार के परीक्षण में सत्यापन की एक अलग परत होती है, और साथ में, वे सुरक्षा की एक बड़ी परत बनाते हैं जो आपके एप्लिकेशन की गुणवत्ता और कार्यक्षमता सुनिश्चित करने में मदद करती है।
याद रखें, केक रेसिपी की तरह जहां प्रत्येक घटक की अपनी महत्वपूर्ण भूमिका होती है, प्रत्येक प्रकार के परीक्षण का विकास प्रक्रिया में अपना विशिष्ट कार्य होता है और परीक्षणों का संतुलित संयोजन विकसित करना एक अनुशंसित अभ्यास से परे होता है, यह किसी के लिए भी एक आवश्यकता है टीम जो उच्च-गुणवत्ता वाले सॉफ़्टवेयर वितरित करने का प्रयास करती है।
इसलिए अगली बार जब आप कोई नई सुविधा विकसित कर रहे हों या बग ठीक कर रहे हों, तो परीक्षण को अपने अपरिहार्य सहयोगी के रूप में सोचें। वे अपने उपयोगकर्ताओं के लिए अधिक मजबूत, विश्वसनीय और सबसे बढ़कर, अधिक संतोषजनक एप्लिकेशन की कुंजी हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3