नेगेटिव टेस्टिंग क्या है? उदाहरण सहित टेस्ट केस
नकारात्मक परीक्षण
नकारात्मक परीक्षण यह एक सॉफ्टवेयर परीक्षण प्रकार है जिसका उपयोग अप्रत्याशित इनपुट डेटा और स्थितियों के लिए सॉफ़्टवेयर एप्लिकेशन की जाँच करने के लिए किया जाता है। अप्रत्याशित डेटा या स्थितियाँ गलत डेटा प्रकार से लेकर मजबूत हैकिंग हमले तक कुछ भी हो सकती हैं। नकारात्मक परीक्षण का उद्देश्य सॉफ़्टवेयर एप्लिकेशन को नकारात्मक इनपुट के कारण क्रैश होने से रोकना और गुणवत्ता और स्थिरता में सुधार करना है।
केवल सकारात्मक परीक्षण करके हम यह सुनिश्चित कर सकते हैं कि हमारा सिस्टम सामान्य परिस्थितियों में काम कर रहा है। हमें यह सुनिश्चित करना होगा कि हमारा सिस्टम अप्रत्याशित परिस्थितियों को संभाल सके ताकि 100% दोष-मुक्त सिस्टम सुनिश्चित हो सके।
नकारात्मक परीक्षण का उदाहरण
लिफ्ट के मामले पर विचार करें जिसे सामान्यतः नकारात्मक परीक्षण का उदाहरण माना जाता है।
हम सभी लिफ्ट की कार्यक्षमता जानते हैं। इन्हें लिफ्ट की आवश्यकताओं के रूप में माना जाएगा जैसे कि मंजिल संख्या दबाने से लिफ्ट उस विशेष मंजिल पर चली जाती है।
लिफ्ट के निर्दिष्ट मंजिल पर पहुंचने पर दरवाजा स्वतः ही खुल जाता है।
अब आइये लिफ्ट के लिए कुछ नकारात्मक परिदृश्यों पर विचार करें। उनमें से कुछ हैं,
| नकारात्मक परीक्षण | सकारात्मक परीक्षण |
|---|---|
| यदि व्यक्तियों की संख्या (वजन) निर्दिष्ट सीमा से अधिक हो जाए तो क्या होगा? | यह मान लिया गया है कि लिफ्ट में केवल निर्दिष्ट संख्या में ही व्यक्ति प्रवेश करेंगे |
| यदि कोई व्यक्ति लिफ्ट के अंदर धूम्रपान करता है या आग लगाता है तो क्या होगा? | लिफ्ट के अंदर धुआँ या आग नहीं होगी |
| यदि परिचालन के दौरान बिजली गुल हो जाए तो क्या होगा? | लिफ्ट के संचालन के दौरान बिजली गुल नहीं होगी |
ये सभी मामले नेगेटिव टेस्टिंग के दायरे में आएंगे। इसका महत्व यह है कि हम यह सुनिश्चित नहीं कर सकते कि ऊपर बताई गई सभी घटनाएं नहीं होंगी, इसलिए हमें उन्हें नियंत्रित करने की आवश्यकता है।
इस मामले पर विचार करें कि अधिक वजन की स्थिति की जाँच की जाती है और कार्यान्वयन पर, अधिक वजन की स्थिति होने पर लिफ्ट असामान्य प्रदर्शन करती है। इससे सिस्टम की विश्वसनीयता पर संभावित प्रभाव पड़ेगा और जीवन को भी खतरा हो सकता है। यह बताता है कि नकारात्मक परीक्षण क्या है और इसका महत्व क्या है।
यही बात सॉफ्टवेयर में भी लागू होती है। नेगेटिव टेस्टिंग के लिए, हमने सामान्य संचालन प्रक्रिया से विचलन किया है। आइए कुछ उदाहरण देखें।
उदाहरण के लिए एक पंजीकरण फॉर्म पर विचार करें।
| नकारात्मक परीक्षण | सकारात्मक परीक्षण |
|---|---|
| ईमेल फ़ील्ड में अमान्य ईमेल आईडी दर्ज करने का प्रयास करें | ईमेल फ़ील्ड में केवल वैध ईमेल आईडी ही दर्ज की जाएंगी |
| फ़ोन नंबर फ़ील्ड में अमान्य फ़ोन नंबर दर्ज करने का प्रयास करें (अक्षर) | संख्या फ़ील्ड में केवल संख्या ही दर्ज की जाएगी |
| निर्दिष्ट सीमा से बाहर आकार वाली छवि अपलोड करें | केवल निर्दिष्ट सीमा के अंतर्गत आकार वाली छवियां ही अपलोड की जाएंगी |
| अमान्य फ़ाइलें अपलोड करें जैसे एक्सएमएल, SQL, आदि फ़ाइलें छवि अपलोड फ़ील्ड में | केवल वैध छवि प्रारूप जैसे jpg.png आदि अपलोड करें। |
जैसा कि हमने पहले कहा, हमें यह सुनिश्चित करना होगा कि इन सभी नकारात्मक मामलों में हमारा सिस्टम ठीक से काम करेगा। उस स्थिति पर विचार करें जब कोई व्यक्ति नंबर फ़ील्ड में कोई अक्षर दर्ज करने का प्रयास करता है और सिस्टम अप्रत्याशित डेटा को संसाधित नहीं कर पाता है क्योंकि यह एक नंबर की अपेक्षा कर रहा है, और अंत में, सिस्टम क्रैश हो जाता है। या क्या होगा यदि कोई व्यक्ति ऐसा करने का प्रयास करता है एसक्यूएल इंजेक्षन और डेटाबेस से हमारा सारा डेटा मिटा दिया जाएगा। हम ऐसे संभावित नुकसान को सहन नहीं कर सकते। इसलिए नेगेटिव टेस्टिंग महत्वपूर्ण है।
नकारात्मक परीक्षण क्यों करें?
चूंकि परीक्षण समय और लागत लेने वाला काम है, इसलिए 'क्या', 'कैसे' और 'कितना' परीक्षण करना है, यह तय करना बहुत महत्वपूर्ण है। हमें समझदारी से यह चुनना होगा कि हमें अपने सिस्टम में नकारात्मक परीक्षण करना है या नहीं। तो आइए नकारात्मक परीक्षण के महत्व पर एक नज़र डालते हैं।
संगठन का परिप्रेक्ष्य
अपने ग्राहक को अच्छी गुणवत्ता वाला उत्पाद उपलब्ध कराना संगठन की जिम्मेदारी है। इसे प्राप्त करने के लिए, नकारात्मक परीक्षण करना होगा।
किसी विफलता की पुष्टि के लिए, संगठन को नकारात्मक परीक्षण करना पड़ता है।
शायद हम 100% त्रुटि-रहित प्रणाली का निर्माण नहीं कर सकते, लेकिन हमें यह सुनिश्चित करना होगा कि हमने विफलता को रोकने के लिए सब कुछ किया है, ऐसा करने के लिए हमें नकारात्मक परीक्षण करना चाहिए।
प्रभाव एक ऐसा कारक है जिस पर हमें विचार करना होगा। मान लीजिए कि हमने किसी ई-कॉमर्स साइट पर सकारात्मक परीक्षण किया है और सुनिश्चित किया है कि सब कुछ ठीक है। लेकिन क्या होगा अगर हमारे सिस्टम में कोई खामी है जिससे कोई SQL इंजेक्शन करके हमारा सारा डेटा मिटा सकता है। यह एक बड़ी सुरक्षा भंग होगी। इस तरह के मामलों से बचने के लिए, किसी को नकारात्मक परीक्षण भी करना होगा।
जनता के लिए खुले अनुप्रयोगों, मुख्यतः वेबसाइटों के लिए हमें हमेशा यह ध्यान में रखना होगा कि अनुप्रयोग के उपयोग की प्रक्रिया पर हमारा अधिक नियंत्रण नहीं है, इसलिए हमें यह सुनिश्चित करने के लिए नकारात्मक परीक्षण करना होगा कि ऐसे सभी मामले कवर हो जाएं और उन पर नियंत्रण हो जाए।
एक और बात जिसका हमें ध्यान रखना चाहिए वह यह है कि बहुत सारे ब्लैक हैकर्स हैं जो सिस्टम को नष्ट करने का अवसर तलाश रहे हैं। हैकिंग एक महत्वपूर्ण मामला है जिसे नेगेटिव टेस्टिंग में शामिल किया गया है
ग्राहक का दृष्टिकोण
ग्राहक हमेशा शून्य भेद्यता वाले उत्पादों की अपेक्षा करते हैं, ताकि यह सुनिश्चित किया जा सके कि नकारात्मक परीक्षण अनिवार्य है
यदि यह ई-कॉमर्स, ऑनलाइन स्टॉक आदि जैसे संवेदनशील उत्पाद है, तो सुरक्षा और नकारात्मक परीक्षण आवश्यक है।
नेगेटिव टेस्टिंग के मामले में क्लाइंट की एकमात्र चिंता इसकी लागत है। लेकिन एक बार प्रभाव का विश्लेषण हो जाने के बाद यह क्लाइंट पर निर्भर करता है कि वह नेगेटिव टेस्टिंग करे या नहीं।
नकारात्मक परीक्षण कैसे करें
नकारात्मक परीक्षण करने के लिए हमें सभी संभावित मामलों पर विचार करना होगा। यानी अगर यह संभव है तो हमें इस पर विचार करना होगा परीक्षण का मामला इससे कोई फर्क नहीं पड़ता कि इसका उपयोग करने का यह सही तरीका है या नहीं। उदाहरण के लिए, अगर हम एक ईमेल फ़ील्ड देखते हैं तो सभी संभावित इनपुट के बारे में सोचें जिन्हें हम सही ईमेल प्रारूप के अलावा वहां डाल सकते हैं। उसी तरह जब हम एक छवि अपलोड विकल्प देखते हैं, तो हमें सभी संभावित फ़ाइलों के साथ इसका परीक्षण करना होगा।
नेगेटिव टेस्ट केस बनाते समय हमें इनपुट को प्राथमिकता देनी होगी, अन्यथा बहुत सारे केस संभव हो जाएँगे। उदाहरण के लिए, एक इमेज फ़ील्ड के लिए जहाँ केवल '.png' फ़ाइलें दर्ज की जानी चाहिए, हमारे पास अपलोड करने के लिए बहुत सारे विकल्प हो सकते हैं जैसे 'jpeg', 'xml', 'xls', आदि। इसलिए हमें XML और जैसे विकल्पों को प्राथमिकता देने की आवश्यकता है। एसक्यूएल jpeg और xls की तुलना में इसका प्रभाव अधिक हो सकता है इसलिए हमें पहले SQL और XML मामलों का ध्यान रखना चाहिए। इस तरह, हमें समय और परीक्षण लागत बचाने के लिए निष्पादन से पहले मामलों को प्राथमिकता देनी होगी।
नकारात्मक परीक्षण के पक्ष और विपक्ष
अन्य सभी परीक्षण तकनीकों की तरह, नकारात्मक परीक्षण के भी अपने फायदे और नुकसान हैं, जो मुख्य रूप से 'कहां', 'कब' और 'कैसे' उपयोग करने पर आधारित हैं। आइए इस पर एक नज़र डालते हैं।
नकारात्मक परीक्षण के लाभ
- जैसा कि हम सभी जानते हैं कि किसी उत्पाद की गुणवत्ता सुनिश्चित करने के लिए नकारात्मक परीक्षण बहुत महत्वपूर्ण है। एक अच्छी गुणवत्ता वाला उत्पाद शून्य भेद्यता वाला उत्पाद होता है, यह सुनिश्चित करने के लिए नकारात्मक परीक्षण बहुत महत्वपूर्ण है।
- नेगेटिव टेस्टिंग करने से यह सुनिश्चित होता है कि सभी संभावित मामलों को कवर किया गया है। जानबूझकर या अनजाने में नेगेटिव टेस्ट के मामले होने की संभावना होती है। इसलिए यह सुनिश्चित करने के लिए कि सभी मामले कवर किए गए हैं, हमें पॉजिटिव टेस्टिंग के साथ-साथ नेगेटिव टेस्टिंग भी करनी होगी।
- लाइव होने से पहले नकारात्मक परीक्षण से ग्राहक को अधिक आत्मविश्वास मिलेगा।
नकारात्मक परीक्षण के नुकसान
- सॉफ़्टवेयर इंजीनियरिंग में, कुछ मामलों में नकारात्मक परीक्षण समय और ऊर्जा की बर्बादी बन जाता है। कई मामलों में, अत्यधिक नकारात्मक परीक्षण की आवश्यकता नहीं होती है। उदाहरण के लिए, यदि कोई एप्लिकेशन एकल व्यक्ति के उपयोग के लिए बनाया गया है, तो हमें इस मामले पर विचार करने की आवश्यकता नहीं है कि एक समय में 100 उपयोगकर्ता सिस्टम का उपयोग करते हैं। इसलिए नकारात्मक परीक्षण मामलों में स्थितियों का निर्णय करना बहुत महत्वपूर्ण है। ऐसे समय होंगे जब हमें किसी विशेष सिस्टम पर नकारात्मक परीक्षण करने की आवश्यकता नहीं होगी।
- नकारात्मक परीक्षण मामले बनाने के लिए कुशल और अनुभवी लोगों की आवश्यकता है।
- ग्राहक के लिए, नकारात्मक परीक्षण एक और चीज है जो रिलीज में अनावश्यक देरी और लागत में वृद्धि का कारण बनती है।
- एक मौका है कि एक टीम नकारात्मक परीक्षण पर अधिक समय और ऊर्जा खर्च करती है। एक मौका है कि परीक्षक नकारात्मक परीक्षण में बहुत समय और ऊर्जा खर्च करते हैं जिसके परिणामस्वरूप सकारात्मक परीक्षण में कम एकाग्रता होती है।
