ትርፍ፡
- ዳታ-ቴስትድን፣ ክፍት መጠበቅን እና ትክክለኛው የተጠቃሚውን ውጤት የሚያረጋግጥ ማረጋገጥን ጨምሮ ከአርቴፊሻል ኢንተለጀንስ ጋር ጠንካራ የUI ሙከራ ኮድ የማምረት ችሎታ።
- ደካማ ሙከራዎችን የማስወገድ ችሎታ (መጥፎ መራጭ፣ ዓይነ ስውር መጠበቅ) እና ሙከራዎችን በገጽ ነገር ሞዴል መዋቅር ውስጥ ለማቆየት ቀላል ማድረግ።
- ኮዱን በመጣስ የተሰራውን እያንዳንዱን የዩአይ ሙከራ የመሞከር እና የሐሰት ያለፈ ፈተናዎችን የመለየት እና የማስተካከል ችሎታ
በእያንዳንዱ ጠቅታ፣ እያንዳንዱ ቅጽ መሙላት፣ ተጠቃሚው በአሳሹ ውስጥ የሚያደርገው እያንዳንዱ የገጽ ሽግግር በእጅ ሊደገም አይችልም - ለዚያም ነው የUI ሙከራ አውቶማቲክ (የተጠቃሚ በይነገጽ፣ እነዚህ ሙከራዎች የተጠቃሚውን ባህሪ በፕሮግራማዊ መንገድ እውነተኛ አሳሽ በመንዳት) አሉ። ሴሊኒየም, ተውኔት እና ሳይፕረስ ለዚህ ሥራ በጣም የተለመዱ መሳሪያዎች ናቸው. አርቴፊሻል ኢንተለጀንስ (AI) ለእነዚህ መሳሪያዎች ኮድ በመጻፍ በጣም የተካነ ነው፡ የፈተና ጉዳይን ይገልፃሉ፣ AI ሊሰራ የሚችል አውቶማቲክ ስክሪፕት ረቂቅ ይሰጥዎታል። ግን እዚህ የዚህ ሞጁል ማዕከላዊ ማስጠንቀቂያ እንደገና ወደ ጨዋታ ይመጣል፡ AI የሚያመነጨው የUI ሙከራ ኮድ ብዙውን ጊዜ “አረንጓዴ የሚያበራ ነገር ግን የተሳሳተ ነገርን የሚያረጋግጥ” ወይም በነፋስ የሚንሸራተቱ ሙከራዎች ሊሆኑ ይችላሉ። የእርስዎ ተግባር ይህን ኮድ ማስኬድ አይደለም፣ ነገር ግን በትክክል ትክክለኛውን ነገር በትክክል ማረጋገጡን ማረጋገጥ ነው።
በዚህ ክፍል ውስጥ፣ ጠንካራ፣ ሊቆዩ የሚችሉ እና በእውነት የሚያረጋግጡ የUI ሙከራዎችን በ AI; ደካማ ፈተናዎችን ለማስወገድ ይማራሉ.
የሶስቱ የጠንካራ UI ሙከራ ምሰሶዎች
1. ትክክለኛ ኤለመንት አመልካች. በገጹ ላይ ያለውን ንጥረ ነገር ለማግኘት ሙከራ መራጭን ይጠቀማል። AI ብዙ ጊዜ የሚሰባበር መራጮችን ያመነጫል፡ ረጅም የ XPath ዱካዎች (አድራሻ በገጽ መዋቅር ላይ ከመጠን በላይ ጥገኛ ነው)፣ በሲኤስኤስ ክፍል ስሞች ላይ ተመስርተው (ንድፍ ሲቀየር ይሰብራሉ)። ጠንካራው መንገድ ገንቢው ለሙከራ ያከላቸው እንደ data-testid ያሉ የተረጋጋ ባህሪያት ነው። ይህንን በግልፅ በ AI ላይ ይጫኑት።
2. ግልጽ የሆነ መጠበቅ. በUI ሙከራ ውስጥ ቁጥር አንድ የተጋላጭነት ምንጭ ጊዜ ነው። የማያቋርጥ እንቅልፍ (3) (እውር መጠበቅ) መጥፎ ልምምድ ነው: አንዳንድ ጊዜ በቂ አይደለም, አንዳንድ ጊዜ ጊዜ ያባክናል. ትክክለኛው መንገድ "ይህ ኤለመንት እስኪታይ ድረስ ይጠብቁ" የሚለውን ግልጽ የሆነ መጠበቅን መጠቀም ነው. ተውኔት ራይት ይህንን በአብዛኛው በራስ ሰር ያደርገዋል። በሴሊኒየም ውስጥ በግልጽ መጠየቅ አለብዎት.
3. ትርጉም ያለው ማረጋገጫ. ፈተናው ተጠቃሚው የሚያየውን ውጤት ማረጋገጥ አለበት - ልክ እንደ “የተጫነው ገጽ” ብቻ ሳይሆን እንደ “የትእዛዝ ቁጥር በስክሪኑ ላይ ታየ”። በ AI የተሰራው ፈተና ማረጋገጫ ከሌለው ወይም አስፈላጊ ካልሆነ ያ ሙከራ የውሸት ማለፊያ (1 ኛ ክፍል) ይፈጥራል።
ማስጠንቀቂያ፡ በመጀመሪያ በ AI የመነጨ የዩአይአይ ፈተናን ሲያዩ ቢበዛ ሶስት ነገሮችን አረጋግጥ፡ መራጮቹ ቁርጠኞች ናቸው (ዳታ-ቴስቲድ)፣ ይጠባበቃሉ (ጭፍን እንቅልፍ የላቸው) እና ትክክለኛው የተጠቃሚውን ውጤት ያረጋግጣል? እነዚህ ሦስቱ ደህና ከሆኑ ፈተናው ጠንካራ ሊሆን ይችላል።
የገጽ ነገር ሞዴል
ፈተናዎች እየበዙ ሲሄዱ፣ በእያንዳንዱ ፈተና ውስጥ መራጮችን መጻፍ የጥገና ቅዠት ይሆናል። የገጽ ነገር ሞዴል (POM — ለእያንዳንዱ ገጽ/ስክሪን መራጮችን እና ድርጊቶችን ወደ አንድ ክፍል የሚሰበስብ የንድፍ ንድፍ) መራጩን በአንድ ቦታ ያስቀምጣል። በይነገጹ ሲቀየር በአንድ ፋይል ውስጥ ያዘምኑታል። AI ፈተናዎችን በቀጥታ ሳይሆን በ POM መዋቅር ውስጥ እንዲያመርት ያድርጉ; ይህ ጥገናን በጣም ቀላል ያደርገዋል.
ደካማ ጥያቄ / ጠንካራ ጥያቄ
ደካማ፡ "ለመግቢያ ገጹ የሴሊኒየም ፈተና ይፃፉ።"
ጠንካራ፡ "የመግቢያ ፍሰት ሙከራን ከፕሌይ ራይት (TypeScript) ጋር ይፃፉ። መራጮች ዳታ-ቴስቲድ ብቻ ይጠቀማሉ፤ የገጹን ርዕስ ሳይሆን ተጠቃሚው የሚያየውን ነገር አይቆጣጠሩ።"
ኃይለኛ ማበረታቻ; መሳሪያው ቋንቋውን፣ የመራጭ ፖሊሲን፣ የጥበቃ ስትራቴጂን፣ አርክቴክቸር (POM) እና ገላጭ ማረጋገጫን ይሰጣል።
መረጃን እና የአካባቢን ነፃነት ፈትሽ
ጠንካራ የዩአይ ፈተና በትክክል መፃፍ ብቻ ሳይሆን የራሱን የፍተሻ ውሂብ ይገነባል እና ያጸዳል። በ AI የመነጩ ሙከራዎች ብዙውን ጊዜ ከአንድ ተጠቃሚ ጋር ይገናኛሉ ወይም ቀደም ሲል በአካባቢው አለ ተብሎ ከሚገመተው መዝገብ ("እንደ አስተዳዳሪ ተጠቃሚ ይግቡ")። ይህ ግምት ፈተናው በሌላ አካባቢ ሲካሄድ ወይም ከሌላ ፈተና በኋላ (በክፍል 9 ውስጥ ያለው የጥገኝነት ችግር) ይቋረጣል። እንደ እውነቱ ከሆነ እያንዳንዱ ፈተና በፈተናው መጀመሪያ ላይ የሚያስፈልገውን ውሂብ ይፈጥራል (ወይም በኤፒአይ ጥሪ ያዘጋጃል) እና በመጨረሻ ያጸዳዋል. በግልጽ AI “ይህ ሙከራ በሙከራው ላይ የሚመረኮዝ ማንኛውንም ውሂብ እንዲያዋቅሩ ፣ ዝግጁ የሆነ ውሂብ ከውጭ አይስቡ።
ሌላው ወሳኝ ነጥብ የዩአይ ሙከራን በእውነተኛ የተጠቃሚ ውሂብ አለመሞከር ነው። የምርት ዳታቤዝ ቅጂ በሙከራ አካባቢ ውስጥ ጥቅም ላይ ከዋለ, እነዚህ መዝገቦች የእውነተኛ ሰዎች ውሂብ ናቸው; ቅጽበታዊ ገጽ እይታዎች እና የሙከራ ቅጂዎች ይህንን ውሂብ ሊያሳዩ ይችላሉ። ሰው ሰራሽ (ልብ ወለድ) የሙከራ መለያዎችን ይጠቀሙ; ሁለቱም ምስጢራዊነትን ይጠብቃሉ እና ሙከራዎችን እንደገና እንዲባዙ ያደርጋል። በእውነተኛ የደንበኛ መለያ የ"ትዕዛዝ ስረዛ" ፈተናን ማካሄድ የስነምግባር እና የአሰራር ስህተት ነው።
ጠቃሚ ምክር፡ የUI ሙከራዎችን በተቻለ መጠን በጥቂቱ ያቆዩ። ትክክለኛውን ማረጋገጫ ለኤፒአይ እና አሃድ ሙከራዎች ይተዉት ፣ ፈጣን እና የተረጋጋ። የዩአይ ሙከራ ውድ እና ተሰባሪ ነው - ከጫፍ እስከ ጫፍ የተጠቃሚ ፍሰት (የሙከራ ፒራሚድ ሎጂክ) ለማረጋገጥ ብቻ ይጠቀሙበት።
የተሽከርካሪ ንጽጽር
ባህሪ
ሴሊኒየም
ፀሐፌ ተውኔት
ሳይፕረስ
ቋንቋዎች
Java፣ C#፣ Python፣ JS
JS/TS፣ Python፣ .NET፣ Java
JavaScript/TypeScript
ራስ-ሰር ተጠባባቂ
አይ (በእጅ)
አዎ (ጠንካራ)
አዎ
ባለብዙ አሳሽ
ሰፊ
Chromium/Firefox/WebKit
ክሮሚየም-በላይ
የመሰባበር ዝንባሌ
ከፍተኛ (በእጅ ተጠባባቂ)
ዝቅተኛ
ዝቅተኛ
የመማር ቀላልነት
መካከለኛ
ቀላል
ቀላል
ትይዩ ክዋኔ
ፍርግርግ ያስፈልጋል
አብሮ የተሰራ
ነዋሪ/የተከፈለ
ከ AI ኮድ ሲጠይቁ የየትኛው ተሽከርካሪ እንደሆነ በግልፅ ይግለጹ፤ አለበለዚያ, ግራ የሚያጋባ, የማይሰራ ኮድ ሊያወጣ ይችላል.
አራት ሊገለበጡ የሚችሉ አብነቶች
1) ጠንካራ የተጠቃሚ በይነገጽ ሙከራ ማመንጨት;
የእርስዎ ሚና፡ ሲኒየር ሙከራ አውቶሜሽን ኢንጂነር.ለሚከተለው ፍሰት ሙከራዎችን በ [መሳሪያ + ቋንቋ] ይጻፉ፡ [ፍሰት]። ደንቦች፡- መራጮች ዳታ-ተመስጦ ብቻ; XPath/CSS-ክፍልን በመጠቀም። - ዓይነ ስውር እንቅልፍ የለም; ግልጽ/በራስ ሰር መጠበቅን ተጠቀም። - የገጽ ነገር ሞዴል ተግብር. - እያንዳንዱ አስረግጦ ትክክለኛውን የተጠቃሚ ውጤት ያረጋግጡ። የትኛውን ተቀባይነት መስፈርት እያረጋገጡ እንደሆነ በእያንዳንዱ ፈተና መጀመሪያ ላይ አስተያየት ይስጡ።
2) የመበስበስ ቁጥጥር;
ለሚሰባበር የሚከተለውን የUI ፈተናን ይመርምሩ፡- ያልተረጋጋ መራጭ አለ (ረዥም
3) ወደ ገጽ ነገር መለወጥ;
የሚከተለውን ግልጽ የሙከራ ኮድ ወደ የገጽ ነገር ሞዴል መዋቅር ይለውጡ። መራጮችን እና ድርጊቶችን ወደ ገጽ ክፍሎች ያንቀሳቅሱ; የሙከራ ፋይሉ የሁኔታውን ፍሰት ብቻ እንዲያነብ ይፍቀዱለት። [መሳሪያ/ቋንቋ]። ኮድ፡ [ኮድ ለጥፍ]
4) የውሸት ሽግግር ማረጋገጫ፡-
ይህ የዩአይ ፈተና በትክክል የሚያጸድቀው መሆኑን አረጋግጥ፡ ይህን ሙከራ ወደ ቀይ የሚያመጣው በአፕሊኬሽን ኮድ ላይ ምን አይነት ለውጥ አደርጋለሁ? ፈተናውን የሚያፈርስ ለውጥ ካላገኙ ፈተናው በቂ አይደለም; የጎደሉ አስተያየቶችን ያክሉ። ሙከራ፡ [የመለጠፍ ሙከራ]
ሶስት ጥቃቅን ጉዳዮች
ጉዳይ 1 - ከተበላሸ መራጭ ነፃ መውጣት። ከ 40 ሙከራዎች ውስጥ አንድ ቡድን በ AI ካመረተው ፣ 70% ከበይነገጽ ዝመና በኋላ ተሰብሯል ። አንዳቸውም ትክክለኛ ስህተቶች አልነበሩም፣ ሁሉም ደካማ የ XPath መራጮች ነበሩ። ቡድኑ ፈተናዎቹን በ"የተሰባበረ ቼክ" አብነት ወደ ዳታ-testid መሰረት ቀይሯል። በሚቀጥሉት ሶስት የበይነገጽ ዝመናዎች፣ የውሸት እረፍቶች ቁጥር ወደ ዜሮ ወርዷል። የጥገና ጊዜ በሳምንት ከ 6 ሰዓት ወደ 30 ደቂቃዎች ቀንሷል.
ጉዳይ 2 - የውሸት ማለፊያ UI ሙከራ። AI አንድ "ወደ ጋሪ አክል" ፈተና አዘጋጀ; ፈተናው አረንጓዴ ነበር። "የውሸት-ማስረጃ" አብነት ሲሰራ፣ ፈተናው የአዝራሩን ጠቅታ እና የገጽ ርዕስ ብቻ ለማየት ታየ፣ የጋሪ ቆጣሪው መጨመሩን ወይም አለመጨመሩን በጭራሽ አያረጋግጥም። የጋሪው አመክንዮ ሙሉ በሙሉ ቢሰበርም ፈተናው አልፏል። እውነተኛ ማረጋገጫ ታክሏል (የጋሪ ባጅ “1” ነው)።
ጉዳይ 3 - ዕውር መጠበቅ ወጥመድ. በ AI በተሰራው የሴሊኒየም ሙከራ ከእያንዳንዱ እርምጃ በኋላ እንቅልፍ (2) ነበር; 60 ሙከራዎች 14 ደቂቃዎች ወስደዋል እና አሁንም አልፎ አልፎ ይሰበራሉ. ወደ ክፍት መጠበቅ ከተቀየረ በኋላ (ኤለመንቱ ጠቅ እስኪደረግ ድረስ ይጠብቁ) ጊዜው ወደ 5 ደቂቃዎች ወረደ እና መሰባበር ጠፋ። ዓይነ ስውር መጠበቅ ቀርፋፋ እና አስተማማኝ አልነበረም።
የተለመዱ ስህተቶች
- ደካማ መራጮችን በመስማማት ላይ። በ AI የተፈጠረውን ረጅም XPaths በመጠቀም ፣ በመጀመሪያው የበይነገጽ ለውጥ ላይ ሙከራዎች ይበላሻሉ።
- ዕውር 'እንቅልፍ' መተው። በቋሚ ጥበቃ ጊዜውን "መፍታት"; ሁለቱም ዘገምተኛ እና ውሳኔ የማይሰጡ.
- ተራ ማረጋገጫ። ገጹ መጫኑን ብቻ ያረጋግጡ; ትክክለኛውን የተጠቃሚ ውጤት (የውሸት ማለፊያ) አለመፈተሽ።
- ያለ POM ያድጉ። ለእያንዳንዱ ፈተና መራጮችን ያሰራጩ; በይነገጹ ሲቀየር በደርዘን የሚቆጠሩ ፋይሎችን በእጅ በማዘመን ላይ።
- መሳሪያውን አለመግለጽ. የሚፈልጉትን መሳሪያ/ቋንቋ ለ AI አለመንገር; የተመሰቃቀለ፣ የማይሰራ ኮድ።
- የመነጨውን ኮድ ሲያስኬዱ እና ሲያልፉ ማመን። ኮዱን በመጣስ አለመሞከር።
በማጠቃለያው
የዩአይ ፍተሻ አውቶሜሽን ትክክለኛውን አሳሽ በፕሮግራሙ በማሽከርከር የተጠቃሚውን ባህሪ ያረጋግጣል። AI ይህን ኮድ በፍጥነት ያመነጫል, ነገር ግን ሁለት ትላልቅ ወጥመዶች አሉ-የተሰባበረ ሙከራዎች (መጥፎ መራጭ, ዓይነ ስውር ይጠብቃሉ) እና የሐሰት ማለፊያ ፈተናዎች (ያልተሟሉ / ቀላል ማስረጃዎች). ሦስቱ የጠንካራ ዩአይ ሙከራ ምሰሶዎች ፈፃሚ መራጭ (ዳታ-ቴስቲድ)፣ በግልጽ መጠበቅ እና ትክክለኛው የተጠቃሚውን ውጤት የሚያረጋግጡ ናቸው። በገጽ ነገር ሞዴል ውስጥ የተፈጠሩ ሙከራዎችን ማድረጉ ጥገናን ቀላል ያደርገዋል። እያንዳንዱን የተፈጠረ ፈተና "ይህን ምን ለውጥ ያበላሸዋል?" በሚለው ጥያቄ ይሞክሩት።
የመተግበሪያ ተግባር
ከእራስዎ ፕሮጀክት የተጠቃሚ ፍሰት ይምረጡ (ለምሳሌ መግባት ወይም መፈለግ)። AI ፈተናዎችን በ"ጠንካራ የዩአይ ሙከራ ማመንጨት" አብነት እንዲጽፍ ያድርጉ። ከዚያም፡ (1) መራጮችን አረጋግጡና አስተካክለው በ"fragility check" መጠበቅ፣ (2) እያንዳንዱ ፈተና በትክክል በ"pseudo-pass proof" የሚያረጋግጥ መሆኑን አረጋግጡ፣ (3) ኮዱን በመስበር ፈተናው ወደ ቀይ መቀየሩን ይመልከቱ። የተመረቱ እና የተስተካከሉ የፈተናዎች ብዛት እና ያገኟቸውን የተጋላጭነት እና የውሸት ማለፊያዎች ብዛት ሪፖርት ያድርጉ።
የማረጋገጫ ዝርዝር
- [ ] መሳሪያውን፣ ቋንቋውን፣ መራጭ ፖሊሲውን እና አርክቴክቸርን (POM)ን በግልፅ ሰጥቻለሁ።
- [] እኔ መራጮች ውሂብ-testid መሆናቸውን አረጋግጧል.
- [ ] ከዓይነ ስውር እንቅልፍ ይልቅ ግልጽ/አውቶማቲክ ጥበቃ መጠቀሜን አረጋግጫለሁ።
- [ ] እያንዳንዱ ማረጋገጫ ትክክለኛውን የተጠቃሚ ውጤት እንደሚያረጋግጥ አረጋግጣለሁ።
- [] ኮዱን በመስበር እያንዳንዱን ፈተና ሞከርኩ; ወደ ቀይ ሲቀየር አየሁ።
- [ ] ፈተናዎቹን የሰበሰብኩት በገጽ ነገር ሞዴል መዋቅር ውስጥ ነው።