2008-10-06 10 views
17

मैं उन लोगों से टिप्पणियां प्राप्त करना चाहता हूं जिन्होंने जावा-कोड का सांख्यिकीय विश्लेषण करने के लिए कवरिटी का उपयोग या मूल्यांकन किया है। मुझे पता है कि यह सी/सी ++ दुनिया में लोकप्रिय है, लेकिन जावा विश्लेषण के लिए पैसे खर्च करने लायक है या क्या मैं पीएमडी, फाइंडबग और अन्य ओपन सोर्स टूल्स के साथ बेहतर हूं?जावा स्थैतिक विश्लेषण के लिए कवरिटी

उत्तर

4

मैं कुछ हद तक प्रासंगिक उत्तर के साथ चिपकाऊंगा। मैंने जावा और सी कोड दोनों के लिए क्लोकवर्क का उपयोग किया है। Klocwork कवरिटी का एक करीबी प्रतियोगी है ... लागत के अनुसार वे वही हैं (ध्यान से देखो, क्लोकवर्क सस्ता दिखता है जब तक कि आप वास्तव में जो कुछ भी खरीदते हैं), और फीचर-वार वे आगे और आगे लड़ते हैं।

सी/सी ++ के लिए, यह बहुत अच्छा है। जावा के लिए .... अच्छा, इससे बहुत सारे संसाधन लीक खोजने में मदद मिली (# $ @^# आईएनजी जावा डेवलपर्स भूल जाते हैं कि फाइल हैंडल जैसे संसाधन कचरा नहीं हैं), लेकिन ऐसा लगता है कि कई " महत्वपूर्ण "कीड़े। ऐसा शायद इसलिए है क्योंकि भाषा स्वयं कुछ अधिक बुनियादी लेकिन त्रुटियों को खोजने में कठिनाई (सरणी अतिप्रवाह, सूचक भ्रष्टाचार, आदि) के खिलाफ सुरक्षा में मदद करती है।

डेमो चलाने के लिए कवरेज प्राप्त करें, वे खुश होने से अधिक हैं। देखें कि उन्हें किस तरह की चीजें मिलती हैं।

15

यदि आप आज कुछ भी उपयोग नहीं कर रहे हैं, तो मैं Findbugs और PMD से शुरू करूंगा। वे स्थापित करने और उपयोग करने में आसान हैं। Findbugs के साथ पहली बार शुद्धता त्रुटियों की समीक्षा करने और ठीक करने पर ध्यान केंद्रित करें - वे उच्च और मध्यम गंभीरता शुद्धता त्रुटियों से शुरू करने की सलाह देते हैं क्योंकि चेकर्स बहुत कम झूठे सकारात्मक हैं और आपको अपने समय पर अच्छी वापसी मिल जाएगी। डेवलपर्स को कोड को साफ करने के लिए पीएमडी का उपयोग करने के लिए, और नए कोड की समीक्षा करने के लिए ग्रहण में Findbugs प्लगइन प्राप्त करें। बढ़ते काम करना डेवलपर्स को इन उपकरणों की उपयोगिता को समझने और खरीदने के लिए मिल जाएगा।

कवरिटी के जावा चेकर्स अभी भी उनके सी/सी ++ चेकर्स की तुलना में कमजोर हैं। हम फाइंडबग्स, पीएमडी, कवरिटी और क्लोकवर्क का उपयोग करते हैं क्योंकि उनमें सभी की अलग-अलग शक्तियां होती हैं और हम पागल होते हैं। यदि आप पागल नहीं हैं, तो आप ओपन सोर्स टूल्स के साथ रह सकते हैं और बहुत अधिक मूल्य प्राप्त कर सकते हैं। या यदि आपको सुरक्षा जांच की आवश्यकता है: तो क्लोकवर्क या विशेष रूप से फोर्टिफ़ाई को आपके लिए अधिक अच्छी तरह से काम करना चाहिए।

+0

क्या आपके पास जावा के लिए इन विभिन्न उपकरणों की तुलना है? –

+0

यह findbugs का उपयोग करने के लिए पर्याप्त है, यहां तक ​​कि कवरिटी का उपयोग भी करता है। मुख्य विशेषताएं जांचें (FindBugs उप शीर्षक) http://www.coverity.com/library/pdf/coverity-ds-java.pdf – ozhan

3

मैं पिछले उत्तर में भी सीमित हूं, कुछ हद तक कवरिटी एनडीए द्वारा प्रतिबंधित है जो मैं बाध्य हूं। कवरिटी रोकथाम के पास ओपन सोर्स सी/सी ++ कोड में बग खोजने के लिए एक प्रभावशाली सार्वजनिक ट्रैक रिकॉर्ड है, लेकिन उनका जावा उत्पाद बहुत नया है। (कवरिटी के मेरे पूर्व नियोक्ता पर एक प्रेस विज्ञप्ति है, इसलिए मैं कह सकता हूं कि यह हमारे सी/सी ++ कोड में बहुत सारी बग को खोजने और ठीक करने में मदद करता है, जो कि मैं अपने पिछले करियर में बग शिकार में पाया था।) FindBugs करता है जावा कोड पर एक प्रभावशाली नौकरी, और आप कीमत को हरा नहीं सकते हैं। लेकिन बड़ा बिंदु पहले ही बना दिया गया है: खरीदने से पहले पर अपने वास्तविक कोड पर दोनों को आजमाएं। वास्तविकता के लिए कोई विकल्प नहीं है, और स्थिर विश्लेषण में पारंपरिक ज्ञान यह है कि उपकरण की खोज में आश्चर्यजनक रूप से थोड़ा ओवरलैप है।

0

जैसा कि अन्य ने कहा है, निर्णय लेने का सबसे अच्छा तरीका इन सभी उपकरणों को आजमा देना है।

कवरिटी ने हाल ही में बीटा में कोड स्पॉटर() नामक एक होस्टेड स्टैटिक-विश्लेषण-ए-सर्विस सेवा की घोषणा की। यह कवरेज एंटरप्राइज़ उत्पाद के समान विश्लेषण इंजन का उपयोग कर रहा है, लेकिन यह एक अलग (सरलीकृत) उपयोगकर्ता इंटरफ़ेस में लपेटा गया है। चूंकि यह एक होस्टेड सेवा है, इसलिए कवरिटी विश्लेषण क्षमताओं की भावना प्राप्त करने के लिए इसके साथ खेलना बहुत आसान है।

इस लेखन के समय, कोड स्पॉटर केवल जावा है, लेकिन अन्य कवरिटी समर्थित भाषाओं को जल्द ही आना चाहिए।

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