Добивки:
- Може да разликува каде вештачката интелигенција заштедува реално време во процесот на ОК и каде квалитетните одлуки како „подготвени за објавување“ се препуштени на луѓето, во зависност од нивото на ризик на задачата
- Способност да се препознае ризикот од лажни успеси и да се имплементира дисциплина за верификација која го тестира секој тест за вештачка интелигенција со намерно кршење на кодот
- Способност да се заштитат податоците од тестот, личните податоци и клучевите и да се стекне навика да се врши безбедносно тестирање само во рамките на овластувањето и за одбранбени цели.
Размислете за ослободување ноќ. Беа извршени стотици тестови, сите добија зелено светло, тимот беше растоварен и софтверот започна во живо. Следното утро, клиентот пријавил дека екранот за плаќање паднал. Тестовите беа зелени, но тој не ја виде грешката. Ова е најподмолниот кошмар на професијата за обезбедување квалитет (QA), односно дисциплина која систематски обезбедува софтверот да го има посакуваниот квалитет: тестот што свети зелено, но всушност ништо не потврдува. Кога вештачката интелигенција (AI — софтвер кој извлекува обрасци од историски податоци и генерира текст и код) ќе влезе во оваа професија, има и огромно забрзување и зголемување на токму овој кошмар. Првичното ветување на овој модул е јасно: вештачката интелигенција е асистент за тестирање, генератор на нацрти и мултипликатор на идеи; Вие сте тестерот кој се потпишува на одлуката „дали овој софтвер е подготвен за издавање“.
Во оваа прва единица ќе се фокусираме на дисциплината, а не на алатката. Ќе дознаете каде вештачката интелигенција заштедува реално време во процесот на QA, каде е опасно, зошто измамничкиот зелен таканаречен „лажно поминување“ е најголемиот ризик, како да го потврдите секој излез и кои податоци можете да ги дадете на која алатка. Без поставување на оваа основа, следните единици ќе останат во воздухот.
Каде ВИ е корисна во процесот на тестирање?
Ајде да ги поделиме задачите за тестирање на два големи кластери. Прв кластер: повторувачки, продуктивни, нацрт-работки. Изготвување тест случај од барање, наведување точки на прекин, пишување скелет на код за автоматизација за екран, преведување на сложен случај на грешка во уреден извештај за грешка, сумирање на стотици линии на датотеки за евиденција, извлекување шема од одговор на API. Во овие задачи, вештачката интелигенција ги намалува минутите на секунди и не се заморува.
Втор кластер: одлуки чиј исход е квалитет, доверба и одговорност. Одлуките како што се „дали оваа верзија може да оди во живо“, „дали оваа грешка е критична или може да се одложи“, „дали оваа покриеност на тестот е доволна“, „дали ова сценарио опфаќа реален ризик од корисникот“ итн. бараат контекст, знаење за производот и одговорност. Овде вештачката интелигенција генерира опции, нацрти - но вие одлучувате „помине/неуспешно“ и „оди/не оди“.
Ајде да ја разјасниме разликата во една реченица: ВИ е силна во „кои ситуации може да се тестираат и како да се напише код што ја тестира“; Одлуката е ваша кога станува збор за прашањето „Дали овој софтвер навистина работи и кој гарантира за него?“
Совет: Пред да и предадете работа на вештачката интелигенција, прашајте: „Што ќе се случи ако овој излез е погрешен и не забележам? Ако одговорот е „Ќе изгубам неколку минути“, лесно делегирајте. Ако одговорот е „неисправниот софтвер оди во живо“, дозволете вештачката интелигенција да го произведе нацртот и вие донесете одлука и верификација.
Лажна пропусница: ризик број еден од ВИ во ОК
Кога тестот свети зелено, тоа може да значи две работи: или софтверот всушност работи правилно или не ја гледа грешката бидејќи тестот е погрешно напишан. Вториот се нарекува лажно поминување - тестот вели „положи“, но всушност не потврдува ништо. Овој ризик значително се зголемува во тестовите произведени со вештачка интелигенција, бидејќи вештачката интелигенција е многу успешна во пишувањето течни, мазни, но празни тестови.
Трите најчести форми на псевдопропуснување се: (1) Тестирање без тврдење - кодот се извршува, не содржи тврдења, секогаш поминува. (2) Тест за самопроверка - очекуваната вредност на тестот се пресметува од излезот на кодот што се тестира; Односно, што и да произведува кодот, тестот го прифаќа како „точен“. (3) Тест што ја потврдува погрешната работа - тврдењето постои, но проверува нешто тривијално (на пр. „одговорот не е ништовен“), а не вистинското деловно правило.
Внимание: Зелениот тест панел не е доказ за квалитет; Во најдобар случај пишува „контролите што ги напишавме не се скршени во моментов“. Немојте да се тешите со гледање „полагање“ на тестот што го произведува вештачката интелигенција - вистинското прашање е: дали овој тест ќе стане црвен ако намерно го скршам кодот? Ако не ротира, тој тест е украс.
Златното правило што се повторува низ овој модул: тестирајте го секој тест за вештачка интелигенција со намерно кршење на кодот. Ако тестот е сè уште зелен, тој тест не работи. (Ќе ја продлабочиме оваа идеја како тестирање на мутации во единицата 10.)
Дисциплина за верификација: три чекори
ВИ зборува со доверба; Тоа не значи дека е вистина. Развијте рефлекс од три чекори за да се примени на секој исход:
- Врзете го на барањето. Секој тест случај и тврдење дека вештачката интелигенција произведува мора да се заснова на вистинско барање или критериуми за прифаќање (услови што една работа мора да ги исполнува за да се смета за „завршена“). „Кое правило го потврдува ова сценарио? прашај.
- Видете црвено. Извршете го генерираниот тест еднаш, кршејќи го кодот. Ако не поцрвене, тестот е неважечки. Ова е чекор кој не може да се преговара во тестирањето на вештачката интелигенција.
- Поминете го низ контекстниот филтер. Дали излезот се совпаѓа со она што го знаете дека е однесување на производот, архитектура, вистински проток на корисници? Вашето знаење за доменот е последниот филтер.
Приватност и безбедност на податоците: што оди каде?
Податоците со кои работите во тест опкружувањето се често чувствителни: реални записи од клиенти, копии од базата на податоци за производство, клучеви на API, адреси на внатрешниот систем, функции што допрва треба да се објават. Направете едноставна класификација: отворените податоци (документирани, јавно достапни) можат да влезат во секое возило. Внатрешни податоци (фрагменти од изворниот код, внатрешна документација) само до алатки одобрени од агенцијата. Доверливите податоци (вистински податоци за клиентите, информации за идентитетот, детали за ранливост, клучеви) влегуваат само во договорните алатки на институцијата, чии податоци не одат на обука за модели, по можност маскирани.
Има дополнително ограничување во контекст на безбедносното тестирање: сè што е научено во овој модул е за одбранбени цели - авторитативно тестирање на безбедноста на вашиот сопствен производ. Користењето на вештачката интелигенција за да се инфилтрира во туѓ систем без дозвола, да се вооружат вистинските пропусти или да се тестира систем за кој немате овластување е и неетичко и криминално. Ниту едно навредливо тестирање нема да се врши без овластување (обем и дозвола).
Совет: Користете синтетички (вештачки произведени) тест податоци наместо вистински податоци за клиентите. Барањето од вештачката интелигенција да „генерира реални, но целосно измислени податоци за тестот“ и ја зачувува приватноста и ги диверзифицира рабовите.
три мини футроли
Случај 1 — Заштедува време на вистинското место. Тестерот на тимот на Ekomerce потроши 6 часа рачно креирајќи тест-сценарио од документот за барања од 30 страници за секое издание. Тој го дал документот (делот што не содржел деловни тајни) на YZ и побарал нацрт на структурирано сценарио; Времето беше намалено на 90 минути. Тој го посветил заштеденото време на потврдување сам со додавање случаи на работ на деловните правила што вештачката интелигенција ги пропуштила. Вештачката интелигенција му ја одзеде работата која се повторува, препуштајќи му го судот на човекот.
Случај 2 - Фатено лажно поминување. Еден развивач имал вештачка интелигенција да напише 12 единици тестови за пресметковна функција; сите беа зелени. Тестерот го спроведе чекорот „види црвено“: намерно менување на знакот за собирање во функцијата во множење. Само 3 од 12 тестови вратиле црвено. Останатите 9 тестови не дадоа вистинска потврда; Само рече „не направи грешка“. Избришани се 9 украсни тестови, а наместо нив се напишани 5 вистински тестови.
Случај 3 - Враќање од нарушување на приватноста. Практикантот залепи дневник за грешки што ги содржи вистинските е-пошта на клиентите и последните четири цифри од картичката од базата на податоци за производство во јавна алатка и рече „објасни ја оваа грешка“. Водачот на ОК интервенираше: ова беа лични податоци надвор од контрола и кршење на КВКК (Закон за заштита на лични податоци). Истата работа беше извршена во возило одобрено од институција, при што беа маскирани личните области и оставајќи само трага од оџак.
Четири шаблони за копирање
1) Проценка на соодветноста на работата:
Вашата улога: виш лидер за ОК. Ќе ти опишам работа за тестирање. Кажете ми (1) дали оваа работа е изготвување/анализа на работа што може безбедно да се делегира на вештачката интелигенција или квалитетна одлука што човекот мора да ја донесе, (2) потенцијалната цена на неточниот резултат, (3) верификацијата што треба да ја направам пред да делегирам. Работа: [внесете ја работата овде]
2) Контрола на псевдопропусници:
Проверете го тестот подолу. Кажи ми:- Какво однесување потврдува овој тест? (една реченица)- Како можам да го скршам кодот за тестирање, така што тестот ќе стане ЦРВЕН?- Дали постои слабост што може да предизвика овој тест секогаш да поминува (недостасува тврдење, само-валидација, тривијална проверка)? Тест: [залепи тест овде]
3) Тест контрола на маскирање на податоци:
Дневникот/податоците што ќе ви ги дадам може да содржи лични или доверливи полиња (e-mail, име, картичка, клуч, внатрешна адреса). Прво, наведете ги полињата што треба да се маскираат; Ќе го маскирам и пак ќе го испратам. Не го анализирајте како што е.
4) Генерирање на податоци од синтетички тест:
Создадете 20 редови на целосно измислени, реални тест-податоци за [следнава структура на теренот]. Не користете податоци за вистинска личност/организација. Вклучете и случаи на рабови: празен простор, предолг текст, гранични вредности, неважечки формат.
Слаб промпт / Силен промпт
Слаб: „Напиши тестови на овој код“.
Силно: "Пресметај го ова Напиши единечни тестови за функцијата за попуст. Критериуми за прифаќање за функцијата: 10% попуст над 1000 TL, 20% попуст над 5000 TL; негативната сума треба да предизвика грешка. Наведете со линија за коментар кое правило го потврдувате за секој тест. Тестирајте ги граничните вредности (9010,50, 1 -1) Одделно користете реални тврдења што ќе станат црвени ако го скршам кодот или не напишам тривијални тврдења.
Моќен потсетник; Обезбедува критериуми за прифаќање, гранични вредности, очекувања за валидација и експлицитни инструкции против измама. Слабиот поттик ја поканува вештачката интелигенција да напише декоративен тест.
Вообичаени грешки
- Доверба на зелена боја. Мислењето дека полагањето на тестот е доказ. Вистинското прашање е: дали станува црвено кога ќе го прекршите кодот?
- Барање тест без да се наведе никаква причина. ВИ произведува генерички, често бескорисни тестови без да знае што треба да се потврди.
- Прескокнува потврда. Велејќи „ВИ го напиша тоа, веројатно е точно“. Одговорноста е на лицето што го користи излезот.
- Вметнување на вистински/чувствителни податоци во алатката. Работа со податоци за производство, клучеви или лични податоци.
- Неовластено безбедносно тестирање. Обид за навредливо тестирање без опсег и дозвола.
- Користење на вештачка интелигенција за делегирање на донесување одлуки. Поставувајќи го прашањето "Дали оваа верзија може да биде објавена?" на вештачката интелигенција и ставање на одговорот во потпис.
Сумирано
Вештачката интелигенција е моќен асистент во процесот на ОК што ја забрзува повторливата и продуктивна работа; Но, одговорноста за квалитетната одлука е на човекот. Ризикот број еден од вештачката интелигенција во оваа професија е псевдо-пасот: зелени тестови кои изгледаат уредно, но не потврдуваат ништо. Тестирајте го секој тест за вештачка интелигенција со намерно кршење на кодот; Ако не поцрвене, тој тест е украс. Врзете го на барањето, видете го црвеното, поминете го низ контекстниот филтер. Маскирајте доверливи податоци, извршете безбедносно тестирање само за овластени и одбранбени цели.
Задача за апликација
Направете 5 единечни тестови генерирани (или генерирани од вештачка интелигенција) од вашиот сопствен проект. За секоја од нив: (1) запишете во една реченица кое однесување го потврдува, (2) намерно скрши и внесете ја шифрата што се тестира и забележете колку од нив стануваат црвени, (3) означете ги оние што не стануваат црвени како „декор тестови“ и препишете ги со вистинското тврдење. Ставете го резултатот во табела: име на тестот / правило што е потврдено / дали е скршен кога е скршен / дејство.
листа за проверка
- [ ] Пред да го предадам делото го поставив прашањето „што ќе изгубам ако тргне наопаку“.
- [ ] Го тестирав секој тест за вештачка интелигенција со кршење на кодот; Оној што не поцрвене го заменив со вистинскиот тест.
- [ ] Ги поврзав случаите за тестирање со вистинските барања/критериуми за прифаќање.
- [ ] Ги маскирав чувствителните/вистинските податоци без да ги дадам на алатката; Користев синтетички податоци ако е можно.
- [ ] Размислував за безбедносно тестирање само во рамките на овластувањата и за одбранбени цели.
- [ ] Одлуката „дали верзијата ќе биде објавена“ ја оставив на себе, а не на вештачката интелигенција.