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

API сынақтарын автоматтандыру: AI көмегімен келісім-шарт, схема және түпкілікті тексеру

Табыстар:

  • Күй кодында, схемада/келісімшартта, бизнес ережесінде және теріс/авторизация қабаттарында жасанды интеллект қолдауымен API тестілеуін тереңдету мүмкіндігі
  • Үлгі жауаптарынан JSON схемасын жасау және түрі мен императивті тексеруі бар күй кодына ғана қараудың жалған сенімінен аулақ болу мүмкіндігі
  • Авторизация және IDOR сияқты қауіпсіздік сценарийлерін синтетикалық деректермен және тек рұқсат шеңберінде қорғаныс мақсатында сынау мүмкіндігі

Қазіргі заманғы бағдарламалық жасақтаманың көпшілігі API арқылы фондық режимде бір-бірімен сөйлеседі (Application Programming Interface — бағдарламалық құралдың екі бөлігі белгілі бір келісім-шартқа сәйкес сөйлесетін интерфейс). Мобильді қолданба элементтерді себетке қосқанда, ол сервердегі API интерфейсіне сұрау жібереді. API тестілеу интерфейсіне қарамастан бұл сөйлесудің дұрыс, қауіпсіз және дәйекті екенін тексереді; Ол UI тестілеуіне қарағанда жылдамырақ, тұрақтырақ және тереңірек. Жасанды интеллект (AI) API тестілеуінде өте тиімді: ол API анықтамасынан сынақтарды жасайды, жауап схемасын (деректер құрылымын анықтайтын келісім) шығарады, шеткі жағдайларды тізімдейді. Бірақ тағы да орталық ескерту қолданылады: AI API сіздің нақты бизнес ережелерін білмейді; «200 қайтарылды» дегенді растайтын үстірт сынақтар жасауға бейім. Сіздің міндетіңіз сынақтың нақты келісім-шарт пен бизнес логикасын тексеретініне көз жеткізу.

Бұл бөлімде сіз Postman, REST Assured және схеманы тексеру сияқты тәсілдермен AI қолдайтын терең API сынақтарын орнатуды үйренесіз.

API тестілерінің қабаттары

Әр қабатта AI әртүрлі көмектесетін API сынақтарын бірнеше тереңдікте қарастырыңыз:

1. Күй коды және негізгі жауап. Сұрау күтілетін HTTP күй кодын қайтарады ма (сәттілік үшін 200/201, қате үшін 400/401/404)? Бұл ең үстірт қабат; AI оңай жасайды, бірақ жалғыз өзі жалған сенім береді.

2. Схеманы/келісімшартты тексеру. Жауаптың құрылымы келісім-шартқа сәйкес келе ме — күтілетін өрістер бар ма, олардың түрлері дұрыс па, міндетті өрістер жоқ па? AI үлгісі жауаптан JSON схемасын - JSON құжатының құрылымын анықтайтын стандартты жасай алады және сынақтар сол схемаға қарсы тексере алады. Бұл өріске негізделген бекітуді қолмен жазудан әлдеқайда сенімді.

3. Іскерлік ережені тексеру. Нақты мән мына жерде: «1000 TL тапсырысы үшін жеңілдік өрісі 100 болуы керек», «тоқтатылған тапсырысты қайтадан жою мүмкін емес». AI ережелерді берген жағдайда ғана оларды тексереді; Бермесең, секіреді.

4. Теріс және қауіпсіздік. Жарамсыз таңбалауыш үшін 401, басқа біреудің деректеріне қол жеткізу үшін 403, нашар дене үшін 400 өшіріңіз. Авторизация сынақтары (пайдаланушы тек өз деректеріне қол жеткізе алатынын тексеру) API қауіпсіздігінің жүрегі болып табылады және қорғаныс мақсаттары үшін жасалады.

Кеңес: AI-ға «тек күй кодын ғана емес, сонымен қатар жауап схемасын және осы бизнес ережелерін растаңыз» деп айтпай, сынақ сұрамаңыз. Әйтпесе, сізде «200 қайтарылды, өтті» деген сынақтар қалады, бірақ API бұзылған деректерді қайтарғанын байқамайсыз.

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

Әлсіз: "Осы API үшін сынақтарды жазыңыз."
Күшті: "POST/тапсырыстың соңғы нүктесі үшін REST Assured (Java) сынақтарын жазыңыз. Келісім: өнім идентификаторы және саны денеде міндетті; 201 және {orderId, жалпы, жеңілдік, күй} сәтті болған кезде қайтарылады. Бизнес ережелері: 1000 TL-ден жоғары 10% жеңілдік; 400, егер саны ;40-ке тең болса; басқа пайдаланушының тапсырысын көру: (1) күй коды, (2) жауаптың JSON схемасын тексеру, (3) жеңілдік бизнес ережесі, (4) әрбір растауды тек 200/201 тексеріп қоймайды;

Күшті шақыру келісім-шартты, бизнес ережелерін, қауіпсіздік сценарийлерін және схеманы тексеруді күтуді береді.

Келісімшарттық тестілеу: командалар арасындағы үзілістердің алдын алу

Микросервис архитектураларында (қолданба бір-бірінен тәуелсіз және API-мен сөйлесетін шағын қызметтерге бөлінген құрылым) қызметтің жауап пішімін өзгерту оған қосылған басқа қызметтерді үнсіз бұзады. Келісімшартты тестілеу — провайдер қызметі мен тұтынушылық қызмет арасындағы API келісімшартының екі жақтан да бұзылмағанын тексеретін сынақ — мұндай үзілістерді ертерек ұстайды. Идея мынада: тұтынушы өндірушіден күтетін жауап формасын «келісімшарт» ретінде анықтайды; Әрбір өзгертумен өндіруші әлі де осы келісімге сәйкестігін тексереді. Осылайша, өрістің атауы немесе түрі өзгерген кезде, тұтынушы апатқа ұшырамас бұрын құбырды хабардар етеді.

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

Кеңес: API ішіндегі өрісті жою немесе өріс түрін өзгерту әрқашан дерлік үзіліссіз өзгеріс болып табылады. Жаңа өрістерді қосу әдетте қауіпсіз. Жасанды интеллект өзгерісті «бұзылатын немесе қауіпсіз» деп жіктеуі шығарылым алдындағы қауіпсіздікті жылдам тексеруді қамтамасыз етеді.

Пошташы немесе кодқа негізделген бе?

критерий

Пошташы/Ньюман

REST сенімді / код (Java, C#, JS)

Үйрену

Жеңіл, көрнекі

Кодты білу қажет

Нұсқаны басқару

JSON жинағы

Тікелей бастапқы кодта

күрделі логика

Шектеулі (JS сценарийлері)

Толық бағдарламалау мүмкіндігі

CI/CD интеграциясы

Ньюманмен

Құрылымға тікелей тәуелді

Схеманы тексеру

Сынақ сценарийлерімен

Кітапханамен күшті

Команда масштабы

шағын/орта

үлкен, жетілген

AI екеуі үшін де код жасайды; Қайсысын қалайтыныңызды анық көрсетіңіз.

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

1) Келісімшарт негізіндегі API сынағы:

Сіздің рөліңіз: API сынақ инженері. Келесі соңғы нүкте үшін сынақтарды [құрал/тіл] арқылы жазыңыз: [әдіс + жол]. Келісім-шарт: [қажетті өрістер, сәттілік коды, жауап құрылымы]. Іскерлік ережелер: [ережелер]. Сынақ қабаттары: (1) күй коды (2) жауап схемасын тексеру(3) әрбір бизнес ережесін (4) теріс ережені және әр келісім шартын қолдану.

2) Үлгі жауаптан схема құру:

Төмендегі үлгі API жауабынан JSON схемасын жасаңыз. Қажетті өрістерді, типтерді, пішім шектеулерін (күн, электрондық пошта, сан ауқымы) көрсетіңіз. Содан кейін осы схемаға қарсы растайтын сынақ үлгісін беріңіз. Жауап үлгісі: [JSON қою]

3) Теріс және рұқсат сценарийлері:

Соңғы нүкте[соңғы нүкте] үшін теріс және қауіпсіздік сынақ жағдайларын жасаңыз. Мыналар кіреді: жетіспейтін/міндетті өріс, қате түрі, тым үлкен мән, жарамсыз/мерзімі өткен таңбалауыш, рұқсат етілмеген ресурсқа кіру (IDOR — ID өзгерту арқылы басқа біреудің жазбасына кіру), жылдамдық шегі. Әрбір сценарий үшін күтілетін күй кодын және қатенің негізгі бөлігін көрсетіңіз. Ескерту: тек менің жеке API-де сыналатын болады, авторизацияланған.

4) псевдосенім бақылауы:

Осы API сынағын тексеріңіз. Сервер дұрыс күй кодын, бірақ FALSEbody/деректерді қайтарса, бұл сынақ орындай ма? Олай болмаса, схеманы және бизнес ережесін тексеруді қосыңыз. Сынақ: [тест қою]

үш шағын іс

1-жағдай — Схеманы тексерудің күші. Команда тек AI көмегімен жасаған сынақтардағы күй кодын тексерді. Бір нұсқада API жалпы өрісті мәтін ретінде қате қайтара бастады («1200»); сынақтар жасыл болып қалды, себебі ол әлі де 200-ді қайтарды. Мобильді қолданба бұзылды. "Үлгі жауапынан схеманы құру" үлгісімен типті тексеруді қосқаннан кейін бірдей қате бірден ұсталды.

2-жағдай — Өкілеттік алшақтық (IDOR). Сарапшы AI жасаған «теріс және авторизация сценарийлері» арасында IDOR сынағын өткізді: Ол A пайдаланушысының таңбалауышы бар B пайдаланушысының тапсырыс идентификаторын сұрады. API 200 және B деректерін қайтарды — авторизацияның маңызды осалдығы. Бұл қорғаныс сынағы тікелей эфирге шықпас бұрын деректердің ағып кетуін жауып тастады.

3-жағдай — Бизнес ережесін айналып өту. AI дисконттың соңғы нүктесі үшін 8 сынақ жасады; барлығы 200-ді тексерді, ешқайсысы жеңілдік сомасын тексермеді. Сарапшы хабарламаға бизнес ережелерін қосып, оларды көшірді. Жаңа сынақтар жеңілдіктің 1000 TL шегінде қате есептелгенін анықтады (жеңілдік 999-ға да қолданылды). Келісімшартты бақылау жеткіліксіз; Бизнес ережелерін бақылау міндетті болып табылады.

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

  • Жай ғана күй кодын қараңыз. «200 қайтты және өтті» деп айту; бүлінген денені көрмеу (жалған-сенім).
  • Схеманы тексеруді айналып өту. Өріс түрлері мен міндеттемесін тексермеу; түрдегі өзгерістер үнсіз өтеді.
  • Бизнес ережелерін ұсынбай тестілеуді сұрау. AI ережелерді білмейді; ол тек техникалық бақылауды жасайды.
  • Теріс және құқық беретін сценарийлерді ұмыту. Қауіпсіздік осалдықтары (IDOR, рұқсатсыз кіру) тек осы сынақтармен анықталады.
  • Нақты/өндірістік белгілер мен деректерді пайдалану. Тестілеу үшін арнайы тасымалдағыштарды және синтетикалық деректерді пайдаланыңыз; Нақты кілттерді көлікке жабыстырмаңыз.
  • Рұқсат етілмеген қауіпсіздік сынағы. Авторизация сынақтарын тек өзіңіздің API интерфейсіңізде және рұқсатпен орындаңыз.

Қысқаша

API тестілеу интерфейсіне қарамастан бағдарламалық жасақтама бөліктерінің сөйлеуін тез және терең тексереді. AI; келісім-шарт сынақтары үлгі жауабынан JSON схемасын және теріс/қауіпсіздік сценарийлерін жасауда өте тиімді. Бірақ жай-күй кодын ғана тексеретін үстірт сынақтар жалған сенімділік береді. Барлық төрт қабатты талап етіңіз: күй коды, схеманы тексеру, бизнес ережесі, теріс және авторизация. Іскерлік ережелер мен келісім-шартты тез арада қойыңыз; Қауіпсіздік сынақтарын синтетикалық деректермен және тек рұқсатпен орындаңыз.

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

Өз жобаңыздан API соңғы нүктесін таңдаңыз. AI төрт деңгейлі сынақтарды «келісімшарт негізіндегі API тестілеу» үлгісімен жазуға мүмкіндік беріңіз. Содан кейін «үлгі жауапынан схеманы құру» арқылы түр/мәжбүрлеуді тексеруді қосыңыз және «жалған сенім тексеруін» қолданыңыз. Жеке сынақ ортаңызда кемінде бір IDOR/авторизация сценарийін іске қосыңыз. Сіз тапқан кез келген келісім-шарт немесе бизнес ережелерін бұзу туралы хабарлаңыз; Егер таба алмасаңыз, оны ұстап алғанын дәлелдеу үшін әдейі бұрмаланған жауапқа қарсы сынақты орындаңыз.

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

  • [ ] Мен тестілеудің төрт қабатын қарастырдым (жағдай, схема, бизнес ережесі, теріс/авторизация).
  • [ ] Мен келісімшарт пен бизнес ережелерін AI-ға анық бердім.
  • [ ] Жауап схемасын (өріс, түр, императив) растайтын сынақтарды орнатамын.
  • [ ] Мен кем дегенде бір рұқсат/IDOR сценарийін қорғаныс ретінде қолданып көрдім.
  • [ ] Мен нақты таңбалауыш/деректер орнына сынақ ортасын және синтетикалық деректерді қолдандым.
  • [ ] Мен әрбір сынақ бүлінген жауапты ұстайтынын «жалған сенімді тексеру» арқылы дәлелдедім.