Единици
1. Вовед во вештачката интелигенција при тестирање на софтвер и ОК: улоги, граници, ризик од фалсификување и валидација 2. Тест-сценарио и генерирање тест-случај: од барање до сеопфатна контрола 3. Истражувачко тестирање и генерирање на идеи за тестирање: Креативно ловење бубачки со вештачка интелигенција 4. Автоматизација за тестирање на интерфејсот: генерирање на код за селен, драматург и кипарис со вештачка интелигенција 5. Автоматизација на API тест: договор, шема и валидација од крај до крај со вештачка интелигенција 6. Генерирање на единица тест и способност за тестирање: робусно тестирање со вештачка интелигенција 7. Пишување и одредување приоритети на извештај за грешка: јасни, репродуктивни записи со вештачка интелигенција 8. Анализа на покриеност со тест и тестирање засновано на ризик: насочување правилно со вештачка интелигенција 9. Регресивно тестирање, одржување на тестот и борба против кревки тестови 10. Ризик од лажна доверба, тест за квалитет и мутации: тестови за тестирање 11. Работен тек од крај до крај, интеграција на CI/CD, етика и безбедност: Одговорно користење вештачка интелигенција
Единица 2 / 11

Тест-сценарио и генерирање тест-случај: од барање до сеопфатна контрола

Добивки:

  • Способност да се трансформираат барањата и критериумите за прифаќање во сеопфатни тест случаи со техники како што се класи на еквивалентност, анализа на гранични вредности и табели за одлуки, со поддршка на вештачка интелигенција
  • Способност да се произведуваат позитивни, негативни и рабови сценарија одделно и да се пополнат рабовите пропуштени од вештачката интелигенција со информации за производот
  • Способност да се воспостави следливост и да се елиминираат празнините во покриеноста и непотребната надуеност преку поврзување на тест случаи со критериумите за прифаќање

Работата на тестерот често започнува со ова празно: тој има услов („корисникот мора да може да ја ресетира својата лозинка“) и треба да ја претвори оваа единствена реченица во десетици конкретни проверки кои ќе докажат дека софтверот навистина работи правилно. Оваа трансформација се нарекува тест дизајн. Знаејќи ја разликата помеѓу тест сценарио - цел на високо ниво што опишува што да се тестира, како што е „неважечката лозинка треба да се отфрли“ - и тест случај - извршна единица која го детализира тоа сценарио со конкретни чекори, внесување и очекуваниот исход е клучот. Вештачката интелигенција (ВИ) го забрзува токму овој момент на празна страница: претворајќи едно барање во десетици нацрт-сценарија за неколку секунди. Но запомнете - вештачката интелигенција реплицира какви ситуации можете да замислите; Вие избирате со вашето знаење за производот кои ситуации се навистина важни.

Во оваа единица, чекор по чекор ќе научите како да го претворите барањето во сеопфатен, но без метеж тест пакет со поддршка за вештачка интелигенција.

Чекор по чекор: од услов до тест сет

Чекор 1 - Појаснете го барањето. Соберете ги критериумите за прифаќање (условите што една работа мора да ги исполнува за да се смета за „завршена“) пред да и го дадете на вештачката интелигенција необработеното барање. „Лозинката мора да се ресетира“ не е доволно; Правилата како „врската за ресетирање важи 30 минути“, „иста лозинка не може повторно да се употреби“ се изворот на вистинскиот тест.

Чекор 2 — Спроведување на техники за тестирање. Не кажувајте само „напишете скрипта“ за вештачката интелигенција; Побарајте класични техники за дизајнирање тестови по име:

  • Класи на еквивалентност (поделба на еквивалентност): Поделба на влезови во групи од кои се очекува да го произведат истото однесување. На пример, за полето за возраст, „валиден опсег“, „премногу мал“ и „премногу голем“ се класи; Доволно е да се тестира еден пример од секоја класа.
  • Анализа на гранични вредности: Тестирање на вредностите на прагот врз основа на фактот дека грешките се случуваат најмногу на границите. Тоа е како да се тестираат 17, 18, 19 посебно за старосната граница од 18 години.
  • Табела со одлуки: Табелирање на комбинации на повеќе услови и очекуваниот исход од секоја комбинација.
  • Транзиција на состојба: Тестирање на транзициите на системот од состојба во состојба (на пример, нарачка: креирано → платено → испорачано) и неважечки транзиции.

Чекор 3 - Одделете ги позитивните, негативните и рабните состојби. Побарајте позитивен тест (очекуван резултат со точен внес), негативен тест (соодветна грешка со неважечки влез) и рабови - гранични или невообичаени случаи. ВИ генерално го нагласува позитивното; Негативните и рабовите случаи се нецелосни освен ако не ги побарате експлицитно.

Чекор 4 - Дајте приоритет и исечете. ВИ може да генерира 60 сценарија; Не се сите со еднаква вредност. Дајте приоритет на оние со висок ризик (пари, безбедност, загуба на податоци) и комбинирајте ги оние што се дупликати.

Совет: Испратете посебно барање до вештачката интелигенција велејќи „генерирај 5 незамисливи рабови од ова барање“. Највредниот придонес на вештачката интелигенција е тоа што често ве потсетува на извонредни ситуации кои сте ги занемариле.

Слаб промпт / Силен промпт

Слабо: „Напишете тест случаи за ресетирање на лозинката“.
Силно: „Генерирајте тест случаи за функцијата „ресетирање лозинка“ со следните критериуми за прифаќање: врската важи 30 минути, еднократна употреба, последните 3 лозинки не може повторно да се користат, сметката е заклучена 15 минути по 5 неточни обиди. Применете класи на еквивалентност и анализа на граничните вредности. Наведете позитивни, негативни и рабови податоци за секој чекор, очекувани чекори за тестирање, идентификациони случаи, предодредени случаи, идентификациони случаи, соодветни заглавија. критериумите за прифаќање.

Моќен потсетник; Дава правила, техники, формат на излез и редослед на приоритети. Така, вештачката интелигенција произведува извршни и следливи тест случаи, а не украсни.

Излезен формат на тест случај

Побарајте структуриран формат што може да се увезе директно во алатката за управување со тестови на вашиот тим (на пр. TestRail, Zephyr, Xray). Следната табела ги прикажува компонентите на добар тест случај:

област

Опис

пример

ИД

единствена лична карта

TC-PWD-014

Наслов

кратка цел

Истечената врска ќе биде одбиена

предуслов

Потребна е состојба пред тестирање

Врската за ресетирање е генерирана пред 31 минута

чекори

Секвенцијални дејства

1. Кликнете на врската 2. Внесете нова лозинка

податоци за тестирање

Користени конкретни вредности

стара врска, нова лозинка „Abc!2345“

очекуван резултат

Однесувањето треба да се потврди

Грешка „Врската е истечена“, лозинката не се менува

Критериуми за прифаќање

врска за следливост

АК-3: врската важи 30 минути

приоритет

Ниво на ризик

високо

Четири шаблони за копирање

1) Техничко базирано сценарио:

Ваша улога: виш дизајнер на тестови. Генерирајте тест случаи за карактеристика: [карактеристика и критериуми за прифаќање]. Применете: класи на еквивалентност, анализа на точки на прекин, табела за одлуки. Обезбедете излез во 3 групи: Позитивен / Негативен / Случај на раб. Секој случај: ID, предуслов, чекори, податоци од тестот, очекуваниот резултат, поврзани критериуми за прифаќање, приоритет (Висок/низок/Me).

2) Ловец на рабови:

Наведете 10 вообичаено занемарени рабови за следнава карактеристика: [feature]. Напишете во една реченица зошто е ризично за секој. Размислете за оските како празни/нула, предолго внесување, истовременост, истек на време, грешки во форматот, Уникод/емоџи, негативно/нула, прекин на мрежата.

3) Производство на табела за одлуки:

Креирајте табела за одлуки за следното деловно правило: [правила].Колони: комбинации на услови; редови: секој услов и очекувано дејство. Означете неостварливи или конфликтни комбинации. Потоа предложете тест случај за секоја комбинација.

4) Контрола на следливост:

Со оглед на следнава листа на критериуми за прифаќање и следните тест случаи:[критериуми] / [случаи]. Прикажете во табеларна форма кои критериуми за прифаќање ги исполнуваат НЕ тест случаи (јаз во покриеност) и кои случаи не се исполнети со ниту еден критериум (непотребен случај).

три мини футроли

Случај 1 - Вредност на состојби на рабовите. Експерт од тим на Финтек напишал 18 скрипти за функцијата за трансфер на пари. Тој го примени шаблонот „ловец на рабови“ на вештачката интелигенција; Вештачката интелигенција потсети на ситуацијата на „пренесување ист биланс од два уреди во исто време“ (конкуренција). Кога се тестираше ова сценарио, беше пронајдена ранливост за двојно трошење и затворена пред да се емитува во живо. Една ситуација со раб спречи потенцијална загуба од шест цифри.

Случај 2 - Сечење на испакнатоста. Тим побара од вештачката интелигенција да подготви скрипта за формуларот за членство и дојдоа до 74 случаи. Водење на шаблонот за следливост откри дека 74 случаи исполнуваат само 9 критериуми за прифаќање, при што многумина повторно ја тестирале истата класа на еквивалентност. Сетот беше намален од 74 на 23 значајни случаи; времето на работа се намали за 68%, покриеноста не се намали.

Случај 3 - Погрешна претпоставка. Вештачката интелигенција предложи тестирање на неважечки датуми како „31-ви февруари“ за поле за датум, но не знаеше дека компонентата на календарот што ја користеше тимот веќе го блокираше ова. Експертот елиминирал 4 од 6-те сценарија за датум произведени од вештачката интелигенција како непотребни во контекст на производот. генерирани можности со вештачка интелигенција; направи избор на информации за производот.

Вообичаени грешки

  • Барање скрипта без давање критериуми за прифаќање. Без да се знае што е вистина, вештачката интелигенција произведува површни сценарија кои често го пропуштаат вистинскиот ризик.
  • Само задоволување за позитивни тестови. Експлицитно не сакајќи негативни и рабови случаи. Ова е местото каде што често лежат грешките.
  • Прифаќање на она што се произведува како што е. Заборавајќи дека вештачката интелигенција не го познава контекстот на производот и оставајќи непотребни или невозможни сценарија на сетот.
  • Заобиколувајќи ја следливоста. Неповрзување на случаите со критериумите за прифаќање; како резултат на тоа, не се гледа кој критериум не е тестиран (јаз на покриеност).
  • Количинска заблуда. Да се ​​биде среќен затоа што „објавени се 60 сценарија“. Вредноста не е во бројот, туку во обемот што го покрива ризикот.

Сумирано

Дизајнот на тестот е за преведување на барање од една реченица во конкретни, извршни случаи кои ја докажуваат исправноста на софтверот. Вештачката интелигенција во голема мера ја забрзува оваа трансформација: произведува сеопфатни нацрти кога ќе ѝ дадете критериуми за прифаќање, класични техники за тестирање (класи на еквивалентност, точка на прекин, табела за одлуки, транзиција на состојби) и јасен формат на излез. Но, вештачката интелигенција е пристрасна кон позитивното, не го знае контекстот на производот и може да предизвика непотребна надуеност. Ваша задача е експлицитно да барате негативни и рабови случаи, да воспоставите следливост, да дадете приоритет според ризик и да исечете.

Задача за апликација

Изберете функција од вашиот сопствен проект и запишете ги критериумите за прифаќање. Нека вештачката интелигенција генерира тест случаи со шаблонот „генерирање сценарио базирано на техника“. Потоа применете ги шаблоните „ловец на рабови“ и „проверка на следливост“. Како резултат: (1) додадете најмалку 3 рабови што ги прескокнува вештачката интелигенција, (2) исечете случаи што не се поврзуваат со ниту еден критериум за прифаќање, (3) напишете нови случаи ако има некои критериуми за прифаќање оставени непроверени. Истурете го последниот сет во табела.

листа за проверка

  • [ ] Пред да побарам скрипта, ги разјаснив критериумите за прифаќање.
  • [ ] Го прашав YZ за класи на еквивалентност и анализа на граничните вредности по име.
  • [ ] Одделно генерирав позитивни, негативни и рабови состојби.
  • [ ] Го поврзав секој тест случај со критериум за прифаќање (следливост).
  • [ ] Ги проверив јазот во опсегот и непотребните случаи со табелата.
  • [ ] Дадов приоритет според ризикот и го изчистив отечениот сет.