Добици:
- Способност дизајнирања улоге вештачке интелигенције и тачака одобравања људи у свеобухватном току КА од идеје до издања у контексту ЦИ/ЦД
- У ЦИ/ЦД, не овлашћује АИ да аутоматски 'прође' тест, али примењује ограничења за заштиту поверљивих података и кључева
- Способност да се изврши тестирање безбедности у оквиру овлашћења иу одбрамбене сврхе, и да се усвоје принципи одговорног обелодањивања и етичке транспарентности.
У претходних десет целина користили смо АИ у појединачним задацима: генерисање сценарија, аутоматизовани код, извештавање о грешкама, анализа покривености, тестирање мутација. Ова последња јединица комбинује их све у један одговоран радни ток. Савремени КА није посао који се завршава за столом једне особе; То је процес који живи у оквиру ЦИ/ЦД-а (Цонтинуоус Интегратион / Цонтинуоус Деливери — цевовод где се код стално комбинује, аутоматски тестира и припрема за објављивање често и безбедно). АИ може да дотакне сваку фазу овог процеса. Али како моћ вештачке интелигенције расте, расте и значај њене одговорне употребе: приватност, ауторитет у безбедносном тестирању, етика, и што је најважније, одлука о квалитету зависи од човека. У овој јединици ћете научити ток и границе од краја до краја.
Свеобухватни ток обезбеђења квалитета који покреће вештачка интелигенција
Улога АИ на путу функције од идеје до издања:
1. Анализа захтева. АИ означава нејасноће у захтеву и недостајуће критеријуме прихватања („ово правило не говори колико знакова је минимална лозинка“).
2. Дизајн теста. Сценарио и нацрти предмета (јединица 2), рубни случајеви (јединица 3) су међу критеријумима прихватања.
3. Аутоматизација. Нацрти кода за тестирање јединице (6), АПИ (5) и УИ (4); свака је потврђена мутацијом (10).
4. ЦИ/ЦД интеграција. Тестови се покрећу аутоматски са сваким спајањем кода. АИ прави нацрт конфигурације цевовода (ИАМЛ), сумира евиденцију неуспешних тестова, сугерише могући основни узрок.
5. Одлука о пуштању. Прикупљају се резултати анализе ризика (8) и регресије (9) — али стручњак одлучује да ли може бити успешна.
6. Праћење производње и повратне информације. Грешке уживо постају будући тестови; АИ предлаже случај регресије од грешке у производњи.
Савет: Подесите вештачку интелигенцију као слој у ЦИ/ЦД-у који „убрзава нацрте које прегледају људи“ уместо да „пише тестове и доноси одлуке“. Ниједан аутоматски генерисани тест не би требало да уђе у цевовод без прегледа и одобравања људи.
АИ у ЦИ/ЦД: где да, где не
Стаге
АИ фит
људско је битно
Нацрт кода за тестирање
Да
Ревизија + мутација
Пипелине ИАМЛ драфт
Да
Аутентификација + провера тајног кључа
Неуспели резиме евиденције
Да
Потврда основног узрока
Дијагноза крхког теста
Да
Одлука о трајном решењу
"Може ли постојати верзија?"
бр
Стручна процена и одговорност
Аутоматски "прођите" тест
никад
—
Опрез: Никада немојте давати АИ налог попут „поправи да прође неуспешан тест“ у ЦИ/ЦД. Ово поништава сврху тестирања и аутоматски прикрива грешке. АИ може објаснити грешку, предложити исправку; али "фарбање теста у зелено" мора бити свесна, образложена одлука особе.
Приватност, подаци и безбедност: непроменљиве границе
Приватност. У тестном окружењу, стварни подаци о клијентима, копије производних база података, АПИ кључеви и информације о интерном систему су осетљиве. Немојте их давати јавним АИ алатима. Лични подаци подлежу КВКК и сличним прописима; Евиденције маски и снимке екрана. Користите синтетичке (измишљене) тестне податке где год је то могуће.
Безбедносно тестирање — одбрамбено и овлашћено. Сигурносни тестови научени у овом модулу (ауторизациони/ИДОР тестови, ограничења за отпремање датотека, валидација уноса) служе само за тестирање вашег сопственог производа у оквиру писаног овлашћења и дефинисаног обима. Коришћење вештачке интелигенције за приступ туђем систему без дозволе, оружје за стварне рањивости или извођење тестирања ван домета је и неетично и противзаконито. Када пронађете безбедносну рањивост, придржавајте се принципа одговорног откривања — чувајте рањивост поверљивом и пријавите је релевантној страни како би се могла поправити.
Етика и транспарентност. Не представљајте тестове које је направила АИ као сопствени рад; Изјава да користите АИ унутар тима је транспарентност. Ви сте одговорни за нетачност резултата које је произвела вештачка интелигенција — „АИ је то написао“ није изговор.
Слаби промпт / Јаки промпт
Слабо: „Подесите тест цевовод за ЦИ.“
Снажно: „Нацртајте ЦИ ток рада ИАМЛ за ГитХуб акције: покрените тестове јединице + АПИ за сваки ПР, генеришите извештај о покривености, покрените тестирање мутација (Стрикер) недељно. Немојте уграђивати тајне у код; користите само референцу за тајне. Блокирајте спајање ако су тестови црвени. Ово је НАЦРТ; Прегледаћу и изменити аутоматизоване кораке за управљање тајним кључем. корак 'миграције'."
Снажан промпт; Он намеће ограничења на поверљивост, људски преглед и „без аутоматског тестирања“.
Четири шаблона за копирање
1) План тестирања од краја до краја:
Ваша улога: виши лидер КА. Нацртајте план тестирања од краја до краја од идеје до издања за следећу функцију: [функција + критеријуми прихватања]. Фазе: анализа захтева (неизвесности), дизајн теста, слојеви аутоматизације (јединица/АПИ/УИ), интеграција ЦИ/ЦД, критеријуми одлуке о издању, праћење производње. Наведите улогу АИ и ЉУДСКИХ тачака одобрења у свакој фази посебно.
2) ЦИ/ЦД цевовод:
ЦИ ИАМЛ нацрт за [ГитХуб Ацтионс/ГитЛаб ЦИ/Азуре Пипелинес]:- Јединица + АПИ тест + опсег у ПР- Спречавање спајања у црвеном тесту- Тајне вредности само са тајнама; уграђивање у кодОво је нацрт; Прегледаћу кључне кораке управљања и одобравања. Додавање корака аутоисправљања/проласка теста.
3) Неуспела анализа дневника теста:
У том ЦИ испису, тестови су црвени. Прегледајте дневник; груписати кварове, разликовати могући основни узрок и КОЈИ може бити прави квар и који може бити крхки проблем теста/окружења. Ако постоје лични подаци, маскирајте их. Одлука и исправка ће бити моја. Дневник: [налепи]
4) Претходна провера безбедности/приватности:
Пре него што се ови тестни подаци/дневник пошаљу на АИ алат, проверите: да ли садржи личне податке, АПИ кључ, интерну системску адресу, производне податке? Наведите које области, ако их има, треба маскирати/уклонити. Обрада каква јесте. Садржај: [налепи]
три мини кофера
Случај 1 — Брзина протока од краја до краја. Један тим се позабавио новом функцијом „обнове претплате“ са енд-то-енд протоком који покреће АИ: неизвесности захтева су означене унапред, трослојни тестови су направљени и потврђени мутацијом, повезани са ЦИ. Ова карактеристика је смањила циклус тестирања, који је трајао 5 дана у традиционалном процесу, на 2 дана; али људско одобрење је сачувано у свакој фази, а неизвесност захтева (шта се дешава ако освежавање не успе) је затворена пре емитовања.
Случај 2 — Повратак од цурења кључа. Програмер је имао АИ да генерише ЦИ ИАМЛ, а АИ је уградио АПИ кључ стварног изгледа у ИАМЛ као пример. Корак „претходне провере безбедности/приватности“ је ово ухватио; кључ претворен у тајне референце. Без корака ревизије, кључ би процурио у контролу верзија (гит историја).
Случај 3 — Ограничење овлашћења. Члан тима је желео да примени ИДОР тест који је научио на живом систему пословног партнера из „Био сам радознао“. КА лидер је стао: незаконито је вршити тестирање безбедности на другом систему без писменог овлашћења и дефинисаног обима. Тестирање је вршено само у тестном окружењу сопствених производа, са ауторитетом; Отворена одговорна страна је обавештена релевантном тиму.
Уобичајене грешке
- Доношење одлука о ослобађању од вештачке интелигенције. Постављајући питање "Може ли се ослободити?" АИ и стављајући одговор на место потписа.
- "Пролажење" аутоматизованог теста. У ЦИ, ако АИ обоји тест зеленом бојом; прикривање грешака.
- Давање поверљивих података/кључа возила. Дељење производних података, личних података или АПИ кључева без надзора.
- Неовлашћено тестирање безбедности. Тестирање нападача на другом систему без опсега и дозволе.
- Увођење тестова у цевовод без ревизије. Аутоматски покрените АИ скицу без људског одобрења.
- Пребацивање кривице на АИ. Одбрана нетачног излаза изговарањем „АИ је то написао“.
Укратко
Енд-то-енд КА је процес који се протеже од захтева до праћења производње и живи унутар ЦИ/ЦД; У свакој фази, АИ производи нацрте, сумира дневник и предлаже основне узроке. Али границе су непроменљиве: људи доносе одлуке о тестирању и издају одобрење; АИ никада нема овлашћење да аутоматски „прође“ тест; поверљиви подаци и кључеви не улазе у возило; Безбедносно тестирање се врши само на вашем производу, у оквиру писаног овлашћења и дефинисаног обима, у одбрамбене сврхе, а налази се извештавају уз одговорно откривање. Будите транспарентни када користите АИ; Ви сте одговорни за тачност излаза. АИ убрзава; Гарантујете за квалитет и етику.
Задатак апликације
Направите нацрт плана од идеје до издања са шаблоном „план тестирања од краја до краја“ за функцију из вашег сопственог пројекта; Означите улогу вештачке интелигенције и тачака одобравања људи посебно у свакој фази. Затим генеришите ИАМЛ са „Оквиром ЦИ/ЦД цевовода“ и примените „претходну проверу безбедности/приватности“ на овај ИАМЛ да бисте проверили да ли има уграђених кључева/тајних података. На крају, наведите све тачке „људске одлуке“ у свом плану и у једној реченици образложите зашто се ове одлуке не могу пренети на АИ.
контролна листа
- [ ] Одлуке о пуштању и тестирању приписујем људском одобрењу; Нисам га предао АИ.
- [ ] У ЦИ/ЦД нисам дао АИ дозволу да аутоматски „прође/исправи“ тест.
- [ ] Проверио сам и маскирао поверљиве податке, личне податке и кључеве пре него што сам их послао у возило.
- [ ] Размотрио сам само тестирање безбедности на свом производу, у оквиру писаног овлашћења и обима.
- [ ] Пронађене рањивости сам решио принципом одговорног откривања.
- [ ] Јасно сам изјавио да користим вештачку интелигенцију и сматрам се одговорним за тачност резултата.
Модул Екам
1. Како је 'лажни пролаз' најтачније дефинисан у контексту осигурања квалитета?
- А) Иако тест постаје зелен, он заправо не потврђује никакво понашање; ✔ Не постаје црвено чак и ако је код оштећен
- Б) Тест тече веома споро и истекне.
- Ц) Тест открива стварну грешку и постаје црвен
- Д) Тест се изводи само у производном окружењу
Објашњење: Псеудо пролаз је када тест каже 'прошао', али не потврђује ништа значајно; Тест је зелен, али чак и ако је софтвер неисправан, неће га ухватити. Ово је ризик број један од АИ у КА, јер АИ тежи да производи тестове који изгледају уредно, али су шупљи.
2. Које је најтачније позиционирање вештачке интелигенције у процесу тестирања и обезбеђења квалитета?
- А) Вештачка интелигенција може одлучити да ли верзија може да буде објављена без људског одобрења
- Б) Вештачка интелигенција је помоћник који генерише нацрте и идеје; Одлука и одговорност „да ли је спреман за објављивање“ припада експерту ✔
- Ц) Вештачка интелигенција само пише текст и уопште не може да се бави тест кодом
- Д) Вештачка интелигенција увек пише тачан тест него људска, тако да је преглед непотребно
Опис: Вештачка интелигенција је помоћник за тестирање, генератор нацрта и мултипликатор идеја; производи тест сценарије, аутоматизацијски код и нацрте извештаја. Међутим, одговорност и коначно одобрење одлука о квалитету као што су „да ли је овај софтвер спреман за објављивање“ или „да ли је овај тест прошао“ припада надлежном стручњаку.
3. На основу чињенице да се грешке углавном јављају на граничним вредностима, која техника дизајна теста је да се тестирају 17, 18 и 19 одвојено за старосну границу од 18 година?
- А) Тест транзиције стања
- Б) Табела одлука
- Ц) Анализа граничних вредности ✔
- Д) Експлораторно тестирање
Објашњење: Анализа граничних вредности је заснована на запажању да се грешке најчешће јављају на границама и тестира вредности прага (одмах испод, мало изнад и мало изнад границе) одвојено. То је моћна техника која допуњује класе еквиваленције.
4. Који приступ треба дати предност у одабиру елемената како би се смањила крхкост кода за аутоматизацију УИ теста произведеног помоћу вештачке интелигенције?
- А) Коришћење најдуже могуће путање КСПатх
- Б) Избор елемента према његовом положају пиксела на екрану
- Ц) Коришћење селектора на основу имена ЦСС класа
- Д) Коришћење стабилних атрибута (дата-тестид) додатих за тестирање ✔
Објашњење: Дуге КСПатх путање и имена ЦСС класа изузетно зависе од структуре и дизајна странице; Ломи се при најмањој промени интерфејса. Стабилни атрибути додати посебно за тестирање (нпр. дата-тестид) нису под утицајем промена дизајна и чине тестове робусним.
5. Зашто за АПИ тест није довољно само да провери ХТТП статусни код (нпр. 200)?
- А) Зато што подаци о телу са исправним статусним кодом могу бити оштећени и само провера статуса то неће открити (псеудо поверење) ✔
- Б) Зато што кодови статуса уопште нису поуздани у АПИ тестовима
- Ц) Зато што провера статусног кода доста успорава тест
- Д) Зато што се статусни код никада не враћа у АПИ тестовима
Објашњење: Док сервер враћа исправан статусни код, може вратити оштећене податке у телу (погрешан тип, поље недостаје, погрешно израчуната вредност). Тест који само гледа на ситуацију не може то да види и даје лажно поверење. Дакле, треба додати и валидацију шеме/уговора и пословног правила.
6. Зашто је критично рећи АИ да 'ручно израчуна очекивану вредност у складу са правилом прихватања, не позивајући се на тренутни излаз функције' приликом штампања тестова јединица?
- А) Зато што ручно израчунавање брже покреће тестове
- Б) Зато што у супротном тест прихвата тренутно (можда грешку) понашање кода као 'тачно' и потврђује грешку ✔
- В) Зато што вештачка интелигенција уопште не може да израчуна децималне бројеве
- Д) Зато што се правила прихватања никада не користе у тестовима
Објашњење: Ако АИ изведе очекивану вредност из излаза функције која се тестира, учиниће да тест 'прође' чак и ако је функција неисправна; То јест, шта год да код произведе, тест се рачуна као истинит. Израчунавање очекиване вредности независно од правила прихватања обезбеђује да тест буде чувар правила, а не огледало кода.
7. Шта је од следећег најпрепознатљивија карактеристика доброг извештаја о грешкама?
- А) Да буде што дуже и технички
- Б) Написала вештачка интелигенција
- Ц) Садржи детерминистичке кораке репродукције које програмер може самостално пратити и произвести грешку ✔
- Д) То је само снимак екрана
Објашњење: Права вредност извештаја о грешци је да програмер може да репродукује грешку без ваше помоћи. Детерминистички, следљиви кораци репродукције од нуле то обезбеђују; Ако ови кораци недостају, извештај се често затвара као „не може да се произведе“.
8. Који је најтачнији израз за однос између озбиљности и приоритета у грешци погрешног написа назива компаније на почетној страници?
- А) Интензитет и приоритет треба увек да имају исту вредност
- Б) И озбиљност и приоритет ове грешке су дефинитивно ниски
- Ц) Озбиљност и приоритет су исти концепт, довољна је једна ознака
- Д) Технички интензитет може бити низак, али пословни приоритет (репутација) може бити висок; То двоје се процењују различито ✔
Објашњење: Озбиљност је технички утицај грешке (технички ниска грешка у куцању), приоритет је колико хитно треба да се поправи (висока јер је то елемент репутације који сваки посетилац види). То двоје не иду увек у истом правцу; Овај пример је ситуација ниске озбиљности са високим приоритетом.
9. Која је најтачнија интерпретација тест пакета са 90% покривености линије?
- А) Показује да се линије извршавају, али не доказује да се понашају исправно; ✔ висока покривеност може дати лажно самопоуздање
- Б) Коначно доказује да је 90% софтвера без грешака
- Ц) То је дефинитивна мера одличног квалитета теста.
- Д) Означава да више нема потребе за писањем додатних тестова
Објашњење: Покривеност редова означава да су извршени само редови; То не доказује да даје тачне резултате. Чак и са тестовима без потврде, покривеност од 90% може се постићи. Обим је мапа 'никад није погледано где', а не гаранција 'све је тестирано'; стварна заштита се мери тестирањем мутација.
10. У тестирању заснованом на ризику, како се ризик неке карактеристике израчунава за усмеравање ограниченог напора тестирања?
- А) Само по броју редова кода
- Б) Множењем вероватноће неуспеха и ефекта који ће се десити када се поквари ✔
- В) Само редоследом којим је обележје развијено
- Д) Давање приоритета само особинама за које је најлакше писати тестове
Објашњење: У тестирању заснованом на ризику, ризик се оцењује као вероватноћа = вероватноћа (вероватноћа квара) × утицај (оштећење ако се поквари). Домени велике вероватноће и великог утицаја (плаћање, аутентификација) заслужују најинтензивније тестирање, док домени ниске × ниске добијају светло тестирање.
11. Који је главни ризик додавања поновног покушаја тесту који понекад прође, а понекад не успе (крхак/покварен) иако се код није променио?
- А) Скраћивање трајања теста
- Б) Смањује проценат покривености
- Ц) Прикривање праве грешке истовремености или основног узрока и потискивање симптома ✔
- Д) Промена назива теста
Објашњење: Поновни покушај је дијагностички алат, а не третман. Неодлучност често долази од стварног стања расе или зависности; Пролазак теста поновним покушајем прикрива ову праву грешку и може изазвати озбиљне проблеме у животу. Прво се мора пронаћи основни узрок.
12. Како функционише тестирање мутација, најискренији метод мерења да ли скуп тестова заиста штити?
- А) Мерењем брзине трчања тестова
- Б) Пребројавањем колико је редова кода написано
- Ц) Извођењем тестова различитим редоследом
- Д) Намерним стварањем малих прекида у коду и мерењем да ли их тестови откривају ✔
Опис: Тестирање мутација производи мала намерна изобличења (мутације) у изворном коду; Добар скуп тестова би требало да ухвати ова изобличења и постане црвен. Мутације које нису ухваћене (преживеле) указују на то да тестови не чувају то понашање. Оцена мутације је много искренија мера квалитета од процентуалне покривености.
13. Које је главно ограничење које треба поштовати када се врши тестирање безбедности (нпр. ауторизација/ИДОР тестови)?
- А) Треба да се ради само на сопственом производу, у оквиру писаног овлашћења и дефинисаног обима, у одбрамбене сврхе ✔
- Б) Може се слободно применити на било који систем од интереса
- Ц) Може се испробати на живим системима пословних партнера без дозволе
- Д) Све пронађене рањивости треба одмах јавно објавити.
Опис: Сигурносни тестови научени у овом модулу служе само за тестирање вашег сопственог производа у одбрамбене сврхе, у оквиру писаног овлашћења и дефинисаног обима. Приступ туђем систему без дозволе или извођење тестирања ван домета је и неетично и противзаконито; Све откривене рањивости пријављују се одговорним откривањем.
14. Која овлашћења никада не треба дати АИ у ЦИ/ЦД цевоводу?
- А) Сумирање дневника неуспешних тестова
- Б) Овлашћење да аутоматски 'прође' неуспели (црвени) тест или га обојите у зелено ✔
- Ц) Предлагање нацрта кода за тестирање
- Д) Пипелине ИАМЛ филе драфтинг
Опис: АИ може произвести преглед кода за тестирање, цевовод ИАМЛ и резиме дневника у ЦИ/ЦД; међутим, могућност да се неуспели тест аутоматски 'прође/поправи' никада не треба дати. Ово поништава сврху тестирања и аутоматски прикрива грешке. Бојење теста у зелено треба да буде свесна и разумна одлука особе.