उदाहरणों सहित सॉफ्टवेयर में पाथ टेस्टिंग और बेसिस पाथ टेस्टिंग

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

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

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

पथ परीक्षण आधार पथ परीक्षण

सॉफ्टवेयर परीक्षण में पथ परीक्षण क्या है?

पथ परीक्षण एक संरचनात्मक परीक्षण विधि है जिसमें हर संभव निष्पादन योग्य पथ को खोजने के लिए प्रोग्राम के स्रोत कोड का उपयोग करना शामिल है। यह कोड के एक हिस्से में निहित सभी दोषों को निर्धारित करने में मदद करता है। यह विधि कंप्यूटर प्रोग्राम के माध्यम से सभी या चयनित पथ को निष्पादित करने के लिए डिज़ाइन की गई है।

किसी भी जटिल प्रोग्राम में निष्पादन के कई संभावित मार्ग होते हैं। इन सभी मार्गों का परीक्षण करना कठिन और समय लेने वाला होता है, और इनमें से अधिकांश मार्ग आपस में ओवरलैप होते हैं। बेसिस पाथ टेस्टिंग, उन मार्गों के सबसे छोटे समूह की पहचान करके इस अनावश्यकता को कम करता है जो प्रत्येक कथन और प्रत्येक शाखा का कम से कम एक बार निष्पादन करते हैं।

सॉफ्टवेयर इंजीनियरिंग में आधार पथ परीक्षण

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

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

एक सरल उदाहरण से विचार स्पष्ट हो जाता है।

सॉफ्टवेयर इंजीनियरिंग में आधार पथ परीक्षण

ऊपर दिए गए फ्लो ग्राफ में सशर्त कथन शामिल हैं, इसलिए नियंत्रण एक से अधिक मार्गों से निकास तक पहुंच सकता है। इसे तय करने के लिए तीन स्वतंत्र पथों की आवश्यकता है:

  • पथ 1: 1,2,3,5,6, 7
  • पथ 2: 1,2,4,5,6, 7
  • पथ 3: 1, 6, 7

नियंत्रण प्रवाह ग्राफ कैसे बनाएं

बेसिस पाथ टेस्टिंग का हर चरण कंट्रोल फ्लो ग्राफ पर निर्भर करता है, इसलिए इसे बनाने के तरीके के बारे में सटीक होना महत्वपूर्ण है।

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

दो निर्णयों वाले एक छोटे मॉड्यूल पर विचार करें:

if (a > b) {          // node 1, predicate
    max = a;          // node 2
} else {
    max = b;          // node 3
}
if (max > limit) {    // node 4, predicate
    alert();          // node 5
}
return max;           // node 6

ग्राफ में 6 नोड और 6 किनारे हैं, जिससे किनारे के सूत्र के अनुसार V(G) = 6 – 6 + 2 = 2 प्राप्त होता है। विधेय गणना से भी यही उत्तर अधिक शीघ्रता से प्राप्त होता है: 2 निर्णय और 1 को मिलाकर दोनों शाखाओं से होकर गुजरने वाले 3 स्वतंत्र पथ बनते हैं। जिस भी विधि से आप गणना को विश्वसनीय रूप से कर सकते हैं, उसका उपयोग करें और दूसरी विधि से उसकी तुलना करें।

दो नियम जो अधिकांश त्रुटियों को रोकते हैं। सबसे पहले, एक मिश्रित स्थिति जैसे कि यदि (x > 0 && y > 0) इसे एक नहीं बल्कि दो प्रेडिकेट नोड्स के रूप में गिना जाता है, क्योंकि शॉर्ट-सर्किट एक दूसरा निर्णय उत्पन्न करता है। दूसरा, एक लूप कितनी भी बार दोहराए, एक ही प्रेडिकेट नोड का योगदान देता है।

बेसिस पाथ टेस्टिंग के चरण

आधार पथ परीक्षण में शामिल बुनियादी चरणों में शामिल हैं

  • नियंत्रण ग्राफ़ बनाएं (विभिन्न प्रोग्राम पथ निर्धारित करने के लिए)
  • गणना साइक्लोमेटिक कम्पलेक्सिटी (स्वतंत्र पथों की संख्या निर्धारित करने के लिए मीट्रिक्स)
  • पथों का आधार सेट खोजें
  • उत्पन्न करें परीक्षण के मामलों प्रत्येक पथ का अभ्यास करने के लिए

बेसिस पाथ टेस्टिंग के लाभ और सीमाएँ

बेसिस पाथ टेस्टिंग के लाभ

  • यह अनावश्यक परीक्षणों को कम करने में मदद करता है
  • यह प्रोग्राम तर्क पर ध्यान केन्द्रित करता है
  • यह मनमानी परीक्षण केस चयन को विश्लेषणात्मक आधार से प्रतिस्थापित करता है।
  • परीक्षण मामले जो आधार सेट का प्रयोग करते हैं, प्रोग्राम में प्रत्येक कथन को कम से कम एक बार निष्पादित करेंगे

बेसिस पाथ टेस्टिंग की सीमाएँ

  • यह गुम हुए कोड को नहीं ढूंढ पा रहा है। जिस आवश्यकता को कभी लागू नहीं किया गया, उसका कोई पथ नहीं होता, इसलिए उसके लिए कोई परीक्षण उत्पन्न नहीं होगा। आधारभूत पथ परीक्षण को आवश्यकता-आधारित परीक्षण के साथ जोड़ा जाना चाहिए।
  • पथों की संख्या तेजी से बढ़ती है। नेस्टेड लूप और मिश्रित स्थितियां जटिलता को तेजी से बढ़ाती हैं, और 20 से ऊपर V(G) वाले मॉड्यूल को इस तरह से कवर करना अव्यावहारिक हो जाता है।
  • कवरेज का अर्थ शुद्धता नहीं है। किसी पथ को निष्पादित करने से यह सिद्ध होता है कि कोड चलता है, न कि यह कि वह सही उत्तर देता है। प्रत्येक परीक्षण के लिए एक सार्थक अभिकथन आवश्यक है।
  • डेटा-निर्भर पथ। कुछ रास्ते केवल विशिष्ट इनपुट संयोजनों के साथ ही अभिगम योग्य होते हैं, जिन्हें बनाना कठिन या असंभव हो सकता है।

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

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

मॉड्यूल की साइक्लोमैटिक जटिलता बिल्कुल यही है। यदि V(G) 4 है, तो 4 स्वतंत्र पथ मौजूद हैं और पूर्ण शाखा कवरेज के लिए 4 परीक्षण मामलों की आवश्यकता है।

नहीं। यह केवल पहले से मौजूद कोड का ही उपयोग करता है, इसलिए जो आवश्यकता कभी लागू नहीं की गई, उससे कोई पथ या असफल परीक्षण उत्पन्न नहीं होता। ये दोनों तकनीकें एक-दूसरे की पूरक हैं।

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

जी हां। स्थैतिक विश्लेषण उपकरण वर्षों से नियंत्रण प्रवाह ग्राफ और जटिलता के आंकड़े उत्पन्न करते आ रहे हैं, और एआई-सहायता प्राप्त उपकरण अब प्रत्येक स्वतंत्र पथ के लिए सुझाए गए परीक्षण इनपुट भी जोड़ते हैं।

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