उत्परिवर्तन परीक्षण
उत्परिवर्तन परीक्षण एक प्रकार का सॉफ्टवेयर परीक्षण है, जिसमें स्रोत कोड में त्रुटियों को खोजने में सक्षम होने पर जाँच करने के लिए स्रोत कोड के कुछ कथनों को बदल दिया जाता है। उत्परिवर्तन परीक्षण का लक्ष्य मजबूती के संदर्भ में परीक्षण मामलों की गुणवत्ता सुनिश्चित कर रहा है कि इसे उत्परिवर्तित स्रोत कोड को विफल करना चाहिए।
उत्परिवर्ती कार्यक्रम में किए गए परिवर्तनों को बहुत छोटा रखा जाना चाहिए ताकि यह कार्यक्रम के समग्र उद्देश्य को प्रभावित न करे। म्यूटेशन टेस्टिंग को फाल्ट-बेस्ड टेस्टिंग स्ट्रैटेजी भी कहा जाता है क्योंकि इसमें प्रोग्राम में खराबी पैदा करना शामिल है और यह एक प्रकार का व्हाइट बॉक्स टेस्टिंग है जो मुख्य रूप से यूनिट टेस्टिंग के लिए उपयोग किया जाता है।
उत्परिवर्तन मूल रूप से 1971 में प्रस्तावित किया गया था, लेकिन इसमें शामिल उच्च लागतों के कारण उत्साह खो गया। अब, फिर से इसने स्टीम उठाया है और जावा और एक्सएमएल जैसी भाषाओं के लिए व्यापक रूप से उपयोग किया जाता है।
इस ट्यूटोरियल में, आप सीखेंगे-
- म्यूटेशन टेस्टिंग क्या है?
- म्यूटेशन टेस्टिंग कैसे निष्पादित करें?
- उत्परिवर्ती कार्यक्रम कैसे बनाएं?
- एक उत्परिवर्ती कार्यक्रम में क्या बदलना है?
- उत्परिवर्तन परीक्षण के प्रकार
- उत्परिवर्तन स्कोर:
- उत्परिवर्तन परीक्षण के लाभ:
- उत्परिवर्तन परीक्षण के नुकसान:
म्यूटेशन टेस्टिंग कैसे निष्पादित करें?
निम्नलिखित उत्परिवर्तन परीक्षण (म्यूटेशन विश्लेषण) निष्पादित करने के लिए चरण हैं:
चरण 1 : दोषों को कार्यक्रम के स्रोत कोड में कई संस्करण बनाकर पेश किया जाता है जिन्हें म्यूटेंट कहा जाता है। प्रत्येक उत्परिवर्ती में एक ही दोष होना चाहिए, और लक्ष्य उत्परिवर्ती संस्करण को विफल करने का कारण है जो परीक्षण मामलों की प्रभावशीलता को प्रदर्शित करता है।
चरण 2 : मूल मामलों के लिए और उत्परिवर्ती कार्यक्रम के लिए भी परीक्षण मामले लागू होते हैं। एक टेस्ट केस पर्याप्त होना चाहिए, और एक कार्यक्रम में दोषों का पता लगाने के लिए इसे ट्विक किया गया है।
चरण 3 : एक मूल और उत्परिवर्ती कार्यक्रम के परिणामों की तुलना करें।
चरण 4 : यदि मूल कार्यक्रम और उत्परिवर्ती कार्यक्रम अलग-अलग आउटपुट उत्पन्न करते हैं, तो यह कि उत्परिवर्ती परीक्षण के मामले से मारा जाता है। इसलिए मूल और उत्परिवर्ती कार्यक्रम के बीच परिवर्तन का पता लगाने के लिए परीक्षण का मामला काफी अच्छा है।
चरण 5 : यदि मूल कार्यक्रम और उत्परिवर्ती कार्यक्रम समान आउटपुट उत्पन्न करते हैं, तो उत्परिवर्ती को जीवित रखा जाता है। ऐसे मामलों में, अधिक प्रभावी परीक्षण मामलों को बनाने की आवश्यकता होती है जो सभी म्यूटेंट को मारते हैं।
उत्परिवर्ती कार्यक्रम कैसे बनाएं?
एक उत्परिवर्तन एक सिंटिक परिवर्तन के अलावा और कुछ नहीं है जो प्रोग्राम स्टेटमेंट के लिए किया जाता है। प्रत्येक उत्परिवर्ती कार्यक्रम मूल कार्यक्रम से एक म्यूटेशन से भिन्न होना चाहिए।
मूल कार्यक्रम | उत्परिवर्ती कार्यक्रम |
---|---|
यदि (x> y) "हेलो" एल्स प्रिंट "हाय" प्रिंट करें | (यदि x वरना प्रिंट "हाय" |
एक उत्परिवर्ती कार्यक्रम में क्या बदलना है?
ऐसी कई तकनीकें हैं जिनका उपयोग उत्परिवर्ती कार्यक्रमों को उत्पन्न करने के लिए किया जा सकता है। आइए उन पर नजर डालते हैं
परिचालक प्रतिस्थापन ऑपरेटर | अभिव्यक्ति संशोधन ऑपरेटर | कथन संशोधन संचालक |
---|---|---|
किसी अन्य ऑपरेंड (x के साथ y या y के साथ x) या स्थिर मान के साथ ऑपरेंड को बदलें। | एक प्रोग्राम स्टेटमेंट में एक ऑपरेटर या नए ऑपरेटरों के सम्मिलन को बदलें। | उत्परिवर्ती कार्यक्रमों को बनाने के लिए प्रोग्रामेटिक स्टेटमेंट को संशोधित किया जाता है। |
उदाहरण- यदि (x> y) x और y मानों को प्रतिस्थापित करें यदि (5> y) x को स्थिर 5 से प्रतिस्थापित करें | उदाहरण- अगर (x == y) हम == को> = में बदल सकते हैं और उत्परिवर्ती कार्यक्रम मान सकते हैं जैसे कि (x> = y) और कथन में ++ जोड़ना अगर (x == ++ y) | उदाहरण के लिए एक अगर-बाकी बयान में बाकी हिस्सा हटाएँ अगर-बाकी के विवरण की जांच करने के लिए कैसे एक कार्यक्रम बर्ताव पूरे हटाएँ नमूना उत्परिवर्तन ऑपरेटरों में से कुछ:
|
उत्परिवर्तन परीक्षण का स्वचालन:
उत्परिवर्तन परीक्षण मैन्युअल रूप से निष्पादित करने के लिए अत्यंत समय लेने वाला और जटिल है। प्रक्रिया को गति देने के लिए, स्वचालन उपकरण के लिए जाना उचित है। स्वचालन उपकरण परीक्षण की लागत को भी कम करते हैं।
उपलब्ध उपकरणों की सूची -
- स्ट्राइकर
- PIT परीक्षण
उत्परिवर्तन परीक्षण के प्रकार
सॉफ्टवेयर इंजीनियरिंग में, म्यूटेशन परीक्षण को मौलिक रूप से 3 प्रकारों- बयान उत्परिवर्तन, निर्णय उत्परिवर्तन और मूल्य उत्परिवर्तन में वर्गीकृत किया जा सकता है।
- स्टेटमेंट म्यूटेशन - डेवलपर कट और कोड का एक हिस्सा पेस्ट करता है जिसके परिणाम कुछ पंक्तियों को हटाने के हो सकते हैं
- मूल्य उत्परिवर्तन - प्राथमिक मापदंडों के मूल्यों को संशोधित किया जाता है
- निर्णय म्यूटेशन - नियंत्रण कथनों को बदलना है
उत्परिवर्तन स्कोर:
म्यूटेशन स्कोर को मारे गए म्यूटेंट के प्रतिशत के रूप में परिभाषित किया गया है, जिसमें कुल म्यूटेंट हैं।
- म्यूटेशन स्कोर = (किल्ड म्यूटेंट्स / कुल म्यूटेंट की संख्या) * 100
यदि स्कोर 100% है तो टेस्ट केस म्यूटेशन पर्याप्त हैं। प्रायोगिक परिणामों से पता चला है कि परीक्षण मामलों की पर्याप्तता को मापने के लिए उत्परिवर्तन परीक्षण एक प्रभावी दृष्टिकोण है। लेकिन, मुख्य दोष यह है कि उत्परिवर्ती पैदा करने और उस उत्परिवर्ती कार्यक्रम के खिलाफ प्रत्येक परीक्षण मामले को निष्पादित करने की उच्च लागत।
उत्परिवर्तन परीक्षण के लाभ:
म्यूटेशन टेस्टिंग के फायदे निम्नलिखित हैं:
- यह स्रोत कार्यक्रम के उच्च कवरेज को प्राप्त करने के लिए एक शक्तिशाली दृष्टिकोण है।
- यह परीक्षण उत्परिवर्ती कार्यक्रम का व्यापक परीक्षण करने में सक्षम है।
- म्यूटेशन परीक्षण सॉफ्टवेयर डेवलपर के लिए त्रुटि का एक अच्छा स्तर लाता है।
- यह विधि स्रोत कोड में अस्पष्टता को उजागर करती है और कार्यक्रम में सभी दोषों का पता लगाने की क्षमता रखती है।
- इस परीक्षण से ग्राहक सबसे विश्वसनीय और स्थिर प्रणाली प्राप्त कर लाभान्वित होते हैं।
उत्परिवर्तन परीक्षण के नुकसान:
दूसरी ओर, म्यूटेंट परीक्षण के नुकसान निम्नलिखित हैं:
- उत्परिवर्तन परीक्षण बहुत महंगा और समय लेने वाला है क्योंकि कई उत्परिवर्ती कार्यक्रम हैं जिन्हें उत्पन्न करने की आवश्यकता है।
- अपने समय लेने के बाद से, यह कहना उचित है कि यह परीक्षण एक स्वचालन उपकरण के बिना नहीं किया जा सकता है।
- प्रत्येक उत्परिवर्तन में मूल कार्यक्रम की तुलना में परीक्षण मामलों की संख्या समान होगी। इसलिए, मूल परीक्षण सूट के खिलाफ बड़ी संख्या में उत्परिवर्ती कार्यक्रमों का परीक्षण करने की आवश्यकता हो सकती है।
- जैसा कि इस पद्धति में स्रोत कोड परिवर्तन शामिल हैं, यह ब्लैक बॉक्स परीक्षण के लिए बिल्कुल लागू नहीं है।
निष्कर्ष:
क्या आप अपने आवेदन का संपूर्ण परीक्षण चाहते हैं? इसका उत्तर है म्यूटेशन परीक्षण। यह एक कार्यक्रम का परीक्षण करने के लिए सबसे व्यापक तकनीक है। यह वह विधि है जो सिस्टम में दोष या त्रुटियों का पता लगाने के लिए एक परीक्षण कार्यक्रम की प्रभावशीलता और सटीकता की जांच करती है।