नफा:
- कृत्रिम बुद्धिमत्तेसह मजबूत UI चाचणी कोड तयार करण्याची क्षमता, डेटा-चाचणी, खुली प्रतीक्षा, आणि वास्तविक वापरकर्ता परिणाम सत्यापित करते असे प्रतिपादन
- नाजूक चाचण्या टाळण्याची क्षमता (खराब निवडक, आंधळी प्रतीक्षा) आणि पृष्ठ ऑब्जेक्ट मॉडेल स्ट्रक्चरमध्ये चाचण्या राखणे सोपे करते
- कोड तोडून तयार केलेल्या प्रत्येक UI चाचणीची चाचणी घेण्याची क्षमता आणि बनावट-उतीर्ण झालेल्या चाचण्या शोधून त्यांचे निराकरण करण्याची क्षमता
प्रत्येक क्लिक, प्रत्येक फॉर्म भरणे, वापरकर्त्याने ब्राउझरमध्ये केलेले प्रत्येक पृष्ठ संक्रमण हाताने पुन्हा पुन्हा तपासले जाऊ शकत नाही — म्हणूनच UI चाचणी ऑटोमेशन (वापरकर्ता इंटरफेस; या चाचण्या वास्तविक ब्राउझर चालविण्याद्वारे वापरकर्त्याच्या वर्तनाची नक्कल करतात) अस्तित्वात आहेत. सेलेनियम, नाटककार आणि सायप्रेस ही या कामासाठी सर्वात सामान्य साधने आहेत. कृत्रिम बुद्धिमत्ता (AI) या साधनांसाठी कोड लिहिण्यात अत्यंत कुशल आहे: तुम्ही चाचणी प्रकरणाचे वर्णन करता, AI तुम्हाला कार्यक्षम ऑटोमेशन स्क्रिप्टचा मसुदा देते. परंतु येथे या मॉड्यूलची मध्यवर्ती चेतावणी पुन्हा लागू होते: UI चाचणी कोड जो AI तयार करतो त्या बऱ्याचदा नाजूक चाचण्या असू शकतात ज्या “हिरव्या रंगाच्या पण चुकीच्या गोष्टीची पडताळणी करतात” किंवा वाऱ्यावर फडफडतात. तुमचे काम हा कोड चालवणे नाही, तर ते खरोखरच योग्य गोष्टीची पुष्टी करते याची खात्री करणे.
या युनिटमध्ये, आम्ही AI सह मजबूत, देखरेख करण्यायोग्य आणि खरोखर प्रमाणित UI चाचण्या तयार करण्याचे उद्दिष्ट ठेवतो; तुम्ही नाजूक चाचण्या टाळण्यास शिकाल.
ठोस UI चाचणीचे तीन खांब
1. योग्य घटक शोधक. चाचणी पृष्ठावरील घटक शोधण्यासाठी निवडक वापरते. AI बऱ्याचदा ठिसूळ निवडक तयार करते: लांब XPath पथ (पृष्ठ संरचनेवर जास्त अवलंबून असलेला पत्ता), CSS वर्ग नावांवर आधारित निवडक (डिझाइन बदलल्यावर ब्रेक). डेव्हलपरने चाचणीसाठी जोडलेल्या डेटा-टेस्टिड सारख्या स्थिर गुणधर्मांचा मजबूत मार्ग आहे. हे AI वर स्पष्टपणे लादणे.
2. स्पष्ट प्रतीक्षा. UI चाचणीमधील असुरक्षिततेचा क्रमांक एक स्रोत वेळ आहे. सतत झोप (३) (अंध प्रतीक्षा) ही वाईट प्रथा आहे: कधी ती पुरेशी नसते, तर कधी वेळ वाया घालवते. सुस्पष्ट प्रतीक्षा वापरणे हा योग्य मार्ग आहे, ज्यामध्ये "हा घटक दिसेपर्यंत प्रतीक्षा करा" असे म्हटले आहे. नाटककार हे मोठ्या प्रमाणावर आपोआप करतात; सेलेनियममध्ये आपण स्पष्टपणे विनंती करणे आवश्यक आहे.
3. अर्थपूर्ण प्रतिपादन. चाचणीने वापरकर्त्याला प्रत्यक्षात दिसणारा परिणाम सत्यापित केला पाहिजे — जसे की “स्क्रीनवर ऑर्डर क्रमांक दिसला,” फक्त “पृष्ठ लोड केलेले” नाही. जर AI द्वारे तयार केलेल्या चाचणीमध्ये कोणतेही प्रतिपादन नसेल किंवा ते महत्त्वाचे नसेल, तर ती चाचणी स्यूडो-पास (1 ला युनिट) तयार करते.
खबरदारी: जेव्हा तुम्ही पहिल्यांदा AI-व्युत्पन्न केलेली UI चाचणी पाहाल, तेव्हा जास्तीत जास्त तीन गोष्टी तपासा: निवडकर्ते वचनबद्ध आहेत (डेटा-चाचणी), प्रतीक्षा करत आहेत (आंधळी झोप नाही) आणि दावा वास्तविक वापरकर्त्याच्या निकालाची पडताळणी करतो का? हे तिन्ही ठीक असल्यास, चाचणी कदाचित ठोस आहे.
पृष्ठ ऑब्जेक्ट मॉडेल
जसजसे चाचण्या मोठ्या होतात तसतसे प्रत्येक चाचणीमध्ये निवडक लिहिणे हे एक दुःस्वप्न बनते. पृष्ठ ऑब्जेक्ट मॉडेल (POM — प्रत्येक पृष्ठ/स्क्रीनसाठी निवडक आणि क्रिया एकाच वर्गात एकत्रित करणारा डिझाइन नमुना) निवडकर्त्याला एकाच ठिकाणी ठेवतो; जेव्हा इंटरफेस बदलतो, तेव्हा तुम्ही ते एका फाईलमध्ये अपडेट करता. AI ने थेट ऐवजी POM स्ट्रक्चरमध्ये चाचण्या तयार कराव्यात; हे देखभाल पूर्णपणे सोपे करते.
कमकुवत प्रॉम्प्ट / मजबूत प्रॉम्प्ट
कमकुवत: "लॉगिन पृष्ठासाठी सेलेनियम चाचणी लिहा."
सशक्त: "प्लेराइट (टाइपस्क्रिप्ट) सह लॉगिन प्रवाह चाचणी लिहा. निवडकर्ते फक्त डेटा-चाचणी वापरतात; वापरकर्ता काय पाहतो ते नियंत्रित करू नका, पृष्ठ शीर्षक नाही."
शक्तिशाली प्रॉम्प्ट; हे टूल भाषा, निवडक धोरण, प्रतीक्षा धोरण, आर्किटेक्चर (POM) आणि अभिव्यक्त प्रतिपादन अपेक्षा देते.
चाचणी डेटा आणि पर्यावरण स्वातंत्र्य
एक ठोस UI चाचणी केवळ योग्यरित्या लिहिली जात नाही, परंतु स्वतःचा चाचणी डेटा तयार आणि साफ देखील करते. AI-व्युत्पन्न केलेल्या चाचण्या बऱ्याचदा वापरकर्त्याशी किंवा रेकॉर्डशी जोडल्या जातात जे वातावरणात आधीपासूनच अस्तित्वात असल्याचे गृहित धरले जाते (“प्रशासक वापरकर्ता म्हणून लॉग इन करा”). जेव्हा चाचणी दुसऱ्या वातावरणात चालते तेव्हा किंवा दुसऱ्या चाचणीनंतर (युनिट 9 मधील ऑर्डर अवलंबित्व समस्या) हे गृहितक मोडते. सत्य हे आहे की प्रत्येक चाचणी चाचणीच्या सुरुवातीला आवश्यक असलेला डेटा तयार करते (किंवा API कॉलसह तयार करते) आणि शेवटी साफ करते. AI ला स्पष्टपणे निर्देश द्या की "ही चाचणी चाचणीमध्ये अवलंबून असलेला कोणताही डेटा सेट करा; बाहेरून तयार केलेला डेटा गृहीत धरू नका."
आणखी एक महत्त्वाचा मुद्दा म्हणजे वास्तविक वापरकर्ता डेटासह UI चाचणी न करणे. चाचणी वातावरणात उत्पादन डेटाबेस प्रत वापरली असल्यास, हे रेकॉर्ड वास्तविक व्यक्तींचे डेटा आहेत; स्क्रीनशॉट आणि चाचणी रेकॉर्डिंग हा डेटा प्रकट करू शकतात. सिंथेटिक (काल्पनिक) चाचणी खाती वापरा; हे दोन्ही गोपनीयतेचे संरक्षण करते आणि चाचण्या पुनरुत्पादक बनवते. वास्तविक ग्राहक खात्यासह "ऑर्डर रद्दीकरण" चाचणी आयोजित करणे ही नैतिक आणि ऑपरेशनल चूक आहे.
टीप: शक्य तितक्या कमी UI चाचण्या ठेवा; वास्तविक सत्यापन API आणि युनिट चाचण्यांवर सोडा, जे जलद आणि स्थिर आहेत. UI चाचणी महाग आणि ठिसूळ आहे — फक्त खऱ्या अर्थाने एंड-टू-एंड वापरकर्ता प्रवाह (चाचणी पिरॅमिड लॉजिक) प्रमाणित करण्यासाठी वापरा.
वाहनांची तुलना
वैशिष्ट्य
सेलेनियम
नाटककार
सायप्रस
भाषा
Java, C#, Python, JS
JS/TS, Python, .NET, Java
JavaScript/TypeScript
स्वयं स्टँडबाय
नाही (हाताने)
होय (मजबूत)
होय
मल्टी ब्राउझर
रुंद
क्रोमियम/फायरफॉक्स/वेबकिट
क्रोमियम-प्रबळ
ठिसूळपणाची प्रवृत्ती
उच्च (मॅन्युअल स्टँडबाय)
कमी
कमी
शिकण्याची सोय
मध्यम
सोपे
सोपे
समांतर ऑपरेशन
ग्रिड आवश्यक
अंगभूत
रहिवासी/पेड
AI कडून कोडची विनंती करताना, ते कोणत्या वाहनाचे आहे ते स्पष्टपणे सांगा; अन्यथा, ते गोंधळात टाकणारे, काम न करणारे कोड तयार करू शकतात.
चार कॉपी करण्यायोग्य टेम्पलेट्स
1) सॉलिड UI चाचणी निर्मिती:
तुमची भूमिका: वरिष्ठ चाचणी ऑटोमेशन अभियंता. खालील प्रवाहासाठी [उपकरण + भाषा] सह चाचण्या लिहा: [प्रवाह]. नियम:- निवडक फक्त डेटा-चाचणी; XPath/CSS-वर्ग वापरणे. - अंध झोप नाही; स्पष्ट/स्वयंचलित प्रतीक्षा वापरा. - पेज ऑब्जेक्ट मॉडेल लागू करा. - प्रत्येक आग्रहाने वास्तविक वापरकर्ता परिणाम सत्यापित करू द्या. तुम्ही कोणते स्वीकृती निकष प्रमाणित करत आहात त्या प्रत्येक चाचणीच्या सुरुवातीला टिप्पणी द्या.
2) नाजूकपणा नियंत्रण:
ठिसूळपणासाठी खालील UI चाचणी तपासा:- तेथे अस्थिर निवडक आहे का (लांब
3) पृष्ठ ऑब्जेक्टमध्ये रूपांतरण:
खालील प्लेन टेस्ट कोडला पेज ऑब्जेक्ट मॉडेल स्ट्रक्चरमध्ये रूपांतरित करा. निवडक आणि क्रिया पृष्ठ वर्गात हलवा; चाचणी फाइलला फक्त परिस्थितीचा प्रवाह वाचू द्या. [साधन/भाषा].कोड: [कोड पेस्ट करा]
4) छद्म-संक्रमण पुरावा:
ही UI चाचणी प्रत्यक्षात प्रमाणित करते हे सिद्ध करा: मी अनुप्रयोग कोडमध्ये कोणता एकच बदल करू शकतो ज्यामुळे ही चाचणी लाल होईल? जर तुम्हाला चाचणी खंडित करणारा बदल सापडला नाही, तर चाचणी अपुरी आहे; गहाळ दावा जोडा. चाचणी: [पेस्ट चाचणी]
तीन लहान प्रकरणे
केस 1 - नाजूक निवडकर्त्यापासून मुक्ती. AI सह एका संघाने तयार केलेल्या 40 चाचण्यांपैकी 70% चाचण्या इंटरफेस अपडेटनंतर खंडित झाल्या होत्या; त्यापैकी एकही वास्तविक बग नव्हता, ते सर्व नाजूक XPath निवडक होते. कार्यसंघाने "नाजूकपणा तपासणी" टेम्पलेटसह चाचण्यांना डेटा-टेस्टिड बेसमध्ये रूपांतरित केले. पुढील तीन इंटरफेस अद्यतनांमध्ये, खोट्या ब्रेकची संख्या शून्यावर आली; देखभाल वेळ दर आठवड्याला 6 तासांवरून 30 मिनिटांपर्यंत कमी झाला.
केस 2 - बनावट उत्तीर्ण UI चाचणी. एआयने "कार्टमध्ये जोडा" चाचणी तयार केली; चाचणी हिरवी होती. जेव्हा "फेक-प्रूफ-ऑफ-पॅसेज" टेम्प्लेट चालवले गेले, तेव्हा चाचणी फक्त बटण क्लिक आणि पृष्ठ शीर्षक तपासण्यासाठी दिसून आली, कार्ट काउंटर वाढले आहे की नाही हे कधीही सत्यापित केले नाही. जरी कार्ट लॉजिक पूर्णपणे तुटले असले तरी, चाचणी उत्तीर्ण झाली. खरा दावा जोडला (कार्ट बॅज "1" आहे).
केस 3 - आंधळा वेटिंग ट्रॅप. AI द्वारे उत्पादित सेलेनियम चाचणीमध्ये, प्रत्येक पायरीनंतर झोप (2) होती; 60 चाचण्यांना 14 मिनिटे लागली आणि तरीही अधूनमधून खंडित झाले. ओपन वेटिंगवर स्विच केल्यानंतर (घटक क्लिक करण्यायोग्य होण्याची प्रतीक्षा करा) वेळ 5 मिनिटांवर गेला आणि ठिसूळपणा नाहीसा झाला. अंध वाट पाहणे हे दोन्ही मंद आणि अविश्वसनीय होते.
सामान्य चुका
- नाजूक निवडकर्त्यांशी सहमत. AI द्वारे व्युत्पन्न केलेले लांब XPaths वापरणे जसे आहे; प्रथम इंटरफेस बदलताना चाचणी क्रॅश होतात.
- आंधळी 'झोप' सोडणे. निश्चित प्रतीक्षासह वेळेचे "निराकरण" करणे; मंद आणि अनिर्णय दोन्ही.
- क्षुल्लक प्रतिपादन. फक्त पृष्ठ लोड झाल्याचे सत्यापित करा; वास्तविक वापरकर्ता निकाल तपासत नाही (बनावट-पास).
- POM शिवाय वाढवा. प्रत्येक चाचणीसाठी निवडक वितरित करा; इंटरफेस बदलल्यावर डझनभर फायली मॅन्युअली अपडेट करणे.
- साधन निर्दिष्ट करत नाही. तुम्हाला कोणते साधन/भाषा हवी आहे हे AI ला सांगत नाही; गोंधळलेला, काम न करणारा कोड मिळत आहे.
- तुम्ही व्युत्पन्न केलेला कोड चालवता आणि पास करता तेव्हा विश्वास ठेवा. कोड तोडून चाचणी करत नाही.
सारांशात
UI चाचणी ऑटोमेशन प्रोग्रामसह वास्तविक ब्राउझर चालवून वापरकर्त्याच्या वर्तनाची पडताळणी करते. AI हा कोड पटकन व्युत्पन्न करते, पण दोन मोठे नुकसान आहेत: ठिसूळ चाचण्या (खराब निवडक, अंध वाट पाहणे) आणि बनावट-उत्तीर्ण चाचण्या (अपूर्ण/क्षुल्लक दावा). सॉलिड UI चाचणीचे तीन खांब कमिट सिलेक्टर (डेटा-टेस्टीड) आहेत, स्पष्ट प्रतीक्षा करा आणि वास्तविक वापरकर्ता परिणाम सत्यापित करतात. पृष्ठ ऑब्जेक्ट मॉडेलमध्ये व्युत्पन्न केलेल्या चाचण्यांमुळे देखभाल पूर्णपणे सुलभ होते. प्रत्येक व्युत्पन्न चाचणी "याला कोणता बदल मोडेल?" या प्रश्नासह तपासा.
अर्ज कार्य
तुमच्या स्वतःच्या प्रोजेक्टमधून वापरकर्ता प्रवाह निवडा (उदा. लॉगिन किंवा शोध). “मजबूत UI चाचणी जनरेशन” टेम्पलेटसह AI लेखन चाचण्या घ्या. नंतर: (1) निवडक तपासा आणि निश्चित करा आणि "नाजूकपणा तपासणी" सह प्रतीक्षा करा, (2) सिद्ध करा की प्रत्येक चाचणी "स्यूडो-पास प्रूफ" सह प्रमाणित करते, (3) कोड खंडित करा आणि चाचणी लाल झाल्याचे निरीक्षण करा. तयार केलेल्या आणि दुरुस्त केलेल्या चाचण्यांची संख्या आणि तुम्हाला आढळलेल्या भेद्यता आणि स्यूडो-पासची संख्या नोंदवा.
चेकलिस्ट
- [ ] मी AI ला साधन, भाषा, निवडक धोरण आणि आर्किटेक्चर (POM) स्पष्टपणे दिले.
- [ ] मी सत्यापित केले की निवडकर्ते डेटा-चाचणीदार आहेत.
- [] मी आंधळ्या झोपेऐवजी स्पष्ट/स्वयंचलित प्रतीक्षा वापरण्याची खात्री केली आहे.
- [ ] मी तपासले की प्रत्येक प्रतिज्ञा वास्तविक वापरकर्ता परिणाम सत्यापित करते.
- मी कोड तोडून प्रत्येक चाचणीची चाचणी घेतली; मी ते लाल झालेले पाहिले.
- मी पेज ऑब्जेक्ट मॉडेल स्ट्रक्चरमध्ये चाचण्या गोळा केल्या.