सॉफ्टवेयर में डिस्ट्रक्टिव टेस्टिंग क्या है?

⚡ स्मार्ट सारांश

विनाशकारी परीक्षण जानबूझकर किसी सॉफ्टवेयर एप्लिकेशन को तब तक परखता है जब तक वह विफल न हो जाए, जिससे उन सटीक बिंदुओं का पता चलता है जहां अनुचित उपयोग, अमान्य इनपुट और अप्रत्याशित व्यवहार के तहत मजबूती टूट जाती है, जहां सामान्य कार्यात्मक जांच कभी नहीं पहुंच पाती है।

  • 💥 मूल विचार: एप्लिकेशन को जानबूझकर विफल बनाया जाता है ताकि इसकी विफलता के बिंदु दिखाई दें और मापे जा सकें।
  • 🔎 किसी भी प्रकार की आवश्यकता नहीं है: विनिर्देशों का पूर्व ज्ञान होना वैकल्पिक है, हालांकि इससे परीक्षण रणनीति को और अधिक प्रभावी बनाया जा सकता है।
  • विपरीत जोड़ी: गैर-विनाशकारी परीक्षण एक सुगम मार्ग पर चलता है; विनाशकारी परीक्षण हर गलत कोण से उस पर हमला करता है।
  • 🧰 दृष्टिकोण: विफलता बिंदु विश्लेषण, परीक्षक सहकर्मी समीक्षा, व्यावसायिक समीक्षा और रन शीट के साथ अन्वेषणात्मक परीक्षण।
  • 🧪 पुनः उपयोग की गई विधियाँ: रिग्रेशन, इंटरफेस, इक्विवेलेंस पार्टिशनिंग, लूप और एक्सेप्टेंस टेस्टिंग सभी विनाशकारी उद्देश्यों की पूर्ति करते हैं।
  • 📉 ईमानदार सीमाएं: कवरेज की गारंटी देना कठिन है, इसमें बहुत प्रयास लगता है, और निष्कर्षों को दोहराना मुश्किल हो सकता है।

सॉफ्टवेयर में विनाशकारी परीक्षण क्या है और इसके तरीके और तकनीकें क्या हैं?

विनाशकारी परीक्षण क्या है?

विनाशकारी परीक्षण यह सॉफ़्टवेयर परीक्षण की एक विधि है जिसका उपयोग सॉफ़्टवेयर प्रोग्राम में विफलता के बिंदुओं को खोजने के लिए किया जाता है। इस तकनीक में, एप्लिकेशन को जानबूझकर विफल किया जाता है, ताकि इसकी मजबूती की जाँच की जा सके और इसकी विफलता के बिंदुओं की पहचान की जा सके। एप्लिकेशन के अपेक्षित कार्यों को सत्यापित करने वाली परीक्षण विधियों के विपरीत, विनाशकारी परीक्षण एप्लिकेशन के भीतर अप्रत्याशित उपयोगकर्ता व्यवहार की जाँच करता है।

विनाशकारी परीक्षण के लिए मूल आवश्यकताओं का ज्ञान आवश्यक नहीं है। हालाँकि, विकास में कुछ ज्ञान सहायक होता है।ping एक अच्छी परीक्षण रणनीति।

नीचे दिया गया चित्र इस विचार को दर्शाता है — परीक्षक उत्पाद के साथ काम करने के बजाय उसके विरुद्ध काम करता है।

विनाशकारी परीक्षण की अवधारणा: किसी एप्लिकेशन को जानबूझकर विफलता के बिंदु तक पहुँचाना।

विनाशकारी परीक्षण क्यों करें?

  • इससे सॉफ्टवेयर के अनुचित उपयोग के दौरान उसके संभावित व्यवहार को समझने में मदद मिलती है।
  • यह किसी सॉफ्टवेयर उत्पाद की मजबूती की जांच करने में मदद करता है।
  • यह उन दुर्लभ दोषों को उजागर करता है जिन्हें सामान्य उपयोगकर्ता कभी उत्पन्न नहीं करते हैं, लेकिन जो उत्पादन में बाद में दिखाई देते हैं।

विनाशकारी परीक्षण बनाम गैर-विनाशकारी परीक्षण

ये दोनों दृष्टिकोण एक दूसरे के पूरक हैं, प्रतिद्वंद्वी नहीं। गैर विनाशकारी परीक्षण इसे पॉजिटिव या हैप्पी-पाथ टेस्टिंग भी कहा जाता है। यह सॉफ्टवेयर के साथ सही ढंग से इंटरैक्ट करता है और बिल्ड को बरकरार रखता है। डिस्ट्रक्टिव टेस्टिंग इसके विपरीत काम करती है: यह तब तक गलत डेटा और अनुक्रम डालती है जब तक कि कुछ टूट न जाए।

पहलू विनाशकारी परीक्षण गैर विनाशकारी परीक्षण
आशय आवेदन को विफल करने के लिए बाध्य करें पुष्टि करें कि एप्लिकेशन निर्दिष्ट अनुसार काम करता है।
इनपुट का उपयोग किया गया अमान्य, विकृत, सीमा से बाहर, क्रम से बाहर अपेक्षित सीमा के भीतर मान्य डेटा
प्रश्न का उत्तर दिया गया यह कहाँ और कैसे टूटता है? क्या यह अपना काम ठीक से करता है?
आवश्यकताओं का ज्ञान ऐच्छिक आवश्यक
विशिष्ट लागत उच्चतर — खोजपूर्ण और खुले विचारों वाला निचला भाग — स्क्रिप्टेड और दोहराने योग्य
परिणाम विफलता बिंदु, सीमा सीमाएँ, पुनर्प्राप्ति व्यवहार विनिर्देशों के आधार पर उत्तीर्ण या अनुत्तीर्ण

आप विनाशकारी परीक्षण में क्या-क्या जांचते हैं?

विनाशकारी परीक्षण व्यवहार की सीमा के दोनों पक्षों का अध्ययन करता है:

  • उचित सॉफ़्टवेयर व्यवहार
  • अनुचित सॉफ़्टवेयर व्यवहार
  • अनुचित उपयोग
  • अनुचित इनपुट डेटा
  • उचित आउटपुट डेटा

इस अभ्यास के दौरान दो शर्तें पूरी होनी चाहिए:

  • यह सॉफ्टवेयर कभी भी अमान्य इनपुट डेटा को संसाधित या स्वीकार नहीं करेगा।
  • इनपुट डेटा की वैधता या शुद्धता की परवाह किए बिना, सॉफ्टवेयर को हमेशा उचित आउटपुट डेटा उत्पन्न करना चाहिए।

विनाशकारी परीक्षण कैसे करें?

विनाशकारी परीक्षण में कई गतिविधियाँ शामिल होती हैं, जैसे कि परीक्षण स्क्रिप्ट का एक सेट डिज़ाइन करना, उन स्क्रिप्ट को निष्पादित करना, बग उठाना, बग को बंद करना और पुनरावृति के अंत में हितधारकों को उत्तीर्ण या असफल होने के मापदंड प्रदान करना।

इसे चलाने के कई तरीके हैं। कुछ उदाहरण नीचे दिए गए हैं।

  • विफलता बिंदु विश्लेषण विधि: सिस्टम का विस्तृत विश्लेषण जिसमें विभिन्न बिंदुओं पर संभावित त्रुटियों का आकलन किया गया है। किसी विशेषज्ञ की सहायता आवश्यक है। व्यापार विश्लेषक इस रणनीति के लिए इसे अपनाया जा सकता है।
  • परीक्षक सहकर्मी समीक्षा: आपकी मिल परीक्षण के मामलों किसी ऐसे सहकर्मी परीक्षक द्वारा विश्लेषण या समीक्षा की गई हो जो सिस्टम या फ़ंक्शन से कम परिचित हो।
  • टेस्ट केस का व्यावसायिक मूल्यांकन: अंतिम उपयोगकर्ता या विशेषज्ञ अक्सर ऐसे वैध परिदृश्यों के बारे में सोचते हैं जिन्हें परीक्षक नजरअंदाज कर देते हैं, क्योंकि परीक्षक का ध्यान बताई गई आवश्यकताओं पर केंद्रित होता है।
  • रन शीट का उपयोग करके प्रारंभिक परीक्षण करें: खोजपूर्ण परीक्षण रन शीट में परीक्षण किए गए रिकॉर्ड होते हैं, परीक्षणों को दोहराया जा सकता है और परीक्षण कवरेज को नियंत्रण में रखा जा सकता है।
  • किसी अन्य स्रोत का उपयोग करें: किसी और से सॉफ्टवेयर उत्पाद को तोड़कर उसके द्वारा पाई गई समस्याओं का विश्लेषण करने के लिए कहें।

विनाशकारी परीक्षण का उदाहरण

किसी बैंकिंग एप्लिकेशन के लॉगिन और प्रोफ़ाइल स्क्रीन पर विचार करें। एक विनाशकारी पासवर्ड इन मामलों में काम करेगा:

  • 5,000 अक्षरों की एक स्ट्रिंग को 50 अक्षरों तक सीमित फ़ील्ड में पेस्ट करें और पुष्टि करें कि फ़ील्ड इसे चुपचाप छोटा करने के बजाय अस्वीकार कर देता है।
  • संख्यात्मक राशि वाले फ़ील्ड में अक्षर, प्रतीक और ऋणात्मक मान सबमिट करें।
  • अपेक्षित क्रम को तोड़ें — पिछले चरण को पूरा किए बिना सीधे भुगतान पुष्टिकरण पृष्ठ खोलें।
  • डुप्लिकेट रिकॉर्ड बनने से रोकने के लिए सबमिट बटन को बार-बार और तेजी से दबाएं।
  • लेनदेन के दौरान नेटवर्क को डिस्कनेक्ट करें और जांचें कि एप्लिकेशन सुचारू रूप से पुनः प्राप्त होता है या आंशिक रिकॉर्ड छोड़ देता है।

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

विनाशकारी परीक्षण विधियाँ

सॉफ्टवेयर इंजीनियरिंग में विनाशकारी परीक्षण के उद्देश्यों को पूरा करने के लिए निम्नलिखित विधियों का उपयोग किया जाता है:

विनाशकारी परीक्षण तकनीकें

नीचे दी गई तकनीकों को कुछ संशोधनों के साथ इस्तेमाल किया जा सकता है:

मजबूती को लक्ष्य बनाते समय, निम्नलिखित सहायक तकनीकों को शामिल करना उचित है: नकारात्मक परीक्षण, तनाव परीक्षण, पुनर्प्राप्ति परीक्षण और फ़ज़ परीक्षण.

विनाशकारी परीक्षण के लाभ और हानियाँ

इस तकनीक को रिलीज में शामिल करने से पहले इसके नुकसान और फायदे को स्पष्ट रूप से बता देना जरूरी है।

फायदे

  • Revयह उन विफलता बिंदुओं को दर्शाता है जिन तक विनिर्देश-आधारित परीक्षण कभी नहीं पहुँच पाता।
  • यह वास्तविक सीमा निर्धारित करता है, जिससे उत्पाद को आत्मविश्वास के साथ इन सीमाओं के भीतर संचालित किया जा सकता है।
  • यह उन दुर्लभ दोषों को उजागर करता है जो उत्पादन के दौरान रिलीज होने के काफी समय बाद सामने आते हैं।
  • दुरुपयोग की स्थिति में स्थायित्व, पुनर्प्राप्ति क्षमता और त्रुटि प्रबंधन की जाँच करता है।

नुकसान

  • इसकी प्रकृति अनिश्चित है, इसलिए कवरेज की गारंटी देना या उसे आसानी से मापना संभव नहीं है।
  • इसमें काफी समय लगता है और यह परीक्षक के अनुभव और रचनात्मकता पर निर्भर करता है।
  • उपयोग किए गए चरणों का सावधानीपूर्वक रिकॉर्ड रखे बिना निष्कर्षों को दोहराना मुश्किल हो सकता है।
  • खराब तरीके से नियंत्रित परीक्षण साझा परीक्षण डेटा को दूषित कर सकते हैं, इसलिए एक पृथक वातावरण आवश्यक है।

अक्सर पूछे जाने वाले प्रश्न

वे एक-दूसरे से मिलते-जुलते हैं लेकिन उनके दायरे में अंतर है। नकारात्मक परीक्षण यह परीक्षण अपेक्षित त्रुटि प्रबंधन के विरुद्ध परिभाषित अमान्य इनपुट की जाँच करता है। विनाशकारी परीक्षण व्यापक और खुला होता है, जो एप्लिकेशन की विफलता का कारण बनने वाली किसी भी स्थिति की खोज करता है।

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

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

मॉडल इतनी मात्रा में विकृत पेलोड, सीमा मान और असामान्य क्रिया अनुक्रम उत्पन्न करते हैं कि कोई भी परीक्षक उनकी बराबरी नहीं कर सकता, फिर वे यह क्रम निर्धारित करते हैं कि किनमें विसंगतियाँ पाई गईं। पिछले दोष डेटा पर मशीन लर्निंग यह भी भविष्यवाणी करती है कि किन मॉड्यूल को सबसे कठोर परीक्षण की आवश्यकता है।

गिटहब कोपिलॉट यह परीक्षक इनपुट जनरेटर, सीमा मामलों और विघटन प्रक्रियाओं का त्वरित मसौदा तैयार करता है। फिर भी, परीक्षक यह तय करता है कि कौन से विफलता मोड महत्वपूर्ण हैं और क्या देखा गया व्यवहार एक स्वीकार्य परिणाम है।

उपयोग किया गया सटीक इनपुट या अनुक्रम, देखी गई विफलता, लॉग और स्क्रीनशॉट, वातावरण और प्रभाव की गंभीरता। पुनरावृति के लिए उत्तीर्ण या असफल मेट्रिक्स हितधारकों को भेजे जाते हैं। दोष रिकॉर्ड.

इसे उत्पादन में कभी भी शामिल नहीं किया जाना चाहिए। इसे पुनर्स्थापित किए जा सकने वाले डेटा के साथ एक पृथक वातावरण में चलाएँ, क्योंकि जानबूझकर गलत इनपुट और जबरन क्रैश करने से अधूरे रिकॉर्ड रह सकते हैं जिन्हें साफ़ करना महंगा पड़ सकता है।

सेशन के दौरान प्रत्येक क्रिया और इनपुट को क्रम से रिकॉर्ड करते हुए एक रन शीट रखें। शीट को एक साफ स्थिति से दोबारा चलाएं, फिर उसे सबसे छोटे क्रम में कम करें जो अभी भी विफलता को ट्रिगर करता है।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: