यूआई स्वचालन पैटर्न और डेस्कटॉप अनुप्रयोगों के लिए सबसे अच्छा अभ्यास


9

पृष्ठभूमि

मैं वर्तमान में एमएस ऑफिस के लिए एक प्लगइन के लिए कुछ परीक्षण स्वचालित कर रहा हूं। हम वीएस 2010 में कोडेड यूआई परीक्षण बना रहे हैं। मुझे लगता है कि मैं " कोडेड यूआई टेस्ट बिल्डर " टूल का उपयोग कर सकता हूं , लेकिन यह वास्तव में मेरे विशेष मामले के अनुरूप नहीं है।

इस वजह से मैंने प्रत्येक UI कंट्रोल / मैप के लिए अपना UI मानचित्र वर्ग और विस्तार विधियाँ बनाईं जहाँ मैं अलग-अलग क्रियात्मक कार्यक्षमताएँ जोड़ता हूँ। उदाहरण के लिए बटन दबाएं या कुछ यूआई मानों पर जोर दें।

परीक्षण मामलों के परिदृश्य परीक्षण कक्षाओं में हैं।

मैं इस क्षेत्र में नया हूं और स्वचालन परीक्षक के रूप में काम करने में भी नया हूं।

प्रश्न

क्या लोग प्रोग्रामिंग / डिज़ाइन के दृष्टिकोण से डेस्कटॉप एप्लिकेशन पर टेस्ट ऑटोमेशन के लिए कुछ अच्छी प्रथाओं के लिए अपने अनुभव और सलाह को साझा करने के लिए पर्याप्त होंगे?


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

@ शेपर मैंने इसे और अधिक सुलभ बनाने के लिए प्रश्न संपादित किया। आशा है कि यह अभी भी आवश्यकता के अनुरूप है।
गैरी रोवे

जवाबों:


6

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

उस ने कहा, आप हमेशा यूआई स्वचालन से छुटकारा नहीं पा सकते हैं। आप कार्यालय का उल्लेख करते हैं, इसलिए मैं मान रहा हूं कि आप विंडोज के लिए कोडिंग कर रहे हैं और .Net का उपयोग कर रहे हैं। मैं अपनी वर्तमान नौकरी में काफी कुछ करता हूं। यहाँ कुछ चीजें मैंने सीखी हैं।

1) UIAutomation पुस्तकालयों को देखो जो .Net 3.0 में पेश किए गए थे। वे स्वचालन के लिए पुस्तकालय का उपयोग करने के लिए एक व्यापक और काफी सरल प्रदान करते हैं। (Http://msdn.microsoft.com/en-us/library/ms753107.aspx)

2) UISpy डाउनलोड करें (http://msdn.microsoft.com/en-us/library/ms727247.aspx)

3) अपने उत्पाद के यूआई को स्वचालित बनाएं।

3a) यदि यह WPF है तो हर चीज पर ऑटोमैटिकआईडी लगाए।

3 बी) विशिष्ट नियंत्रण और विंडो क्लास नाम (UI क्लास नाम, स्रोत कोड क्लास नाम नहीं) बनाने का प्रयास करें। यदि आपको नहीं पता कि मेरा क्या मतलब है, तो यूआई स्पाई को लोड करें और विंडोज़ को देखना शुरू करें। ध्यान दें कि विभिन्न ऐप्स में कितनी विंडो # 32770 का वर्ग नाम है। यह विंडोज डायलॉग बॉक्स के लिए क्लास का नाम है। कोई भी विंडो जो संवाद का विस्तार करती है और इसका अपना नाम निर्धारित नहीं करती है, इस पर चूक करती है। यह एक यूआई स्वचालन दृष्टिकोण से सभी प्रकार के दु: ख का कारण बनता है।

4) थ्रेड से बचें। () स्टेटमेंट। इसके बजाय वेटर (UIAutomation डॉक्स देखें) का उपयोग करने का प्रयास करें।

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

6) हमेशा कार्रवाई करने से पहले एक यूआई इवेंट के लिए एक श्रोता को पंजीकृत करें जिससे घटना आग हो जाएगी। व्यवहार में, इसका मतलब है कि आप थ्रेड्स के साथ काम करेंगे।

6a) उदाहरण: विंडो खोलने के लिए विंडो ओपन होने की प्रतीक्षा करना शुरू न करें क्योंकि आपने विंडो खोलने के लिए एक बटन क्लिक किया है। वेटर पंजीकृत होने से पहले विंडो खुल सकती है और कभी भी घटना नहीं होगी।

7) कभी भी उस खिड़की को न समझें जो आपने खोली है। विंडोज़ में सभी तरह की विंडो अप्रत्याशित रूप से खुल सकती हैं।

मैं और अधिक चल सकता था, लेकिन यह थोड़ा लंबा हो रहा है।


1) - 3) परीक्षण के तहत आवेदन लिखने वाले लोगों के लिए है। 6) मेरे लिए भी एक कठिन सीख थी। :)
एंड्रियास रीफ

2

पुन: प्रयोज्य उपयोग के मामलों से कार्यात्मक परीक्षण बनाएं

जब आपके इन-एंड-इन-सीटू के अंत में परीक्षण का समय आता है, तो आप कार्यात्मक परीक्षण कर रहे हैं। आमतौर पर आपके पास आवश्यकताओं का एक सेट होता है जिसे आप परीक्षण कर रहे हैं और आप विभिन्न उपयोग मामलों का निर्माण करने में सक्षम होंगे जो उनका प्रतिनिधित्व करते हैं।

एक उदाहरण के रूप में, "लॉगिन के रूप में मानक उपयोगकर्ता" उपयोग के मामले पर विचार करें। आपका परीक्षण ढांचा एप्लिकेशन को आग देता है, लॉगिन स्क्रीन की प्रतीक्षा करता है, कुछ क्रेडेंशियल्स में प्रवेश करता है, लॉगिन बटन पर क्लिक करता है और पुष्टि करता है कि उपयुक्त स्क्रीन अब दिखा रही है कि लॉगिन सफल था।

"मानक उपयोगकर्ता के रूप में लॉग इन करें" केस का उपयोग करने के बाद, आप कुछ और करने के लिए उस पर निर्माण करना चाहेंगे, शायद "मेरे उपयोगकर्ता विवरण संपादित करें" केस का उपयोग करें। आप "लॉगिन के रूप में मानक उपयोगकर्ता" उपयोग के मामले से सभी कोड को दोहराना नहीं चाहेंगे, इसलिए आप बस उस बिट को करने वाले टेस्ट फ्रेमवर्क कोड का संदर्भ देते हैं।

इसका तात्पर्य यह है कि आपके पास उपयोग के मामलों की सूची वाले कुछ प्रकार के ओवर-आर्किंग कार्यात्मक परीक्षण हैं। इन उपयोग मामलों में एप्लिकेशन व्यवहार (बटन X पर क्लिक करें) और व्यवहार को सत्यापित करने के लिए परीक्षण रूपरेखा विधियां हैं (स्क्रीन नीला हो गया)।

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

यदि आप आगे पढ़ने में रुचि रखते हैं तो मैंने इस दृष्टिकोण के बारे में कहीं और लिखा है, लेकिन लेख जावा अनुप्रयोगों में वेब अनुप्रयोगों को लक्षित करता है (मावेन और सेलेनियमआरसी का उपयोग) डेस्कटॉप अनुप्रयोगों के बजाय जो आपने अनुरोध किया है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.