Qligħ:
- Kapaċità li tipproduċi kodiċi robust tat-test tal-UI b'intelliġenza artifiċjali, inkluż data-testid, stennija miftuħa, u affermazzjoni li tivverifika r-riżultat reali tal-utent
- Kapaċità li tevita testijiet fraġli (selettur ħażin, stennija blind) u tagħmel it-testijiet faċli biex jinżammu fl-istruttura tal-Mudell tal-Oġġetti tal-Paġna
- Kapaċità li tittestja kull test tal-UI prodott billi tikser il-kodiċi u tiskopri u tiffissa testijiet li għaddew foloz
Kull klikk, kull timla tal-formola, kull transizzjoni ta' paġna li jagħmel utent f'browser ma tistax tiġi ttestjata għal darb'oħra bl-idejn — hu għalhekk li teżisti l-awtomazzjoni tat-test tal-UI (interface tal-utent; dawn it-testijiet jimitaw l-imġiba tal-utent billi jsuq browser reali b'mod programmatiku). Selenium, Drammaturgu u Cypress huma l-aktar għodod komuni għal dan ix-xogħol. L-intelliġenza artifiċjali (AI) hija ta' ħila kbira biex tikteb il-kodiċi għal dawn l-għodod: inti tiddeskrivi każ tat-test, l-AI tagħtik abbozz ta' skript ta' awtomazzjoni li jaħdem. Iżda hawn it-twissija ċentrali ta 'dan il-modulu terġa' tidħol fis-seħħ: il-kodiċi tat-test tal-UI li tipproduċi l-AI ta' spiss jistgħu jkunu testijiet fraġli li "jixgħel aħdar iżda jivverifikaw il-ħaġa ħażina" jew flap fir-riħ. Ix-xogħol tiegħek mhuwiex li tħaddem dan il-kodiċi, iżda li tiżgura li fil-fatt jivverifika b'mod robust il-ħaġa t-tajba.
F'din l-unità, aħna nimmiraw li nipproduċu testijiet tal-UI robusti, li jistgħu jinżammu u li verament jivvalidaw bl-AI; Int titgħallem tevita testijiet fraġli.
It-tliet pilastri tal-ittestjar tal-UI solidu
1. Ikkoreġi l-lokalizzatur tal-element. Test juża selettur biex isib l-element fuq il-paġna. L-AI ħafna drabi tipproduċi seletturi fraġli: mogħdijiet XPath twal (indirizz dipendenti żżejjed fuq l-istruttura tal-paġna), seletturi bbażati fuq ismijiet tal-klassi CSS (waqfa meta jinbidel id-disinn). Il-mod robust huwa attributi stabbli bħal data-testid li l-iżviluppatur żied għall-ittestjar. Imponu dan b'mod espliċitu fuq l-AI.
2. Stennija espliċita. Is-sors numru wieħed ta 'vulnerabbiltà fl-ittestjar tal-UI huwa l-ħin. L-irqad kostanti(3) (stennija għomja) hija prattika ħażina: kultant mhux biżżejjed, kultant jaħli l-ħin. Il-mod korrett huwa li tuża stennija espliċita, li tgħid "stenna sakemm jidher dan l-element". Id-drammaturgu jagħmel dan fil-biċċa l-kbira awtomatikament; F'Selenium trid titlobha b'mod espliċitu.
3. Affermazzjoni sinifikanti. It-test għandu jivverifika r-riżultat li l-utent fil-fatt se jara - bħal "in-numru tal-ordni deher fuq l-iskrin," mhux biss "paġna mgħobbija." Jekk it-test prodott mill-AI ma jkollux affermazzjoni jew mhux importanti, dak it-test jipproduċi psewdo-pass (l-ewwel unità).
Attenzjoni: Meta tara l-ewwel test tal-UI iġġenerat mill-AI, iċċekkja tliet affarijiet l-aktar: is-selettivi huma impenjati (data-testid), qed tistenna (l-ebda sleep blind), u l-assert jivverifika r-riżultat attwali tal-utent? Jekk dawn it-tlieta huma OK, it-test huwa probabbilment solidu.
Mudell tal-Oġġetti tal-Paġna
Hekk kif it-testijiet jikbru, is-seletturi tal-kitba ġewwa kull test isir ħmar il-lejl ta' manutenzjoni. Mudell tal-Oġġetti tal-Paġna (POM — mudell tad-disinn li jiġbor is-seletturi u l-azzjonijiet għal kull paġna/iskrin fi klassi waħda) iżomm is-selettur f'post wieħed; Meta l-interface tinbidel, taġġornaha f'fajl wieħed. Ħalli l-AI tipproduċi t-testijiet fi struttura POM, aktar milli direttament; Dan jagħmel il-manutenzjoni radikalment aktar faċli.
Pront dgħajjef / Pront qawwi
Dgħajjef: "Ikteb test tas-Selenju għall-paġna tal-login."
Qawwija: "Ikteb test tal-fluss tal-login ma' Playwright (TypeScript). Is-selettivi jużaw biss data-testid; tużax tikkontrolla dak li jara l-utent, mhux it-titlu tal-paġna."
Pront qawwija; L-għodda tagħti l-lingwa, il-politika tas-selettur, l-istrateġija ta’ stennija, l-arkitettura (POM) u aspettattiva ta’ affermazzjoni espressiva.
Dejta tat-test u indipendenza ambjentali
Test UI solidu mhux biss jinkiteb b'mod korrett, iżda wkoll jibni u jnaddaf id-dejta tat-test tiegħu stess. It-testijiet iġġenerati mill-AI ħafna drabi jorbtu ma' utent jew rekord li huwa preżunt li diġà jeżistu fl-ambjent ("illoggja bħala utent admin"). Din is-suppożizzjoni tinkiser meta t-test isir f'ambjent ieħor jew wara test ieħor (problema tad-dipendenza tal-ordni fl-unità 9). Il-verità hija li kull test joħloq id-dejta li jeħtieġ fil-bidu tat-test (jew jippreparaha b'sejħa API) u jnaddafha fl-aħħar. Jagħti struzzjonijiet espliċitu lill-AI biex "jistabbilixxi kwalunkwe dejta li dan it-test jiddependi fuqha fit-test; tassumix dejta lesta minn barra."
Punt kritiku ieħor huwa li ma jsirx ittestjar tal-UI b'dejta tal-utent reali. Jekk tintuża kopja tad-database tal-produzzjoni fl-ambjent tat-test, dawn ir-rekords huma data ta 'persuni reali; screenshots u reġistrazzjonijiet tat-test jistgħu jiżvelaw din id-dejta. Uża kontijiet tat-test sintetiċi (fittizji); hija kemm tipproteġi l-kunfidenzjalità kif ukoll tagħmel it-testijiet riproduċibbli. It-twettiq ta' test ta' "kanċellazzjoni ta' ordni" b'kont reali tal-klijent huwa żball kemm etiku kif ukoll operattiv.
Tip: Żomm it-testijiet UI mill-inqas possibbli; Ħalli l-verifika attwali għall-API u t-testijiet tal-unità, li huma veloċi u stabbli. L-ittestjar tal-IU huwa għali u fraġli — użah biss biex tivvalida l-fluss tal-utent tassew minn tarf sa tarf (il-loġika tal-piramida tat-test).
Paragun tal-vettura
karatteristika
selenju
drammaturgu
ċipru
lingwi
Java, C#, Python, JS
JS/TS, Python, .NET, Java
JavaScript/TypeScript
standby awtomatiku
Le (bl-idejn)
Iva (qawwi)
Iva
Multi browser
wiesgħa
Kromju/Firefox/WebKit
dominanti tal-kromju
tendenza għal fraġilità
Għoli (standby manwali)
baxx
baxx
Faċilità ta 'tagħlim
medju
faċli
faċli
operazzjoni parallela
Grid meħtieġa
inkorporat
Resident/imħallas
Meta titlob kodiċi minn AI, iddikjara b'mod ċar għal liema vettura tappartjeni; Inkella, jista 'jipproduċi kodiċi konfuż u li ma jaħdimx.
Erba' mudelli li jistgħu jiġu kkupjati
1) Ġenerazzjoni solida tat-test UI:
Ir-rwol tiegħek: inġinier anzjan tal-awtomazzjoni tat-test. Ikteb it-testijiet bi [għodda + lingwa] għall-fluss li ġej: [fluss].Regoli:- Selettori data-testid biss; Bl-użu tal-klassi XPath/CSS. - Ebda rqad għomja; Uża stennija espliċita/awtomatika. - Applika l-Mudell tal-Oġġetti tal-Paġna. - Ħalli kull jasserixxi jivverifika r-riżultat attwali tal-utent. Ikkummenta fil-bidu ta' kull test liema kriterji ta' aċċettazzjoni qed tivvalida.
2) Kontroll tal-fraġilità:
Eżamina t-test UI li ġej għal fraġilità:- Hemm selettur instabbli (twil
3) Konverżjoni għal Page Object:
Ikkonverti l-kodiċi tat-test sempliċi li ġej fi struttura tal-Mudell tal-Oġġetti tal-Paġna. Ċaqlaq is-seletturi u l-azzjonijiet għall-klassijiet tal-paġna; Ħalli l-fajl tat-test jaqra biss il-fluss tax-xenarju. [Għodda/lingwa]. Kodiċi: [paste code]
4) Prova psewdo-tranżizzjoni:
Ipprova li dan it-test UI fil-fatt jivvalida: Liema bidla waħda nagħmel lill-kodiċi tal-applikazzjoni li se jdawwar dan it-test AĦMAR? Jekk ma tistax issib bidla li tkisser it-test, it-test huwa inadegwat; żid asserzjonijiet nieqsa.Test: [test tal-pejst]
tliet każijiet żgħar
Każ 1 — Ħelsien minn selettur fraġli. Mill-40 test prodott wieħed minn tim bl-AI, 70% tkissru wara aġġornament tal-interface; ħadd minnhom ma kien bugs attwali, kollha kienu seletturi XPath fraġli. It-tim ikkonverti t-testijiet f'bażi ta' data-testid bil-mudell "kontroll tal-fraġilità". Matul it-tliet aġġornamenti tal-interface li jmiss, in-numru ta 'pawżi foloz niżel għal żero; ħin ta 'manutenzjoni naqas minn 6 sigħat għal 30 minuta fil-ġimgħa.
Każ 2 — Test tal-IU li jgħaddi falz. AI pproduċiet test "żid mal-karrettun"; it-test kien aħdar. Meta tħaddem il-mudell "fake-proof-of-passage", it-test deher li jiċċekkja biss il-buttuna tal-ikklikkja u t-titlu tal-paġna, qatt ma ivverifika jekk il-counter tal-karrettun kienx żdied jew le. Anke jekk il-loġika tal-karrettun kienet kompletament miksura, it-test għadda. Asserzjoni vera miżjuda (il-badge tal-karrettun hija "1").
Każ 3 — Nassa ta' stennija għall-għomja. Fit-test tas-Selenju prodott minn AI, kien hemm irqad (2) wara kull pass; 60 test ħadu 14-il minuta u xorta waqgħu okkażjonalment. Wara li qalbet għal stenna miftuħa (stenna li l-element ikun jista 'jikklikkja) il-ħin niżel għal 5 minuti u l-fraġilità sparixxa. L-istennija għomja kienet kemm bil-mod kif ukoll inaffidabbli.
Żbalji komuni
- Il-qbil ma' seletturi fraġli. Bl-użu tal-XPaths twal ġġenerati mill-AI kif inhu; It-testijiet jiġġarrfu fl-ewwel bidla tal-interface.
- Leaving blind `irqad`. "Isolvu" iż-żmien b'stennija fissa; kemm bil-mod kif ukoll indeċiż.
- Trivjali jasserixxu. Ivverifika biss li l-paġna tagħbija; ma jiċċekkjax ir-riżultat attwali tal-utent (fake-pass).
- Ikber mingħajr POM. Qassam seletturi għal kull test; Aġġorna manwalment għexieren ta 'fajls meta l-interface tinbidel.
- Mhux tispeċifika l-għodda. Li ma tgħidx lill-AI liema għodda/lingwa trid; jkollna kodiċi messy, mhux tax-xogħol.
- Fidu meta tmexxi l-kodiċi ġġenerat u tgħaddi. Mhux ttestjar billi jikser il-kodiċi.
Fil-qosor
L-awtomazzjoni tal-ittestjar tal-UI tivverifika l-imġiba tal-utent billi ssuq il-browser attwali bil-programm. L-AI tiġġenera dan il-kodiċi malajr, iżda hemm żewġ nases kbar: testijiet fraġli (selettur ħażin, stennija blind) u testijiet li jgħaddu foloz (affermazzjoni mhux kompluta/trivjali). It-tliet pilastri tal-ittestjar tal-UI solidu huma s-selettur tal-kommit (data-testid), jistennew espliċitu, u jasserixxu li jivverifikaw ir-riżultat attwali tal-utent. Li jkollok testijiet iġġenerati fil-Mudell tal-Oġġetti tal-Paġna jissimplifika radikalment il-manutenzjoni. Ittestja kull test iġġenerat bil-mistoqsija "x'bidla se tkisser dan?"
Kompitu ta' applikazzjoni
Agħżel fluss tal-utent mill-proġett tiegħek stess (eż. login jew tfittxija). Ikollha l-AI tikteb it-testijiet bil-mudell ta '"ġenerazzjoni tat-test UI robust". Imbagħad: (1) iċċekkja u waħħal is-seletturi u tistenna b'"kontroll tal-fraġilità", (2) ipprova li kull test fil-fatt jivvalida bi "psewdo-pass proof", (3) jikser il-kodiċi u osserva li t-test isir aħmar. Irrapporta n-numru ta' testijiet prodotti u kkoreġuti, u n-numru ta' vulnerabbiltajiet u psewdo-passes li sibt.
lista ta' kontroll
- [ ] Jien tajt lill-AI l-għodda, il-lingwa, il-politika u l-arkitettura tas-seletturi (POM) b'mod ċar.
- [ ] Ivverifikajt li s-seletturi huma ttestjati mid-data.
- [ ] Kun żgur li nuża stennija espliċita/awtomatika minflok irqad blind.
- [ ] Iċċekkjt li kull affermazzjoni tivverifika r-riżultat attwali tal-utent.
- [ ] Ittestjajt kull test billi nkisser il-kodiċi; Rajt isir aħmar.
- [ ] Ġbart it-testijiet fl-istruttura tal-Mudell tal-Oġġetti tal-Paġna.