2011-05-11 4 views
7

से पहले इस सवाल का डुप्लिकेट के रूप में चिह्नित किया गया है, कृपया इसे पढ़ें। ;) वहां पहले से ही कर रहे हैं कवरेज उपकरण और इस तरह के बारे में कई प्रश्न है, लेकिन इस सामान्य लोगों (मुझे आशा है) की तुलना में थोड़ा अलग है।क्या किसी प्रकार का 'दावा' कवरेज टूल (जावा के लिए) है?

wikipedia के अनुसार 'कवरेज' विविधताओं कि शब्द 'कवरेज' के कई अलग अलग पहलुओं को प्रभावित के कई अलग अलग प्रकार के होते हैं।

यह एक छोटा सा उदाहरण:

public class Dummy { 
    public int a = 0; 
    public int b = 0; 
    public int c = 0; 

    public void doSomething() { 
     a += 5; 

     b += 5; 

     c = b + 5; 
    } 
} 

public class DummyTest { 

    @Test 
    public void testDoSomething() { 
     Dummy dummy = new Dummy(); 

     dummy.doSomething(); 

     assertEquals(10, dummy.c); 
    } 
} 

आप देख सकते हैं, परीक्षण 100% लाइनों की एक कवरेज होगा, क्षेत्र 'सी' के मूल्य पर जोर इस क्षेत्र को कवर किया जाएगा और परोक्ष रूप से भी कवर फ़ील्ड 'बी', हालांकि फील्ड 'ए' पर कोई दावा कवरेज नहीं है। इसका मतलब है कि परीक्षण कोड लाइनों की 100% शामिल हैं और भरोसा दिलाते हैं कि ग की उम्मीद मूल्य होता है और संभवत: यह भी ख सही, फिर भी एक सब पर इस बात पर जोर नहीं दी जाती और हो सकता है एक पूरी तरह से गलत मान।

तो ... अब सवाल: क्या कोई उपकरण (जावा) कोड का विश्लेषण करने में सक्षम है और कौन सा फ़ील्ड/वेरिएबल्स/जो भी नहीं है (प्रत्यक्ष और/या परोक्ष रूप से) किसी दावे से कवर किया गया है?

(ठीक जब सार्वजनिक क्षेत्रों के बजाय ही टिककर खेल का उपयोग कर आप देखेंगे कि Geta() कहा जाता है नहीं है, लेकिन अच्छी तरह से इस सवाल का जवाब मैं सुनना चाहता हूँ नहीं है,))

+0

तो ... आप उपकरण के कुछ प्रकार के बारे में जानकारी का कवरेज प्रवाह करने के लिए के लिए देख रहे? यह वास्तव में उपयोगी होगा, हालांकि मुझे किसी भी ऑफहैंड के बारे में पता नहीं है। एक +1 है। –

+0

हाँ, क्योंकि मैं आलसी हूं;) मुझे कुछ ऐसा कहना चाहिए जो मुझे कहता है, हे, आप कक्षा YZ में फ़ील्ड XY के मूल्य का परीक्षण करना भूल गए हैं। –

उत्तर

2

आप देख सकते हैं, परीक्षण 100% लाइनों की एक कवरेज होगा, क्षेत्र 'सी' के मूल्य पर जोर इस क्षेत्र को कवर किया जाएगा और परोक्ष रूप से भी क्षेत्र 'बी' के कवर, हालांकि फील्ड 'ए' पर कोई दावा कवरेज नहीं है। इसका मतलब है कि परीक्षण कोड लाइनों की 100% शामिल हैं और भरोसा दिलाते हैं कि ग की उम्मीद मूल्य होता है और संभवत: यह भी ख सही है, हालांकि एक सब पर इस बात पर जोर नहीं है और हो सकता है एक पूरी तरह से गलत मान।

ठीक है, "कवर" दुर्भाग्य से अलग बातें अलग अलग लोगों को मतलब है ... यह परीक्षण वास्तव में अभ्यास कोड लाइनों के 100%, लेकिन ऐसा नहीं परीक्षण उन सब करता है।

आप के लिए mutation testing द्वारा अच्छी तरह से नियंत्रित किया जाता है देख रहे हैं क्या।

Jester पर एक नज़र डालें, जो कोड कवरेज पर रिपोर्ट करने के लिए उत्परिवर्तन परीक्षण का उपयोग करता है।

+0

यदि यहां डाउनवोट के योग्य कुछ है, तो मैं यह जानकर सराहना करता हूं कि यह क्या है। –

+0

शायद आपके पास कोई व्यक्तिगत दुश्मन है? मुझे ऑब्जेक्ट करने के लिए कुछ भी नहीं मिला, इसलिए मैं डाउनवोट को भी अनुचित मानता हूं। मैं इसे अपने ऊपर उठाने के साथ अच्छा बना दूंगा। – Ingo

+0

वोट दिया गया, जानकारी के लिए धन्यवाद यह पहले से ही बहुत ही रोचक दिखता है और जो मैं ढूंढ रहा था उसकी दिशा में जाता है। बहुत धन्यवाद। मैं अभी भी यह देखने के लिए उत्तर दूंगा कि कौन सा इनपुट अभी भी आएगा। –

0

नीचे इस लिंक के माध्यम से जाने के लिए कृपया

Compatibility Test Tools

+0

mmh, लिंक के लिए धन्यवाद। अगर मैं इसे सही ढंग से समझता हूं तो स्पेक ट्रैक टूल यूनिट परीक्षणों के माध्यम से कितने 'जेडीके आवेषण' के माध्यम से 'कवरेज' की जांच करेगा। मेरा सवाल यह है कि यदि कोई ऐसा उपकरण है जो परीक्षण के दौरान संशोधित कुछ क्षेत्रों पर गुम होने पर दावा करने में मदद करेगा। –

1

"परीक्षण कवरेज" की सैकड़ों परिभाषाएं हैं, जिनमें से सीओटीएस उपकरण केवल कुछ ही अच्छे हैं। (मेरी कंपनी टेस्ट कवरेज टूल्स बनाती है ताकि हम इस तरह की चीज़ों को ट्रैक कर सकें)। एक दिलचस्प अवलोकन के लिए this lecture on test coverage देखें।

मैंने जो सबसे नज़दीकी परिभाषा सुना है वह डाटा कवरेज के लिए है; आपकी परिभाषा के आधार पर: - {यह आपको बताता है कि निष्पादन के दौरान प्रत्येक डेटा आइटम लिखा और पढ़ा गया है। व्याख्यान सत्यापित करने के बारे में वार्ता करता है प्रत्येक लिखें और प्रत्येक पढ़ने को एक विशेष मामले के रूप में उपयोग किया गया है।

मुझे दिल से सैकड़ों परिभाषाएं नहीं पता हैं, लेकिन आपने अभी तक एक और आविष्कार किया होगा: डेटा कवरेज दावे के लिए प्रतिबंधित है।

+0

सूचनात्मक इनपुट के लिए धन्यवाद, मुझे लगता है कि मेरा प्रश्न अभी भी अस्पष्ट है ... इसे 'दावे' तक सीमित नहीं किया जाना चाहिए, यह था मेरी शब्दावली यह कहने के लिए कि वास्तविक मान अपेक्षित मूल्य के विरुद्ध सत्यापित किए जाते हैं। टूल को आंतरिक राज्यों/फ़ील्ड/रिटर्न वैल्यू के बारे में उपयोगी जानकारी दी जानी चाहिए जो परीक्षण में 'प्रयुक्त' थे, लेकिन जिनके वास्तविक मूल्यों को अपेक्षित मूल्य के विरुद्ध सत्यापित नहीं किया गया है। पीपीपीएफ ... काफी जटिल लगता है, उम्मीद है कि यह समझ में आता है ... –

+0

यदि आप केवल इस बात से चिंतित हैं कि किसी परीक्षा में कौन से राज्य/फ़ील्ड/मान "उपयोग" किए गए थे, तो आप डेटा कवरेज चाहते हैं। ... सभी परीक्षण कवरेज उपकरण जटिल हैं; आप कोड को तोड़ने के बिना और बहुत सारे काम किए बिना क्या होता है, इस बारे में जानकारी निकालना चाहते हैं। मूल रूप से आपको ब्याज के डेटा एकत्र करने के लिए उपकरण की आवश्यकता होती है; कि घुसपैठ को चलाने के लिए मामूली लागत होनी चाहिए और कार्यक्रम समारोह को तोड़ना नहीं चाहिए, और कुछ परिणामों को समझना है। नहीं, मुझे नहीं लगता कि आपको इस तरह के एक उपकरण को ऑफ-द-शेल्फ मिल जाएगा। क्या यह सिर्फ एक इच्छा है, या आपके काम के लिए एक मौलिक आवश्यकता है? –

+0

यह एक इच्छा है, विचार यूनिट परीक्षण लिखते समय और कोड की निष्पादित लाइनों के संदर्भ में कवरेज की जांच करते समय आया था। थोड़ी देर के आसपास खोज करने के बाद मुझे अपने विचार से मेल खाने वाला कुछ भी नहीं मिला और मैं सोच रहा था कि किसी ने पहले से ही नौकरी की है;) प्रतिक्रिया के लिए धन्यवाद। –

0

यदि आप यही चाहते हैं तो जावा में Assertions हैं।

देखने के लिए कितना कोड कवर किया गया है वहाँ उपकरण है कि आप उपयोग कर सकते हैं कर रहे हैं कुछ उदाहरण: cobertura clover

संबंधित मुद्दे