जीयूआई परीक्षण के लिए मेरा दृष्टिकोण विकसित हो रहा है, जैसा कि उद्योग सहमति है। लेकिन मुझे लगता है कि कुछ प्रमुख तकनीकें उभरने लगी हैं।
मैं इन तकनीकों में से एक या अधिक का उपयोग करता हूं, स्थिति पर निर्भर करता है (जैसे कि यह किस प्रकार का जीयूआई है, इसे कितनी जल्दी बनाने की आवश्यकता है, एंड-यूज़र कौन होगा, आदि)।
मैनुअल परीक्षण। आपके पास कोड पर काम करते समय हमेशा GUI चलता है, और यह सुनिश्चित करें कि यह कोड के साथ सिंक हो। आप मैन्युअल रूप से उस भाग का परीक्षण और पुन: परीक्षण करते हैं जिस पर आप काम करते हैं, जिस पर आप काम करते हैं, कोड और चल रहे एप्लिकेशन के बीच स्विच करते हैं। हर बार जब आप कुछ महत्वपूर्ण काम पूरा करते हैं, तो आप आवेदन की पूरी स्क्रीन या क्षेत्र को एक समग्र परीक्षा देते हैं, यह सुनिश्चित करने के लिए कि कोई प्रतिगमन नहीं है।
इकाई का परीक्षण। आप फ़ंक्शन या GUI व्यवहार की छोटी इकाइयों के लिए परीक्षण लिखते हैं। उदाहरण के लिए, आपके ग्राफ़ को एक 'आधार' रंग के आधार पर एक रंग के विभिन्न रंगों की गणना करने की आवश्यकता हो सकती है। आप इस गणना को किसी फ़ंक्शन में निकाल सकते हैं और इसके लिए एक यूनिट टेस्ट लिख सकते हैं। आप GUI (विशेष रूप से पुन: उपयोग करने योग्य तर्क) में इस तरह के तर्क खोज सकते हैं और इसे विवेकपूर्ण कार्यों में निकाल सकते हैं, जो कि आसानी से परीक्षण की जाने वाली इकाई हो सकती है। यहां तक कि जटिल व्यवहार को इस तरह से निकाला और परीक्षण किया जा सकता है - उदाहरण के लिए, किसी विज़ार्ड में चरणों का अनुक्रम किसी फ़ंक्शन में निकाला जा सकता है और एक यूनिट-परीक्षण यह सत्यापित कर सकता है कि, एक इनपुट दिया गया है, सही कदम वापस आ गया है।
घटक खोजकर्ता। आप एक 'एक्सप्लोरर' स्क्रीन बनाते हैं जिसकी एकमात्र भूमिका आपके जीयूआई को बनाने वाले प्रत्येक पुन: प्रयोज्य घटकों को प्रदर्शित करना है। यह स्क्रीन आपको नेत्रहीन सत्यापित करने के लिए एक त्वरित और आसान तरीका देता है कि हर घटक का सही रूप और अनुभव हो। घटक एक्सप्लोरर आपके पूरे एप्लिकेशन के माध्यम से मैन्युअल रूप से जाने की तुलना में अधिक कुशल है, क्योंकि ए) आपको केवल प्रत्येक घटक को एक बार सत्यापित करना होगा, और बी) आपको घटक को देखने के लिए एप्लिकेशन में गहराई से नेविगेट करने की आवश्यकता नहीं है, आप बस देख सकते हैं। इसे तुरंत सत्यापित करें।
स्वचालन परीक्षण। आप एक परीक्षण लिखते हैं जो स्क्रीन या घटक के साथ बातचीत करता है, माउस क्लिक, डेटा प्रविष्टि आदि का अनुकरण करता है, यह दावा करते हुए कि इन फ़ंक्शन को सही ढंग से इन जोड़तोड़ दिए गए हैं। यह एक अतिरिक्त बैकअप परीक्षण के रूप में उपयोगी हो सकता है, संभावित बगों को पकड़ने के लिए जो आपके अन्य परीक्षण छूट सकते हैं। मैं GUI के उन हिस्सों के लिए स्वचालन परीक्षण आरक्षित करता हूं, जिनके टूटने का खतरा सबसे अधिक है और / या अत्यधिक महत्वपूर्ण हैं। ऐसे हिस्से जहां मैं जल्द से जल्द जानना चाहता हूं अगर कुछ टूट गया है। इसमें अत्यधिक जटिल इंटरैक्टिव घटक शामिल हो सकते हैं जो ब्रेकिंग या महत्वपूर्ण मुख्य स्क्रीन के लिए असुरक्षित हैं।
मुश्किल / स्नैपशॉट परीक्षण। आप एक परीक्षण लिखते हैं जो आउटपुट को स्क्रीनशॉट के रूप में या HTML कोड के रूप में कैप्चर करता है और पिछले आउटपुट के साथ तुलना करता है। इस तरह, जब भी आउटपुट बदलता है, तो आप सतर्क हो जाते हैं। यदि आपके GUI का दृश्य पहलू जटिल है और / या परिवर्तन के अधीन है, तो मुश्किल परीक्षण उपयोगी हो सकते हैं, इस स्थिति में, आप जीयूआई पर समग्र रूप से क्या प्रभाव डालते हैं, इस पर त्वरित और दृश्य प्रतिक्रिया चाहते हैं।
हर संभव तरह के परीक्षण का उपयोग करने वाले भारी-भरकम के बजाय, मैं जिस तरह की चीज़ पर काम कर रहा हूं, उसके आधार पर परीक्षण तकनीक चुनना और चुनना पसंद करता हूं। इसलिए एक मामले में मैं एक साधारण फ़ंक्शन और यूनिट-टेस्ट निकालूंगा, लेकिन एक अन्य मामले में मैं घटक एक्सप्लोरर को एक घटक जोड़ूंगा, आदि यह स्थिति पर निर्भर करता है।
मुझे एक बहुत उपयोगी मीट्रिक होने के लिए कोड कवरेज नहीं मिला है, लेकिन अन्य लोगों को इसके लिए एक उपयोग मिल सकता है।
मुझे लगता है कि पहला उपाय बग की संख्या और गंभीरता है। आपकी पहली प्राथमिकता संभवतः एक एप्लिकेशन है जो सही ढंग से कार्य करती है। यदि एप्लिकेशन सही ढंग से कार्य करता है, तो कुछ या कोई बग नहीं होना चाहिए। यदि कई या गंभीर कीड़े हैं, तो संभवतः, आप या तो परीक्षण नहीं कर रहे हैं या आपके परीक्षण प्रभावी नहीं हैं।
बग्स को कम करने के अलावा, अन्य उपाय भी हैं जैसे प्रदर्शन, प्रयोज्य, पहुंच, रखरखाव, स्थायित्व, आदि। ये अलग-अलग होंगे, यह इस बात पर निर्भर करता है कि आप किस तरह के आवेदन का निर्माण कर रहे हैं, व्यवसाय, अंतिम-उपयोगकर्ता, आदि।
यह सब मेरे व्यक्तिगत अनुभव और शोध के साथ-साथ हैम वॉके द्वारा यूआई टेस्ट पर एक शानदार लेखन पर आधारित है ।