Бирдиктер
1. Программалык камсыздоону тестирлөөдө жана QAда жасалма интеллектке киришүү: ролдор, чек аралар, контрафакттык тобокелдик жана валидация 2. Сыноо сценарийи жана тесттик ишти түзүү: Талаптан комплекстүү башкарууга 3. Чалгындоо тестирлөө жана тесттик идеяларды түзүү: AI менен мүчүлүштүктөрдү табуу 4. UI тестин автоматташтыруу: AI менен селен, драматург жана кипарис кодун түзүү 5. API Test Automation: AI менен келишим, схема жана акырына чейин текшерүү 6. Бирдиктин тестин түзүү жана тестирлөө: AI менен бекем сыноо 7. Ката отчетун жазуу жана артыкчылыктуу: AI менен так, кайталануучу жазуулар 8. Сыноону камтуу анализи жана тобокелдикке негизделген тестирлөө: AI менен туура максат коюу 9. Регрессиялык тестирлөө, тестти тейлөө жана морттук тесттер менен күрөшүү 10. Жалган ишеним тобокелдиги, тесттин сапаты жана мутация тесттери: тестирлөө тесттери 11. Иштин акырына чейин, CI/CD интеграциясы, этика жана коопсуздук: AIны жоопкерчилик менен колдонуу
бирдиги 4 / 11

UI тестин автоматташтыруу: AI менен селен, драматург жана кипарис кодун түзүү

Пайдалар:

  • Жасалма интеллект менен ишенимдүү UI тест кодун чыгаруу мүмкүнчүлүгү, анын ичинде маалымат-тест, ачык күтүү жана колдонуучунун чыныгы натыйжасын ырастаган ырастоо
  • Морттук сыноолордон (начар селектор, сокур күтүү) качуу жана Page Object Model түзүмүндө сыноолорду жеңилдетүү мүмкүнчүлүгү
  • Кодду бузуу менен жасалган ар бир UI тестин сынап көрүү жана жасалма түрдө өткөн тесттерди аныктоо жана оңдоо мүмкүнчүлүгү

Колдонуучу браузерде жасаган ар бир чыкылдатуу, ар бир форма толтуруу, ар бир бетке өтүү кол менен кайра-кайра текшерилиши мүмкүн эмес — ошондуктан UI сыноо автоматташтырылган (колдонуучунун интерфейси; бул тесттер чыныгы браузерди программалык түрдө айдап, колдонуучунун жүрүм-турумун туурайт) бар. Селен, драматург жана кипарис бул жумуш үчүн кеңири таралган куралдар болуп саналат. Жасалма интеллект (AI) бул инструменттер үчүн кодду жазууда жогорку чеберчиликке ээ: сиз сыноо ишин сүрөттөп бересиз, AI сизге автоматташтырылган иштөө скриптинин долбоорун берет. Бирок бул жерде бул модулдун борбордук эскертүүсү кайрадан ишке кирет: AI чыгарган UI тест коду көбүнчө "жашыл күйүп, бирок туура эмес нерсени текшерген" же шамалга чапкан морт сыноолор болушу мүмкүн. Сиздин милдетиңиз бул кодду иштетүү эмес, бирок ал чындыгында туура нерсени тастыктаганына ынануу.

Бул бөлүмдө биз AI менен бекем, колдоого алына турган жана чындап текшерүүчү UI тесттерин чыгарууну көздөп жатабыз; Сиз морт сыноолордон качууну үйрөнөсүз.

Катуу UI тестирлөөнүн үч түркүгү

1. Туура элемент локатор. Сыноо беттеги элементти табуу үчүн селекторду колдонот. AI көбүнчө морт селекторлорду чыгарат: узун XPath жолдору (дареги барактын структурасына өтө көз каранды), CSS классынын аталыштарына негизделген селекторлор (дизайн өзгөргөндө тыныгуу). Күчтүү жол - бул иштеп чыгуучу тестирлөө үчүн кошкон data-testid сыяктуу туруктуу атрибуттар. Муну AIга ачык таңуулаңыз.

2. Ачык күтүү. UI тестирлөөдөгү аялуу булагы - бул убакыт. Тынымсыз уйку(3) (сокур күтүү) жаман практика: кээде жетишсиз, кээде убакытты текке кетирет. Туура жол - "бул элемент пайда болгуча күт" деген ачык күтүүнү колдонуу. Драматург муну негизинен автоматтык түрдө жасайт; Селенде сиз аны ачык сурашыңыз керек.

3. Маанилүү ырастоо. Сыноо колдонуучу чындап көрө турган натыйжаны текшериши керек, мисалы, "барак жүктөлгөн" эмес, "экранда буйрутма номери пайда болду". Эгерде AI тарабынан жасалган тестте ырастоо жок же маанилүү эмес болсо, анда ал тест псевдо-өтүүнү (1-бирдик) жаратат.

Эскертүү: AI тарабынан түзүлгөн UI сынагын биринчи жолу көргөндө, эң көп дегенде үч нерсени текшериңиз: селекторлор аткарылдыбы (маалымат-тестид), күтүүдө (сокур уйку жок) жана ырастоо колдонуучунун чыныгы натыйжасын ырастайбы? Эгерде бул үчөө туура болсо, анда тест бекем болушу мүмкүн.

Барак объектисинин модели

Тесттер чоңойгон сайын, ар бир тесттин ичиндеги селекторлорду жазуу техникалык тейлөөнүн коркунучтуу түшүнө айланат. Барак объектисинин модели (POM — ар бир барак/экран үчүн селекторлорду жана аракеттерди бир класска чогулткан дизайн үлгүсү) селекторду бир жерде кармап турат; Интерфейс өзгөргөндө, сиз аны бир файлда жаңылайсыз. AI тесттерди түз эмес, POM түзүмүндө чыгарсын; Бул тейлөөнү кескин жеңилдетет.

Алсыз тездик / Күчтүү тездик

Алсыз: "Кирүү баракчасы үчүн Selenium тестин жазыңыз."
Күчтүү: "Playwright (TypeScript) менен кирүү агымынын тестин жазыңыз. Селекторлор data-testidди гана колдонушат; баракчанын аталышын эмес, колдонуучу көргөн нерсени көзөмөлдөөнү колдонбоңуз."

Күчтүү тездик; Курал тилди, селектор саясатын, күтүү стратегиясын, архитектураны (POM) жана экспрессивдүү ырастоону күтүүнү берет.

Сыноо маалыматтары жана айлана-чөйрөнүн көз карандысыздыгы

Катуу UI тести туура жазылган гана эмес, ошондой эле өзүнүн тест маалыматтарын түзөт жана тазалайт. AI тарабынан түзүлгөн тесттер көбүнчө чөйрөдө мурунтан эле бар деп болжолдонгон колдонуучуга же жазууга шилтеме берет (“администратор колдонуучу катары кириңиз”). Бул божомол сыноо башка чөйрөдө же башка сыноодон кийин иштегенде үзүлөт (9-бөлүктө тартипке көз карандылык маселеси). Чындыгында, ар бир тест тесттин башында керектүү маалыматтарды жаратат (же аны API чалуу менен даярдайт) жана аягында тазалайт. AIга "бул тест тесттин ичинде көз каранды болгон бардык маалыматтарды орнотууну; сырттан даяр маалыматтарды кабыл албаңыз" деп ачык көрсөтмө бериңиз.

Дагы бир маанилүү жагдай - чыныгы колдонуучу маалыматтары менен UI тестирлөө жүргүзүү эмес. Эгерде өндүрүштүк маалымат базасынын көчүрмөсү сыноо чөйрөсүндө колдонулса, бул жазуулар жеке адамдардын маалыматтары болуп саналат; скриншоттор жана тест жазуулары бул маалыматты ачып бериши мүмкүн. Синтетикалык (ойдон чыгарылган) тесттик эсептерди колдонуу; ал купуялуулукту коргойт жана тесттерди кайталануучу кылат. Чыныгы кардар эсеби менен "заказды жокко чыгаруу" тестин өткөрүү этикалык да, операциялык да ката болуп саналат.

Кеңеш: UI тесттерин мүмкүн болушунча азыраак өткөрүңүз; Иш жүзүндө текшерүүнү тез жана туруктуу болгон API жана бирдик сыноолоруна калтырыңыз. UI тестирлөө кымбат жана морт - аны колдонуучу агымын чындап текшерүү үчүн гана колдонуңуз (пирамида логикасын сыноо).

Унаа салыштыруу

өзгөчөлүгү

селен

драматург

кипарис

тилдер

Java, C#, Python, JS

JS/TS, Python, .NET, Java

JavaScript/TypeScript

авто күтүү

Жок (кол менен)

Ооба (күчтүү)

Ооба

Көп браузер

кең

Chromium/Firefox/WebKit

Хром үстөмдүк кылуучу

морттукка тенденция

Жогорку (кол менен күтүү режими)

төмөн

төмөн

Үйрөнүү оңой

орто

жеңил

жеңил

параллелдүү операция

Тор керек

орнотулган

Резидент/акы төлөнүүчү

AIдан код сурап жатканда, анын кайсы унаага таандык экенин так айтыңыз; Болбосо, ал чаташкан, иштебеген кодду жаратышы мүмкүн.

Көчүрүү үчүн төрт шаблон

1) Катуу UI тестти түзүү:

Сиздин ролуңуз: тестти автоматташтыруу боюнча улук инженер. Төмөнкү агым үчүн [курал + тил] менен тесттерди жазыңыз: [агым].Эрежелер:- Селекторлор гана маалыматтар-testid; XPath/CSS классын колдонуу. - сокур уйку жок; Ачык/автоматтык күтүүнү колдонуңуз. - Барак объектисинин моделин колдонуу. - Ар бир ырастоо колдонуучунун чыныгы натыйжасын текшерсин. Кайсы кабыл алуу критерийлерин ырастап жатканыңызды ар бир тесттин башында комментарий бериңиз.

2) Морттуулукту көзөмөлдөө:

Төмөнкү UI тестин морттукка карап көрүңүз: - Туруксуз селектор барбы (узун

3) Барак объектисине айландыруу:

Төмөнкү жөнөкөй тест кодун Page Object Model структурасына айландырыңыз. Селекторлорду жана аракеттерди барак класстарына жылдыруу; Сыноо файлы сценарийдин агымын гана окусун. [Курал/тил].Код: [кодду чаптоо]

4) псевдоөтүү далили:

Бул UI тести чындыгында ырастаарын далилдеңиз: Мен бул сыноону КЫЗЫЛ кыла турган колдонмо кодуна кандай гана өзгөртүү киргизем? Эгер сиз тестти сындырган өзгөртүү таба албасаңыз, анда тест адекваттуу эмес; жетишпеген ырастоолорду кошуу.Тест: [тест коюу]

үч мини учурлар

1-жагдай — Морт селектордон бошотуу. AI менен жасалган 40 тесттин бир тобунун 70%ы интерфейс жаңыртылгандан кийин бузулган; алардын бири да чыныгы мүчүлүштүктөр болгон эмес, алардын баары морт XPath селекторлору болгон. Команда тесттерди "морттугун текшерүү" шаблоны менен тесттик маалымат базасына айландырды. Кийинки үч интерфейс жаңыртууларында жалган тыныгуулардын саны нөлгө чейин төмөндөдү; тейлөө убактысы жумасына 6 сааттан 30 мүнөткө чейин кыскарды.

2-жагдай - жасалма өтүүчү UI тести. AI "арабага кошуу" тестин чыгарган; сыноо жашыл болду. "Fe-proof-of-passage" шаблоны иштетилгенде, тест баскычты чыкылдатууну жана барактын аталышын гана текшерип, арабанын эсептегичинин көбөйгөн-көбөйбөгөнүн эч качан текшерген эмес. Арабанын логикасы толугу менен бузулса да, сыноо өттү. Чыныгы ырастоо кошулду (араба бейджиги "1").

3-жагдай - Сокур күтүү тузак. AI тарабынан өндүрүлгөн Selenium тестинде ар бир кадамдан кийин уйку (2) болгон; 60 тест 14 мүнөткө созулду жана дагы эле кээде үзүлүп калды. Ачык күтүүгө өткөндөн кийин (элемент чыккыча күтө туруңуз) убакыт 5 мүнөткө чейин кыскарып, морттук жоголду. Сокур күтүү жай да, ишенимсиз да болгон.

Жалпы каталар

  • Морт тандоочуларга макул. AI тарабынан түзүлгөн узун XPaths колдонуу; Сыноолор биринчи интерфейс өзгөргөндө бузулат.
  • Сокур “уйку” калтыруу. Белгиленген күтүү менен убакытты "чечүү"; жай да, чечкинсиз да.
  • Тривиалдуу ырастоо. Жөн гана баракча жүктөлгөндүгүн текшериңиз; колдонуучунун чыныгы натыйжасын текшерүү эмес (жалган өтүү).
  • POMсыз өсүңүз. Ар бир тестке селекторлорду бөлүштүрүү; Интерфейс өзгөргөндө ондогон файлдарды кол менен жаңыртуу.
  • Курал көрсөтүлгөн эмес. AIга кайсы куралды/тилди каалаарын айтпаңыз; башаламан, иштебеген код алуу.
  • Түзүлгөн кодду иштетип, өтүп жатканда ишенүү. Кодду бузуу менен сыноо эмес.

Кыскача айтканда

UI тестирлөө автоматташтырылган программа менен чыныгы браузерди айдап колдонуучу жүрүм-турумун текшерет. AI бул кодду тез жаратат, бирок эки чоң туңгуюк бар: морттук тесттер (начар селектор, сокур күтүү) жана жасалма өтүүчү тесттер (толук эмес/тривиал ырастоо). Катуу UI тестирлөөнүн үч түркүгү - бул Commit Selector (маалымат-тестид), ачык күтүү жана колдонуучунун чыныгы натыйжасын тастыктаган ырастоо. Page Object Modelинде түзүлгөн тесттерге ээ болуу тейлөөнү түп-тамырынан жөнөкөйлөтөт. Ар бир түзүлгөн тестти "кандай өзгөртүү муну бузуп салат?"

Колдонмо тапшырмасы

Өзүңүздүн долбооруңуздан колдонуучу агымын тандаңыз (мисалы, кирүү же издөө). AI тесттерин "бекем UI тесттин мууну" үлгүсү менен жазыңыз. Андан кийин: (1) селекторлорду текшерип, оңдоп, "морттугун текшерүү" менен күтөт, (2) ар бир тест чындыгында "псевдо-өткөрүү далили" менен тастыкталганын далилдейт, (3) кодду бузуп, тесттин кызылга айланып кеткенин байкаңыз. Өндүрүлгөн жана оңдолгон сыноолордун санын, ошондой эле сиз тапкан аялуу жерлердин жана псевдо-өткөрүүлөрдүн санын кабарлаңыз.

текшерүү тизмеси

  • [ ] Мен AIга куралды, тилди, селектордук саясатты жана архитектураны (POM) так бердим.
  • [ ] Мен селекторлор маалымат-testid экенин ырастады.
  • [ ] Мен сокур уйкунун ордуна ачык/автоматтык күтүүнү колдондум.
  • [ ] Ар бир ырастоо колдонуучунун чыныгы натыйжасын ырастаарын текшердим.
  • [ ] Мен кодду бузуу менен ар бир тестти сынап көрдүм; Мен анын кызарып кеткенин көрдүм.
  • [ ] Мен тесттерди Page Object Model структурасында чогулттум.