Јединице
1. Увод у вештачку интелигенцију у тестирању софтвера и обезбеђењу квалитета: улоге, границе, ризик од фалсификовања и валидација 2. Тест сценарио и генерисање тест случаја: од захтева до свеобухватне контроле 3. Истраживачко тестирање и генерисање идеја за тестирање: Креативни лов на грешке са вештачком интелигенцијом 4. Аутоматизација УИ теста: генерисање кода за селен, драматург и чемпрес помоћу вештачке интелигенције 5. Аутоматизација АПИ тестова: уговор, шема и свеобухватна валидација са АИ 6. Генерисање јединичних тестова и могућност тестирања: Робусно тестирање са АИ 7. Писање извештаја о грешци и одређивање приоритета: јасни, поновљиви записи са АИ 8. Анализа покривености тестом и тестирање засновано на ризику: Право циљање са АИ 9. Регресионо тестирање, одржавање тестова и борба против осетљивих тестова 10. Тестирање ризика од лажног поверења, квалитета тестова и мутација: тестови тестирања 11. Ток рада од краја до краја, интеграција ЦИ/ЦД, етика и безбедност: одговорно коришћење вештачке интелигенције
Јединица 2 / 11

Тест сценарио и генерисање тест случаја: од захтева до свеобухватне контроле

Добици:

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

Посао тестера често почиње са овим празним листом: он има захтев („корисник мора бити у могућности да ресетује своју лозинку“) и треба да претвори ову једину реченицу у десетине конкретних провера које ће доказати да софтвер заиста ради исправно. Ова трансформација се зове тест дизајн. Познавање разлике између тестног сценарија — циља високог нивоа који описује шта треба тестирати, као што је „неважећа лозинка треба да буде одбијена“ — и тест случаја — извршне јединице која детаљно описује тај сценарио са конкретним корацима, уносом и очекиваним исходом је кључно. Вештачка интелигенција (АИ) убрзава управо овај тренутак празне странице: претварајући један захтев у десетине нацрта сценарија у секунди. Али запамтите - АИ реплицира ситуације о којима можете да се сетите; Ви бирате са својим познавањем производа које су ситуације заиста важне.

У овој јединици научићете корак по корак како да претворите захтев у свеобухватан, али без нереда тест пакет са АИ подршком.

Корак по корак: од захтева до тестног скупа

Корак 1 — Појасните захтев. Прикупите критеријуме прихватања (услове које посао мора да испуни да би се сматрао „урађеним“) пре него што АИ дате сирови захтев. „Лозинка мора да се ресетује“ није довољно; Правила као што су "линк за ресетовање важи 30 минута", "иста лозинка се не може поново користити" извор су правог теста.

Корак 2 — Примените технике тестирања. Немојте само рећи "напишите сценарио" о АИ; Затражите класичне технике дизајна теста по имену:

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

Корак 3 — Одвојите позитивно, негативно и ивично стање. Затражите позитиван тест (очекивани резултат са тачним уносом), негативан тест (правилна грешка са неважећим уносом) и ивични случај — гранични или необични случајеви. АИ генерално наглашава позитивно; Негативни и рубни случајеви су непотпуни осим ако их изричито не затражите.

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

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

Слаби промпт / Јаки промпт

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

Снажан промпт; Даје правила, технике, излазни формат и редослед приоритета. Дакле, АИ производи извршне и следљиве тестне случајеве, а не декоративне.

Формат излаза тестног случаја

Затражите структурирани формат који може да се увезе директно у алатку за управљање тестирањем вашег тима (нпр. ТестРаил, Зепхир, Ксраи). Следећа табела приказује компоненте доброг тест случаја:

области

Опис

пример

ИД

јединствени ИД

ТЦ-ПВД-014

Наслов

кратка сврха

Истекла веза ће бити одбијена

предуслов

Потребан услов пре тестирања

Веза за ресетовање је генерисана пре 31 минут

степенице

Узастопне радње

1. Кликните на линк 2. Унесите нову лозинку

тест података

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

стара веза, нова лозинка "Абц!2345"

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

Понашање које треба проверити

Грешка „Линк је истекао“, лозинка се не мења

Критеријуми прихватања

веза за следљивост

АК-3: веза важи 30 минута

приоритет

Ниво ризика

висока

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

1) Технички заснована производња сценарија:

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

2) Ловац на ивице случаја:

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

3) Израда табеле одлука:

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

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

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

три мини кофера

Случај 1 — Вредност ивичних стања. Стручњак из финтецх тима написао је 18 скрипти за функцију трансфера новца. Он је применио шаблон „ловац на ивице случајева“ на АИ; АИ је подсетио на ситуацију „пренос истог биланса са два уређаја у исто време“ (истовременост). Када је овај сценарио тестиран, откривена је и затворена рањивост двоструке потрошње пре објављивања. Ситуација са једним рубом спречила је потенцијални шестоцифрени губитак.

Случај 2 — Подрезивање избочине. Тим је натерао АИ да изради скрипту за образац за чланство и 74 случаја су прошла. Покретањем шаблона следљивости утврђено је да 74 случаја испуњавају само 9 критеријума прихватања, при чему су многи поново тестирали исту класу еквиваленције. Скуп је смањен са 74 на 23 значајна случаја; време рада је смањено за 68%, покривеност се није смањила.

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

Уобичајене грешке

  • Захтевање скрипте без давања критеријума прихватања. Не знајући шта је истина, АИ производи површне сценарије који често пропуштају прави ризик.
  • Само се задовољим позитивним тестовима. Изричито не желећи негативне и рубне случајеве. Овде често леже грешке.
  • Прихватање онога што је произведено такво какво јесте. Заборављајући да АИ не познаје контекст производа и остављајући непотребне или немогуће сценарије на сету.
  • Заобилажење следљивости. Неповезивање случајева са критеријумима прихватања; као резултат тога, не види се који критеријум није тестиран (јаз у покривености).
  • Заблуда о количини. Бити срећан јер је „објављено 60 сценарија“. Вредност није у броју, већ у обиму који покрива ризик.

Укратко

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

Задатак апликације

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

контролна листа

  • [ ] Пре него што сам затражио сценарио, разјаснио сам критеријуме прихватања.
  • [ ] Тражио сам од ИЗ класе еквиваленције и анализу граничних вредности по имену.
  • [ ] Одвојено сам генерисао позитивна, негативна и ивична стања.
  • [ ] Повезао сам сваки тест случај са критеријумом прихватања (следљивост).
  • [ ] Проверио сам празнину у обиму и непотребне случајеве са табелом.
  • [ ] Одредио сам приоритет према ризику и подрезао набрекли сет.