आजकल सॉफ्टवेयर ऐप्लिकेशन का यूज़ हर जगह होने लगा है यानी हॉस्पिटल्स में, शॉप्स में, ट्रैफिक में और बिज़नेस में भी, ऐसे में अगर सॉफ्टवेयर की टेस्टिंग का process ना किया जाए तो ये बहुत ही डेंजरस साबित हो सकता है क्योंकि इससे सेक्युरिटी issue हो सकते हैं मनी लॉस हो सकता है और हेल्थ सेक्टर में डेथ जैसे केसेस भी हो सकते हैं.
यानी एक ऐप्लिकेशन को बिना टेस्ट किए लॉन्च या डिलिवर करने users को कई small और बड़ी प्रॉब्लम face करनी पड़ सकती है तो क्या इसका मतलब सॉफ्टवेयर टेस्टिंग एक इम्पोर्टेन्ट टास्क है? जी हाँ, बिल्कुल सॉफ्टवेयर टेस्टिंग को इतनी इम्पोर्टेन्स दिए जाने का रीज़न ये है कि अगर सॉफ्टवेयर में कोई bugs या errors हो तो उन्हें जल्दी ही आइडेंटिफाइ किया जा सके और सॉफ्टवेयर प्रॉडक्ट की डिलिवरी से पहले उसे solve कर दिया जाए.
क्योंकि properly टेस्टेड सॉफ्टवेयर, प्रॉडक्ट रिलायबिलिटी, सेक्युरिटी और हाई परफॉर्मेंस को इन्शुर करते हैं और इसमें टाइम कम लगता है, कॉस्ट कम लगती है और कस्टमर सैटिस्फैक्शन काफी इन्क्रीज़ होता है सॉफ्टवेयर टेस्टिंग ही चेक करने का मेथड है की ऐक्चुअल सॉफ्टवेयर प्रॉडक्ट एक्सपेक्टेड रिक्वाइर्मन्ट से मैच कर रहा है या नहीं और सॉफ्टवेयर प्रॉडक्ट डिफेक्टेड भी है या नहीं.
इसका बेसिक गोल होता है सॉफ्टवेयर में से बक्श को एलिमिनेट करना और उसकी परफॉर्मेन्स user एक्सपिरियंस सिक्युरिटी जैसे ऐस्पेक्ट को एनहान्स करना और इस तरह की गई सॉफ्टवेयर टेस्टिंग से सॉफ्टवेयर की ओवरऑल क्वॉलिटी को सुधारा जा सकता है, जिससे ग्रेट कस्टमर सैटिस्फैक्शन मिलता है वैसे क्या आपको पता है कि एक सॉफ्टवेयर टेस्टर क्या करता है?
सॉफ्टवेयर टेस्टर क्या करता है?
सॉफ्टवेयर टेस्टर रिक्वायरमेंट डॉक्यूमेंट्स को समझता है, टेस्ट cases को क्रिएट करता है, उन्हें एग्जिक्यूट करता है, बक्स की रिपोर्टिंग और री टेस्टिंग करता है, रिव्यु मीटिंग्स अटेंड करता है और अदर टीम बिल्डिंग ऐक्टिविटीज़ में भी पार्ट लेता है अब अगर आपको भी सॉफ्टवेयर टेस्टिंग के फील्ड में interest है तो इस सॉफ्टवेयर टेस्टिंग को अच्छी तरीके से समझ लेना फायदेमंद रहेगा.
इसलिए आगे आर्टिकल में इसके बारे में डिटेल में बात करते हैं सॉफ्टवेयर टेस्टिंग को दो स्टेप्स में divide किया जा सकता है वेरिफिकेशन और वैलिडेशन वेरिफिकेशन उन टास्क के सेट को रेफर करता है जो यह इन्शुर करते हैं कि सॉफ्टवेयर एक स्पेसिफिक फंक्शन को सही से इम्प्लिमेंट कर रहा है और वैलिडेशन टास्क के ऐसे डिफ़रेंट सेट्स को रेफर करता है जो इन्शुर करता है कि जो सॉफ्टवेयर बनाया गया है वो कस्टमर रिक्वायरमेंट्स के लिए ट्रेस करने लायक है.
यानी अगर वेरिफिकेशन ये बताता है कि क्या हम प्रॉडक्ट को सही तरीके से बना रहे हैं, तो वैलिडेशन का मतलब होगा कि क्या हम सही प्रॉडक्ट बना रहे हैं आई होप आप इस डिफरेन्स को समझ गए होंगे.
सॉफ्टवेयर टेस्टिंग के टाइप्स
अब बात करते हैं सॉफ्टवेयर टेस्टिंग के टाइप्स की, जिन्हें अक्सर दो तरीके से बांटा जाता है पहला है इसके दो टाइप्स मैनुअल और ऑटोमेशन टेस्टिंग माने जाते हैं और दूसरा फंक्शनल नॉन फंक्शनल और मेन्टेन्स टेस्टिंग भी इसके दो टाइप्स माने जाते हैं आइए इन दोनों के बारे में जानते हैं.
पहले मैन्युअल और ऑटोमेशन टेस्टिंग टाइप्स के बारे में जानते हैं मैन्युअल टेस्टिंग में मैन्युअली सॉफ्टवेयर टेस्टिंग करना होता है यानी किसी ऑटोमेटेड टूल के बिना टेस्टिंग करना इसकी कई stages में यूनिट टेस्ट, इन्टेगरेशन टेस्टिंग, सिस्टम टेस्टिंग और user acceptance टेस्टिंग शामिल होती है.
ऑटोमेशन टेस्टिंग जैसे टेस्ट ऑटोमेशन भी कहा जाता है उसमें टेस्टर स्क्रिप्ट्स लिखता है और दूसरे सॉफ्टवेयर का यूज़ करके प्रॉडक्ट को टेस्ट करता है और अब बात करते हैं फंक्शनल टेस्टिंग, नॉन फंक्शनल टेस्टिंग और मेन्टेन्स टेस्टिंग के टाइप की सबसे पहले फंक्शनल टेस्टिंग की बात करें, तो इसमें सॉफ्टवेयर ऐप्लिकेशन के फंक्शनल पैक्स की टेस्टिंग आती है जब आप फंक्शनल टेस्ट कर रहे होंगे तो आपको हर फंक्शनैलिटी को टेस्ट करना होगा और यह देखना होगा कि आपको डिज़ाइरड रिज़ल्ट मिल रहे हैं या नहीं.
फंक्शनल टेस्टिंग के कई सारे टाइप्स होते है, जैसे यूनिट टेस्टिंग, इन्टेगरेशन टेस्टिंग, वैन टु इंट्रेस्टिंग, स्मोक टेस्टिंग, सैनिटी टेस्ट इन रिग्रेशन, टेस्टिंग, एक्सेप्टेंस टेस्टिंग, व्हाइट बॉक्स टेस्टिंग, ब्लैक बॉक्स टेस्टिंग और इन्टरफेस टेस्टिंग. ये फंक्शनल टेस्ट मैन्युअली और ऑटोमेशन टोल से किए जाते हैं ऐसे कुछ टूल्स जिनका यूज़ फंक्शनल टेस्टिंग में किया जा सकता है वो है माइक्रो फोकस यू एफटी सेलीनियम जे यूनिट सो प्यूष वाटर एट्सेटरा.
अब बात करते है नॉन क्शनल टेस्टिंग की ये एक ऐप्लिकेशन के नॉन फंक्शनल ऐस्पेक्ट जैसे की परफॉर्मेन्स, रिलायबिलिटी, यू सिबिल इ टी सेक्युरिटी एट्सेटरा की टेस्टिंग होती है ये टेस्ट फंक्शनल टेस्ट के बाद परफॉर्म किए जाते हैं इस तरह की टेस्टिंग के जरिये सॉफ्टवेयर क्वालिटी को बहुत ज्यादा इम्प्रूव किया जा सकता है ये टेस्ट मैन्युअली रन नहीं करते हैं बल्कि टूल्स के जरिए एग्जिक्यूट होते हैं.
नॉन फंक्शनल टेस्टिंग के भी बहुत सारे टाइप्स होते है, जैसे की परफॉर्मेंस टेस्टिंग, सिक्योरिटी, टेस्टिंग लोड, टेस्टिंग फेल, ओवर टेस्टिंग, कम्पैटिबिलिटी, टेस्टिंग यू से ब्रिटी टेस्टिंग इस कला, बेटी टेस्टिंग, वॉल्यूम टेस्टिंग, स्ट्रेस टेस्टिंग, मेंटैलिटी टेस्टिंग, कंप्लाइयेन्स टेस्टिंग एफिशिएंसी टेस्टिंग, रिलायबिलिटी टेस्टिंग टेस्टिंग, डिजास्टर रिकवरी टेस्टिंग लोकलाइजेशन, टेस्टिंग और इंटर नैशनलाइजेशन टेस्टिंग etc.
और अब थर्ड टाइप में आता है मेन्टेन्स टेस्टिंग सॉफ्टवेयर की रिलीज से पहले तो उसकी टेस्टिंग होती ही है, लेकिन उसके रिलीज के बाद भी उसकी टेस्टिंग जरूरी होती है और सॉफ्टवेयर के रिलीज के बाद उसकी टेस्टिंग होना मेन्टेन्स टेस्टिंग कहलाता है इसके दो टाइप्स होते हैं कौन फॉर्मेशन टेस्टिंग, जिसमें मॉडिफाइड फंक्शनैलिटी की टेस्टिंग होती है और रिग्रेशन टेस्टिंग जिसमें एग्ज़िस्टिंग फंक्शनैलिटी की टेस्टिंग आती है अब इन टाइप्स के बाद आपको बता देते है कि सॉफ्टवेयर टेस्टिंग यूं तो बहुत तरह की होती है यानी सौ से भी ज्यादा तरह की टेस्टिंग हुआ करती है, जिन्हें एक्सप्लेन करना तो पॉसिबल नहीं है इसलिए इस आर्टिकल में हम टेन मोस्ट कॉमन टेस्टिंग के बारे में जान लेते हैं.
Software Testing Type 1
नंबर एक पर है यूनिट टेस्टिंग यह सॉफ्टवेयर टेस्टिंग प्रोसैस का वो लेवल है जिसमें सॉफ्टवेयर या सिस्टम की इंडीविजुअल यूनिट्स और कॉम्पोनेंट्स टेस्ट किए जाते हैं इसका पर्पस ये कन्फर्म करना होता है कि सॉफ्टवेर की हर यूनिट डिजाइन के अकॉर्डिंग परफॉर्म कर रही है.
Software Testing Type 2
नंबर दो पर है इन्टेगरेशन टेस्टिंग ये सॉफ्टवेयर टेस्टिंग प्रोसेसेस का वो लेवल है जिसमें इनडिविजुअल यूनिट्स कंबाइन हो जाती है और उन्हें एक ग्रूप की तरह टेस्ट किया जाता है इसका पर्पस इंटिग्रेटेड यूनिट्स के इंटरैक्शन में फॉल्स को इक्स्पोज़ करना होता है.
Software Testing Type 3
नंबर तीन पर है सिस्टम टेस्टिंग सॉफ्टवेयर टेस्टिंग प्रोसेसेस के इस लेवल में एक कंप्लीट इन्टीग्रेटेड सिस्टम या सॉफ्टवेयर टेस्ट किया जाता है इस टेस्ट का पर्पस स्पेसिफाइड requirement के साथ सिस्टम कंप्लाइयेन्स को इवैल्यूएट करना है
Software Testing Type 4
नंबर चार पर है एक्सेप्टेंस टेस्टिंग ये सॉफ्टवेयर टेस्टिंग प्रोसैस का वो लेवल है जहाँ पर सिस्टम को एक्सेप्ट एबिलिटी के लिए टेस्ट किया जाता है इसका पर्पस बिज़नेस रिक्वायरमेंट्स के साथ साथ सिस्टम कंप्लाइयेन्स को इवैल्यूएट करना है और ये अनुमान लगाना है कि क्या ये डिलिवरी के लिए एक्सेप्टेबल है या नहीं.
Software Testing Type 5
नंबर पांच पर है end to end टेस्टिंग ये पूरे सॉफ्टवेयर सिस्टम की फंक्शनल टेस्टिंग होती है और जब आप कंप्लीट सॉफ्टवेयर सिस्टम को टेस्ट करते हैं तो ऐसी टेस्टिंग end to end टेस्टिंग कहलाती है.
Software Testing Type 6
नंबर छह user interface टेस्टिंग इस टेस्टिंग में ऐप्लिकेशन के user इंटरफेस की टेस्टिंग आती है और इसका पर्पस ये चेक करना होता है की क्या user इन्टरफेस रिक्वायरमेंट स्पेसिफिकेशन डॉक्यूमेंट के अकॉर्डिंग डेवलप हुए हैं या नहीं?
Software Testing Type 7
नंबर सात पर है Alpha टेस्टिंग ये टेस्टिंग पूरे सॉफ्टवेयर में एरर्स और इशूज़ का पता लगाती है ये टेस्ट ऐप डेवलपमेंट की लास्ट पेज पर होता है और प्रोडक्ट्स के लॉन्च से पहले या क्लाइंट को डिलिवरी देने से पहले किया जाता है ताकि ये इन्शुर किया जा सके कि user या क्लाइंट को एरर फ्री सॉफ्टवेयर ऐप्लिकेशन मिले.
Software Testing Type 8
नंबर आठ पर है बीटा टेस्टिंग ऐल्फा टेस्टिंग के बाद बीटा टेस्टिंग की जाती है और ये भी प्रॉडक्ट लॉन्च से पहले ही होती है इसे एक रियल user एनवायरनमेंट में किया जाता है, जिसमें कुछ रियल कस्टमर्स या users होते हैं ताकि ये कन्फर्म हो सके कि सॉफ्टवेयर पूरे तरीके से एरर फ्री है और smoothly फंक्शन कर रहा है users के फीडबैक के बेस पर सॉफ्टवेयर में कुछ चेंजस करके उसे बेटर बनाया जाता है.
Software Testing Type 9
नंबर नौ पर आता है ब्लैक बॉक्स टेस्टिंग ये ऐसी टेस्टिंग strategy है, जिसमें सिस्टम की इनटर्नल मेकनिजम को इग्नोर करके आउटपुट पर फोकस किया जाता है इसमें टेस्ट और आउटपुट के वैलिडेशन से कॉन्सर्ट होता है ना की इससे की आउटपुट कैसे प्रोड्यूस हुआ इसके लिए टेस्टर के पास प्रोग्रामिंग या इंटरनल स्ट्रक्चर और वर्किंग की नॉलेज जरूरी नहीं होती है ये मेनली हाइअर लेवल टेस्टिंग में ऐप्लिकेबल होता है.
Software Testing Type 10
नंबर दस पर है व्हाइट बॉक्स टेस्टिंग इस तरह की टेस्टिंग के लिए ऐप्लिकेशन कोड की अच्छी समझ ज़रूरी होती है और ऐप्प के इंटरनल लॉजिक के भी इसमें सॉफ्टवेयर सिस्टम की इनर वर्किंगज़ को इन्स्पेक्टर और वेरिफाई करता है, जिनमें कोड infrastructure और एक्सटर्नल सिस्टम्स के साथ इन्टेगरेशन शामिल है.
सॉफ्टवेयर टेस्टिंग प्रोसैस के स्टेप्स की बात करें तो
- Test requirements gathering
- Test plan & analysis
- Test design
- Test implementation & execution
- Defect reporting & Tracking
- Test closure
Conclusion
तो दोस्तों अब आप जान गए हैं कि सॉफ्टवेयर testing क्या होती है? ये इतनी इम्पोर्टेन्ट क्यों होती है? इससे क्या क्या बेनिफिटस मिलते हैं और इसके कितने टाइप्स होते हैं ऐसे में हमें उम्मीद है कि आपको सॉफ्टवेयर टेस्टिंग के बारे में काफी कुछ समझ आ गया होगा जो आपके लिए काफी मददगार रहेगा, वैसे कमेंट बॉक्स में लिख कर के जरूर बताएगा कि यह जानकारी ये article आपको कैसा लगा और आगे कोई सवाल हैं जिसका जवाब आप चाहते हैं, article पढना चाहते हैं तो प्लीज़ आप अपना सवाल हमें लिख कर भेजिए.