सॉफ्टवेयर टेस्टिंग में टेस्ट कवरेज: इसे कैसे मापें
⚡ स्मार्ट सारांश
सॉफ्टवेयर टेस्टिंग में टेस्ट कवरेज यह मापता है कि परीक्षणों का एक सेट वास्तव में एप्लिकेशन के कितने हिस्से को परखता है। यह अनपरीक्षित आवश्यकताओं, कोड पथों और जोखिमों को उजागर करता है, जिससे टीमें लक्षित मामलों को जोड़ सकती हैं और मापने योग्य विश्वास के साथ रिलीज़ कर सकती हैं।
टेस्ट कवरेज क्या है?
टेस्ट कवरेज को सॉफ़्टवेयर परीक्षण में एक मीट्रिक के रूप में परिभाषित किया जाता है जो परीक्षण के एक सेट द्वारा किए गए परीक्षण की मात्रा को मापता है। इसमें परीक्षण सूट चलाने के दौरान प्रोग्राम के किन भागों को निष्पादित किया जाता है, इसके बारे में जानकारी एकत्र करना शामिल होगा ताकि यह निर्धारित किया जा सके कि सशर्त कथनों की कौन सी शाखाएँ ली गई हैं।
सरल शब्दों में, यह सुनिश्चित करने की एक तकनीक है कि आपके परीक्षण आपके कोड का परीक्षण कर रहे हैं या आपने परीक्षण चलाकर अपने कोड का कितना प्रयोग किया है।
टेस्ट कवरेज क्या करता है?
किसी लाइव प्रोजेक्ट पर, टेस्ट कवरेज चार व्यावहारिक गतिविधियों में सहायता करता है:
- परीक्षण मामलों के एक सेट द्वारा कार्यान्वित न की गई आवश्यकता के क्षेत्र का पता लगाना
- कवरेज बढ़ाने के लिए अतिरिक्त परीक्षण मामले बनाने में मदद करता है
- परीक्षण कवरेज के मात्रात्मक माप की पहचान करना, जो गुणवत्ता जांच के लिए एक अप्रत्यक्ष तरीका है
- ऐसे निरर्थक परीक्षण मामलों की पहचान करना जो कवरेज में वृद्धि नहीं करते
सॉफ्टवेयर इंजीनियरिंग में टेस्ट कवरेज के लाभ
इन गतिविधियों से इंजीनियरिंग क्षेत्र में ठोस लाभ प्राप्त होते हैं।
- यह परीक्षण की गुणवत्ता को आश्वस्त कर सकता है
- इससे यह पता लगाने में मदद मिल सकती है कि रिलीज़ या फ़िक्स के लिए कोड के किन हिस्सों को वास्तव में छुआ गया था
- यह आपके एप्लिकेशन में उन सभी निर्णय बिंदुओं और पथों का पता लगा सकता है जिनका परीक्षण नहीं किया गया है, जिससे आप परीक्षण कवरेज बढ़ा सकते हैं।
- रोकना दोष रिसाव
- समय, दायरा और लागत को नियंत्रण में रखा जा सकता है
- परियोजना जीवनचक्र के प्रारंभिक चरण में दोष निवारण
- इकाई स्तर और कोड स्तर पर आवश्यकताओं, परीक्षण मामलों और दोषों में अंतराल को आसान तरीके से पाया जा सकता है
परीक्षण कवरेज के प्रकार
कवरेज कभी भी एक संख्या नहीं होती। टीमें tracएक ही सुइट के बारे में अलग-अलग सवालों के जवाब देने के कारण, आप एक साथ कई प्रकार के k का उपयोग कर सकते हैं। नीचे दी गई तालिका में उन प्रकारों को समूहित किया गया है जिनसे आपका अक्सर सामना होता है।
| कवरेज प्रकार | यह क्या मापता है | के लिए सर्वोत्तम उपयोग |
|---|---|---|
| कथन (पंक्ति) कवरेज | निष्पादन योग्य पंक्तियाँ कम से कम एक बार चलती हैं | यूनिट परीक्षण और लेगेसी कोड ऑडिट |
| शाखा या निर्णय कवरेज | प्रत्येक निर्णय का सत्य और असत्य परिणाम | सशर्त और सत्यापन तर्क |
| स्थिति कवरेज | प्रत्येक बूलियन उप-अभिव्यक्ति को सत्य और असत्य के रूप में व्यक्त किया जाता है। | संयुक्त AND या OR अभिव्यक्तियाँ |
| पथ कवरेज | एक मॉड्यूल के माध्यम से लिए गए अद्वितीय मार्ग | सुरक्षा-संबंधी और वित्तीय प्रवाह |
| फ़ंक्शन कवरेज | परीक्षणों द्वारा आह्वान किए गए फ़ंक्शन या विधियाँ | एपीआई और सेवा परतें |
| आवश्यकताओं का कवरेज | आवश्यकताओं को कम से कम एक परीक्षण से जोड़ा जाना चाहिए | स्वीकृति और विरोधtracवास्तविक साइन-ऑफ |
| जोखिम कवरेज | उच्च जोखिम वाले क्षेत्रों की पहचान करके अभ्यास किया गया | छोटे रिलीज चक्र |
पहले पांच प्रकार कोड-स्तरीय उपाय हैं और निम्नलिखित से संबंधित हैं: सफेद बॉक्स परीक्षणजबकि आवश्यकताएं और जोखिम कवरेज परीक्षण योजना स्तर पर होते हैं।
के बीच मुख्य अंतर क्या हैं Code कवरेज और टेस्ट कवरेज?
Code व्याप्ति और परीक्षण कवरेज माप तकनीकें हैं जो आपको अपने एप्लिकेशन कोड की गुणवत्ता का आकलन करने की अनुमति देती हैं।
इन कवरेज विधियों के बूथों के बीच कुछ महत्वपूर्ण अंतर इस प्रकार हैं:
| पैरामीटर्स | Code व्याप्ति | टेस्ट कवरेज |
|---|---|---|
| परिभाषा | Code जब कोई एप्लिकेशन चल रहा होता है, तब एप्लिकेशन कोड का उपयोग किए जाने पर कवरेज शब्द का प्रयोग किया जाता है। | परीक्षण कवरेज का अर्थ है समग्र परीक्षण-योजना। |
| लक्ष्य | Code कवरेज मेट्रिक्स टीम को उनके स्वचालित परीक्षणों की निगरानी करने में मदद कर सकते हैं। | परीक्षण कवरेज में इस बारे में विवरण दिया जाता है कि किसी एप्लिकेशन की लिखित कोडिंग का किस स्तर तक परीक्षण किया गया है। |
| उप प्रकार | Code कवरेज को स्टेटमेंट कवरेज, कंडीशन कवरेज, ब्रांच कवरेज जैसे उपप्रकारों में विभाजित किया गया है। Togglई कवरेज, एफएसएम कवरेज। | परीक्षण कवरेज विधि का कोई उपप्रकार नहीं. |
टेस्ट कवरेज फॉर्मूला
परीक्षण कवरेज की गणना करने के लिए, आपको नीचे दिए गए चरणों का पालन करना होगा:
चरण 1) गिनती Yआपके द्वारा खोजे जा रहे सॉफ़्टवेयर में कोड की कुल पंक्तियाँ। परीक्षण
चरण 2) गिनती Xसभी टेस्ट केस वर्तमान में जितनी कोड की पंक्तियों को निष्पादित करते हैं, उनकी संख्या।
अब, आपको (X को Y से भाग दें) को 100 से गुणा करना है। इस गणना का परिणाम आपका परीक्षण कवरेज % है।
उदाहरण के लिए:
यदि किसी सिस्टम कंपोनेंट में कोड की पंक्तियों की संख्या 500 है और सभी मौजूदा टेस्ट केसों में निष्पादित पंक्तियों की संख्या 50 है, तो आपका टेस्ट कवरेज क्या होगा?
(50 / 500) * 100 = 10% // executed lines divided by total lines
टेस्ट कवरेज के उदाहरण
केवल प्रतिशत ही पूरी कहानी नहीं बताता, जैसा कि नीचे दिए गए उदाहरणों से पता चलता है।
उदाहरण 1:
उदाहरण के लिए, यदि आप "चाकू" का परीक्षण करना चाहते हैं, तो आपको यह जांचने पर ध्यान केंद्रित करना होगा कि क्या यह सब्जियों या फलों को सही ढंग से काटता है या नहीं। हालांकि, अन्य पहलुओं पर भी ध्यान देना आवश्यक है, जैसे कि उपयोगकर्ता इसे आराम से संभाल सके।
उदाहरण 2:
उदाहरण के लिए, यदि आप नोटपैड एप्लिकेशन की जांच करना चाहते हैं, तो इसकी मूलभूत विशेषताओं की जांच करना अनिवार्य है। हालांकि, आपको अन्य पहलुओं पर भी ध्यान देना होगा, जैसे कि नोटपैड एप्लिकेशन अन्य एप्लिकेशन का उपयोग करते समय अपेक्षा के अनुरूप प्रतिक्रिया दे, उपयोगकर्ता एप्लिकेशन के उपयोग को समझे, और असामान्य कार्य करने पर क्रैश न हो, आदि।
परीक्षण कवरेज तकनीकें
दोनों उदाहरण एक ही निष्कर्ष की ओर इशारा करते हैं: कवरेज लक्ष्य तक पहुँचना अधिक परीक्षण लिखने पर कम और सही परीक्षण डिज़ाइन तकनीक चुनने पर अधिक निर्भर करता है। नीचे दी गई तकनीकें कवरेज को बढ़ाते हुए,ping कमरा छोटा है।
- सीमा मान विश्लेषण: प्रत्येक वैध श्रेणी के किनारों पर इनपुट का चयन करता है, जहाँ दोष सबसे अधिक एकत्रित होते हैं। देखें सीमा मान विश्लेषण हल किए गए मामलों के लिए।
- समतुल्य विभाजन: यह एप्लिकेशन द्वारा समान रूप से माने जाने वाले इनपुट को समूहित करता है, इसलिए एक ही मामला मूल्यों के पूरे वर्ग का सुरक्षित रूप से प्रतिनिधित्व कर सकता है।
- निर्णय तालिका परीक्षण: इसमें एक ही ग्रिड के भीतर स्थितियों के संयोजन और उनके अपेक्षित परिणामों को शामिल किया गया है।
- राज्य संक्रमण परीक्षण: यह एप्लिकेशन स्थितियों के बीच प्रत्येक वैध और अवैध चाल का अभ्यास करता है।
- आधार पथ परीक्षण: नियंत्रण प्रवाह ग्राफ से स्वतंत्र पथों का न्यूनतम सेट प्राप्त करता है।
- जोखिम-आधारित परीक्षण: यह लेख व्यावसायिक प्रभाव के आधार पर विशेषताओं को क्रमबद्ध करता है और सबसे अधिक जोखिम वाली विशेषताओं को पहले शामिल करता है।
- खोजपूर्ण परीक्षण: यह उन कमियों को उजागर करता है जिन्हें सुनियोजित मामलों और कवरेज रिपोर्टों में कभी उजागर नहीं किया जाता।
परीक्षण कवरेज कैसे प्राप्त किया जा सकता है?
एक बार तकनीक का चयन हो जाने के बाद, चार स्थापित मार्ग कवरेज प्रदान करते हैं।
- परीक्षण कवरेज स्थैतिक समीक्षा तकनीकों जैसे सहकर्मी समीक्षा, निरीक्षण और वॉकथ्रू का उपयोग करके किया जा सकता है
- तदर्थ दोषों को निष्पादन योग्य परीक्षण मामलों में परिवर्तित करके
- कोड स्तर या यूनिट परीक्षण स्तर पर, स्वचालित कोड कवरेज या यूनिट परीक्षण कवरेज टूल का लाभ उठाकर परीक्षण कवरेज प्राप्त किया जा सकता है
- कार्यात्मक परीक्षण कवरेज उचित परीक्षण प्रबंधन उपकरणों की सहायता से किया जा सकता है
टेस्ट कवरेज को कैसे बेहतर बनाया जाए
कवरेज स्थापित करना प्रारंभिक चरण है; इसे बढ़ाना एक नियमित प्रक्रिया है। प्रत्येक रिलीज़ चक्र की शुरुआत में इस क्रम का पालन करें।
- वर्तमान संख्या को आधार रेखा के रूप में निर्धारित करें। एक कवरेज रिपोर्ट चलाएं और स्टेटमेंट, ब्रांच और आवश्यकताओं के कवरेज को अलग-अलग रिकॉर्ड करें, ताकि कमियां एक प्रोजेक्ट-व्यापी औसत के भीतर छिपी रहने के बजाय प्रत्येक मॉड्यूल के अनुसार दिखाई दें।
- टेस्ट को आवश्यकताओं के अनुरूप बनाएं। एक निर्माण tracएक योग्यता ग्रिड जो प्रत्येक आवश्यकता को कम से कम एक परीक्षण मामले से जोड़ता है। कोई भी खाली पंक्ति एक पुष्ट कमी है, संदेह नहीं।
- जोखिम के आधार पर मॉड्यूल को क्रमबद्ध करें। भुगतान, प्रमाणीकरण और डेटा-माइग्रेशन संबंधी तर्क को एक स्थिर सहायता स्क्रीन की तुलना में कहीं अधिक गहन कवरेज की आवश्यकता है, इसलिए बजट को वहां खर्च करें जहां विफलता से सबसे अधिक नुकसान होगा।
- नकारात्मक और विषम परिस्थितियों को शामिल करें। खाली इनपुट, अत्यधिक बड़े मान, नेटवर्क टाइमआउट और अनुमति संबंधी त्रुटियां उन शाखाओं तक पहुंच जाती हैं जिन्हें हैप्पी-पाथ परीक्षण कभी नहीं छूते।
- परीक्षण स्तरों को स्तरित करें। मिलाना इकाई का परीक्षण, एकीकरण जांचऔर संपूर्ण स्तर की जाँच, क्योंकि प्रत्येक स्तर उन चीजों को कवर करता है जिन्हें अन्य स्तर संरचनात्मक रूप से कवर नहीं कर सकते।
- रिग्रेशन सूट को स्वचालित करें। Promoस्थिर मामलों में स्वचालन परीक्षण और उन्हें अंदर ही निष्पादित करें सीआई/सीडी पाइपलाइन प्रत्येक कमिट के बाद।
- अनावश्यक मामलों को समाप्त करें। उन डुप्लिकेट परीक्षणों को हटा दें जो एक भी अनकवर्ड लाइन जोड़े बिना निष्पादन मिनटों को बढ़ाते हैं।
- Revप्रत्येक स्प्रिंट में रुझान देखें। Tracके कवरेज के बगल में दोष घनत्वसमतल सतह पर रिसाव का बढ़ना किसी अनदेखे क्षेत्र की प्रारंभिक चेतावनी है।
⚠️ चेतावनी: 100 प्रतिशत को लक्ष्य न मानें। मजबूत अभिकथनों के साथ 85 प्रतिशत की सटीकता वाला सूट, बिना किसी परिणाम को सत्यापित किए कोड निष्पादित करने वाले 95 प्रतिशत के सतही जाँचों की तुलना में रिलीज़ को कहीं बेहतर सुरक्षा प्रदान करता है।
टेस्ट कवरेज की कमियां
कवरेज मूल्यवान बना रहता है, फिर भी इसकी कुछ सीमाएं हैं जिन्हें किसी भी प्रतिशत की रिपोर्ट करने से पहले बताना आवश्यक है।
- टेस्ट कवरेज में ज़्यादातर काम मैन्युअल होते हैं क्योंकि उन्हें स्वचालित करने के लिए कोई उपकरण नहीं होते। इसलिए, ज़रूरतों का विश्लेषण करने और टेस्ट केस बनाने में काफ़ी मेहनत लगती है।
- टेस्ट कवरेज आपको सुविधाओं की गणना करने और फिर कई परीक्षणों के खिलाफ़ मापने की अनुमति देता है। हालाँकि, निर्णय त्रुटियों के लिए हमेशा जगह होती है।

