what is cyclomatic complexity learn with an example
साइक्लोमैटिक कॉम्प्लेक्सिटी विकास समुदाय में एक बहुत ही सामान्य चर्चा शब्द है। यह तकनीक मुख्य रूप से कोड या कार्यक्षमता के टुकड़े की जटिलता को निर्धारित करने के लिए उपयोग की जाती है।
तकनीक MaCabe द्वारा विकसित की गई थी और कार्यक्रमों / सुविधाओं के लिए नीचे दिए गए 3 प्रश्नों की पहचान करने में मदद करती है
कैसे एक .swf चलाने के लिए
- क्या सुविधा / कार्यक्रम परीक्षण योग्य है?
- क्या सुविधा / कार्यक्रम सभी के द्वारा समझा जाता है?
- क्या सुविधा / कार्यक्रम पर्याप्त विश्वसनीय है?
क्यूए के रूप में हम अपने परीक्षण के 'स्तर' की पहचान करने के लिए इस तकनीक का उपयोग कर सकते हैं। यह एक अभ्यास है कि यदि साइक्लोमैटिक जटिलता का परिणाम अधिक या बड़ी संख्या है, तो हम कार्यक्षमता के उस टुकड़े को जटिल प्रकृति का मानते हैं और इसलिए हम एक परीक्षक के रूप में निष्कर्ष निकालते हैं; कोड / कार्यक्षमता के टुकड़े में गहराई से परीक्षण की आवश्यकता होती है।
दूसरी ओर, यदि साइक्लोमैटिक कॉम्प्लेक्सिटी का परिणाम एक छोटी संख्या है, तो हम क्यूए के रूप में निष्कर्ष निकालते हैं कि कार्यक्षमता कम जटिलता की है और तदनुसार गुंजाइश तय करें।
मुझे कदम से कदम मिलाने दो: पहले समझें कि इसकी गणना कैसे की जाती है, और फिर हम यह समझने के लिए आगे बढ़ेंगे कि परीक्षण का स्तर कैसे निर्धारित किया गया है।
आप क्या सीखेंगे:
- चक्रवाती जटिलता की गणना कैसे करें?
- चक्रवाती जटिलता सूत्र
- साइक्लोमैटिक जटिलता उदाहरण
- परीक्षक इसका उपयोग कैसे कर सकते हैं?
- अब शॉर्टकट आता है-
- अनुशंसित पाठ
चक्रवाती जटिलता की गणना कैसे करें?
CC की गणना 2 अवधारणाओं के चारों ओर घूमती है
- नोड्स
- किनारों
किसी प्रोग्राम में स्टेटमेंट्स को नोड्स के रूप में दर्शाया जाता है, और एक स्टेटमेंट से दूसरे स्टेटमेंट को एग्स द्वारा दर्शाया जाता है।
चक्रवाती जटिलता सूत्र
CC की गणना करने का सूत्र इस प्रकार है:
सीसी = ई ~ एन + २
कहा पे:
ई = किनारों की संख्या
एन = नोड्स की संख्या।
(इसकी गणना के लिए एक शॉर्टकट है, लेकिन अभी नहीं …… बाद में…)
साइक्लोमैटिक जटिलता उदाहरण
इसे समझने के लिए हम नीचे उदाहरण लेते हैं।
नीचे दिए गए नियंत्रण प्रवाह ग्राफ पर विचार करें:
मैंने रखा है जाल नोड्स की पहचान करने के लिए और नीला किनारों की पहचान करने के लिए लाइनें:
तो यहाँ इस उदाहरण में है:
नोड्स (लाल डॉट्स) की संख्या = 14
किनारों की संख्या (ब्लू लाइन्स) = 15
तो साइक्लोमैटिक जटिलता = एन ~ ई + 2 = (14-15) +2 = 3
परीक्षक इसका उपयोग कैसे कर सकते हैं?
वास्तविक दुनिया में, टेस्टर्स किसी दिए गए टुकड़े के लिए नियंत्रण प्रवाह ग्राफ को प्राप्त करने के लिए डेवलपर्स के साथ बैठ सकते हैं। और एक बार हमारे पास ग्राफ होने के बाद, हम इस सूत्र का उपयोग करके जटिलता को प्राप्त कर सकते हैं। लेकिन परीक्षकों के लिए कहानी यहीं समाप्त नहीं होती है: - यहां मुख्य बिंदु यह है - परीक्षण टीम के लिए इस संख्या का उपयोग क्या है?
खैर, परीक्षक अपने परीक्षण के स्तर को निर्धारित करने के लिए इस संख्या का उपयोग कर सकते हैं।
व्यवहार में परीक्षण के 2 स्तर हैं:
- लंबाई परीक्षण
- चौड़ाई परीक्षण
किसी भी मॉड्यूल की विभिन्न विशेषताओं के लिए नीचे दिए गए मैट्रिक्स पर विचार करें: -
लंबाई परीक्षण एक ऐसा तरीका है जिसके द्वारा हम प्रत्येक सुविधा के लिए महत्वपूर्ण परीक्षण मामलों का चयन करके पूरे दायरे को कवर करने का प्रयास करते हैं। उदाहरण के लिए इस मामले में, मान लीजिए कि मैं लंबाई परीक्षण के साथ आने का चयन करता हूं, तो मैं चुन सकता हूं -
- फीचर 1 के लिए सब फीचर 1.1 और सब फीचर 1.3
- फ़ीचर 2 से सब फ़ीचर 2.2
- फ़ीचर 3 से सब फ़ीचर 3.3
- सब फ़ीचर 4.2 और सब फ़ीचर 4.3from फ़ीचर 4
- फ़ीचर 5 से सब फ़ीचर 5.3
इसलिए यहां मैं उप-सुविधाओं के संपूर्ण विवरणों को जाने बिना पूरी सुविधा को छू रहा हूं।
अब यदि CC का परिणाम एक बड़ी संख्या है, तो मैं चौड़ाई परीक्षण के साथ जाना चुनता हूं, मैं वास्तव में प्रत्येक और हर सुविधा के साथ-साथ प्रत्येक सुविधा का परीक्षण करूंगा।
इसलिए आपकी वर्तमान परियोजना आवश्यकता, पर्यावरण निर्भरता के आधार पर, परीक्षक विकास टीम के साथ मिलकर और परीक्षण के स्तर और दायरे की पहचान के लिए एक मानक बना सकते हैं। उदाहरण के लिए -
- यदि सी.सी.<=15 – Basic sanity test
- यदि CC 16 और 30 के बीच है - लंबाई परीक्षण
- यदि CC 31 और 50 के बीच है - चौड़ाई परीक्षण
- यदि CC> 50 - यह एक अव्यवस्थित कार्यक्षमता है और आगे अपघटन की आवश्यकता है
अब शॉर्टकट आता है-
बस बंद क्षेत्रों की संख्या की गणना करें और इसमें 1 जोड़ें।
ऊपर हमारे उदाहरण में - बंद क्षेत्र की संख्या = 2 (पीले रंग से भरी हुई), इसलिए CC = 2 + 1 = 3
वास्तविक कार्य में जब हम बयान देते हैं तो परिणाम को समाप्त करना बहुत मुश्किल है -
- “… ..इस कार्यक्षमता को लागू करना बहुत मुश्किल है”
मुश्किल से आपका क्या मतलब है? क्या यह जटिल, जटिल या अराजक है?
आपने कैसे निष्कर्ष निकाला कि यह मुश्किल है?
- '... यह दिन के अंत तक उपलब्ध होना चाहिए'
दिन का अंत क्या है? दिन का आपका अंत शाम 7.00 बजे है, शायद मेरा 6.00 बजे है?
- '... मुझे इसके लिए विस्तृत परीक्षण करने की आवश्यकता होगी'
विस्तृत परीक्षण क्या है? 'विस्तृत परीक्षण' नामक कोई परीक्षण तकनीक नहीं है
- 'क्यूए को तैनात करने से पहले कोड अच्छी गुणवत्ता का होना चाहिए'
आप अच्छी गुणवत्ता कैसे मापते हैं?
इसके बजाय, अगर मैं इस तरह के बयानों का खंडन करता हूं -
कोड के टुकड़े के लिए साइक्लोमैटिक जटिलता 75 और हमारे मानकों के अनुसार गणना की जाती है; यह कार्यक्षमता कैओस प्रकृति की है। इसलिए हम इसे और कम करने की सलाह देते हैं।
ऊपर
- “… ..इस कार्यक्षमता को लागू करना बहुत मुश्किल है”
कार्यक्षमता QA वातावरण में शाम 5 बजे तक सीएसटी द्वारा तैनात की जाएगी।
ऊपर
- '... यह दिन के अंत तक उपलब्ध होना चाहिए'
चूँकि Cyclomatic जटिलता की गणना 48 के रूप में की जाती है, इसलिए हमारे मानक के अनुसार हम सिस्टम के परीक्षण के साथ-साथ एकीकरण और प्रतिगमन परीक्षण भी करेंगे।
ऊपर
- “…। मुझे इसके लिए विस्तृत परीक्षण करने की आवश्यकता होगी”
सोनार के अनुसार, CC अब 102 है। हमने CC को 10. करने के लिए मानकीकृत किया है। जब हम CC को 10 से कम बनाने के लिए कोड में सुधार करेंगे तो हम कोड की तैनाती करेंगे।
ऊपर
- इससे पहले कि हम इसे क्यूए में तैनात करें, “…। कोड अच्छी गुणवत्ता का होना चाहिए”
दोनों कथनों में क्या अंतर है?
खैर, यहां अंतर माप है। मैंने उचित माप के साथ अपने प्रत्येक कथन का समर्थन किया है जो मेरे हितधारकों को यह जानने में मदद करेगा कि मैं क्या कहना चाहता हूं।
इसी तरह, अपने परीक्षण प्रयासों के सटीक माप को निर्धारित करने के लिए सॉफ्टवेयर परीक्षण में साइक्लोमैटिक जटिलता का उपयोग करें और आप इसका उपयोग न केवल अपने परीक्षण के दायरे की पहचान करने के लिए कर सकते हैं, बल्कि परीक्षण के प्रकार जो आपको करने की आवश्यकता होगी।
अनुशंसित पाठ
- घटक परीक्षण या मॉड्यूल परीक्षण क्या है (उदाहरण के साथ जानें)
- तुलना परीक्षण क्या है (उदाहरण के साथ जानें)
- सॉफ्टवेयर टेस्टिंग कैरियर पैकेज ई-पुस्तक
- सिस्टम इंटीग्रेशन टेस्टिंग (SIT) क्या है: उदाहरणों के साथ जानें
- सर्वश्रेष्ठ सॉफ्टवेयर परीक्षण उपकरण 2021 (क्यूए टेस्ट स्वचालन उपकरण)
- परीक्षण प्राइमर eBook डाउनलोड
- 5 महत्वपूर्ण आरेख जो परीक्षकों को सीखने के लिए उपयोग करने की आवश्यकता है
- TestRail Review Tutorial: एंड-टू-एंड टेस्ट केस मैनेजमेंट जानें