स्वचालित उपयोगकर्ता इंटरफ़ेस परीक्षण से क्या समस्या हल होती है?


23

वर्तमान में हम स्वचालित उपयोगकर्ता इंटरफ़ेस परीक्षण की जांच कर रहे हैं (हम वर्तमान में स्वचालित इकाई और एकीकरण परीक्षण करते हैं)।

हमने सेलेनियम और टेलरिक को देखा है और बाद में अपने अधिक लचीले रिकॉर्डर के कारण पसंद के उपकरण के रूप में बस गए हैं - और हम वास्तव में परीक्षकों को बहुत अधिक कोड लिखना नहीं चाहते हैं।

हालांकि, मैं समग्र लाभ को समझने की कोशिश कर रहा हूं। लोगों के विचार क्या हैं और किस तरह की चीजें अच्छी तरह से काम करती हैं और क्या नहीं?

हमारी प्रणाली निरंतर विकास के अधीन है और हम नियमित रूप से हमारे (वेब ​​आधारित) मंच के नए संस्करणों को जारी करते हैं।

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

वास्तव में अन्य लोगों के विचारों की तलाश में। हम "सोचते हैं" यह सही बात है, लेकिन पहले से ही व्यस्त कार्यक्रम में कुछ अतिरिक्त अंतर्दृष्टि की तलाश है।


4
"स्वचालित परीक्षण" शब्द का अर्थ यह नहीं है कि समस्या को हल करने की कोशिश कर रहा है? // ओटीओएच, यदि आप "स्वचालित परीक्षण" से जुड़े आरओआई के बारे में पूछताछ कर रहे हैं, तो यह एक अलग सवाल है ...
जिम जी।

जवाबों:


24

जब मेरी टीम ने स्वचालित यूआई परीक्षण लागू किया तो बहुत सारी शानदार चीजें हुईं।

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

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

तीसरा, क्यूए टीम के पास अधिक समय था। इस अतिरिक्त समय के साथ, वे अधिक डिजाइन बैठकों में बैठने में सक्षम थे। इसके बदले में उन्हें नए टेस्ट सूट मामलों को लिखने की अनुमति दी गई, जिस समय देवता उन नई विशेषताओं को कोड कर रहे थे।

इसके अलावा, तनाव परीक्षण जो हमने उपयोग किया था, वह सोने में वजन के लायक था। यह ईमानदारी से रात में बेहतर नींद में मदद करता है यह जानकर कि हमारा ऐप इस पर बहुत कुछ ले सकता है। हमें काफी कुछ पृष्ठ मिले जो दबाव में थे कि हम लाइव होने से पहले ठीक करने में सक्षम थे। बिलकुल उत्तम।

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

यूआई टेस्ट सूट की स्थापना ने अच्छी मात्रा में समय लिया। लेकिन, एक बार जब यह वहां था तो यह हमारी विकास प्रक्रिया का एक केंद्रीय हिस्सा बन गया।


1
+1 प्रक्रिया में
अंतर्मुखी

एक मुद्दा: यूआई में यूआई यूनिट परीक्षण ब्लॉक संभावित परिवर्तन नहीं करता है [आपको ताले लगाता है] ... हालांकि मैंने अपवोट किया क्योंकि आपने इस तरह से लाभ का वर्णन किया है जहां आवेदन के समग्र क्रम को यूनिट परीक्षणों के बजाय मॉनिटर किया जा रहा है प्रणाली के एक व्यक्तिगत घटक का परीक्षण किया जा रहा है।
भिक्षु

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

1
@ त्यन्ना ने मुझ पर भरोसा किया ... यह था। मैंने स्थान के आधार पर UI परीक्षण [प्रतिगामी परीक्षण के लिए] स्वचालित करने का प्रयास किया है। यह काम नहीं करता है, और काफी निराशा होती है। Btu मैं आगे बढ़ रहे घटकों को संदर्भित कर रहा था, विचारों को बदलकर / ui, और थीम्ड यूआई
monksy

13

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

और कुछ चीजें हैं जो केवल मैन्युअल रूप से जांच की जाती है के लिए (लेकिन यकीन है कि वे बनाने के hestitate नहीं है (भंगुरता लागत का एक हिस्सा होने के साथ) लागत / लाभ अनुपात पर नजर रखें रहे हैं परीक्षण किया)। और यदि संभव हो तो, डेवलपर्स के लिए यूआई टेस्ट सूट के विशिष्ट भागों को ऐप के स्थानीय स्तर पर चलने वाले संस्करण के खिलाफ चलाना संभव बनाते हैं, ताकि वे विकास के दौरान परीक्षणों से लाभ उठा सकें।

टेस्ट्स का निर्माण सर्वर पर स्वचालित रूप से चलना (दिन में कम से कम एक बार) एक निश्‍चित रूप से होना चाहिए।

हम वास्तव में परीक्षकों को बहुत अधिक कोड लिखना नहीं चाहते हैं।

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


13

और हम वास्तव में बहुत ज्यादा कोड लिखने वाले परीक्षकों को नहीं चाहते हैं

हमने विपरीत रुख अपनाया। हम चाहते थे कि परीक्षक कोड लिखें।

यहाँ हम वर्कफ़्लो अपनाने लगे हैं। ऐसा करना आसान नहीं है क्योंकि प्रबंधन पूरी तरह से फ्रंट-एंड के स्वचालित परीक्षण पर निर्भर नहीं करता है । वे "करीब-करीब" के लिए बसने को तैयार हैं।

  1. प्रयोक्ता कहानियां।

  2. संचालन की अवधारणा। कहानी कैसे काम करेगी। डिजाइन की समीक्षा।

  3. स्क्रीन स्केच: यूआई डिजाइन। कैसा लगेगा।

  4. सेलेनियम लिपियों। यदि स्क्रिप्ट सभी काम करती है, तो हम रिलीज के साथ कर रहे हैं।

  5. स्क्रिप्ट काम करने तक कोडिंग और परीक्षण।

स्वचालित परीक्षण यह प्रदर्शित करने का एकमात्र तरीका है कि कार्यक्षमता मौजूद है।

मैन्युअल परीक्षण त्रुटि-प्रवण है और प्रबंधन ओवरराइड के अधीन है: "यह काफी अच्छा है, जो असफल परीक्षण वास्तव में उतना महत्वपूर्ण नहीं है जितना कि समय पर इसे जारी करना।"

"स्वचालित परीक्षण के बिना कोई भी कार्यक्रम सुविधा बस मौजूद नहीं है।"

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


2
"परीक्षक स्वचालित जांच लिखते हैं"। ऐसे में परीक्षकों को अपना काम करना चाहिए। "परीक्षकों को कभी भी परीक्षा देने का मौका मिलता है" मुझे इससे कोई मतलब नहीं है। क्या आप बता सकते हैं कि इसका क्या मतलब हो सकता है?
S.Lott

3
@ S.Lott: संभवतः मैन्युअल परीक्षण। स्वचालित परीक्षण अच्छा है, लेकिन सब कुछ नहीं। यह कई अप्रत्याशित त्रुटि मोड (जैसे लेआउट समस्या) को स्पॉट नहीं कर सकता है। और मैं कहूंगा कि पिछले दो वाक्यों में प्रदर्शित कट्टरवाद प्रतिसंबंधी है।
माइकल बोर्गवर्ड

11
Automated testing is the only way to demonstrate that the functionality exists.नहीं, यह नहीं है। खोजी परीक्षण या मैन्युअल रूप से निष्पादित परीक्षण यह दर्शाता है कि कार्यक्षमता मौजूद है। यह स्वचालित परीक्षण जितना अच्छा नहीं है, लेकिन स्वचालित परीक्षण परीक्षण का एकमात्र तरीका नहीं है।
स्टुपरयूजर

1
@ S.Lott - माइकल और स्टॉपरयूज़र के पास यह अधिकार था। मैनुअल और अधिमानतः खोजपूर्ण परीक्षण।
लिंडन वूमन

1
-1 कट्टरपंथ के लिए, जैसा कि माइकल ने रखा था। Joelonsoftware.com/items/2007/12/03.html की व्याख्या के लिए देखें कि उस तार्किक निष्कर्ष पर ले जाने पर वह कितना हास्यास्पद है।
मेसन व्हीलर

5

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

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

इसके अलावा, इसे स्वचालित बनाकर आप अपने डेवलपर्स को परीक्षण चलाने के लिए प्राप्त कर सकते हैं और इसलिए वन संबंधी समस्याओं को केवल बाद में प्रक्रिया में खोजा जा सकता है।


आपके पास क्या अनुभव है कि स्वचालित प्रतिगमन परीक्षणों को बनाए रखने से परीक्षकों को अधिक दिलचस्प काम करने के लिए स्वतंत्र किया जाता है? मुझे पता है कि यह सिद्धांत है लेकिन अगर परीक्षणों को लिखने या संशोधित करने में केवल मैनुअल परीक्षण करने में ही दिन लग जाते हैं तो यह प्रभावी नहीं हो सकता है।
इत्थसएअनवर

@ ट्यूनिक - हम अपने वर्तमान प्रोजेक्ट में सिल्वरलाइट का उपयोग कर रहे हैं और मैं इस समय कुछ परीक्षण लिख रहा हूं जो XAML और व्यू मॉडल C # कोड के बीच की बाइंडिंग की जांच करते हैं। इसका मतलब यह है कि हमारे परीक्षकों को यह जांचने की आवश्यकता नहीं है कि वे जो मान दर्ज करते हैं वे सही ढंग से स्वरूपित हैं आदि यह अभी शुरुआती दिन हैं, लेकिन होनहार हैं।
ChrisF

5

हमने सेलेनियम और टेलरिक को देखा है और बाद में अपने अधिक लचीले रिकॉर्डर के कारण पसंद के उपकरण के रूप में बाद में बस गए हैं

मुझे यकीन नहीं है कि आपने इसे कितना देखा है। निश्चित रूप से अन्य विकल्प भी हैं। आप में देखा है Watir , Watin , Sikuli कुछ नाम हैं?

और हम वास्तव में बहुत ज्यादा कोड लिखने वाले परीक्षकों को नहीं चाहते हैं।

मुझे उन लोगों के लिए बुरा लग रहा है जिन्हें इन लिपियों को बनाए रखना है। ज्यादातर बार, बिना कोड के जिसे आसानी से संशोधित किया जा सकता है, स्क्रिप्ट नाजुक हो जाती हैं और इसे फिर से रिकॉर्ड करने की तुलना में स्क्रिप्ट को संशोधित करने में अधिक समय लगता है, जो अधिक समय बर्बाद करता है।

हालांकि, मैं समग्र लाभ को समझने की कोशिश कर रहा हूं। लोगों के विचार क्या हैं और किस तरह की चीजें अच्छी तरह से काम करती हैं और क्या नहीं?

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

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

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

हम "सोचते हैं" यह सही बात है, लेकिन पहले से ही व्यस्त कार्यक्रम में कुछ अतिरिक्त अंतर्दृष्टि की तलाश है।

जैसा कि मैंने पहले कहा था, परीक्षण स्वचालन काफी प्रयास करता है, हालांकि, जब सही ढंग से किया जाता है, तो मैं अभी तक एक टीम से नहीं मिला हूं जिन्होंने कहा था "काश हमने अपना परीक्षण स्वचालन स्थापित नहीं किया होता।"


2
+1 विशेष रूप से "मुझे उन लोगों के लिए बुरा लग रहा है जिन्हें इन लिपियों को बनाए रखना है"। सुव्यवस्थित यूआई परीक्षण लिखने का एक महत्वपूर्ण हिस्सा अच्छी तरह से डिज़ाइन किया गया कोड है, विशेष रूप से अक्सर बदलते यूआई के साथ। यदि ओपी के परीक्षक पृष्ठ ऑब्जेक्ट या पुन: उपयोग कोड का उपयोग नहीं कर सकते हैं, तो मैं ओपी को केवल स्थिर यूआई को स्वचालित करने पर विचार करने के लिए गंभीरता से सलाह दूंगा (यदि कोई है)।
एथेल इवांस

3

आप सही कह रहे हैं कि प्रतिगमन एक बहुत बड़ा है। इसके अलावा -

  • यदि आपके परीक्षण को मामूली रूप से लिखा गया है, तो आप परीक्षण सेटों को मिलाकर और मिलान करके हिरन के लिए अधिक धमाका कर सकते हैं

  • हमने डेटा लोड के लिए स्वचालित परीक्षण स्क्रिप्ट का पुन: उपयोग किया है ताकि हमें बड़े आकार का परीक्षण करने के लिए डेटाबेस को कुंद न करना पड़े

  • प्रदर्शन का परीक्षण

  • बहु धागा परीक्षण

  • वेब सिस्टम पर - ब्राउज़रों के बीच अदला-बदली और OSes के बीच स्वैपिंग। ब्राउज़र की निरंतरता के मुद्दों के साथ, आधार को यथासंभव चौड़ा करना एक बहुत बड़ी बात है।

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


अपने पहले बिंदु के लिए +1। एक सफल परीक्षण स्वचालन सूट के लिए बिल्कुल महत्वपूर्ण है!
लिंडन व्रूमन

हां, पहले बिंदु से सहमत हूं। दूसरे और तीसरे बिंदु पर विचार किया है, लेकिन मुझे लगता है कि यह वह जगह है जहां टेलरिक गिर जाता है। सेलेनियम स्क्रिप्ट (सरल शब्दों में) का उपयोग BroswerMob द्वारा किया जा सकता है
IThasTheAnswer

3

बस एक उदाहरण: वेबपेज रेंडरिंग की अवधि को सटीक रूप से मापना

स्वचालन परीक्षणों का उपयोग करना, वेब ब्राउज़र के प्रदर्शन का परीक्षण करना कहीं अधिक आसान है। आपके द्वारा स्वीकार किए जाने वाले अधिकतम प्रतिक्रिया समय को मापने के लिए, बस अपनी परीक्षण स्क्रिप्ट में एक स्थिरांक सेट करें, और / या इसे एक फ़ंक्शन पैरामीटर के रूप में पास करें, जैसे कि इस छद्मकोड में: $ sel-> Wait_for_page_to_load ($ $, $ maxtime)।

कम मूल्यों के साथ क्रॉस-ब्राउज़र परीक्षण करना काफी ज्ञानवर्धक हो सकता है।

विकल्प यह होगा कि कर्मचारी स्टॉपवॉच के साथ समय पर माप करें।


3

स्वचालित उपयोगकर्ता इंटरफ़ेस परीक्षण करने की क्षमता हल करता है:

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

हालांकि, जैसा कि अन्य ने नोट किया है:

Telerik ...

अपनी अधिक लचीली रिकॉर्डर के कारण पसंद का उपकरण

हम में से कई लोगों के लिए लाल झंडा है।

इस तरह से दर्ज किए गए लिपियों के कारण दीर्घकालिक समाधान नहीं हो सकता है:

  • डेटाबेस / ऑब्जेक्ट आईडी केस से केस में बदलते हैं
  • मैन्युअल रूप से रिकॉर्ड की गई स्क्रिप्ट अक्सर पृष्ठ लेआउट टैग पर भरोसा करती हैं जो अक्सर बदलती रहती हैं
  • सामान्य क्रियाओं को फिर से उपयोग करने की अनुमति के बजाय बार-बार लिखना होगा (देखें साइटप्रिज्म और पेजऑबजेक्ट दृष्टिकोण)
  • कभी-कभी आपको वर्तमान पृष्ठ जानकारी के आधार पर अतिरिक्त जानकारी हथियाने के लिए xpath जैसे टूल का उपयोग करने की आवश्यकता होती है। एक साधारण रिकॉर्ड की गई स्क्रिप्ट ऐसा नहीं करेगी।
  • डेवलपर्स और परीक्षक जो कोड लिखते हैं, उन्हें सीएसएस कक्षाओं, आईडी और एचटीएमएल 5 डेटा-विशेषताओं का उपयोग करने के लिए प्रोत्साहित नहीं किया जाएगा, जो ऐसी प्रथाएं हैं जो अधिक मजबूत, बनाए रखने योग्य परीक्षणों का नेतृत्व करेंगी।

Telerik के कुछ फायदे हैं जिन्हें हालांकि माना जाना चाहिए:

  • मोबाइल ग्राहकों के उद्देश्य से
  • वृद्धि का प्रबंधन करने के लिए निर्मित उपकरण
  • एंड्रॉइड, आईओएस और विंडोज फोन को संभालता है

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


2

यह "विशेषज्ञ परीक्षण" ("खोजपूर्ण परीक्षण के समान" बनाता है, लेकिन अंतिम उपयोगकर्ताओं या टीम के सदस्यों द्वारा व्यापार ज्ञान के बड़े पैमाने पर किया जाता है) बाहर ले जाना, रिकॉर्ड परिणाम, माप और स्वचालित करना आसान है।


2

मैं एक अलग पृष्ठभूमि से आता हूं। मेरे पूर्व नियोक्ताओं में, हमने वाणिज्यिक स्वचालित परीक्षण उपकरण (QALoad, QARun, TestPartner, SilkTest, SilkPerfomer) विकसित किए।

हमने दो भूमिकाओं को भरने के रूप में स्वचालित UI परीक्षण देखा:

  1. पूर्ण प्रतिगमन परीक्षण

  2. परीक्षण वातावरण का स्वचालित सेटअप

हम रात के आधार पर प्रतिगमन परीक्षण करने के लिए उपकरणों पर बहुत अधिक झुक गए। हमारे पास यह सत्यापित करने के लिए सभी बटन और संवाद का परीक्षण करने के लिए मैन पावर नहीं था कि हम UI और व्यावसायिक तर्क के बीच कुछ भी नहीं तोड़ते।

अधिक महत्वपूर्ण परीक्षणों के लिए, हमने पाया कि एक अकेला व्यक्ति कई वीएम को स्पिन कर सकता है और वास्तविक परीक्षण के बिंदु तक पहुंचने के लिए स्क्रिप्ट का उपयोग कर सकता है। यह उन्हें महत्वपूर्ण बिट्स पर ध्यान केंद्रित करने देता है और कोशिश नहीं करता है और 24-चरण परीक्षण मामले का पालन करता है।

स्वचालित परीक्षण के साथ एकमात्र समस्या डुप्लिकेट या अनावश्यक परीक्षणों को खत्म करने के लिए किसी भी तरह की पर्यवेक्षण के बिना बॉक्स पर बहुत सारे परीक्षण डंप करने की आदत थी। हर अब और फिर हमें अंदर जाना होगा और चीजों को वापस करना होगा ताकि सूट 12 घंटे से कम समय में पूरा हो सके।


2

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

स्वचालित यूआई परीक्षण प्रणाली को परीक्षण करने की अनुमति देता है जैसे कि उपयोगकर्ता बटन क्लिक कर रहे थे। इस तरह के परीक्षणों का उपयोग सिस्टम के माध्यम से नेविगेशन को सत्यापित करने के लिए किया जा सकता है, लेबल और / या संदेशों की शुद्धता, एक विशेष परीक्षण वातावरण, आदि में प्रदर्शन और / या लोड समय आदि। प्राथमिक लक्ष्य क्यूए आदमी के समय को कम करने के लिए बटन पर क्लिक करना है, बहुत कुछ एकीकरण और इकाई परीक्षण प्रोग्रामर के लिए करते हैं। वह एक बार एक परीक्षण सेट कर सकता है (आमतौर पर अपने माउस क्लिक और एक स्क्रिप्ट में डेटा प्रविष्टियों को रिकॉर्ड करके), और एक बार परीक्षण ठीक से काम करता है उसे परीक्षण के तहत सिस्टम की शुद्धता को सत्यापित करने के लिए उसे फिर से चलाने के लिए करना होगा। सेलेनियम जैसे कुछ ढांचे, ब्राउज़रों के बीच परीक्षणों के लिए माइग्रेट करने की अनुमति देते हैं, जिससे कई वातावरणों के परीक्षण की अनुमति मिलती है जिसमें साइट ठीक से काम कर सकती है।

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


0

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

  • क्या आप यह निर्धारित कर रहे हैं कि क्या कोई घटक युक्ति के अनुसार कार्य करता है?
  • क्या आप सभी विभिन्न संभावित इनपुट और आउटपुट का परीक्षण करना चाहते हैं?
  • तनाव परीक्षण घटक?
  • या आप परीक्षण करने की कोशिश कर रहे हैं कि "यह काम करता है"?

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


-1

मेरे अनुभव में, स्वचालित उपयोगकर्ता इंटरफ़ेस परीक्षण में कई अंतराल शामिल हैं:

  • प्रलेखन की कमी (उदाहरण: मौजूदा कार्यक्षमता को प्रदर्शित करने के लिए स्वचालित परीक्षण धावक का उपयोग करना)
  • स्कोप रेंगने के कारण आउटडेटेड आवश्यकताएं (उदाहरण: टेस्ट रन के दौरान स्क्रीन को कैप्चर करके आवश्यकताओं और कोड के बीच अंतर की पहचान करना)
  • डेवलपर्स और परीक्षकों का उच्च कारोबार (उदाहरण: डेवलपर टूल ओपन के साथ परीक्षण रन के दौरान स्क्रीन पर कब्जा करके रिवर्स इंजीनियरिंग विरासत जावास्क्रिप्ट)
  • XPath प्रतिगमन परीक्षणों के माध्यम से मानक नामकरण सम्मेलनों के उल्लंघन की पहचान (उदाहरण: ऊंट नाम वाले सभी डोम विशेषता नोड्स की खोज)
  • सुरक्षा छेद को पहचानना, जो केवल एक कंप्यूटर ही खोज सकता है (उदाहरण: एक टैब से लॉगआउट, जबकि एक साथ एक फॉर्म को दूसरे में सबमिट करना)

1
इन चीजों से कैसे मदद मिलती है? अच्छा होगा यदि आप थोड़ा विस्तार कर सकें।
हल्क

-1

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

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

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