2012-05-09 15 views
14

में गुई परीक्षण करें मैं एक गुई एप्लिकेशन को स्ट्रेसस्टेस्ट करने की कोशिश कर रहा हूं और मुझे यह भी सुनिश्चित नहीं है कि यह कैसे करें। सबसे पहले मेरे पास एक ऐसा एप्लीकेशन है जहां सभी गुई और सहायक कार्य स्थित हैं। मेरे पास दो बाहरी पुस्तकालय भी हैं जिन्हें मैंने बनाया है जो यह ऐप उपयोग करता है। पुस्तकालय केवल छोटी चीजें करते हैं और क्यूटीएमक ऊपर उठने और काम करने पर मैं इन भागों का परीक्षण करना चाहता हूं (वर्तमान में यह कुछ कारणों से क्यूटी 4.8 के साथ संगत नहीं है)।क्यू

मैं कोड के बहुत अधिक परिवर्तन किए बिना मुख्य एप्लिकेशन का परीक्षण करना चाहता हूं। मैंने QtTestLib पर एक नज़र डाली और यह बहुत बुनियादी लग रहा था और जैसे कि आपको उस कोड को मुख्य कोड के साथ एकीकृत करना था, जिसे मैं नहीं चाहता था। मैं वास्तव में ऐप के बाहर परीक्षण रखना चाहता हूं और यह सोच रहा था कि यह कैसे करें? यह भी सुनिश्चित नहीं है कि मुझे अपने एनिट्रे gui ऐप को बाहरी lib के रूप में निर्यात करना चाहिए जिसे मैं अपने परीक्षण में आयात कर सकता हूं?

आम तौर पर पूरी चीज का परीक्षण करने के लिए आप आमतौर पर ऐसा कैसे करते हैं। कोई विचार नहीं कि मुझे टेस्ट कोड कैसे और कहाँ करना चाहिए और मैं किसी भी मदद की सराहना करता हूं!

+5

क्या आपने स्क्विश की कोशिश की? (http://www.froglogic.com/squish/gui-testing/) – Kunal

+0

अभी तक नहीं, लेकिन मैंने इसे देखा था। मैं वास्तव में कोड द्वारा ऐसा करना चाहता हूं लेकिन कोई विचार नहीं कि कैसे – chikuba

+0

आह, मुझे नहीं पता कि कोड द्वारा इसे कैसे किया जाए, लेकिन हमने इसे एक बार हमारे प्रोजेक्ट में इस्तेमाल किया। यह गुई के ऑटो टेस्ट के लिए कुछ स्क्रिप्ट लिखने की अनुमति देता है। – Kunal

उत्तर

6

मेरे अनुभव में, आपके द्वारा उपयोग किए जाने वाले किसी भी परीक्षण टूलकिट या तो सूक्ष्म तरीकों से अपने कोड में काम करने जा रहा है, या कभी भी आपको आवश्यक गहराई तक नहीं पहुंच सकता है (या दोनों)।

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

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

एक बहुत ही सरल उदाहरण के रूप में अगर यह अपनी परियोजना है ...

class MyView : public QMainWindow {} 
class MyController {} 
class MyModel {} 

... एक नई परियोजना बनाने के लिए, अपने आधार कोड में खींच, और इन जोड़ें:

class TestView  : public MyView {} 
class TestController : public MyController {} 
class TestModel  : public MyModel {} 

अंत में, थोड़ा काम करने के बाद, शून्य बेस कोड मेरे बेस क्लास में था, और मैं अभी भी एक अच्छी टेस्ट गुई में सभी प्रकार के दोहराव वाले ऑटोटेट्स को बांधने और आग लगाने में सक्षम था।

मैं यह नहीं कह रहा कि यह एक आसान या मामूली कार्य है। मैं आपको प्रोत्साहित कर रहा हूं कि यह किया जा सकता है। :-)

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

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