code coverage tutorial
यह व्यापक ट्यूटोरियल बताता है कि सॉफ्टवेयर टेस्टिंग में कोड कवरेज क्या है, इसके प्रकार, लाभ और कमियां:
किसी भी सॉफ्टवेयर डेवलपमेंट कंपनी का अंतिम लक्ष्य सॉफ्टवेयर विकसित करना है जो अच्छी गुणवत्ता का हो। इस लक्ष्य को प्राप्त करने के लिए, सॉफ्टवेयर का पूरी तरह से परीक्षण किया जाना चाहिए।
इस प्रकार परीक्षण एक सॉफ्टवेयर अनुप्रयोग विकसित करने का एक अभिन्न अंग है। इसलिए यह आवश्यक है, कि विकसित किए गए सॉफ़्टवेयर की समीक्षा डेवलपर द्वारा की जाती है (जो कि इकाई परीक्षण चरण के दौरान किया जाता है) और फिर यह सुनिश्चित करने के लिए क्यूसी टीम पर उत्तीर्ण किया जाता है ताकि यह सुनिश्चित हो सके कि इसमें न्यूनतम या कोई बग नहीं है।
सॉफ्टवेयर परीक्षण के लिए वास्तविक परीक्षण टीम को जारी किए जाने से पहले इकाई परीक्षण किया जाता है। जैसा कि इस परीक्षण में कोड स्तर पर परीक्षण शामिल है, यह डेवलपर द्वारा किया जाता है। यह सुनिश्चित करने के लिए किया जाता है कि परीक्षण किए जा रहे कोड का प्रत्येक भाग अपेक्षित रूप से काम करता है।
यहां, कोड के छोटे-छोटे टुकड़े जो विकसित किए गए हैं, उनकी शुद्धता सुनिश्चित करने के लिए अलगाव में परीक्षण किया जाता है। लेकिन, एक डेवलपर के दिमाग में अक्सर यह सवाल उठता है कितना यूनिट परीक्षण किया जाना चाहिए और इस का उत्तर कोड कवरेज में निहित है।
यह ट्यूटोरियल आपको एक गहरा ज्ञान देगा कि कोड कवरेज क्या है और हमें इसकी आवश्यकता क्यों है। आपको पता चल जाएगा कि यह टेस्ट कवरेज से कैसे अलग है।
हम कोड कवरेज के लिए उपयोग किए जाने वाले टूल और कार्यप्रणाली पर भी नज़र डालेंगे और इस ट्यूटोरियल के अंत में, हम इसके कमियों के साथ लाभ देखेंगे। कोड कवरेज से जुड़े कुछ मिथकों को भी यहां कवर किया जाएगा।
आप क्या सीखेंगे:
कोड कवरेज क्या है
यह एक महत्वपूर्ण इकाई परीक्षण मीट्रिक है। यह यूनिट परीक्षणों की प्रभावशीलता को जानने में आसान है। यह एक उपाय है जो इंगित करता है कि परीक्षण करते समय स्रोत कोड का कितना प्रतिशत निष्पादित होगा।
समान्य शब्दों में, सॉफ्टवेयर प्रोग्राम या एप्लिकेशन के स्रोत कोड को परीक्षण के दौरान किस हद तक निष्पादित किया जाएगा, इसे कोड कवरेज कहा जाता है।
यदि परीक्षण सभी शाखाओं, स्थितियों, या छोरों सहित कोड के पूरे टुकड़े को निष्पादित करते हैं, तो हम कहेंगे कि सभी संभावित परिदृश्यों की पूरी कवरेज है और इस प्रकार कोड कवरेज 100% है। इसे और बेहतर समझने के लिए, आइए एक उदाहरण लेते हैं।
नीचे दिया गया एक सरल कोड है जिसका उपयोग दो संख्याओं को जोड़ने और परिणाम के मूल्य के आधार पर परिणाम प्रदर्शित करने के लिए किया जाता है।
Input a, b Let c = a + b If c <10, print c Else, print ‘Sorry’
उपर्युक्त कार्यक्रम दो सूचनाओं में है, अर्थात् 'a' और 'b'। दोनों का योग चर c में संचित है। यदि c का मान 10 से कम है, तो is c 'का मान मुद्रित किया जाता है,' क्षमा करें 'मुद्रित किया जाता है।
अब, अगर हमारे पास उपरोक्त प्रोग्राम को a और b के मान के साथ सत्यापित करने के लिए कुछ परीक्षण हैं जैसे कि योग हमेशा 10 से कम होता है, तो कोड का दूसरा भाग कभी निष्पादित नहीं होता है। ऐसे परिदृश्य में, हम कहेंगे कि कवरेज पूर्ण नहीं है।
कोड कवरेज के अर्थ को स्पष्ट करने के लिए यह केवल एक छोटा सा उदाहरण था। जैसा कि हम और अधिक खोज करते हैं, आप इस पर बेहतर स्पष्टता प्राप्त करेंगे।
हमें कोड कवरेज की आवश्यकता क्यों है
(छवि स्रोत )
विभिन्न कारणों से कोड कवरेज आवश्यक हो जाता है और उनमें से कुछ नीचे सूचीबद्ध हैं:
विंडोज़ 7 में बिन फ़ाइल कैसे खोलें
- यह पता लगाने में मदद करता है कि सॉफ़्टवेयर की तुलना में सॉफ़्टवेयर में बग कम है जिसमें एक अच्छा कोड कवरेज नहीं है।
- कोड गुणवत्ता को बेहतर बनाने में सहायता करने से, यह अप्रत्यक्ष रूप से एक बेहतर the गुणवत्ता ’सॉफ्टवेयर देने में मदद करता है।
- यह एक माप है जिसका उपयोग परीक्षण प्रभावशीलता (इकाई परीक्षणों की प्रभावशीलता जो कोड का परीक्षण करने के लिए लिखा जाता है) को जानने के लिए किया जा सकता है।
- स्रोत कोड के उन हिस्सों की पहचान करने में मदद करता है जो अप्रयुक्त हो जाएंगे।
- यह निर्धारित करने में मदद करता है कि वर्तमान परीक्षण (यूनिट परीक्षण) पर्याप्त है या नहीं और यदि कुछ और परीक्षणों की आवश्यकता है।
कोड कवरेज बनाम टेस्ट कवरेज
कोड कवरेज और टेस्ट कवरेज के बीच अंतर को समझने के लिए, आइए पहले टेस्ट कवरेज के अर्थ को समझें।
टेस्ट कवरेज
यह एक माप है कि किसी सॉफ़्टवेयर का परीक्षण करने के दौरान अपेक्षित परीक्षण के कितने भाग कवर किए गए हैं। द्वारा ‘अपेक्षित परीक्षण’ हमारा मतलब है कि परीक्षण मामलों का पूरा सेट जो किसी दिए गए सॉफ़्टवेयर का परीक्षण करने के लिए निष्पादित होने के लिए लिखा गया है।
मान लीजिए, एक सॉफ्टवेयर का परीक्षण करने के लिए 500 कुल परीक्षण मामलों का एक सेट लिखा गया है। अब, परीक्षण गतिविधि के एक भाग के रूप में, केवल 300 परीक्षण मामलों को निष्पादित किया गया था। समय की कमी के कारण मान लेते हैं। इस मामले में, नीचे परीक्षण कवरेज होगा।
टेस्ट कवरेज = (निष्पादित परीक्षण मामले / कुल टेस्ट मामले) * 100
= (300/500) * 100
= 60%
आइए इसकी तुलना करें कि कोड कवरेज क्या है।
कोड कवरेज़
यह एक माप है जो कोड के परीक्षण के दौरान किसी एप्लिकेशन के स्रोत कोड को किस हद तक निष्पादित करता है, यह दर्शाता है। यह इस प्रकार एक स्रोत कोड का परीक्षण करने के लिए डिग्री दिखाता है।
मान लीजिए कि किसी एप्लिकेशन को कोड की 500 लाइनों के साथ परीक्षण करना है, कोड की केवल 400 लाइनें परीक्षणों द्वारा निष्पादित की जाती हैं। मान लें कि यह एक निश्चित लूप / शर्त के कारण निष्पादित नहीं हो रहा है। इस मामले में, नीचे कोड कवरेज होगा।
कोड कवरेज = (कोड की पंक्तियों की संख्या / कोड की कुल पंक्तियों की संख्या) * 100
= (400/500) * 100
= 80%
कोड कवरेज और टेस्ट कवरेज के बीच अंतर निम्नलिखित हैं:
टेस्ट कवरेज | कोड कवरेज़ |
---|---|
यह एक माप है कि किसी सॉफ्टवेयर का परीक्षण करने के दौरान अपेक्षित परीक्षण का कितना हिस्सा कवर किया गया है। | यह एक माप है जो कोड के परीक्षण के दौरान किसी एप्लिकेशन के स्रोत कोड को किस हद तक निष्पादित करता है, यह दर्शाता है। |
टेस्ट कवरेज की गणना नीचे दिए गए सूत्र का उपयोग करके की जा सकती है: टेस्ट कवरेज = (निष्पादित परीक्षण मामले / कुल टेस्ट मामले) * 100 | नीचे दिए गए सूत्र का उपयोग करके कोड कवरेज की गणना की जा सकती है: कोड कवरेज = (कोड की पंक्तियों की संख्या / कोड की कुल पंक्तियों की संख्या) * 100 |
के तरीके
यहां, हम विभिन्न तरीकों पर चर्चा करेंगे जो कोड कवरेज को मापने के लिए उपयोग किए जा सकते हैं।
इन तरीकों को समझने के लिए, आइए नीचे दिए गए कोड स्निपेट पर एक नज़र डालें:
Add (int a, int b) { If (b > a) { b = b - a Print b } If (a > b) { b = a – b Print b } Else Print ‘0’ }
स्टेटमेंट कवरेज
यह कार्यप्रणाली एक ऐसा उपाय है जो बताता है कि स्रोत कोड में कोड के सभी संभावित निष्पादन योग्य कथनों को कम से कम एक बार निष्पादित किया गया है या नहीं। यह यह सुनिश्चित करने की एक विधि है कि स्रोत कोड की प्रत्येक पंक्ति परीक्षणों द्वारा कम से कम एक बार कवर की जाती है।
यह सरल लग सकता है लेकिन स्टेटमेंट कवरेज को मापने के दौरान सावधानी बरतने की आवश्यकता है। कारण, स्रोत कोड में एक निश्चित शर्त हो सकती है जो इनपुट मानों के आधार पर निष्पादित नहीं हो सकती है।
इसका मतलब यह होगा कि कोड की सभी पंक्तियों को परीक्षण में शामिल नहीं किया जाएगा। इस प्रकार, हमें स्रोत कोड में ऐसी सभी स्थितियों को कवर करने के लिए अलग-अलग इनपुट वैल्यू सेट का उपयोग करना पड़ सकता है।
उदाहरण के लिए, उपरोक्त स्रोत कोड में यदि इनपुट मानों को 2 और 3 के रूप में लिया जाता है, तो कोड के 'एल्स' भाग को निष्पादित नहीं किया जाएगा। हालाँकि, यदि इनपुट मान 3 और 2 प्रकार के हैं, तो कोड का 'If' भाग निष्पादित नहीं होगा।
इसका मतलब यह है कि हमारे स्टेटमेंट कवरेज के मूल्यों में से किसी एक के साथ 100% नहीं होगा। ऐसे मामले में, हमें 100% स्टेटमेंट कवरेज सुनिश्चित करने के लिए सभी तीन ((2, 3), (3, 2), (0, 0)) सेट के साथ परीक्षणों को निष्पादित करना पड़ सकता है।
समारोह कवरेज
जैसा कि नाम से पता चलता है, यह कार्यप्रणाली परीक्षण के दौरान स्रोत कोड में मौजूद कार्यों को किस हद तक मापती है। स्रोत कोड में होने वाले सभी कार्यों का परीक्षण निष्पादन के दौरान परीक्षण किया जाता है। फिर, यह सुनिश्चित किया जाना चाहिए कि हम इन कार्यों को अलग-अलग मूल्यों के लिए परीक्षण करते हैं ताकि फ़ंक्शन का अच्छी तरह से परीक्षण किया जा सके।
एक स्रोत कोड में कई कार्य हो सकते हैं और इनपुट मूल्यों के आधार पर एक फ़ंक्शन का उपयोग किया जा सकता है या नहीं कहा जा सकता है। इस प्रकार फ़ंक्शन कवरेज का उद्देश्य यह सुनिश्चित करना है कि हमारे पास प्रत्येक फ़ंक्शन के लिए कॉल किया गया है।
उदाहरण के लिए, उपरोक्त स्रोत कोड में यदि हमारे परीक्षण एक बार भी 'ऐड' फ़ंक्शन को कॉल करते हैं, तो हम इसे पूर्ण फ़ंक्शन कवरेज के रूप में कहेंगे।
हालत कवरेज
स्रोत कोड में जहां भी हमारी स्थिति होती है, परिणाम सच या गलत दोनों में से एक बूलियन मान होगा। शर्त कवरेज का उद्देश्य यह स्थापित करना है कि क्या परीक्षण दोनों मानों को कवर करता है यानी सही, गलत।
स्रोत कोड में, जब प्रत्येक होने वाली स्थिति का मूल्यांकन सच्चे और झूठे दोनों राज्यों के लिए किया जाता है, तो कोड के लिए शर्त कवरेज को पूरा करने के लिए कहा जाता है।
उदाहरण के लिए, उपरोक्त कोड में यदि मान सेट (2, 3) और (4, 2) का उपयोग किया जाता है तो स्थिति कवरेज 100% होगा। जब डेटा सेट (2, 3) का उपयोग किया जाता है तब (b> a) सत्य का मूल्यांकन करता है और (a> b) गलत का मूल्यांकन करता है। इसी तरह, जब डेटा सेट (4, 2) का उपयोग किया जाता है तब (b> a) गलत का मूल्यांकन करता है और (a) b सत्य का मूल्यांकन करता है।
इस प्रकार दोनों स्थितियों में दोनों मूल्य हैं अर्थात् सत्य और असत्य। इसलिए हालत कवरेज 100% होगा।
शाखा कवरेज
इस पद्धति का उद्देश्य यह सुनिश्चित करना है कि प्रत्येक सशर्त संरचना में प्रदर्शित होने वाली प्रत्येक शाखा को स्रोत कोड में निष्पादित किया जाता है। उदाहरण के लिए, उपरोक्त कोड में, सभी statements यदि ’स्टेटमेंट और किसी भी‘ एल्स ’स्टेटमेंट को सभी को 100% ब्रांच कवरेज के लिए परीक्षण द्वारा कवर किया जाना चाहिए।
उदाहरण के लिए, उपरोक्त कोड में यदि मान सेट (2, 3), (4, 2), (1, 1) का उपयोग किया जाता है तो ब्रांच कवरेज 100% होगा। जब डेटा सेट (2, 3) का उपयोग किया जाता है तब (b> a) और पहले branch If ’शाखा को क्रियान्वित किया जाता है। इसी तरह, जब डेटा सेट (4, 2) का उपयोग किया जाता है तब (a) b सत्य का मूल्यांकन करता है और दूसरी 'If' शाखा निष्पादित होती है।
फिर डेटा सेट (1, 1) के साथ 'एल्स' शाखा सच का मूल्यांकन करती है और निष्पादित होती है। जिससे 100% ब्रांच कवरेज सुनिश्चित हो सके।
c ++ के लिए ग्रहण कैसे स्थापित करें
शाखा कवरेज बनाम स्थिति कवरेज
शाखा कवरेज अक्सर हालत कवरेज के साथ उलझन में है, हालांकि, दोनों अलग हैं।
आइए इसे एक सरल उदाहरण से समझते हैं।
If (a >0) & (b >0) Then Print “Hello” Else Print “Bye”
हमें पूरा सेट करने के लिए आवश्यक डेटा सेट लिखें शाखा कवरेज:
(1, 1) - इस मामले में, and a ’और both b’ दोनों सत्य हैं, इसलिए यदि IF स्थिति निष्पादित हो जाती है।
(1, 0) - इस मामले में, 'a' सत्य है और 'b' गलत होगा, इसलिए कोड का Else भाग निष्पादित होता है।
जैसा कि हम जानते हैं कि शाखा कवरेज का उद्देश्य है कि प्रत्येक शाखा को कम से कम एक बार क्रियान्वित किया जाए और यह उद्देश्य प्राप्त हो।
हालत कवरेज:
(1, 0) - इस मामले में, 'a' सत्य है और 'b' गलत होगा।
(0, 1) - इस मामले में, 'ए' गलत है और 'बी' सही होगा।
कंडीशन कवरेज का उद्देश्य निष्पादित प्रत्येक शर्त के लिए सही और गलत में से प्रत्येक को प्राप्त करना है और यह उद्देश्य यहां हासिल किया गया है।
क्या आपने देखा कि अन्य भाग को हालत कवरेज में निष्पादित नहीं किया जाता है? यह वह जगह है जहाँ स्थिति कवरेज शाखा कवरेज से अलग है।
कोड कवरेज के लिए उपकरण
किसी भी सॉफ्टवेयर के कोड कवरेज को मापने के लिए, बाजार में कई उपकरण उपलब्ध हैं।
नीचे सूचीबद्ध आपके संदर्भ के लिए कुछ उपकरण हैं:
- Parasoft JTest
- टेस्टवेल CTC ++
- कवरेज
- जाकोको
- कोडकवर
- बुल्सआईओवरेज
- एम्मा
- OpenCover
- NCover
- स्क्विश COCO
- कवरेज करने वाला
- जीसीटी
- TCAT C / C ++
- ग्रेटेल
- JCov
अनुशंसित पढ़ना => कोड कवरेज उपकरण
उपरोक्त लिंक में इन उपकरणों पर निम्नलिखित जानकारी शामिल होगी:
- प्रमुख विशेषताऐं
- लाइसेंस के प्रकार
- आधिकारिक यूआरएल
- भला - बुरा
- नवीनतम संस्करण
लाभ
जैसा कि ऊपर देखा गया है, यह नीचे दिए गए कारणों के लिए एक बहुत ही उपयोगी परीक्षण मैट्रिक्स है:
- यह उन क्षेत्रों को एक स्रोत कोड में पहचानने में मदद करता है जो परीक्षण द्वारा अनछुए / अप्रकाशित रहेंगे।
- यह उपयोग किए गए / मृत कोड की पहचान करने में आसान है, जिससे कोड की गुणवत्ता में सुधार होता है।
- कोड कवरेज की मदद से यूनिट परीक्षणों की प्रभावशीलता को जाना जा सकता है।
- बेहतर गुणवत्ता वाले सॉफ़्टवेयर को इन मैट्रिक्स का उपयोग करके वितरित किया जा सकता है।
कमियां
- 100% कोड कवरेज के लिए लक्ष्य बनाने की कोशिश करना कभी-कभी परीक्षण की मजबूती की कमी का कारण बनता है जिसके परिणामस्वरूप दोष प्रवण परिदृश्यों को कैप्चर करने से चूक जाता है।
- आम धारणा के विपरीत, यह गारंटी नहीं दे सकता है कि डिज़ाइन किया गया सॉफ़्टवेयर सभी आवश्यकताओं को पूरा करता है।
मिथक बनाम तथ्य
कल्पित कथा | तथ्य |
---|---|
100% कोड कवरेज होने से यह सुनिश्चित होता है कि सॉफ्टवेयर में कोई बग नहीं होगा। | नहीं, 100% कोड कवरेज बग फ्री सॉफ्टवेयर की गारंटी नहीं दे सकता है। क्यूसी टीम के अच्छे प्रयासों के साथ मिलकर एक अच्छा कोड कवरेज कम से कम या बग के साथ एक सॉफ्टवेयर सुनिश्चित कर सकता है। |
100% कोड कवरेज होने का मतलब है कि लिखा गया कोड एकदम सही है। | नहीं, तथ्य की बात के रूप में, यदि महत्वपूर्ण आवश्यकताओं को पहली जगह में कोड द्वारा कब्जा नहीं किया गया है, तो कोड को 100% होने के बावजूद कोड को सही नहीं कहा जा सकता है। |
कोड कवरेज एक सॉफ्टवेयर उत्पाद पर किए गए परीक्षणों की प्रभावशीलता को मापता है। | नहीं, कोड कवरेज केवल एक माप है जो इकाई परीक्षणों की प्रभावशीलता का परीक्षण करने के लिए उपयोग किया जाता है यानी केवल सॉफ़्टवेयर के स्रोत कोड पर निष्पादित परीक्षण। |
अक्सर पूछे जाने वाले प्रश्न
Q # 1) एक स्वीकार्य कोड कवरेज क्या है?
उत्तर: 100% कोड कवरेज हासिल करना इकाई परीक्षण सॉफ्टवेयर कोड का लक्ष्य नहीं होना चाहिए। पर क्यों नहीं? कारण समझने के लिए आपको अंतर्निहित अर्थ को समझने के लिए थोड़ा गहरा गोता लगाना पड़ सकता है।
जब हम 100% कवरेज को लक्षित करते हैं, तो यह अधिक बार होता है कि परीक्षण को डिजाइन करने में सारा ध्यान यह सुनिश्चित करने में जाता है कि क्या प्रत्येक कथन, लूप, शाखा, या स्थिति का परीक्षण किया जाता है। इसलिए हम बहुत सारे प्रयास करते हैं, जो समय बिताने पर विचार करने लायक नहीं है।
इसके अलावा, एक उच्च कवरेज पर ध्यान केंद्रित करने से उन महत्वपूर्ण परिदृश्यों को याद करने में भी परिणाम होता है जिनमें दोष होने की संभावना होती है क्योंकि हम जो लक्ष्य कर रहे हैं वह यह सुनिश्चित करना है कि कोड की प्रत्येक पंक्ति का परीक्षण किया जाए।
एक उच्च कोड कवरेज पर ध्यान केंद्रित करना हमेशा महत्वपूर्ण नहीं होता है और यह विभिन्न कोड का परीक्षण करने के लिए लक्षित करने के लिए न तो एक निश्चित संख्या हो सकती है। हालांकि, सामान्य तौर पर, 75% - 80% की कवरेज एक आदर्श संख्या होनी चाहिए।
हमारे कोड का परीक्षण करते समय, मुख्य फोकस महत्वपूर्ण और संभावित त्रुटि-प्रवण परिदृश्यों को कवर करने के लिए सुनिश्चित करना चाहिए। यदि ये छूट जाते हैं तो 100% कोड कवरेज होने के बावजूद हमारे परीक्षणों में खराब परीक्षण प्रभावशीलता होगी।
क्यू # 2) मैं अपने कोड कवरेज की जाँच कैसे करूँ?
उत्तर: कोड कवरेज के प्रतिशत का परीक्षण करने के लिए जिसे आपने कोड के परीक्षण के लिए डिज़ाइन किए गए परीक्षणों द्वारा प्राप्त किया हो सकता है हमारे पास बाजार में कई उपकरण हैं। प्रोग्रामिंग लैंग्वेज के आधार पर हम विभिन्न टूल्स का उपयोग कर रहे हैं।
उनमें से कुछ नीचे सूचीबद्ध हैं:
- जावा - कवरेज, JaCoCo
- जावास्क्रिप्ट - ब्लैंकेट.जेएस, इस्तांबुल
- अजगर - कवरेज
- माणिक - सिंपलकोव
इन उपकरणों का उपयोग करके हम अपने परीक्षणों की पूरी कवरेज रिपोर्ट प्राप्त कर सकते हैं जो हमें यह जानने में मदद करते हैं कि कोड के किस भाग को निष्पादित किया जाएगा और जो हमारे परीक्षणों से छूट जाएगा।
क्यू # 3) क्या कोड कवरेज एक अच्छा मीट्रिक है?
उत्तर: वास्तविक जीवन के परिदृश्यों में, यह कुछ हद तक और कुछ विशेष तरीकों से उपयोगी है।
पहले इसकी सीमाओं को देखते हुए, हम बहुत अच्छी तरह से जानते हैं कि 100% कवरेज होने की गारंटी नहीं है कि कोड बग-रहित है, और न ही यह गारंटी देता है कि सभी आवश्यकताओं को कोड में कवर किया गया है अर्थात 100% कोड कवरेज के बावजूद हम हैं कोड में कीड़े होने की बहुत संभावना है, कारण यह है कि कवरेज सुनिश्चित नहीं करता है कि सभी परिदृश्यों का परीक्षण किया गया है।
इसके अलावा, अगर कोड लिखते समय आवश्यकताओं को छोड़ दिया गया है, तो कोड के साथ आवश्यकताओं का कोई मानचित्रण नहीं है, जो कोड कवरेज के एक हिस्से के रूप में ध्यान रखा जाता है।
यह कहते हुए कि, हम इस बात से इनकार नहीं कर सकते कि जब हम मेट्रिक्स के रूप में कोड कवरेज का उपयोग करते हैं, तो यह हमें एक विचार देता है कि क्या हमने अपने कोड की प्रत्येक पंक्ति के परीक्षण की मूलभूत आवश्यकताओं को कवर किया है। इस कवरेज प्रतिशत से हमें यह अंदाजा होता है कि हमारे कोड के कितने भाग हमारे यूनिट परीक्षणों के साथ निष्पादित हो रहे हैं।
हमें पता चलता है कि हमारा कितना कोड अप्रकाशित होगा। यह बदले में हमें यह तय करने में मदद करता है कि कोड के कितने भागों के लिए और कितने यूनिट परीक्षणों की आवश्यकता है।
हम इस प्रकार निष्कर्ष निकाल सकते हैं कि खराब कवरेज होने से हमें इकाई परीक्षणों की अप्रभावीता का अंदाजा होता है। उसी समय, 100% कवरेज सुनिश्चित करना दोष-मुक्त कोड की गारंटी नहीं है। इस प्रकार एक संतुलित दृष्टिकोण रखने की आवश्यकता है जहां हम एक उच्च कोड कवरेज प्रतिशत को लक्षित करने के महत्व को अधिक नहीं करते हैं।
क्यू # 4) मैं अपना कोड कवरेज कैसे सुधार सकता हूं?
उत्तर: कोड कवरेज रिपोर्ट जो कि JaCoCo, इस्तांबुल जैसे कवरेज टूल द्वारा प्रदान की जाती है, उन क्षेत्रों को दिखाती है जो परीक्षण द्वारा कवर किए गए हैं और यह भी कि जो अप्रयुक्त हो जाएंगे।
कोड के अप्रयुक्त भागों को जानकर, परीक्षण या तो मैन्युअल रूप से लिखे जा सकते हैं या किसी भी स्वचालन उपकरण का उपयोग करके उन क्षेत्रों को कवर कर सकते हैं जो अन्यथा अप्रयुक्त हो जाएंगे और जिससे कोड कवरेज में वृद्धि होगी।
यहां ध्यान देने वाली एक महत्वपूर्ण बात यह है कि जब हम कोड में किसी फ़ंक्शन का परीक्षण करने के लिए कोड की सैकड़ों लाइनें लिख सकते हैं, लेकिन फिर भी कवरेज बहुत कम हो सकती है। कारण यह है कि विशाल कोड के एक भाग का परीक्षण करने के लिए बहुत गहरा होने से कोड कवरेज को बढ़ाने में मदद नहीं मिलेगी।
इस प्रकार, यदि लक्ष्य कवरेज को बढ़ाना है, तो एकल फ़ंक्शन में गहरी गोता लगाने और उस एकल फ़ंक्शन के लिए बड़े परीक्षण लिखने के बजाय सभी कार्यों, स्थितियों और छोरों को कवर करने के लिए देखभाल की आवश्यकता है।
निष्कर्ष
एक उच्च गुणवत्ता वाला सॉफ़्टवेयर उत्पाद वह है जो आज की तेजी से इंटरनेट की दुनिया में आवश्यक है।
अच्छी गुणवत्ता वाले सॉफ्टवेयर को सुनिश्चित करना न केवल एक क्यूए इंजीनियर की जिम्मेदारी है, बल्कि यह डेवलपर की भी जिम्मेदारी है। कोड कवरेज इस प्रकार बहुत काम आता है जब यह डेवलपर (ओं) द्वारा क्यूए टीम को एक गुणवत्ता उत्पाद देने की बात करता है।
इस ट्यूटोरियल ने कोड कवरेज और इसके उपयोगों के बारे में बताया। हमने कोड कवरेज और टेस्ट कवरेज के बीच के अंतर को समझने में भी थोड़ी गहराई खोदी। इसके अलावा, हमें विभिन्न प्रकार के कोड कवरेज साधनों के साथ उपयोग की जाने वाली कार्यप्रणाली की समझ मिली।
लाभ और कमियां यहां दी गई थीं। अंत में, हमने कोड कवरेज के साथ जुड़े कुछ मिथकों और FAQ का पर्दाफाश किया
कैसे iphone पर खोलने के लिए
पढ़ने का आनंद लो!!
अनुशंसित पाठ
- शीर्ष 15 कोड कवरेज उपकरण (जावा, जावास्क्रिप्ट, C ++, C #, PHP के लिए)
- विकास, निर्माण, प्रोफाइलर, कोड कवरेज और समीक्षा के लिए 15 सर्वश्रेष्ठ जावा उपकरण
- कोड उदाहरण के साथ सी # कार्य / तरीके ट्यूटोरियल
- कोड उदाहरणों के साथ C # अपवाद हैंडलिंग ट्यूटोरियल
- कछुआ एसवीएन ट्यूटोरियल: कोड रिपोजिटरी में संशोधन
- कोड उदाहरण के साथ जावा ऐरे लेंथ ट्यूटोरियल
- AWS CodeBuild ट्यूटोरियल: मावेन बिल्ड से कोड निकालना
- एसवीएन ट्यूटोरियल: स्रोत कोड प्रबंधन तोड़फोड़ का उपयोग करना