नमस्ते! मेरा नाम व्याचेस्लाव अक्सेनोव है और मैं जावा और कोटलिन में जटिल बैकएंड सिस्टम विकसित करने में विशेषज्ञता वाला एक बैकएंड डेवलपर हूं। इसके अलावा, मैं अपने लिए बहुत सारे कोड लिखता हूं, जिसे आप मेरे GitHub पर पा सकते हैं: https://github.com/v-aksenov
यदि आप अपने कोड के लिए परीक्षण नहीं लिखते हैं, तो मैं आपको बताउंगा कि आपके द्वारा निवेश किए जाने वाले प्रत्येक मिनट के परीक्षण के लायक क्यों हैं। इस लेख में, आपको परीक्षण लिखना शुरू करने में मदद करने के लिए युक्तियाँ मिल सकती हैं, और मैं आपको बताऊँगा कि इसे कैसे करना है।
जब आप अपने कोड के लिए परीक्षण लिखना शुरू करते हैं तो आपको 4 मुख्य लाभ मिलते हैं:
बेहतर कोड गुणवत्ता: परीक्षण लिखकर, आप यह सुनिश्चित कर सकते हैं कि आपका कोड सही तरीके से काम कर रहा है और आपके द्वारा किए गए कोई भी बदलाव मौजूदा कार्यक्षमता को भंग नहीं करते हैं। यह आपको बग को जल्दी पकड़ने में मदद कर सकता है और उन्हें लाइन के नीचे प्रमुख मुद्दे बनने से रोक सकता है।
तेज़ विकास: स्वचालित परीक्षण तेज़ी से और लगातार चलाए जा सकते हैं, जो आपके एप्लिकेशन को विकसित करते समय आपका समय और प्रयास बचा सकते हैं। अपने कोड में परिवर्तन करते समय यह विशेष रूप से उपयोगी हो सकता है, क्योंकि आप यह सुनिश्चित करने के लिए जल्दी से अपने परीक्षण चला सकते हैं कि आपके परिवर्तनों में कोई नई बग नहीं आई है।
आसान डिबगिंग: यदि आपको अपने आवेदन में कोई समस्या आती है, तो परीक्षणों का एक सूट होने से समस्या के स्रोत की पहचान करना आसान हो सकता है। अपने परीक्षण चलाकर, आप जल्दी से यह निर्धारित कर सकते हैं कि आपके कोड का कौन सा भाग समस्या पैदा कर रहा है और इसे ठीक करने के अपने प्रयासों पर ध्यान केंद्रित करें।
आत्मविश्वास में वृद्धि: लेखन परीक्षण आपको अपने कोड में और आपके द्वारा किए गए परिवर्तनों में विश्वास दिला सकता है। बड़े, जटिल एप्लिकेशन पर काम करते समय यह विशेष रूप से उपयोगी हो सकता है, जहां यह सुनिश्चित करना मुश्किल हो सकता है कि आपका कोड सही है।
वेब एप्लिकेशन का परीक्षण करते समय कई सर्वोत्तम अभ्यासों का पालन किया जा सकता है:
परीक्षण-संचालित विकास दृष्टिकोण का उपयोग करना: परीक्षण-संचालित विकास (टीडीडी) एक सॉफ्टवेयर विकास पद्धति है जिसमें कार्यान्वयन कोड से पहले परीक्षण लिखे जाते हैं। यह सुनिश्चित करने में मदद करता है कि परीक्षण की आवश्यकताओं को पूरा करने के लिए कोड लिखा गया है और परीक्षण व्यापक और प्रभावी हैं।
लेखन इकाई परीक्षण: इकाई परीक्षण छोटे, केंद्रित परीक्षण होते हैं जो अलग-अलग घटकों या आपके आवेदन की इकाइयों का अलगाव में परीक्षण करते हैं। यह सुनिश्चित करने में मदद करता है कि प्रत्येक घटक सही ढंग से काम कर रहा है, और उत्पन्न होने वाली किसी भी समस्या के स्रोत की पहचान करना आसान बनाता है।
लेखन एकीकरण परीक्षण: एकीकरण परीक्षण परीक्षण करते हैं कि आपके एप्लिकेशन के विभिन्न घटक एक साथ कैसे काम करते हैं। यह महत्वपूर्ण है क्योंकि यह सुनिश्चित करने में सहायता करता है कि आपका एप्लिकेशन कार्यात्मक है और आपके कोड के विभिन्न भाग एक दूसरे के साथ संगत हैं।
मॉकिंग फ्रेमवर्क का उपयोग करना: मॉकिंग फ्रेमवर्क का उपयोग आपके परीक्षणों में डेटाबेस या वेब सेवाओं जैसे बाहरी निर्भरताओं के व्यवहार को अनुकरण करने के लिए किया जा सकता है। यह परीक्षण के लिए उपयोगी हो सकता है कि वास्तव में निर्भरताओं को स्थापित किए बिना आपका एप्लिकेशन विभिन्न परिदृश्यों पर कैसे प्रतिक्रिया करता है।
परीक्षण-संचालित विकास (टीडीडी) एक सॉफ्टवेयर विकास पद्धति है जिसमें कोड के स्वयं लिखे जाने से पहले कोड के एक नए टुकड़े के लिए परीक्षण लिखे जाते हैं। कोड के वांछित व्यवहार को परिभाषित करने के लिए परीक्षणों का उपयोग किया जाता है, और कोड को परीक्षण पास करने के लिए लागू किया जाता है।
टीडीडी प्रक्रिया आमतौर पर निम्नलिखित चरणों का पालन करती है:
कोड के छोटे, विशिष्ट व्यवहार के लिए एक परीक्षण लिखें।
परीक्षण चलाएँ और सत्यापित करें कि यह विफल रहता है, क्योंकि कोड अभी तक लागू नहीं किया गया है।
टेस्ट पास करने के लिए आवश्यक न्यूनतम कोड लिखें।
परीक्षण फिर से चलाएँ और सत्यापित करें कि यह पास हो गया है।
अपने व्यवहार को बदले बिना, इसके डिज़ाइन और संरचना को बेहतर बनाने के लिए कोड को रिफलेक्टर करें।
कोड के अगले छोटे, विशिष्ट व्यवहार के लिए प्रक्रिया को दोहराएं।
टीडीडी का लक्ष्य अच्छी तरह से डिज़ाइन किया गया, अच्छी तरह से परीक्षण किया गया कोड तैयार करना है जो बनाए रखने और विस्तारित करने में आसान है। कोड लिखने से पहले परीक्षण लिखकर, आप यह सुनिश्चित कर सकते हैं कि कोड आवश्यकताओं को पूरा करता है और अपेक्षा के अनुरूप व्यवहार करता है।
यह आपको विकास प्रक्रिया की शुरुआत में बग को पकड़ने और ठीक करने में मदद कर सकता है, और आपको अपने कोड को अधिक मॉड्यूलर और पुन: प्रयोज्य तरीके से डिज़ाइन करने में भी मदद कर सकता है।
टीडीडी का उपयोग अक्सर अन्य सॉफ्टवेयर विकास पद्धतियों के संयोजन में किया जाता है, जैसे फुर्तीली विकास या चरम प्रोग्रामिंग।
यह कोई बहुत कठिन प्रश्न नहीं है। जब आपको पता चला कि आपको एक इकाई परीक्षण लिखने की आवश्यकता है, लेकिन यह नहीं पता कि कैसे, तो आप इन चरणों का पालन कर सकते हैं:
कोड की उस इकाई की पहचान करें जिसका आप परीक्षण करना चाहते हैं। एक इकाई परीक्षण आमतौर पर कोड के एक छोटे, विशिष्ट टुकड़े का परीक्षण करता है, जैसे एकल विधि या फ़ंक्शन।
कोड की इकाई के लिए एक टेस्ट केस लिखें। एक परीक्षण मामला निर्देशों का एक सेट है जो निर्दिष्ट करता है कि कोड को कैसे व्यवहार करना चाहिए और अपेक्षित परिणाम क्या होना चाहिए।
परीक्षण के लिए आवश्यक पूर्व शर्त निर्धारित करें। इसमें ऑब्जेक्ट बनाना, डेटा सेट अप करना, या परीक्षण को सही ढंग से चलाने के लिए आवश्यक अन्य क्रियाएं करना शामिल हो सकता है।
कोड की उस इकाई को शुरू करें जिसका आप परीक्षण कर रहे हैं, और परिणाम कैप्चर करें।
यह सत्यापित करने के लिए अभिकथन का उपयोग करें कि कोड का परिणाम अपेक्षित परिणाम से मेल खाता है। एक अभिकथन एक कथन है जो एक शर्त को निर्दिष्ट करता है जो परीक्षण को पास करने के लिए सही होना चाहिए।
परीक्षण चलाएँ, और परिणामों की जाँच करें। यदि परीक्षण पास हो जाता है, तो कोड अपेक्षा के अनुरूप काम कर रहा है। यदि परीक्षण विफल हो जाता है, तो कोड में एक त्रुटि होती है जिसे ठीक करने की आवश्यकता होती है।
यदि आवश्यक हो तो कोड को रिफलेक्टर करें। यदि परीक्षण पास हो जाता है, तो आप इसके व्यवहार को बदले बिना कोड के डिज़ाइन और संरचना में सुधार कर सकते हैं।
जावा में एक एकीकरण परीक्षण एक प्रकार का परीक्षण है जो जावा एप्लिकेशन के विभिन्न घटकों या मॉड्यूल के बीच एकीकरण और संचार की पुष्टि करता है।
उदाहरण के लिए, यदि आपके पास एक जावा एप्लिकेशन है जिसमें एक फ्रंट-एंड यूजर इंटरफेस, एक बैक-एंड सर्वर और एक डेटाबेस शामिल है, तो एक एकीकरण परीक्षण यह सत्यापित करेगा कि ये सभी घटक एक साथ सही तरीके से काम कर रहे हैं और अपेक्षित रूप से डेटा का आदान-प्रदान कर सकते हैं।
जावा में एक एकीकरण परीक्षण लिखने के लिए, आप आमतौर पर एक अलग परीक्षण वर्ग बनाएंगे और अपने परीक्षण लिखने और चलाने के लिए JUnit, RestAssured, या MockMvc जैसे परीक्षण उपकरणों का उपयोग करेंगे। अपनी परीक्षण कक्षाओं में, आप अपने आवेदन के किसी भी भाग का परीक्षण करने के लिए स्थानीय स्प्रिंग संदर्भ बना सकते हैं और स्टब्स सेट कर सकते हैं।
सबसे पहले, आपको यह याद रखना होगा कि जावा दुनिया में परीक्षण लेखन के लिए बड़ा खिलाड़ी स्प्रिंग फ्रेमवर्क है। परीक्षण के लिए इसमें पहले से ही कई स्प्रिंग बूट स्टार्टर्स हैं। लेकिन अगर आप किसी सरल समाधान का उपयोग करना चाहते हैं, तो आप जावा में परीक्षण के लिए बहुत लोकप्रिय पुस्तकालयों पर एक नज़र डाल सकते हैं:
मॉकिटो:
मॉकिटो जावा के लिए एक लोकप्रिय मॉकिंग फ्रेमवर्क है। यह आपको नकली वस्तुओं को बनाने और स्टब विधियों को स्थापित करने की अनुमति देता है, जिनका उपयोग आपके परीक्षण मामलों में वास्तविक वस्तुओं के व्यवहार की नकल करने और यह सत्यापित करने के लिए किया जा सकता है कि आपका कोड अपेक्षा के अनुरूप काम कर रहा है।
मॉकिटो के साथ, आप परीक्षण लिख सकते हैं जो कोडबेस में परिवर्तन के लिए अधिक मजबूत और कम संवेदनशील हैं, क्योंकि परीक्षण वास्तविक वस्तुओं और उनकी निर्भरताओं से अलग होते हैं।
इससे कोड की अलग-अलग इकाइयों का परीक्षण करना आसान हो जाता है और आपको बग पकड़ने में मदद मिल सकती है और आपके कोड के उन क्षेत्रों की पहचान करने में मदद मिल सकती है जिन्हें और परिशोधन की आवश्यकता है।
अपने जावा प्रोजेक्ट में मॉकिटो का उपयोग करने के लिए, आपको अपने क्लासपाथ में मॉकिटो लाइब्रेरी को शामिल करना होगा। फिर, आप मॉकिटो एपीआई का उपयोग मॉक ऑब्जेक्ट्स बनाने और स्टब विधियों को सेट करने के साथ-साथ यह सत्यापित करने के लिए कर सकते हैं कि आपका कोड अपेक्षा के अनुरूप व्यवहार कर रहा है।
मॉकिटो का उपयोग करने के तरीके के बारे में अधिक विस्तृत जानकारी के लिए, आप आधिकारिक दस्तावेज देख सकते हैं या कुछ ऑनलाइन ट्यूटोरियल देख सकते हैं।
जूनिट:
JUnit जावा प्रोग्रामिंग लैंग्वेज के लिए एक यूनिट टेस्टिंग फ्रेमवर्क है। इसका उपयोग आपके जावा कोड के लिए दोहराए जाने वाले परीक्षण लिखने और चलाने के लिए किया जाता है। JUnit के साथ, आप कोड की अलग-अलग इकाइयों का परीक्षण कर सकते हैं और यह सुनिश्चित कर सकते हैं कि वे पूरे एप्लिकेशन का परीक्षण किए बिना सही ढंग से काम कर रहे हैं।
JUnit एनोटेशन का एक सेट प्रदान करता है और उन तरीकों पर जोर देता है जिनका उपयोग आप अपने परीक्षण मामलों को लिखने के लिए कर सकते हैं। उदाहरण के लिए, आप परीक्षण विधि के रूप में एक विधि को चिह्नित करने के लिए @Test
एनोटेशन का उपयोग कर सकते हैं, और यह assertEquals
करने के लिए कि अपेक्षित परिणाम वास्तविक परिणाम से मेल खाता है, यह पुष्टि करने के लिए विधि।
JUnit समानांतर में परीक्षण चलाने और परीक्षण रिपोर्ट तैयार करने के लिए भी सहायता प्रदान करता है।
JUnit का उपयोग करने से आपको विकास प्रक्रिया की शुरुआत में अपने कोड में बग्स को पकड़ने और ठीक करने में मदद मिल सकती है, जो लंबे समय में आपका समय और प्रयास बचा सकता है। यह आपको यह सुनिश्चित करने में भी मदद कर सकता है कि आपका कोड सही तरीके से काम कर रहा है और आपके प्रोजेक्ट की आवश्यकताओं को पूरा करता है।
JUnit के बारे में और अपने जावा प्रोजेक्ट में इसका उपयोग करने के तरीके के बारे में अधिक जानने के लिए, आप आधिकारिक दस्तावेज़ देख सकते हैं या कुछ ऑनलाइन ट्यूटोरियल देख सकते हैं।
Unsplash पर Agê Barros द्वारा फोटो