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

Сынақтарды қамтуды талдау және тәуекелге негізделген тестілеу: AI-мен дұрыс мақсат қою

Табыстар:

  • Сенім емес, карта ретінде сызық, тармақ және шартты қамту сияқты көрсеткіштерді оқу мүмкіндігі және жоғары қамту жалған сенім тудыруы мүмкін екенін түсіну
  • Талап көлемін код көлемінің жанына қою және жасанды интеллект арқылы қадағаланатын бос орындарды көрсету мүмкіндігі
  • Тәуекел = ықтималдық × әсер формуласымен мүмкіндіктерді бағалау мүмкіндігі, ең жоғары тәуекелге бағытталған шектеулі сынақ күш-жігері және әдейі қолданылу аясынан тыс құжат

Сіз әрбір бағдарламалық құралды мәңгілікке тексере алмайсыз; Уақыт пен ресурстар шектеулі. Сонымен, нақты сұрақ: шектеулі сынақ күшін қайда қою керек? Бұл сұраққа екі тұжырымдама жауап береді. Сынақ қамтуы — сынақтардың кодтың немесе талаптардың қаншалықты әсер ететінін өлшейтін көрсеткіш — тексерілетін нәрсені білдіреді. Тәуекелге негізделген тестілеу - аймақтың нашарлау ықтималдығына және ол нашарлаған кезде келтіретін зиянға сәйкес сынақ басымдығын анықтау тәсілі - күш-жігерді барынша тәуекелге бағыттайды. Жасанды интеллект (AI) екеуінде де қуатты талдау серіктесі болып табылады: ол қамтудағы бос орындарды көрсетеді, тәуекел аймақтарын ұсынады. Бірақ орталық ескерту қалады: AI көретін ауқымдардың саны жаңылыстыруы мүмкін; Тіпті 100% жолды қамтуға ештеңені растамайтын сынақтармен қол жеткізуге болады. Сіздің міндетіңіз - траст емес, карта ретінде ауқымды оқу.

Қамту көрсеткіштерін дұрыс оқу

Ауқымдылықтың бірнеше түрі бар, олардың барлығы бірдей мағыналы емес:

  • Жолды қамту: кем дегенде бір рет қанша жол код орындалды. Ең жиі кездесетін, бірақ ең әлсіз критерий; Сызықтың жұмыс істеуі оның дұрыс әрекет ететіндігінің дәлелі емес.
  • Филиалды қамту: әрбір if тармағы (шын және жалған) тексерілген. Жолдан да мағыналы.
  • Шартты қамту: күрделі жағдайларда әрбір қосалқы шартты бөлек сынау.
  • Жолды қамту: код ішіндегі логикалық жолдардың комбинациясы. Бұл ең жан-жақты, бірақ іс жүзінде толық қол жеткізу қиын.
Абайлаңыз: қамту пайызы «сапа көрсеткіші» емес. 100% жолды қамту жолдардың жұмыс істеп тұрғанын көрсетеді; ол дұрыс нәтиже береді емес (1 бірліктегі псевдопас). Ауқымды «бәрі сынақтан өтті» деген сенімділік ретінде емес, «мен ешқашан қайда қарамадым» деген сұраққа жауап ретінде пайдаланыңыз.

Соқыр нүктелерді қамту

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

Тәуекелге негізделген тестілеу: біз күшімізді қайда жұмсаймыз?

Тәуекел = ықтималдық (сыну мүмкіндігі) × әсер (сыну кезіндегі зиян). AI көмегімен сіз осы екі осьте мүмкіндіктер тізімін жинап, жылу картасын жасай аласыз. Жоғары ықтималдық × жоғары домендер (төлем, аутентификация, деректер тұтастығы) ең қарқынды тестілеуге лайық; төмен × төмен аумақтар (сирек қолданылатын таңдаулы экран) жарық сынағы жеткілікті.

аумақ

ықтималдық

Әсер

Тәуекел

Сынақ тығыздығы

Төлем ағымы

орташа

өте жоғары

жоғары

Терең + автоматтандыру

аутентификация

орташа

өте жоғары

жоғары

Терең + қауіпсіздік

Өнімді іздеу

жоғары

орташа

Орта-жоғары

Автоматтандыру + ашу

Профиль фотосы

төмен

төмен

төмен

жарықты басқару

Анықтама беті

төмен

тым төмен

тым төмен

шолу

Ауқымды қуу тұзағы

Қамту пайызын мақсатқа айналдыру (мысалы, «команда 90% қамтудан өтуі керек» ережесі) қауіпті жанама әсерге ие: әзірлеушілер мен тестерлер нақты тәуекелді шешуге емес, пайызды арттыруға назар аударады. Нәтиже көбінесе растаулары немесе тривиальды сынақтары жоқ кеңейтілген ауқым болып табылады — нөмір жақсы көрінеді, бірақ ешқандай қорғаныс жоқ. Бұл өлшемнің өзі мақсатқа айналғанда бұзылу құбылысы: «өлшеу мақсатқа айналғанда ол жақсы өлшем болудан қалады». Ауқымды өнімділік есеп картасы емес, диагностикалық құрал ретінде пайдаланыңыз.

«Неліктен филиалды қамту маңызды төлем модулінде 40% деңгейінде тұрып қалды?» деген бағытты қарап шығу тиімдірек әдіс болып табылады. Сұрақ «жалпы қамту 90% ме?» Бұл сұрақтан әлдеқайда құнды. Жасанды интеллект ауқымы туралы есепті модуль және тәуекел деңгейі бойынша бөлсін; Қамту деңгейі төмен аймақтарды бөлектеңіз. Осылайша, ауқым соқыр пайыздан гөрі еңбекті бағыттайтын компасқа айналады.

Абайлаңыз: «100% қамту» ұраны - бұл тұзақ. Кейбір кодты сынау (қарапайым аксессуарлар, автоматты түрде жасалған бөліктер) төмен мәнге ие; онда жұмсалған күш жоғары тәуекелді бизнес ережелерінен ұрланған. Мақсат - әрбір жолды емес, әрбір маңызды мінез-құлық пен тәуекелді тексеру.

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

Әлсіз: «Тестілеуді ұлғайту.»
Күшті: "Қабылдау критерийлерінің осы тізімін және осы бар сынақ жағдайларын ескере отырып. (1) Қабылдау критерийлеріне ешбір сынақ сәйкес келмеген кесте (талапты қамту аралығы). (2) Ықтималдық және әсер осьтері бойынша әрбір мүмкіндікке 1-5 ұпай қойыңыз; тәуекел бойынша дәреже = ықтималдық × әсер ету. (3) Шектеулі уақытымда ең жоғары тәуекел аралығын бірінші 5 жолдан бастамауын ұсынамын. жалғыз критерий ретінде қамту;

Күшті жеделдік; ауқымды іскерлік тәуекелмен біріктіреді және шектеулі еңбекке басымдық береді.

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

1) Талаптар ауқымының алшақтығы:

Төмендегі қабылдау критерийлерін және осы сынақ жағдайларын ескере отырып. Бақылау кестесін жасаңыз: әрбір критерий -> оған сәйкес келетін сынақ(тар). Ешқандай сынақтары жоқ критерийлер «ҚАМТАМАЛЫҚ саңылау» деп аталады, ал ешқандай критерийлерге қосылмаған тесттер «КЕРЕК?» деп аталады. Бағалау: Критерийлер: [...] / Тесттер: [...]

2) тәуекелді бағалау:

Бұл мүмкіндіктер/модульдер тізімін ықтималдық (сыну ықтималдығы) және әсер ету (сынған жағдайда зақымдану) осьтері бойынша 1-5 балл қойыңыз. Тәуекел = ықтималдық × әсер ету. Кестеде сұрыптаңыз және әрбір жоғары тәуекел аймағы үшін ұсынылған сынақ түрін (бірлік/API/UI/барлау/қауіпсіздік) көрсетіңіз. Тізім: [...]

3) Қолдану аясын түсіндіру:

Келесі қамту туралы есеп берілді (% жол, филиал %). Маған мынаны айтыңыз:- Бұл сандар нені дәлелдемейді?- Жоғары жолды қамтуға қарамастан қандай аймақтар қауіп төнуі мүмкін?- Қамту көрінбейтін бос орындар үшін қандай қосымша сынақты ұсынар едіңіз (талап, деректер комбинациясы, қауіпсіздік)? Есеп: [қою]

4) Шектеулі уақыт жоспары:

Трансляцияға [X сағат] қалды. Тәуекелдердің келесі рейтингі және жабу бос жерлері берілген. Осы кезеңде максималды тәуекелді төмендететін сынақ жоспары басымдық бойынша дайындалады. Нені саналы түрде сынамауға болмайтынын және мұны істеудің қабылданған тәуекелін нақты көрсетіңіз. Деректер: [...]

үш шағын іс

1-жағдай — 100% қамту, нөлдік сенім. Бір команда желіні 94% қамтумен мақтана алды. «Ауқымды түсіндіру» талдауы сынақтардың көпшілігі растаусыз екенін көрсетті, яғни олар сызықтарды орындады, бірақ ештеңені растамады. Нақты қорғаныс жабыны әлдеқайда төмен болды. Команда сандарға емес, мутацияға тестілеуге назар аударды (10 бірлік); нақты қателерді ұстау жылдамдығы екі есеге артты.

2-жағдай — Тәуекел картасы түзетілген басымдық. Бір команда тестілеу күшінің 40% сирек пайдаланылатын есеп беру экранына жұмсады, төлем ағынын өткізіп жіберді, себебі ол «жұмыс істейді». AI тәуекелін бағалау бұл теңгерімсіздікті көрсетті. Жұмыс күші қайта бөлінді; Екі аптадан кейін төлем ағынында жоғары әсерлі қате табылды және алдын ала тікелей жабылды.

3-жағдай - Сана шеңберінен тыс. Шығарылғаннан кейін 4 сағат өткен соң команда «шектелген кесте» үлгісімен нені сынау керектігін және нені саналы түрде өткізіп жіберу керектігін шешті. Жоғары қауіпті екі ағын терең сынақтан өтті; төмен тәуекелді таңдау экраны «қабылданған тәуекел» ретінде құжатталды және өткізіп жіберілді. Шешім ашық және дәлелді болды; Нұсқа аман-есен шықты.

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

  • Қамту пайызын сапа деп қателесу. Жоғары қатарды қамтуды «сыналған» кепілдік ретінде оқу.
  • Тек кодты қамтуды қарастырыңыз. Өткізу талаптарын қамту (әрбір қабылдау критерийлерін сынау).
  • Тәуекелді есепке алмастан бірдей тестілеу. Төмен қауіпті аймақтарға жұмыс күшін бөлу және сыни ағындарды елемеу.
  • Қолданудан тыс жасыру. Уақыт жеткіліксіз болған кезде тексерілмеген нәрсені құжаттамау; Шығарылымнан кейінгі тосынсыйлар.
  • AI тәуекел дәрежесін сұрақсыз қабылдау. AI өнім контекстін толық білмейді; Ұпайларды сарапшы көзімен реттеңіз.

Қысқаша

Сынақпен қамту және тәуекелге негізделген тестілеу шектеулі күш-жігерді дұрыс жерге бағыттаудың екі құралы болып табылады. Қамту көрсеткіштері (сызық, тармақ, шарт, жол) не қозғалғанын көрсетеді, бірақ оның дұрыс әрекет еткенін дәлелдемейді; Ауқым - бұл карта, сенім емес. Талаптарды қамтуды кодты қамтудың жанына қойыңыз. Тәуекел = ықтималдық × әсер және ең тәуекелге тікелей күш салу формуласымен мүмкіндіктерді бағалаңыз. AI олқылықтарды көрсетеді, тәуекелді бағалайды, шектеулі уақытты жоспарлайды; бірақ соңғы басымдық және «саналы түрде бас тарту» шешімі бизнес контекстін білетін сарапшыда.

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

Өз жобаңыздан модульді таңдаңыз. Жасанды интеллектпен «талаптар ауқымындағы алшақтық» үлгісін іске қосыңыз және қандай қабылдау критерийлері тексерілмейтінін біліңіз. Содан кейін модульдің ішкі мүмкіндіктерін ықтималдық × әсер осьтері бойынша «тәуекелді бағалау» арқылы бағалаңыз. Сізде бар (гипотетикалық) 3 сағат тестілеу уақытын «шектелген кестемен» таратыңыз; Сіз саналы түрде сынамайтын нәрсені және қабылданған тәуекелді жазыңыз. Сіз тапқан ең жоғары тәуекелді қамту аралығын жабатын нақты сынақты қосыңыз.

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

  • [ ] Мен сапа емес, қамту пайызын карта ретінде оқимын.
  • [ ] Кодтық қамтудан басқа, мен талапты қамтуды да алып тастадым.
  • [ ] Мен мүмкіндіктерді ықтималдық × әсер ету арқылы бағаладым және оларды тәуекел бойынша жіктедім.
  • [ ] Мен тестілеу әрекетін ең жоғары тәуекелге бағыттадым.
  • [ ] Менде саналы түрде тексерілмеген және тәуекелді мойындамаған аумақтар бар.
  • [ ] Мен өнім контекстіне негізделген AI тәуекел ұпайларын қарап шықтым.