2010-01-25 20 views
37

जावा कोड के लिए स्वचालित रूप से यूनिट परीक्षण उत्पन्न करने के लिए कोई भी उपकरण?जावा के लिए यूनिट परीक्षणों की स्वचालित पीढ़ी?

अद्यतन: प्राथमिक इच्छित उपयोग जल्दी से विरासत कोड के लिए इकाई परीक्षण है कि पुनर्संशोधित किया जा रहा है उत्पन्न करने के लिए है। स्वचालित पीढ़ी के बाद कोड के साथ स्वचालित रूप से परीक्षणों को सिंक करने की आवश्यकता नहीं है।


लगभग वही सवाल यहाँ कहा गया था, लेकिन इस सवाल का जवाब जावा के बजाय नेट के लिए किया गया था (Pex स्वीकार किए जाते हैं जवाब था):

Automatic generation of Unit test cases for .NET and Java

+0

दोनों के लिए काम करता है क्या आप हमें प्रबुद्ध कर सकते हैं और समझा सकते हैं कि आप उन्हें क्यों उत्पन्न करना चाहते हैं? क्या आप इसे एक-शॉट होने का इरादा रखते हैं, और बाद में उन्हें सिंक में रखते हैं? – KLE

+0

केएलई, अभी आपके प्रश्न का उत्तर देने के लिए प्रश्न को अपडेट किया गया है। –

+0

इसके अलावा, https://stackoverflow.com/a/37552432/1874627 – saurabheights

उत्तर

15
  • CodePro Analytix एक JUnit परीक्षण पीढ़ी मॉड्यूल जैसे कि यह तुम क्या चाहते हो जाएगा लगता है कि नहीं है। User Guide देखें।
  • CoView प्रति वर्ष केवल 9.99 डॉलर प्रति उपयोगकर्ता पर एक उचित मूल्यवान उत्पाद है।
  • AgitarOne Automated JUnit Generation जांच के लायक है।

सभी तीन उत्पादों को विकल्प खरीदने से पहले एक कोशिश है, ताकि आप अपने आवेदन के एक छोटे से सबसेट के खिलाफ जेनरेट कोड की तुलना करने के लिए उनका उपयोग कर सकें।

3

मुझे लगता है कि Agitar इस बुलाया जैसे किसी उपकरण का था AgitarOne। मुझे लगता है कि आप अभी भी इसे प्राप्त कर सकते हैं लेकिन यह सुनिश्चित कर लें कि कंपनी अभी भी वहां है।

4

नेटबीन जावा स्रोत फ़ाइलों से स्वचालित रूप से करता है (मुझे लगता है कि अन्य आईडीई भी)।

शायद तुम JUnit प्लगइन में एक बार देख ले सकता है (लिंक वर्तमान में नीचे :-(है)

+0

हे, क्यों नीचे वोट देखें? स्वीकार्य उत्तर भी समान है और खुला स्रोत नहीं है ... – Karussell

+11

डाउन वोट नेटबीन जेनरेटिंग यूनिट टेस्ट स्टब्स के कारण होने की संभावना है, पूरे यूनिट परीक्षणों को स्वीकार किए गए उत्तर में संदर्भित टूल के रूप में नहीं। – Todd

+1

नेटबीन्स 8 वास्तव में पूर्ण इकाई परीक्षण उत्पन्न करता है। –

38

वाणिज्यिक उपकरण:

  • AgitarOne क्षेत्र में सबसे बड़ी खिलाड़ी हो रहा है मौजूद है। भी 30-day trial और नि: शुल्क वेब इंटरफेस JUnit Factory कहा जाता है। वहाँ here में उपकरण के उपयोग की एक स्वतंत्र समीक्षा है, उदाहरण के। के लिए AgitarOne की टेस्ट पीढ़ी भारी प्रतिगमन परीक्षण पर केंद्रित है।
  • Jtest एक है अन्य बड़े खिलाड़ी, जो 1 99 8 से आसपास रहे हैं। एक निशुल्क परीक्षण मौजूद है। AgitarOne और Jtest दोनों awardedmultiple times रहे हैं, और वे ग्रहण-आधारित आईडीई दोनों हैं।
  • SilverMark Test Mentor, Java Edition एक वाणिज्यिक उत्पाद है जो स्पष्ट रूप से जावा कोड के आधार पर परीक्षण भी बना सकता है। इस उत्पाद के साथ मुझे कोई अनुभव नहीं है।

नि: शुल्क उपकरण:

  • CodePlex AnalytiX एक वाणिज्यिक उपकरण (यह 2001 में वापस ग्रहण के लिए पहला वाणिज्यिक प्लगइन था), लेकिन जब से गूगल यह विकासशील कंपनी खरीदा है, उत्पाद जारी की गई है हुआ करता था मुफ्त में यह ग्रहण पर आधारित एक पूर्ण आईडीई है और 2007 में टेस्ट पीढ़ी में जोल्ट अवॉर्ड का फाइनल है। विशेषताएं अच्छी हैं, लेकिन उपकरण लंबे समय से अपडेट नहीं किया गया है, इसलिए दुर्भाग्यवश ग्रहण के मौजूदा संस्करणों के साथ काम नहीं करता है, और ऐसा लगता है कि जावा> = 1.5 की आवश्यकता वाले कोड के साथ समस्याएं हैं।
  • EvoSuite एक एक winner of SBST (Search-Based Software Testing) '13 unit test generation competition के साथ-साथ SBST '17 unit test generation competition है। एक ग्रहण प्लगइन, वेब इंटरफ़ेस और उपकरण के कमांड लाइन संस्करण मौजूद है। एक प्रतिगमन मानदंड दस्तावेज किया गया है, लेकिन स्पष्ट रूप से यह अभी तक काम नहीं करता है - परीक्षण कवरेज के लिए परीक्षण उत्पन्न लक्ष्य, कमजोर उत्परिवर्तन कवरेज या मजबूत उत्परिवर्तन कवरेज।
  • Randoop प्रतिक्रिया-निर्देशित यादृच्छिक परीक्षण पीढ़ी दृष्टिकोण का उपयोग करता है। यह उपकरण 2007 से आसपास रहा है और निरंतर विकास में रहा है। Randoop दोनों रिग्रेशन परीक्षण और त्रुटि खोजने परीक्षणों का उत्पादन कर सकते हैं। यह एक मजबूत और भरोसेमंद कमांड लाइन उपकरण है, और ग्रहण प्लगइन भी मौजूद है।
  • Palus दावों दोनों गतिशील और स्थिर विश्लेषण का उपयोग करने के लिए, और Randoop की चोटी पर बना रहा है। इसके लेखकों का दावा है कि इसका उपयोग Google पर आंतरिक रूप से किया गया है। इस सॉफ़्टवेयर के साथ मेरा अनुभव यह है कि कम से कम वर्तमान संस्करण (0.2) में कुछ आंतरिक समस्याएं प्रतीत होती हैं और यह अच्छी तरह से स्केल नहीं लगती है।
  • Daikon, Eclat, Javalanche, Java PathFinder, JCrasher, jWalk, Korat, RecGen और ReCrash मुक्त उपकरण है कि रूप में अच्छी तरह उपलब्ध हैं।

ध्यान दें कि जेटेस्ट और एगिटार द्वारा उत्पन्न परीक्षण दोनों लाइसेंस प्राप्त धावकों पर निर्भर करते हैं और यदि आपके प्लगइन्स एकीकृत नहीं हैं तो वे नहीं चल सकते हैं। यह परीक्षण करने वाले निःशुल्क टूल का मामला नहीं है, जो स्वतंत्र परीक्षण उत्पन्न करता है।

अस्वीकरण: मैं इन उपकरणों में से किसी के साथ संबद्ध नहीं कर रहा हूँ, लेकिन मैं इस विषय पर शैक्षिक अनुसंधान किया है।

+1

कोडप्लेक्स अब तक पहुंच योग्य नहीं है। Palus, Eclat, JCrasher और Korat पुस्तकालयों पर निर्भर करते हैं जो अब उपलब्ध नहीं हैं। शायद [testrecorder] (http://testrecorder.amygdalum.net/) आपकी सूची में एक अच्छा पूरा नहीं है। – CoronA

3

Netbeans 8 एक अंतर्निहित क्षमता इकाई परीक्षण है कि स्टब्स की तुलना में अधिक कर रहे हैं का निर्माण करने की है। इस सुविधा का उपयोग करने के लिए:

  1. उस कक्षा को खोलें जिसे आप परीक्षण करना चाहते हैं।
  2. Tools मेनू से Create/Update Tests का चयन करें।
  3. अपनी इच्छित सुविधाओं का चयन करें।
  4. निर्मित इकाई परीक्षण खोलें और परीक्षण के शेष हिस्सों को समाप्त करें।
संबंधित मुद्दे