आइए बुनियादी चीज़ों से शुरू करते हैं! दो सामान्य टेस्टिंग मोड और तीन आम तरह के टेस्ट ऑटोमेशन के बारे में जानना.
हम सभी को इसके बारे में पता चला है: असल ज़िंदगी में बार-बार कोडिंग मीम क्या होता है?
यह मीम काफ़ी हद तक सटीक है: हर पैनल अलग-अलग तरीके से बहुत अच्छा काम करता है. हालांकि, दूसरे पैनल के साथ मिलकर वे एक-दूसरे को ब्लॉक कर देते हैं और काम नहीं कर पाते. आपको यह भी पसंद है कि दोनों पैनल एक साथ काम करें और एक ही समय पर काम करें.
इसे वेब डेवलपमेंट पर लागू करें: आपने कुछ टेस्ट लिखे हैं, हो सकता है कि 100% टेस्ट कवरेज भी हासिल कर लिया हो, लेकिन अन्य चीज़ें लागू होने के बाद आपके ऐप्लिकेशन को अभी काम करना होगा. हो सकता है कि यूनिट अपने-आप ठीक से काम करें, लेकिन एक-दूसरे के रिलेशन में न हों. कुछ टेस्ट लिखना ज़रूरी है, लेकिन यह आपके प्रोजेक्ट के टेस्ट सेटअप का सिर्फ़ एक हिस्सा है. सबसे पहले, आपको यह तय करना होगा कि आपको ऐप्लिकेशन की क्वालिटी के किन हिस्सों को पक्का करना होगा और इसे कैसे हासिल किया जा सकता है.
आसान शब्दों में कहें, तो असल टेस्ट कोड लिखना शुरू करने से पहले, आपको एक प्लान की ज़रूरत होती है. एक्सपेरिमेंट के तौर पर टेस्ट करने के विषय पर बात करने के लिए, चलिए क्लीन स्लेट से शुरुआत करते हैं और इन दो बुनियादी सवालों के जवाब देते हैं:
- आपको टेस्ट कैसे करना है?
- आपको क्या टेस्ट करना है?
इस लेख में उन सामान्य बातों पर फ़ोकस किया गया है जो पहले सवाल का जवाब देने के लिए ज़रूरी हैं. एक सामान्य आधार से शुरू करने के लिए, आइए सबसे पहले यह जानते हैं कि टेस्टिंग के कौनसे मोड मौजूद हैं और फिर सामान्य तरह की टेस्टिंग पर ध्यान देते हैं. बाद के लेखों में, हम दूसरे सवाल का जवाब देंगे और जवाबों को एक साथ करेंगे. साथ ही, जांच करने की ऐसी रणनीति ढूंढेंगे जो आपके प्रोजेक्ट के हिसाब से सबसे सही हो. चलिए, शुरू करते हैं! 🙌
बुनियादी चीज़ों से शुरू करें: सामान्य टेस्टिंग मोड
टेस्ट करने के तरीके के सवाल का जवाब देते समय, पहला बिंदु बहुत खास होता है. आपको मैन्युअल तरीके से टेस्ट करना चाहिए या कंप्यूटर को खुद कंट्रोल करना चाहिए? हालांकि, यह ज़रूरी है कि आप बाइनरी सोच के बीच में न आएं.
मैन्युअल टेस्टिंग बनाम ऑटोमेटेड टेस्टिंग
अगर क्वालिटी अश्योरेंस इंजीनियर से टेस्टिंग तय करने के लिए कहा जाता है, तो हो सकता है कि वे पहले इसे दो "मोड" में बांट दें:
- मैन्युअल तरीके से टेस्ट करना. यह एक सामान्य टेस्ट तरीका है, जिसे असली लोग टेस्ट करते हैं. क्वालिटी अश्योरेंस इंजीनियर क्लिक करता है और जांच करता है कि वह काम कर रहा है या नहीं और उसी समय, उसे तोड़ने की कोशिश करें. सबसे आम तरीका एक्सप्लोरेट्री टेस्टिंग है. इसमें इंजीनियर, पहले से तय पाथ या चेकलिस्ट के हिसाब से, ऐप्लिकेशन के बारे में अपनी जानकारी का इस्तेमाल करके ऐप्लिकेशन की जांच करता है.
- ऑटोमेटेड टेस्टिंग. यह एक तरह की जांच है, जिसे कंप्यूटर किया जाता है. क्वालिटी अश्योरेंस इंजीनियर इसे इस तरह से लागू करते हैं कि बार-बार होने वाले और उबाऊ टेस्ट को ऑटोमेट किया जा सके.
गाइड की इस सीरीज़ में ज़्यादातर, ऑटोमेटेड टेस्टिंग पर फ़ोकस किया गया है. हालांकि, आपको जांच के सिर्फ़ एक तरीके पर फ़ोकस नहीं करना चाहिए. भले ही, ऑटोमेशन से बहुत समय और मेहनत बचती हो, लेकिन इंसानों की मदद से और मैन्युअल तौर पर की जाने वाली जांच हमेशा अहम भूमिका निभाती है. इसके बजाय, टेस्ट ऑटोमेशन से लोगों को, एक्सप्लोरेट्री टेस्टिंग और समस्याओं के क्रिएटिव समाधान पर फ़ोकस करने के लिए बढ़ावा मिलना चाहिए. उदाहरण के लिए, उपयोगकर्ता अनुभव की क्वालिटी पक्का करना या ज़्यादा जोखिम वाले कारोबारी लॉजिक को सुरक्षित रखना. दूसरे शब्दों में कहें, तो ऑटोमेशन आपके काम आएगा. ❤️
ओपेक बॉक्स बनाम क्लियर बॉक्स
इसलिए, आपने टेस्टिंग के सामान्य मोड तय किए हैं. हालांकि, अभी यह काफ़ी नहीं है. टेस्टिंग रणनीति बनाने के लिए, एक और सवाल का जवाब है: क्या आपको पता होना चाहिए कि आपका ऐप्लिकेशन हुड के तहत कैसे काम करता है या इस जानकारी के बिना टेस्ट करना बेहतर है? जवाब के आधार पर, टेस्ट केस तैयार करने और चुनने के लिए, दो तरीके में से किसी एक को चुना जा सकता है:
- ओपेक बॉक्स टेस्टिंग (या ब्लैक बॉक्स टेस्टिंग). यह किसी कॉम्पोनेंट या सिस्टम की अंदरूनी संरचना पर ध्यान दिए बिना, उसके काम करने या न करने वाली ज़रूरी शर्तों (खास बातों) का विश्लेषण करने पर आधारित होता है.
- साफ़ बॉक्स टेस्टिंग (या व्हाइट बॉक्स टेस्टिंग) एक ऐसी प्रक्रिया है जिसमें बताए गए बॉक्स के अंदर के स्ट्रक्चर को ध्यान में रखा जाता है. दूसरे शब्दों में, आपका ऐप्लिकेशन हुड के तहत कैसे काम करता है.
दोनों प्रोसेस को मैन्युअल और ऑटोमेटेड टेस्ट पर लागू किया जा सकता है. हालांकि, सामान्य टेस्टिंग मोड के कुछ पहलुओं पर, दोनों में से किसी एक पर ज़्यादा फ़ोकस किया जा सकता है. इसके बारे में हम बाद में बात करेंगे. फ़िलहाल, हम टेस्ट ऑटोमेशन को अलग-अलग टाइप में बांटते हैं.
टेस्ट ऑटोमेशन टाइप: आपको इन्हें कैसे टेस्ट करना है?
जैसे-जैसे आप "कैसे" सवाल का जवाब देने के करीब हैं, आपने पहले ही कुछ मैन्युअल रूप से टेस्ट करने का फ़ैसला कर लिया है. हालांकि, टेस्ट ऑटोमेशन टाइप को चुनना और लागू करना थोड़ा ज़्यादा मुश्किल होता है. ऑटोमेशन टेस्टिंग के टाइप, उन मेट्रिक से काफ़ी मिलते-जुलते हैं जिन्हें आपको अपने प्रोजेक्ट में बनाना है. आइए, सबसे अहम विषयों पर नज़र डालते हैं.
जैसा कि पहले मीम में बताया गया है, आपके लिए पहले से ही दो तरह के विकल्प उपलब्ध हैं: यूनिट टेस्टिंग और इंटिग्रेशन टेस्टिंग. शुरू से अंत तक के चरणों की टेस्टिंग, तीसरा ज़रूरी चरण है. लेकिन ये सभी अब भी नहीं हैं. चलिए, इस पर एक नज़र डालते हैं.
यूनिट टेस्टिंग
यूनिट टेस्टिंग एक तरह की जांच है. इसमें, किसी ऐप्लिकेशन के छोटे-छोटे हिस्सों या यूनिट की अलग-अलग जांच की जाती है और सही तरीके से काम करने के लिए, अलग-अलग टेस्ट किए जाते हैं. ये इकाइयां, फ़ंक्शन, क्लास या इंटरफ़ेस से लेकर सेवाओं या पूरे कॉम्पोनेंट के दायरे में अलग-अलग हो सकती हैं. उनकी मुख्य विशेषताएं हैं कि एक्ज़ीक्यूशन की स्पीड, अलग-अलग रखना, और मैनेज करने में आसानी हो. यूनिट टेस्टिंग के बारे में ज़्यादा जानने के लिए, यूनिट टेस्टिंग से जुड़ी यह गाइड देखें.
इंटिग्रेशन की जांच
इंटिग्रेशन की जांच करने पर, अलग-अलग कॉम्पोनेंट या सिस्टम के बीच होने वाले इंटरैक्शन पर ध्यान दिया जाता है. दूसरे शब्दों में, इस बात पर कि वे एक साथ कितनी अच्छी तरह से काम करते हैं. आम तौर पर, एपीआई या कॉम्पोनेंट की जांच, इंटिग्रेशन की जांच के उदाहरण हैं.
शुरू से अंत तक के चरणों की जांच
आम तौर पर, इन टेस्ट को यूज़र इंटरफ़ेस (यूआई) टेस्ट कहा जाता है. यही नाम, इनके काम करने के तरीके के बारे में बेहतर तरीके से बताता है. ये परीक्षण पूर्ण ऐप्लिकेशन स्टैक सहित आपके ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) के साथ इंटरैक्ट करते हैं और आपके ऐप्लिकेशन का एक सिरे से दूसरे सिरे तक परीक्षण करते हैं.
क्वालिटी अश्योरेंस के सिद्धांत की मदद से, ये सिस्टम टेस्ट से मिलते-जुलते होते हैं. ये टेस्ट, किसी असल उपयोगकर्ता और उसके इंटरैक्शन को सिम्युलेट करते हैं. शुरू से अंत तक के टेस्ट में ज़्यादा रनटाइम लगता है, क्योंकि उनमें पूरा सिस्टम शामिल होता है और ज़्यादा रनटाइम के लिए ज़्यादा कंप्यूटिंग पावर की ज़रूरत होती है. स्वाभाविक रूप से, इस अतिरिक्त प्रयास से रखरखाव की लागत बढ़ जाती है.
विज़ुअल यूज़र इंटरफ़ेस (यूआई) की टेस्टिंग
विज़ुअल टेस्ट, यूज़र इंटरफ़ेस (यूआई) टेस्ट की एक दिलचस्प सब-कैटगरी है. ये टेस्ट, एंड-टू-एंड टेस्ट होते हैं. इनकी मदद से, किसी ऐप्लिकेशन के दिखने वाले आउटपुट की पुष्टि की जा सकती है. ऐसे टेस्ट में, किसी बदलाव के बाद एक स्क्रीनशॉट लिया जाता है और दूसरे स्क्रीनशॉट में “स्थिति” (या गोल्डन फ़ाइल) वाला स्क्रीनशॉट लिया जाता है, तो जांच के नतीजों की जांच मैन्युअल तरीके से की जाती है. दूसरे शब्दों में कहें, तो यह सिर्फ़ काम करने वाले बग और दावों में साफ़ तौर पर नहीं लिखी गई गड़बड़ियों के अलावा, पेज की तरह "विज़ुअल बग" ढूंढने में मदद करता है.
स्टैटिक विश्लेषण
यहां आपको एक और चीज़ बतानी होगी: स्टैटिक विश्लेषण. टेक्स्टबुक के हिसाब से, यह टेस्टिंग का टाइप नहीं है. हालांकि, आने वाले समय में क्वालिटी बनाए रखने की रणनीतियों में यह एक ज़रूरी पहलू होगा. कल्पना करें कि यह स्पेल चेक फ़ंक्शन की तरह काम करता है. यह प्रोग्राम चलाए बिना ही, ज़्यादा गंभीर गड़बड़ियों और सिंटैक्स की गड़बड़ियों का पता लगाने के लिए आपके कोड को स्कैन करता है. इस तरह, कोड स्टाइल की समस्याओं का पता लगाया जाता है. इस आसान तरीके से कई गड़बड़ियों को रोका जा सकता है. अगर आपको स्टैटिक विश्लेषण के बारे में ज़्यादा जानकारी चाहिए, तो इसके बारे में जानना सही रहेगा.
अलग-अलग आकार में जांच करना: यह सब एक साथ कैसे काम करता है?
इन सभी सवालों के जवाब खोजते समय, हो सकता है कि आपको कुछ एनालॉग में उनका समाधान मिल जाए. खास तौर पर, वेब और टेस्टिंग कम्यूनिटी में, डेवलपर इन तुलनाओं का इस्तेमाल आपको यह बताने के लिए करते हैं कि आपको किस तरह की जांचों का इस्तेमाल करना चाहिए.
इस इमेज में दिखाई गई ये पांच रणनीतियां सबसे आम हैं:
- टेस्ट पिरामिड
- टेस्ट डायमंड
- आइस कोन को टेस्ट करें (इसे टेस्ट पिज़्ज़ा भी कहा जाता है)
- शहद के छत्ते की जांच करें
- टेस्ट ट्रॉफ़ी
असल में, इसमें काफ़ी सारी जानकारी प्रोसेस करनी पड़ती है. इन सभी चीज़ों के आधार पर, आपको मैच करने की टेस्ट रणनीति कैसे तय करनी चाहिए? चिंता न करें, हम हैं न. अगले लेख में, हम इन अलग-अलग रणनीतियों के बारे में ज़्यादा जानकारी देंगे. साथ ही, हम आपको अपने प्रोजेक्ट के हिसाब से सबसे सही रणनीति चुनने का तरीका भी बताएंगे. हमारे साथ बने रहें! 🔥