Бірліктер
1. Бағдарламалық жасақтаманы тестілеудегі және QA-дағы жасанды интеллектке кіріспе: рөлдер, шекаралар, контрафактілік тәуекел және валидация 2. Сынақ сценарийі және сынақ жағдайын құру: талаптан кешенді бақылауға дейін 3. Барлау тестілеу және сынақ идеясын құру: AI көмегімен креативті қателерді аулау 4. UI сынақтарын автоматтандыру: AI көмегімен селен, драматург және кипарис кодын жасау 5. API сынақтарын автоматтандыру: AI көмегімен келісім-шарт, схема және түпкілікті тексеру 6. Бірлік сынақтарын жасау және сынақтан өткізу: AI көмегімен сенімді тестілеу 7. Қате туралы есеп жазу және басымдылық: AI көмегімен таза, қайталанатын жазбалар 8. Сынақтарды қамтуды талдау және тәуекелге негізделген тестілеу: AI-мен дұрыс мақсат қою 9. Регрессиялық тестілеу, сынақты қолдау және сынғыш сынақтармен күресу 10. Жалған сенім қаупі, сынақ сапасы және мутация сынағы: тестілеу сынақтары 11. Жұмыс процесі, CI/CD интеграциясы, этика және қауіпсіздік: AI-ны жауапкершілікпен пайдалану
Бірлік 1 / 11

Бағдарламалық жасақтаманы тестілеудегі және QA-дағы жасанды интеллектке кіріспе: рөлдер, шекаралар, контрафактілік тәуекел және валидация

Табыстар:

  • Жасанды интеллект QA процесінде нақты уақытты қай жерде үнемдейтінін және тапсырманың тәуекел деңгейіне байланысты «жариялануға дайын» сияқты сапалы шешімдер адамдарға қалдырылатынын ажырата білу.
  • Жалған өту қаупін тану және кодты әдейі бұзу арқылы әрбір AI тестін сынайтын тексеру тәртібін енгізу мүмкіндігі
  • Сынақ деректерін, жеке деректерді және кілттерді қорғау мүмкіндігі және қауіпсіздік тестін тек авторизация аясында және қорғаныс мақсаттарында орындау әдетіне ие болу.

Шығарылатын түнді қарастырыңыз. Жүздеген сынақтар жүргізілді, олардың барлығы жасыл шамға ие болды, команда жеңілдеп, бағдарламалық жасақтама іске қосылды. Келесі күні таңертең тұтынушы төлем экраны бұзылғанын хабарлады. Тесттер жасыл түсті, бірақ ол қатені көрмеді. Бұл сапаны қамтамасыз ету (QA) мамандығының ең жасырын қорқынышы, яғни бағдарламалық жасақтаманың қажетті сапада болуын жүйелі түрде қамтамасыз ететін тәртіп: жасыл болып жанып тұрған, бірақ іс жүзінде ештеңені растамайтын сынақ. Жасанды интеллект (AI — тарихи деректерден үлгілерді шығаратын және мәтін мен кодты жасайтын бағдарламалық жасақтама) бұл кәсіпке енген кезде, дәл осы кошмардың үлкен жеделдету және үлкейтуі болады. Бұл модульдің бастапқы уәдесі анық: AI – тестілеу көмекшісі, сызба генераторы және идея мультипликаторы; Сіз «бұл бағдарламалық құрал шығаруға дайын ба» деген шешімге қол қоятын сынақшысыз.

Бұл бірінші бөлімде біз құралға емес, тәртіпке назар аударамыз. Сіз AI QA процесінде нақты уақытты қай жерде үнемдейтінін, қай жерде қауіпті екенін, «жалған өту» деп аталатын алдамшы жасыл неліктен ең үлкен қауіп екенін, әрбір нәтижені қалай тексеруге болатынын және қай құралға қандай деректерді беруге болатынын білесіз. Бұл іргетас салынбай, кейінгі қондырғылар ауада қалады.

Тестілеу процесінде AI қай жерде пайдалы?

Тест тапсырмаларын екі үлкен кластерге бөлейік. Бірінші кластер: қайталанатын, өндірілетін, жобалық жұмыстар. Талаптан сынақ жағдайын жасау, тоқтау нүктелерін тізімдеу, экран үшін автоматтандыру кодының қаңқасын жазу, күрделі қате жағдайын ұқыпты қате есебіне аудару, журнал файлдарының жүздеген жолдарын қорытындылау, API жауабынан схеманы шығару. Бұл тапсырмаларда AI минуттарды секундтарға қысқартады және шаршамайды.

Екінші кластер: нәтижесі сапа, сенім және жауапкершілік болып табылатын шешімдер. «Бұл нұсқа іске қосыла ала ма», «бұл қате маңызды ма немесе оны кейінге қалдыруға бола ма», «бұл сынақты қамту жеткілікті ме», «бұл сценарий нақты пайдаланушы қаупін ала ма» және т.б. сияқты шешімдер контекст, өнім білімі мен жауапкершілігін талап етеді. Мұнда AI опцияларды, жобаларды жасайды, бірақ сіз «өту/өтпеу» және «өту/жоқ» деп шешесіз.

Айырмашылықты бір сөйлеммен түсіндірейік: AI «қандай жағдайларды сынауға болады және оны сынайтын кодты қалай жазуға болады» күшті; «Бұл бағдарламалық жасақтама шынымен жұмыс істей ме және оған кім кепілдік береді?» Деген сұраққа қатысты шешім сіздікі.

Кеңес: Жұмысты AI-ға бермес бұрын: «Егер бұл нәтиже қате болса және мен байқамай қалсам не болады?» Деп сұраңыз. Егер жауап «бірнеше минут жоғалтамын» болса, оңай делегат беріңіз. Егер жауап «ақаулы бағдарламалық жасақтама іске қосылса» болса, AI жобаны шығаруға рұқсат етіңіз және сіз шешімді және тексеруді қабылдайсыз.

Жалған өту: QA-дағы AI-ның бірінші қаупі

Сынақ жасыл болып жанса, бұл екі нәрсені білдіруі мүмкін: бағдарламалық құрал шын мәнінде дұрыс жұмыс істейді немесе сынақ қате жазылғандықтан қатені көрмейді. Екіншісі жалған өту деп аталады — сынақ «өту» дейді, бірақ іс жүзінде ештеңені растамайды. Бұл қауіп AI көмегімен жасалған сынақтарда айтарлықтай артады, өйткені AI еркін, тегіс көрінетін, бірақ бос сынақтарды жазуда өте сәтті.

Жалған өтудің ең көп таралған үш түрі: (1) Бекітусіз тестілеу — код іске қосылады, бекітулер жоқ, әрқашан өтеді. (2) Өзін-өзі тексеру сынағы — сынақтың күтілетін мәні сыналатын кодтың шығысынан есептеледі; Яғни, код не шығарса да, сынақ «дұрыс» деп қабылдайды. (3) Қате нәрсені растайтын сынақ — бекіту бар, бірақ ол нақты бизнес ережесін емес, маңызды емес нәрсені (мысалы, «жауап нөл емес») тексереді.

Абайлаңыз: жасыл сынақ тақтасы сапаны дәлелдемейді; Жақсы жағдайда «біз жазған басқару элементтері қазір бұзылмаған» дейді. AI шығаратын сынақтан «өту» көру арқылы жұбанбаңыз - нақты сұрақ: егер мен кодты әдейі бұзсам, бұл сынақ қызылға айналады ма? Егер ол айналмаса, бұл сынақ әшекей болып табылады.

Осы модульде қайталанатын алтын ереже: кодты әдейі бұзу арқылы әрбір AI тестін тексеріңіз. Сынақ әлі жасыл болса, бұл сынақ жұмыс істемейді. (Біз бұл идеяны 10-бөлімде мутация сынағы ретінде тереңдетеміз.)

Тексеру пәні: үш қадам

AI сенімді сөйлейді; Бұл шындық дегенді білдірмейді. Әрбір нәтижеге қолдану үшін үш сатылы рефлексті дамытыңыз:

  1. Оны талапқа байланыстырыңыз. Әрбір сынақ жағдайы және AI шығаратын нақты талапқа немесе қабылдау критерийлеріне (жұмыс «орындалды» деп санау үшін сәйкес келетін шарттар) негізделуі керек деп бекітеді. «Бұл сценарий қандай ережені растайды?» сұраңыз.
  2. Қызылды қараңыз. Жасалған сынақты кодты бұзып, бір рет іске қосыңыз. Егер ол қызыл түспесе, сынақ жарамсыз болып табылады. Бұл AI тестілеуіндегі келіспейтін қадам.
  3. Оны мәтінмәндік сүзгіден өткізіңіз. Шығару өнім әрекеті, архитектурасы, нақты пайдаланушы ағыны деп білетін нәрсеге сәйкес келе ме? Сіздің домен біліміңіз - соңғы сүзгі.

Деректер құпиялылығы және қауіпсіздігі: не қайда барады?

Сынақ ортасында жұмыс істейтін деректер жиі сезімтал: нақты тұтынушы жазбалары, өндірістік дерекқор көшірмелері, API кілттері, ішкі жүйе мекенжайлары, әлі жарияланбаған мүмкіндіктер. Қарапайым классификация жасаңыз: Ашық деректер (құжатталған, жалпыға қолжетімді) кез келген көлік құралын енгізе алады. Ішкі деректер (бастапқы код фрагменттері, ішкі құжаттама) тек агенттік бекіткен құралдарға. Құпия деректер (нақты тұтынушы деректері, жеке басын куәландыратын ақпарат, осалдық мәліметтері, кілттер) деректері модельдік оқытуға бармайтын, жақсырақ маскаланған мекеменің келісімшарттық құралдарына ғана енеді.

Қауіпсіздікті тестілеу контекстінде қосымша шектеу бар: осы модульде үйренгендердің барлығы қорғаныс мақсатында — өз өніміңіздің қауіпсіздігін сенімді түрде тексеруге арналған. Басқа біреудің жүйесіне рұқсатсыз ену, нақты осалдықтарды қаруландыру немесе сізде өкілеттігі жоқ жүйені сынау үшін AI пайдалану этикалық емес және қылмыс болып табылады. Рұқсатсыз (көлемі мен рұқсатынсыз) ешқандай қорлау сынақтары жүргізілмейді.

Кеңес: Нақты тұтынушы деректерінің орнына синтетикалық (жасанды жасалған) сынақ деректерін пайдаланыңыз. AI-дан «шынайы, бірақ толығымен ойдан шығарылған сынақ деректерін жасауды» сұрау құпиялылықты сақтайды және соңғы жағдайларды әртараптандырады.

үш шағын іс

1-жағдай — Уақытты үнемдеу дұрыс жерде. Ekomerce командасының сынақшысы әрбір шығарылым үшін 30 беттік талаптар құжатынан сынақ сценарийін қолмен жасауға 6 сағат жұмсады. Ол құжатты (коммерциялық құпияны қамтымаған бөлігін) YZ-ге беріп, құрылымдық сценарий жобасын сұрады; Уақыт 90 минутқа дейін қысқарды. Ол үнемдеген уақытын AI жіберіп алған бизнес ережелерінің шеткі жағдайларын қосу арқылы тексеруге арнады. AI қайталанатын жұмысты алып тастап, шешімді адамға қалдырды.

2-жағдай — жалған жол жүру ұсталды. Әзірлеуші ​​AI есептеу функциясына арналған 12 бірлік сынағы жазуға ие болды; олардың барлығы жасыл түсті. Сынақшы «қызылды қараңыз» қадамын жүзеге асырды: функция ішіндегі қосу белгісін көбейтуге әдейі өзгерту. 12 сынақтың 3-і ғана қызыл түсті. Қалған 9 сынақ нақты растауды бермеді; Ол жай ғана «қате жібермеді» деді. 9 сәндік тест жойылып, орнына 5 нақты тест жазылды.

3-жағдай - Құпиялықты бұзудан қайтару. Интерн жалпыға ортақ құралға нақты тұтынушы электрондық пошталары мен картаның соңғы төрт саны бар қателер журналын қойды және «осы қатені түсіндіріңіз» деді. QA жетекшісі араласты: бұл бақылаудан тыс жеке деректер және KVKK (Жеке деректерді қорғау туралы заң) бұзылған. Дәл осындай жұмыс мекеме бекіткен көлікте жасалды, жеке жерлерді бүркеп, тек стек ізін қалдырды.

Көшірілетін төрт үлгі

1) Жұмысқа жарамдылығын бағалау:

Сіздің рөліңіз: аға QA жетекшісі. Мен сізге сынақ жұмысын сипаттаймын. Маған (1) бұл жұмыс AI-ға қауіпсіз түрде тапсырылатын жобаны жасау/талдау жұмысы ма, әлде адам қабылдауы керек сапалы шешім ме, (2) дұрыс емес нәтиженің ықтимал құны, (3) өкілеттік бермес бұрын мен тексеру керек екенін айтыңыз. Жұмыс: [жұмысты осында енгізу]

2) псевдо-өткізу бақылауы:

Төмендегі сынақты тексеріңіз. Айтыңызшы: - Бұл сынақ қандай мінез-құлықты растайды? (бір сөйлем)- Сынақ ҚЫЗЫЛ болып өтуі үшін сынақтан өтіп жатқан кодты қалай бұзуға болады?- Бұл сынақтың әрқашан өтуіне әкелетін әлсіздік бар ма (бекіту, өзін-өзі тексеру, тривиальды тексеру)? Тест: [тестті осында қою]

3) Сынақ деректерін бүркемелеуді бақылау:

Мен беретін журнал/деректер жеке немесе құпия өрістерді (электрондық пошта, аты-жөні, картасы, кілті, ішкі мекенжайы) қамтуы мүмкін. Біріншіден, маскировка қажет өрістерді тізімдеңіз; Мен оны бүркеп, қайта жіберемін. Оны сол күйінде талдамаңыз.

4) Синтетикалық сынақ деректерін қалыптастыру:

[Келесі өріс құрылымы] үшін толығымен ойдан шығарылған, шынайы сынақ деректерінің 20 жолын жасаңыз. Нақты адам/ұйым деректерін пайдаланбаңыз. Сондай-ақ шеткі жағдайларды қосыңыз: бос орын, тым ұзын мәтін, шектеу мәндері, жарамсыз пішім.

Әлсіз шақыру / Күшті шақыру

Әлсіз: «Осы код бойынша сынақтар жазыңыз».
Күшті: "Жеңілдік функциясы үшін осы Жазу бірлігі сынақтарын есептеңіз. Функцияны қабылдау критерийлері: 1000 TL-ден жоғары 10% жеңілдік, 5000 TL-ден жоғары 20% жеңілдік; теріс сома қате жіберуі керек. Әрбір сынақ үшін қандай ережені тексеріп жатқаныңызды түсініктеме жолымен көрсетіңіз. Шекті мәндерді тексеріңіз (999, 501, 100, 100, 100, 100, 000, 100, 100, 100, 100 теңгелер) -1) егер мен бос кодты бұзсам немесе тривиальды растауды жазбасам, қызылға айналатын нақты растауларды пайдаланыңыз."

Күшті жеделдік; Ол қабылдау критерийлерін, шекті мәндерді, тексеру күтулерін және жалғандыққа қарсы нақты нұсқауларды береді. Әлсіз шақыру AI-ны сәндік сынақ жазуға шақырады.

Жалпы қателер

  • Жасылға сену. Сынақтан өту дәлел деп ойлау. Нақты сұрақ: кодты бұзған кезде ол қызылға айналады ма?
  • Ешбір себепсіз тестілеуді сұрау. Жасанды интеллект нені тексеру керектігін білмей-ақ жалпы, жиі пайдасыз сынақтар жасайды.
  • Растауды өткізіп жіберу. «Жазған AI, рас шығар» деп. Жауапкершілік нәтижені пайдаланатын адамға жүктеледі.
  • Құралға нақты/сезімтал деректерді қою. Өндірістік деректермен, кілттермен немесе жеке деректермен жұмыс істеу.
  • Рұқсат етілмеген қауіпсіздік сынағы. Ауқымды және рұқсатсыз қорлайтын тестілеу әрекеті.
  • Шешім қабылдау өкілеттігін беру үшін AI пайдалану. «Бұл нұсқаны шығаруға болады ма?» деген сұрақ қою. АИ-ге және жауапты қолтаңбаға қою.

Қысқаша

AI - қайталанатын және нәтижелі жұмысты тездететін QA процесіндегі қуатты көмекші; Бірақ сапалы шешім үшін жауапкершілік адамда. Бұл кәсіптегі AI-ның бірінші қаупі - жалған өту: таза көрінетін, бірақ ештеңені растамайтын жасыл сынақтар. Кодты әдейі бұзу арқылы әрбір AI тестін тексеріңіз; Егер ол қызыл түспесе, ол сынақ безендіру болып табылады. Оны талапқа байланыстырыңыз, қызыл түсті қараңыз, контекстік сүзгіден өткізіңіз. Құпия деректерді жасырыңыз, қауіпсіздік сынақтарын тек рұқсат етілген және қорғаныс мақсаттары үшін орындаңыз.

Қолданбалы тапсырма

Жеке жобаңыздан AI-генерацияланған (немесе AI-генерацияланған) 5 бірлік сынақтарын алыңыз. Әрқайсысы үшін: (1) оның қандай мінез-құлықты тексеретінін бір сөйлеммен жазыңыз, (2) сыналған кодты әдейі бұзып, іске қосыңыз және қаншасы қызыл түске боялғанын белгілеңіз, (3) қызыл түспейтіндерді «декор сынақтары» деп белгілеңіз және оларды нақты бекітумен қайта жазыңыз. Нәтижені кестеге қойыңыз: сынақ атауы / ереже ол тексерілді / сынған кезде бұзылды ма / әрекет.

бақылау парағы

  • [ ] Жұмысты тапсырар алдында мен «қате кетсе не жоғалтамын?» деген сұрақ қойдым.
  • [ ] Мен кодты бұзу арқылы әрбір AI тестін тексердім; Қызыл түспегенін нағыз сынаққа ауыстырдым.
  • [ ] Мен сынақ жағдайларын нақты талап/қабылдау критерийлерімен байланыстырдым.
  • [ ] Мен құпия/нақты деректерді құралға бермей жасырдым; Мүмкіндігінше синтетикалық деректерді қолдандым.
  • [ ] Қауіпсіздік сынақтарын тек өкілеттік шегінде және қорғаныс мақсатында ғана қарастырдым.
  • [ ] «Нұсқа шығарылады ма» деген шешімді АИ-ге емес, өзіме қалдырдым.