Loading Now

Kodėl aš daugiau niekada rankiniu būdu nerašysiu bandomųjų scenarijų (ir jūs taip pat neturėtumėte)

Kodėl aš daugiau niekada rankiniu būdu nerašysiu bandomųjų scenarijų (ir jūs taip pat neturėtumėte)


Jei praleidote bet kurį laiką dirbdami su bandymo automatizavimu, žinote, ką daryti:

  • Kiekvieną projektą pradedame turėdami geriausių ketinimų – pažadėdami sau parašyti švarų, prižiūrimą kodą
  • Tačiau pasukite kelis mėnesius į priekį, o pusę savaitės praleidžiame taisydami nepatogius testus, ieškodami trapių lokatorių ir sprendžiame „pasikartojančių el. pašto“ klaidas mūsų CI / CD kanaluose.

Aš ten buvau. Mes visi ten buvome.

Pastaruoju metu automatizavimo bendruomenė šurmuliavo apie AI pagrįstą testavimą:

  • Skaičiau straipsnius apie „Microsoft“ kūrėjų tinklaraštis ir TestGuild apie tai, kaip AI perima QA 2025 ir 2026 m
  • Jei atvirai, buvau šiek tiek skeptiškas – daugelis AI testavimo platformų jaučiasi taip juodos dėžės
  • Jie žada pasauliui, bet tu baigsi užrakintas savo ekosistemojeprarasdami tikrosios kodų bazės kontrolę

Bet tada pabandžiau Agentai dramaturgai. Tai nebuvo mokamas įvyniojimo įrankis; tai buvo gimtoji dramaturgo ekosistemoje Jau naudoju ir myliu.

Tai buvo maždaug prieš mėnesį. Nuo tada aš kasdien naudoju „Playwright Agents“ tiesioginiame projekte:

  • Naujų komplektų rašymas
  • Derinimo gedimai
  • Komandos draugų priėmimas
  • Stebėti, kaip agentai elgiasi per tikrus sprintus su realiais terminais

Šis įrašas nėra pirmojo įspūdžio apžvalga. Tai aš sužinojau po viso mėnesio, kai pasitikėjau šiais agentais gamybinio lygio darbuose. Štai mano sąžininga patirtis, kaip tai visiškai pakeitė mano požiūrį į testų rašymą.

rankinis QA to Ai bandymas rankinis QA to Ai bandymas

Iššūkis: vartotojų valdymo modulis

Man reikėjo automatizuoti Vartotojų valdymo modulis mūsų CII-ESG diagnostikos platforma. Jei automatizavote vieną iš šių, automatizavote šimtą: kurkite, skaitykite, atnaujinkite ir ištrinkite naudotojus.

Tačiau norint tai padaryti teisingai, reikia laiko. Jei rašyčiau tai rankiniu būdu, štai kaip atrodytų mano savaitė:

  • Praleiskite popietę spustelėdami programą ir parašykite bandymo planą
  • Praleiskite kelias valandas rašydami puslapio objektų modelio (POM) klases
  • Praleiskite kelias dienas kurdami laimingus kelius, formos patvirtinimus, klaidų būsenas ir kraštutinius atvejus.

Apskritai aš sudaryčiau biudžetą 11-17 valandų šiam moduliui.

Vietoj to, paleidau npx dramaturgų init-agentus, kad sukurčiau naują Modelio konteksto protokolas (MCP) mano redaktoriaus agentai ir nusprendžiau leisti dirbtiniam intelektui perimti vairą.

Susipažinkite su mano naujuoju programuotoju: planuotoju

Dramaturgui priklauso subagentas, vadinamas Planuotojas. Iš esmės aš jam pasakiau: „Ei, išsiaiškink, kaip veikia šis vartotojų valdymo modulis“. Pateikiau paprastą sėklų testą, kad jis galėtų prisijungti, o tada tiesiog žiūrėjau.

Tai ne tik kibo. Štai ką planuotojas iš tikrųjų padarė:

  • Sistemingai tyrinėjo programą ir sugeneravo a žmogaus skaitomas Markdown testavimo planas
  • Parašė ne tik „sukurti vartotoją“ laimingą kelią – jis atpažino Daugiau nei 90 skirtingų bandymų scenarijų skersai 8 apartamentai
  • Planuojami testai vaidmenimis pagrįsti leidimaikas atsitiks, jei įvedu jau egzistuojantį el. pašto adresą ir kaip vartotojo sąsaja apdoroja labai ilgas įvestis
  • Krašto atvejai suplanuoti per kelias minutes kad tinkamai dokumentuoti būčiau užtrukęs kelias valandas

Kodo rašymas: generatorius

Puiku turėti tekstinį failą, pilną bandymų planų, bet man reikėjo kodo. Įveskite Generatorius agentas.

Pateikiau bandymo planą ir jis pradėjo rašyti „TypeScript“. Labiausiai bijojau, kad jis parašys šiukšlyną, neprižiūrimą kodą, pavyzdžiui, uždelstų kodavimą (page.waitForTimeout(5000)) arba naudos baisius CSS ieškiklius (#div-child-3 > span).

klydau. Jo sukurtas kodas buvo tiksliai taip, kaip tai parašytų patyręs kokybės užtikrinimo inžinierius:

  • Jis sukūrė puslapio objektų modelius: Atskyrė lokatorius nuo bandomosios logikos, suteikdama švarius CreateUserPage.ts ir UserManagementPage.ts failus
  • Jai rūpėjo prieinamumas: Labai naudojami lokatoriai, pvz., page.getByRole(‘button’, { name: ‘Submit’ }), o ne pasikliauti trapiais klasių pavadinimais
  • Jis suprato dinaminius duomenis: Kad būtų išvengta erzinančių „Vartotojas jau yra“ klaidų, kai bandymai vykdomi du kartus, jis automatiškai sugeneruojamas laiko žyme pagrįsti dinaminiai el (const unikalusEmail = test.user.${Date.now()}@example.com)

Tai perrašė 1500 eilučių funkcinio testo kodo tiems 90+ scenarijų.

Rezultatai sumuojami

Taigi, koks buvo galutinis rezultatas?

  • Kas paprastai mane beveik pritraukia dvi dienos solidaus darbo buvo baigtas maždaug 1,5 valandos. Tai yra a 90% sutrumpėja kūrimo laikas
  • Kai paleidau komplektą, gavau a 100% išlaikymo rodiklis – jokių klaidingų teigiamų rezultatų, jokių dribsnių

Ir štai kas iš tikrųjų svarbu: tie skaičiai išsilaikė visą mėnesį.

  • Dabar per tą pačią darbo eigą perkėliau kelis modulius – Vartotojų valdymas, projektų kūrimas, vaidmenų leidimai
  • The laiko taupymas ir išlaikymo procentas buvo nepaprastai nuoseklūs
  • Tai nėra demonstracinės versijos rezultatas; tai a raštas, kurį mačiau kartojantis sprintą po sprinto

Priežiūros gelbėtojas: gydytojas

Visi žinome, kad blogiausia automatizavimo dalis yra ne testų rašymas – tai yra juos išlaikant:

  • Kūrėjas pervadina mygtukų klasę arba pakeičia ID
  • Staiga tavo visa CI vamzdynas nudažytas raudonai

Štai čia mane tikrai nustebino trečiasis agentas: Gydytojas.

Užuot praleidęs valandą ieškodamas pėdsakų žiūrovų, Gydytojas tiesiog įšoka:

  • Kai bandymas nepavyksta, tai automatiškai atkuria nesėkmingus veiksmus
  • Tikrina dabartinę tiesioginę vartotojo sąsają norėdami sužinoti, kur elementai persikėlė
  • Išsiaiškina, kas pasikeitė ir tiesiogine prasme siūlo pataisą, pvz., atnaujintą ieškiklį, duomenų pataisymą arba pakoreguotą laukimą
  • Pakartokite testą, kol jis praeis

Per pastarąjį mėnesį Gydytojas padarė sutaupė man daugiau laiko nei bet kuris kitas agentas:

  • Mūsų frontend komanda reguliariai siunčia vartotojo sąsajos pakeitimus
  • Buvo bent keliolika kartų kai kūrėjas pervardijo komponentą arba pertvarkė formą, mano CI vamzdynas tapo raudonas
  • Kiekvieną kartą Gydytojas sugavo, pasiūlė pataisytiir aš ką tik peržiūrėjau skirtumą
  • Tai, kas anksčiau buvo baisus pirmadienio ryto ritualas „sutvarkyti vamzdyną“, turi tyliai dingo iš mano kalendoriaus

Atrodo, kad jaunesnysis kokybės užtikrinimo inžinierius automatiškai per naktį įvertintų jūsų sugadintus testus, todėl jūs tiesiog turite tai padaryti peržiūrėkite jų siūlomus kodo pataisas ryto.

Didesnis paveikslas – ir kas bus toliau

Skaičiau straipsnį apie DEV bendruomenė Neseniai kūrėjas išbandė naujus „Playwright“ agentus su brangiomis, atskiromis AI testavimo platformomis. Jų išsinešimas puikiai atitiko mano patirtį: Nuosavybės reikalai.

Su dramaturgo agentais vis dar turiu savo kodą:

  • Turiu standartinius TypeScript .spec.ts failus, kurie gyvena mano „GitHub“ atpirkimas
  • Galiu juos paleisti CI/CD per Jenkinsas arba „GitHub Actions“, kaip ir bet kuris kitas dramaturgo testas
  • Aš nemoku mėnesinio abonemento už stebuklingą platformą
  • Aš tiesiog praplečiant mano įprastą darbo eigą su dideliu intelektu

Po viso mėnesio kasdienio naudojimo galiu drąsiai pasakyti: tai ne hype.

  • The Planuotojas, generatorius ir gydytojas tikrai pakeičiau tai, kaip aš dirbu. Aš praleidau didžiąją savaitės dalį rašymas ir priežiūra bandymo kodas, skirtas praleisti laiką peržiūrint testo kodas – tai, tiesą sakant, yra daug geresnis kokybės užtikrinimo inžinieriaus smegenų panaudojimas
  • mano bandymų aprėptis išaugo greičiau nei kada nors buvo bet kuriame projekte. The priežiūros našta sumažėjo beveik iki nieko

Ar kokybės užtikrinimo inžinieriai išeina iš darbo? Visiškai ne.

  • Mūsų darbas nėra įvesti page.locator().click()
  • Mūsų darbas yra kokybės užtikrinimas
  • Dramaturgų agentai tiesiog susidoroja su varginančiu spausdinimu, suteikdami man savo laikas atgal kad galėčiau sutelkti dėmesį į sudėtingesnes, strategines testavimo problemas

Jei paskęstate neautomatinio testo kūrime, padarykite sau paslaugą:

  • Atnaujinkite savo „Playwright“ CLI
  • Paleiskite agentus ir pabandyk

Netikėkite mano žodžio dėl vienos popietės eksperimento – paleisti jį mėnesį kaip ir aš, ir esu įsitikinęs, kad tu niekada negrįši



Source link

Gal būt praleidote

Draugai: - Marketingo agentūra - Teisinės konsultacijos - Skaidrių skenavimas - Klaipedos miesto naujienos - Miesto naujienos - Saulius Narbutas - Įvaizdžio kūrimas - Veidoskaita - Teniso treniruotės - Pranešimai spaudai - Kauno naujienos - Regionų naujienos - Palangos naujienos