2008-09-17 15 views
11

ऑटो-जेनरेटिंग यूनिट-टेस्ट ऑटो-जेनरेटिंग जावा यूनिट-टेस्ट के लिए सबसे अच्छा, अधिमानतः मुक्त/मुक्त स्रोत टूल क्या है? मुझे पता है, यूनिट-टेस्ट वास्तव में सामान्य टीडीडी यूनिट-टेस्ट के समान उद्देश्य नहीं दे सकते हैं जो सिस्टम के डिजाइन को दस्तावेज और ड्राइव करते हैं। हालांकि ऑटो-जेनरेटेड यूनिट-टेस्ट उपयोगी हो सकते हैं यदि आपके पास एक विशाल विरासत कोडबेस है और यह जानना है कि आपके द्वारा किए जाने वाले परिवर्तनों में अवांछित, अस्पष्ट दुष्प्रभाव होंगे।विरासत जावा-कोड

उत्तर

4
कहेंगे

मुफ्त नहीं। ओपनसोर्स नहीं लेकिन मैं अपने आप इकाई परीक्षण पैदा करने और अवांछित अस्पष्ट दुष्प्रभाव

+0

मुझे प्यार होगा एगिटार जैसे कुछ के ओपन सोर्स कार्यान्वयन को देखने के लिए - यह ऐसी चीज है जो ओपन सोर्स के लिए वास्तव में अच्छा होना चाहिए। – Vihung

3

ईमानदार होने के लिए, शायद मैं ऐसा नहीं करूँगा। यूनिट परीक्षण अलग-अलग होते हैं और आपको वास्तव में पता नहीं चलेगा कि क्या आपके पास "अवांछित, अस्पष्ट साइड इफेक्ट्स" हैं क्योंकि सबकुछ अन्य चीजों से अलग हो गया है जो साइड इफेक्ट्स का कारण बनते हैं। नतीजतन, आपको एकीकरण या सिस्टम परीक्षण और की आवश्यकता है कि ऐसा कुछ नहीं है जिसे आप स्वचालित कर सकते हैं।

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

एक बार जब आप बग पाते हैं, तो केवल उनके लिए यूनिट परीक्षण लिखें। जैसे ही आप आगे बढ़ते हैं, आप उन बिट्स के लिए टीडीडी का उपयोग कर सकते हैं जिन्हें आप रिफैक्टर करना चाहते हैं।

मैं जानता हूँ कि यह शायद इस सवाल का जवाब आप सुनना चाहते नहीं था, लेकिन मैं कई, कई वर्षों के लिए परीक्षण किया गया है और यह एक ठोस दृष्टिकोण है (हालांकि मैं शायद ही यह केवल दृष्टिकोण :)

+0

इस दृष्टिकोण के पूरक के रूप में मैं http://www.objectmentor.com/resources/articles/WorkingEffectivelyWithLegacyCode पढ़ने की सिफारिश करता हूं।पीडीएफ (चेतावनी पीडीएफ) और यह http://www-128.ibm.com/developerworks/java/library/j-legacytest.html मुझे नहीं लगता कि आप वास्तव में परीक्षणों को स्वत: उत्पन्न करना चाहते हैं – Jean

3

यह दिलचस्प है, लेकिन इस तरह उत्पन्न इकाई परीक्षण वास्तव में उपयोगी हो सकता है की तलाश के लिए वास्तव में अच्छा होने की AgitarOne आंदोलनकारी (http://www.agitar.com/solutions/products/agitarone.html) मिल गया है। यदि आप विरासत आवेदन पर काम कर रहे हैं, तो अक्सर सही, अत्याधुनिक इकाई परीक्षण लिखना मुश्किल होगा।

इस तरह उत्पन्न परीक्षण (आप उन्हें निश्चित रूप से पैदा करने का एक तरीका है तो) तो सुनिश्चित करें कि कोड के व्यवहार अपने परिवर्तन है, जो तब मदद कर सकते हैं कोड refactor और बेहतर परीक्षण लिखने दौरान बरकरार रहता है बना सकते हैं।

अब खुद को उत्पन्न कर रहा है। मुझे किसी भी जादू उपकरण के बारे में पता नहीं है, लेकिन आप विधियों के लिए javadocs में कुछ परीक्षणों के बारे में जुनीट कार्यक्षमता खोजना चाह सकते हैं। यह आपको कुछ सरल परीक्षण लिखने की अनुमति देगा। और हाँ, यह वास्तव में कुछ मूल्य का है।

दूसरा, आप हाथ से "बड़े" परीक्षण लिख सकते हैं। बेशक, ये इकाई परीक्षण प्रति से (कोई अलगाव, संभावित साइड इफेक्ट्स इत्यादि) नहीं होंगे, लेकिन यह पहला पहला कदम हो सकता है। विशेष रूप से यदि आपके पास थोड़ा समय और विरासत आवेदन है।

बोनस युक्ति! जावा में उदाहरणों के साथ "विरासत कोड के साथ प्रभावी रूप से कार्य करना" एक उत्कृष्ट पुस्तक है, जिसमें ऐसी परिस्थितियों में उपयोग करने के लिए तकनीक शामिल है। दुर्भाग्यवश आपको कुछ चीजें मैन्युअल रूप से करना होगा, लेकिन आपको इसे किसी भी चरण में करना होगा।

3

ग्रहण के लिए कोविव प्लगइन (http://www.codign.com/products.html) केवल नौकरी दिखता है। मुझे ऐसे परीक्षण उत्पन्न करने में दिलचस्पी है जो कोड में सभी पथों को कवर करते हैं, और ऐसा लगता है। यह उन मोजे को भी उत्पन्न करता है जो मुझे बहुत समय बचा लेना चाहिए।

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