मैं कई अनुप्रयोगों पर काम कर रहा हूं, मुख्य रूप से विरासत वाले। वर्तमान में, उनका कोड कवरेज काफी कम है: आम तौर पर 10 और 50% के बीच।
कई हफ्तों से, हमें बंगलौर की टीमों के साथ बार-बार विचार-विमर्श होता है (विकास का मुख्य भाग भारत में अपतटीय बनाया गया है) कोबर्तुरा (हमारे कोड कवरेज टूल, भले ही हम वर्तमान में जैकोको के लिए पलायन कर रहे हैं) के पैकेज या वर्गों के बहिष्करण के बारे में।
उनका दृष्टिकोण निम्नलिखित है: चूंकि वे एप्लिकेशन (1) की कुछ परतों पर कोई इकाई परीक्षण नहीं लिखेंगे , इन परतों को कोड कवरेज उपाय से बस बाहर रखा जाना चाहिए। दूसरों के शब्दों में, वे कोड कवरेज माप को उस कोड तक सीमित करना चाहते हैं जो परीक्षण किया गया है या परीक्षण किया जाना चाहिए ।
इसके अलावा, जब वे एक जटिल वर्ग के लिए इकाई परीक्षण पर काम करते हैं, तो लाभ - कोड कवरेज की अवधि में - एक बड़े आवेदन के कारण किसी का ध्यान नहीं जाएगा। कोड कवरेज के दायरे को कम करने से इस तरह का प्रयास अधिक दिखाई देगा ...
इस दृष्टिकोण की रुचि यह है कि हमारे पास एक कोड कवरेज माप होगा जो उस एप्लिकेशन के भाग की वर्तमान स्थिति को इंगित करता है जिसे हम परीक्षण योग्य मानते हैं ।
हालांकि, मेरा कहना यह है कि हम किसी तरह आंकड़े बढ़ा रहे हैं। यह समाधान बिना किसी प्रयास के उच्च स्तर के कोड कवरेज तक पहुंचने का एक आसान तरीका है। एक और बिंदु जो मुझे परेशान करता है वह है निम्नलिखित: यदि हम एक सप्ताह से दूसरे सप्ताह के लिए कवरेज में वृद्धि दिखाते हैं, तो हम यह कैसे बता सकते हैं कि यह अच्छी खबर डेवलपर्स के अच्छे काम के कारण है, या बस नए बहिष्करणों के कारण है?
इसके अलावा, हम ठीक से नहीं जान पाएंगे कि कोड कवरेज उपाय में क्या माना जाता है। उदाहरण के लिए, यदि मेरे पास ४०% कोड कवरेज के साथ १०,००० लाइनों का कोड है, तो मैं यह कटौती कर सकता हूं कि मेरे कोड आधार का ४०% परीक्षण किया गया है (२) । लेकिन क्या होगा अगर हम बहिष्करण निर्धारित करते हैं? यदि कोड कवरेज अब 60% है, तो मैं वास्तव में क्या कटौती कर सकता हूं? मेरे "महत्वपूर्ण" कोड आधार का 60% परीक्षण किया गया है? मैं कैसे कर सकता हूँ
जहां तक मेरा सवाल है, मैं "वास्तविक" कोड कवरेज वैल्यू रखना पसंद करता हूं, भले ही हम इसके बारे में खुश न हों। इसके अलावा, सोनार के लिए धन्यवाद, हम आसानी से अपने कोड बेस में नेविगेट कर सकते हैं और जान सकते हैं, किसी भी मॉड्यूल / पैकेज / वर्ग के लिए, इसका अपना कोड कवरेज। लेकिन निश्चित रूप से, वैश्विक कोड कवरेज अभी भी कम होगा।
उस विषय पर आपकी क्या राय है? आप अपनी परियोजनाओं पर कैसे काम करते हैं?
धन्यवाद।
(1) ये परतें सामान्यतः UI / जावा बीन्स इत्यादि से संबंधित होती हैं।
(२) मुझे पता है कि यह सच नहीं है। वास्तव में, इसका मतलब केवल यह है कि मेरे कोड का 40% आधार