जवाबों:
कोड कवरेज एक माप है कि आपके कोड की कितनी लाइनें / ब्लॉक / आर्क्स निष्पादित किए जाते हैं जबकि स्वचालित परीक्षण चल रहे हैं।
कोड कवरेज ट्रेसिंग कॉल को जोड़ने और इंस्ट्रूमेंटेड उत्पाद के खिलाफ स्वचालित परीक्षणों का एक पूरा सेट चलाने के लिए बायनेरिज़ को इंस्ट्रूमेंट करने के लिए एक विशेष टूल का उपयोग करके एकत्रित किया जाता है। एक अच्छा उपकरण आपको न केवल निष्पादित कोड का प्रतिशत देगा, बल्कि आपको डेटा में ड्रिल करने और यह देखने की अनुमति देगा कि किसी विशेष परीक्षण के दौरान कोड की कौन सी पंक्तियों को निष्पादित किया गया था।
हमारी टीम मैगेलन का उपयोग करती है - कोड कवरेज टूल का इन-हाउस सेट। यदि आप एक .NET शॉप हैं, तो विजुअल स्टूडियो में कोड कवरेज इकट्ठा करने के लिए एकीकृत उपकरण हैं। आप इस लेख की तरह कुछ कस्टम टूल भी रोल कर सकते हैं वर्णन करता है।
यदि आप C ++ की दुकान हैं, तो Intel के पास कुछ उपकरण हैं जो Windows और Linux के लिए चलते हैं, हालांकि मैंने उनका उपयोग नहीं किया है। मैंने यह भी सुना है कि GCC के लिए gcov टूल है, लेकिन मैं इसके बारे में कुछ नहीं जानता और आपको लिंक नहीं दे सकता।
जैसा कि हम इसका उपयोग कैसे करते हैं - कोड कवरेज प्रत्येक मील के पत्थर के लिए हमारे निकास मानदंडों में से एक है। हमारे पास वास्तव में तीन कोड कवरेज मेट्रिक्स हैं - यूनिट परीक्षणों (विकास टीम से), परिदृश्य परीक्षण (परीक्षण टीम से) और संयुक्त कवरेज से कवरेज।
बीटीडब्ल्यू, जबकि कोड कवरेज एक अच्छा मीट्रिक है कि आप कितना परीक्षण कर रहे हैं, यह जरूरी नहीं है कि आप अपने उत्पाद का कितना अच्छा परीक्षण कर रहे हैं। गुणवत्ता सुनिश्चित करने के लिए कोड कवरेज के साथ-साथ अन्य मेट्रिक्स का उपयोग करना चाहिए।
कोड कवरेज मूल रूप से परीक्षण करता है कि आपका कितना कोड परीक्षण के तहत कवर किया गया है। इसलिए, यदि आपके पास 90% कोड कवरेज है, तो इसका मतलब है कि 10% कोड है जो परीक्षणों के तहत कवर नहीं है। मुझे पता है कि आप सोच रहे होंगे कि ९ ०% कोड कवर किया गया है, लेकिन आपको एक अलग कोण से देखना होगा। 100% कोड कवरेज प्राप्त करने के लिए आपको क्या रोक रहा है?
एक अच्छा उदाहरण यह होगा:
if(customer.IsOldCustomer())
{
}
else
{
}
अब, उपरोक्त कोड में दो पथ / शाखाएँ हैं। यदि आप हमेशा "YES" शाखा को मार रहे हैं तो आप अन्य भाग को कवर नहीं कर रहे हैं और इसे कोड कवरेज परिणामों में दिखाया जाएगा। यह अच्छा है क्योंकि अब आप जानते हैं कि क्या कवर नहीं किया गया है और आप दूसरे भाग को कवर करने के लिए एक परीक्षण लिख सकते हैं। यदि कोई कोड कवरेज नहीं था, तो आप विस्फोट करने के लिए सिर्फ टाइम बम पर बैठे हैं।
कोड कवरेज को मापने के लिए NCover एक अच्छा साधन है।
बस याद रखें, "100% कोड-कवरेज" होने का मतलब यह नहीं है कि सब कुछ पूरी तरह से परीक्षण किया गया है - जबकि इसका मतलब है कि कोड की प्रत्येक पंक्ति का परीक्षण किया गया है, इसका मतलब यह नहीं है कि वे हर (सामान्य) स्थिति के तहत परीक्षण किए जाते हैं।
मैं कोड के बिट्स को उजागर करने के लिए कोड-कवरेज का उपयोग करूंगा, जिसके लिए मुझे शायद परीक्षण लिखना चाहिए। उदाहरण के लिए, यदि कोई भी कोड-कवरेज टूल myImportantFunction () को मेरी वर्तमान इकाई-परीक्षणों को चलाने के दौरान निष्पादित नहीं करता है, तो उन्हें संभवतः सुधार दिया जाना चाहिए।
मूल रूप से, 100% कोड-कवरेज का मतलब यह नहीं है कि आपका कोड एकदम सही है। अधिक व्यापक (इकाई-) परीक्षणों को लिखने के लिए एक गाइड के रूप में इसका उपयोग करें।
x
और वापस आ गया x/x
और आपने my_func (2) का उपयोग करके परीक्षण चलाया तो आपके पास 100% कवरेज होगा (जैसा कि फ़ंक्शन का कोड चलाया जाएगा), लेकिन 0 के पैरामीटर होने पर आपको एक बड़ा मुद्दा याद आ गया है। यानी आपने 100% कवरेज के साथ सभी आवश्यक परिदृश्यों का परीक्षण नहीं किया है।
पिछले उत्तरों में से कई के लिए कुछ बिंदुओं को लागू करना:
कोड कवरेज का अर्थ है, आपका परीक्षण सेट आपके स्रोत कोड को कितनी अच्छी तरह कवर कर रहा है। यानी परीक्षण के मामलों के सेट द्वारा कवर किया गया स्रोत कोड किस सीमा तक है।
जैसा कि ऊपर दिए गए जवाबों में बताया गया है, विभिन्न कवरेज मानदंड हैं, जैसे पथ, स्थितियां, कार्य, कथन आदि, लेकिन कवर किए जाने वाले अतिरिक्त मानदंड।
नोट: स्टेटिक कोड विश्लेषण यह पता लगाएगा कि क्या कोई अनुपलब्ध कोड या हैंगिंग कोड है, अर्थात कोड किसी अन्य फ़ंक्शन कॉल द्वारा कवर नहीं किया गया है। और अन्य स्थिर कवरेज भी। भले ही स्थिर कोड विश्लेषण रिपोर्ट करता है कि 100% कोड कवर किया गया है, यह आपके परीक्षण सेट के बारे में रिपोर्ट नहीं देता है यदि सभी संभावित कोड कवरेज का परीक्षण किया जाता है।
पिछले उत्तर में कोड कवरेज को अच्छी तरह से समझाया गया है। तो यह सवाल के दूसरे भाग का उत्तर है।
कोड कवरेज निर्धारित करने के लिए हमने तीन टूल का उपयोग किया है।
हम इन उपकरणों का उपयोग करते हैं
कोड कवरेज परीक्षण किए गए कोड का एक उपाय है। विभिन्न प्रकार के कवरेज मानदंड हैं, जिन्हें मापा जा सकता है, लेकिन आम तौर पर यह एक कार्यक्रम के भीतर विभिन्न रास्तों, शर्तों, कार्यों, और कथनों का होता है जो कुल कवरेज का श्रृंगार करते हैं। कोड कवरेज मीट्रिक परीक्षणों का सिर्फ एक प्रतिशत है जो इन कवरेज मानदंडों में से प्रत्येक को निष्पादित करता है।
जहाँ तक मैं अपनी परियोजनाओं पर ट्रैकिंग इकाई परीक्षण कवरेज के बारे में बताता हूं, मैं ट्रैक रखने के लिए स्थैतिक कोड विश्लेषण टूल का उपयोग करता हूं।
पर्ल के लिए उत्कृष्ट देवल :: कवर है मॉड्यूल है जो मैं नियमित रूप से अपने मॉड्यूल पर उपयोग करता हूं।
यदि बिल्ड और इंस्टॉलेशन का प्रबंधन मॉड्यूल द्वारा किया जाता है :: बिल्ड आप ./Build testcover
एक अच्छा HTML साइट प्राप्त करने के लिए बस चला सकते हैं जो आपको प्रति उप-रेखा, रेखा और स्थिति के बारे में कवरेज बताता है, जिसमें अच्छे रंग यह देखना आसान बनाते हैं कि कौन सा कोड पथ कवर नहीं किया गया है।
पिछले उत्तरों में कोड कवरेज को अच्छी तरह से समझाया गया है। मैं सिर्फ उपकरणों से संबंधित कुछ ज्ञान जोड़ रहा हूं यदि आपके काम कर रहे हैं iOS
औरOSX
प्लेटफार्मों, Xcode परीक्षण और मॉनिटर कोड कवरेज की सुविधा प्रदान करता है।
संदर्भ लिंक:
https://medium.com/zendesk-engineering/code-coverage-and-xcode-6b2fb8756a51
दोनों Xcode के साथ कोड कवरेज सीखने और तलाशने के लिए सहायक लिंक हैं।
PHP के लिए आपको सेबस्टियन बर्गमैन से जीथब पर एक नज़र डालना चाहिए
PHP कोड कवरेज की जानकारी के लिए संग्रह, प्रसंस्करण और कार्यक्षमता प्रदान करता है।