कॉन्टेंट-ड्रिवन वेब ऐप्लिकेशन के बैकएंड की जांच करना

किसी वेब ऐप्लिकेशन के बैकएंड की जांच करना, डेवलपमेंट प्रक्रिया और लगातार निगरानी करने की प्रक्रिया का एक अहम हिस्सा है. साथ ही, फ़्रंटएंड के लिए टेस्टिंग देखें.

टेस्ट-ड्रिवन डेवलपमेंट

टेस्ट-ड्रिवन डेवलपमेंट (टीडीडी) में, ऐप्लिकेशन की ज़रूरी शर्तों को टेस्ट केस में बदल दिया जाता है. इसके बाद ही, ऐप्लिकेशन को पूरी तरह से लागू किया जाता है. डेवलपमेंट के दौरान, ये टेस्ट सबसे पहले लिखे जाते हैं और ऐप्लिकेशन बनाते समय इन्हें धीरे-धीरे लागू किया जाता है. साफ़ तौर पर ज़रूरी शर्तें (जैसे, टेस्ट केस) यह पक्का करते हैं कि फ़ाइनल कोड अच्छी तरह से बनाया गया है, सभी ज़रूरी शर्तें पूरी करता है, और सही है. यह डेवलपमेंट के शुरुआती चरणों में अहम हो जाता है.

लगातार इंटिग्रेशन और ऑटोमेटेड टेस्टिंग

लगातार इंटिग्रेशन (सीआई) टेस्टिंग से कोड में होने वाले किसी भी बदलाव की जांच अपने-आप होती है. जैसे, कोड की समीक्षा के दौरान या आपके कोड को स्टोर करने की जगह में मर्ज किए जाने पर. अपने-आप होने वाले टेस्ट से, डेवलपमेंट के दौरान ब्रेकेज या रिग्रेशन के जोखिम कम होते हैं. साथ ही, सबमिट किए गए कोड की क्वालिटी पर बेहतर तरीके से असर पड़ता है. हमारा सुझाव है कि आप अपने ऐप्लिकेशन के लिए एक ऑटोमेटेड टेस्टिंग सिस्टम सेट अप करें, ताकि आपके ऐप्लिकेशन की स्थिति को पक्का किया जा सके. ऐसे सिस्टम का इस्तेमाल करें जो आपके आर्किटेक्चर, प्लैटफ़ॉर्म, और भाषा के साथ काम करता हो और आपकी डेवलपमेंट पाइपलाइन में आसानी से इंटिग्रेट हो. उदाहरण के लिए, सीआई वर्कफ़्लो के लिए GitHub की कार्रवाइयां या आपके कॉन्फ़िगरेशन के हिसाब से बनाए गए क्लाउड में पहले से मौजूद कस्टम सीआई पाइपलाइन का इस्तेमाल करें.

ऑटोमेटेड टेस्टिंग के सिद्धांतों और अपने टेस्ट को बेहतर बनाने के तरीकों के बारे में ज़्यादा जानें. लगातार इंटिग्रेशन की जांच करने के बारे में ज़्यादा जानें. साथ ही, सफलता को लागू करने, सेट अप करने, और उसका आकलन करने के सबसे सही तरीकों के बारे में भी जानें.

अगले कदम के तौर पर, ऑटोमेटेड कंटिन्यूअस डिलीवरी (सीडी) पाइपलाइन को आज़माएं, ताकि आपके ऐप्लिकेशन में बदलाव और अपडेट अपने-आप लागू हो जाएं.

यूनिट टेस्टिंग

यूनिट टेस्टिंग का मतलब है, कोड के छोटे और खुद में शामिल हिस्सों की जांच करना. यूनिट टेस्टिंग फ़्रेमवर्क का इस्तेमाल करें. यह बैकएंड भाषा या फ़्रेमवर्क के लिए सुझाया गया और लोकप्रिय है. उदाहरण के लिए, मोनोलिथिक Java-आधारित ऐप्लिकेशन के लिए, JUnit का इस्तेमाल करें या JavaScript-आधारित बिना सर्वर वाले ऐप्लिकेशन (इसमें Dart या TypeScript शामिल हैं) के लिए, JavaScript की जांच करने के लिए बनाए गए फ़्रेमवर्क का इस्तेमाल करें, जैसे कि Jest.

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

इंटिग्रेशन की जांच करना

इंटिग्रेशन टेस्टिंग का मतलब बड़े मॉड्यूल या आपके ऐप्लिकेशन के कुछ हिस्सों को एक साथ टेस्ट करना है. यूनिट टेस्टिंग (जिसमें कोड के अलग-अलग हिस्सों पर फ़ोकस किया जाता है) की तुलना में, इंटिग्रेशन टेस्टिंग आपकी साइट के आर्किटेक्चर के अलग-अलग हिस्सों के इंटिग्रेशन पर फ़ोकस करती है. इसमें ऐप्लिकेशन के कई चरणों और मॉड्यूल को शामिल करने वाले एंड-टू-एंड फ़्लो भी शामिल हो सकते हैं.

इंटिग्रेशन की जांच में आपके ऐप्लिकेशन के अलग-अलग मॉड्यूल शामिल हो सकते हैं. इनके लिए बाहरी सेवाओं, जैसे कि डेटा स्टोरेज, फ़ाइल सिस्टम या पेमेंट की ज़रूरत पड़ सकती है. डिपेंडेंसी इंजेक्शन या बैकएंड फ़्रेमवर्क से मिलने वाली मिलती-जुलती सुविधाओं की मदद से, अपने ऐप्लिकेशन को इस तरह से बनाएं कि इन सेवाओं के लिए ऐब्सट्रैक्ट सुविधा का इस्तेमाल किया जा सके.

व्यवहार और फ़ंक्शन की जांच

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

रिग्रेशन टेस्टिंग

रिग्रेशन टेस्टिंग का मतलब उन टेस्ट से है जो यह पुष्टि करते हैं कि ऐप्लिकेशन अब भी उम्मीद के मुताबिक काम कर रहा है. पहले पूरे हो चुके टेस्ट को नए बदलावों के लिए फिर से चलाया जाता है. इससे यह पक्का होता है कि बदलावों में कोई पिछली समस्या फिर से नहीं आई है. ऐप्लिकेशन में गड़बड़ियां ठीक होने पर यूनिट या इंटिग्रेशन टेस्ट जोड़ा जाना चाहिए, ताकि यह पक्का किया जा सके कि बग बार-बार न हो. रिग्रेशन टेस्ट को सामान्य टेस्टिंग और पाइपलाइन के साथ इंटिग्रेट किया जाना चाहिए.

धुएं की जांच

स्मोक टेस्टिंग को बिल्ड पुष्टि टेस्टिंग भी कहा जाता है. इसमें, आपके बैकएंड ऐप्लिकेशन के सबसे ज़रूरी फ़ंक्शन की पुष्टि करने पर ध्यान दिया जाता है. इंटिग्रेशन टेस्टिंग के साथ-साथ, स्मोक टेस्टिंग में आपके ऐप्लिकेशन के इस्तेमाल के ज़रूरी उदाहरण शामिल किए जाते हैं. इससे, कुछ सुविधाओं और बाहरी डिपेंडेंसी के बारे में जानकारी मिलती है. धुएं की जांच (स्मोक टेस्टिंग) किसी ऐप्लिकेशन को स्टेजिंग एनवायरमेंट में प्रमोट करने से पहले, पुष्टि की एक और लेयर के तौर पर काम कर सकती है, ताकि सही व्यवहार पक्का किया जा सके. धुएं के टेस्ट में ऑटोमेटेड यूनिट टेस्ट या मैन्युअल तरीके से किए जाने वाले टेस्ट शामिल हो सकते हैं. ये टेस्ट QA टीम करती है.

प्रोडक्शन और स्टेजिंग एनवायरमेंट

स्टेजिंग एनवायरमेंट आपके प्रोडक्शन एनवायरमेंट की कॉपी है. इसे टेस्ट को आसान बनाने के लिए सैंडबॉक्स किया गया है. खास तौर पर डिप्लॉय किए गए डिप्लॉयमेंट, प्रोडक्शन एनवायरमेंट की समस्याओं के जोखिम को कम करते हैं और क्वालिटी अश्योरेंस करने में आसान बनाते हैं. स्टेजिंग एनवायरमेंट की मदद से, लाइव प्रोडक्शन एनवायरमेंट के आस-पास सिस्टम की जांच की जा सकती है.

लागत या बैकएंड आर्किटेक्चर की जटिलता जैसी वजहों से, प्रोडक्शन एनवायरमेंट की 1-1-1 कॉपी रखना संभव नहीं है. देखें कि बैकएंड के कौनसे हिस्से सबसे अहम हैं और उन्हें स्टेजिंग एनवायरमेंट के लिए ऑप्टिमाइज़ करें.

प्रोडक्शन में इस्तेमाल किए गए डेटा की जांच करने से यह पता चल जाता है कि ऐप्लिकेशन, असल दुनिया के डेटा के साथ कैसा व्यवहार करता है. ऐसे स्टेजिंग एनवायरमेंट के लिए, निजता से जुड़ी समस्याओं और डेटा स्टोरेज की ज़रूरतों को ध्यान में रखें. साथ ही, अपने बैकएंड सिस्टम में इस्तेमाल किए जाने वाले डेटा को सावधानी से डिज़ाइन करें. ऐसे एनवायरमेंट के ऐक्सेस को सख्ती से कंट्रोल किया जाना चाहिए. खास तौर पर, जब प्रोडक्शन डेटा का इस्तेमाल किया जाता है.

अपने सिस्टम के पैमाने पर विचार करें और इस बात पर विचार करें कि स्टैंडिंग एनवायरमेंट आपके ऐप्लिकेशन के लिए सही है या नहीं. रोलिंग स्टेजिंग एनवायरमेंट, जिन्हें लगातार डिलीवरी सिस्टम से अपने-आप डिप्लॉय किया जा सकता है. साथ ही, इनसे हर दिन या हर हफ़्ते के बिल्ड को टेस्ट करने के ज़्यादा मौके मिलते हैं. साथ ही, रिलीज़ से पहले ज़्यादा से ज़्यादा जांच की जा सकती है.

दूसरा तरीका यह है कि पूरी तरह से डिप्लॉय किए गए स्टेजिंग एनवायरमेंट के बजाय, लगातार इंटिग्रेशन टेस्ट और ऑटोमेटेड सिस्टम पर ज़्यादा भरोसा किया जाए. अपनी टीम के वर्कफ़्लो, सिस्टम की परफ़ॉर्मेंस, कोड कवरेज, और तकनीकी ज़रूरतों को ध्यान में रखें.