Што такое тэставыя аракулы і тэставая эўрыстыка?

У свеце тэсціравання і забеспячэння якасці мы часта чуем словы 'Праверка аракулаў' і 'Эўрыстыка выпрабаванняў', але што гэта такое і як мы можам укараніць іх у нашу штодзённую дзейнасць па тэставанні?

Давайце паглядзім вельмі добрае тлумачэнне праверных аракулаў і тэставых эўрыстык Катрына Клокі



Эўрыстыка выпрабаванняў

Уявіце, што я хачу з'есці салёны агурок. Мае саленні захоўваюцца ў вялікай шкляной банку. У маёй сям'і апошнім чалавекам, які з'еў салёны агурок, быў мой муж. Ён шчыльна зачыніў банку. З першай спробы мне не ўдаецца яго адкрыць.


Што мне рабіць далей?

Я правяраю, што паварочваю налева, каб аслабіць вечка, і спрабую яшчэ раз. Потым я дастаю ручнік, каб наладзіць счапленне пры скручванні вечка банкі. Нарэшце, з нейкім расчараваннем, я іду і знаходжу мужа. Ён паспяхова адкрывае банку.


Сутыкнуўшыся з банкай, якая не адкрыецца, ёсць шэраг рэчаў, якія, на маю думку, варта паспрабаваць. Гэта мая эўрыстыка адкрыцця слоікаў. Калі мне даручаюць праверыць праграмнае прыкладанне, я ведаю, што варта паспрабаваць шэраг рэчаў. Гэта мая тэставая эўрыстыка.

Эўрыстыка - гэта проста метады рашэння праблем, навучання і адкрыцця, заснаваныя на вопыце. Там, дзе вычарпальны пошук немэтазгодны, для паскарэння працэсу пошуку здавальняючага рашэння выкарыстоўваюцца эўрыстычныя метады. Прыклады гэтага метаду ўключаюць выкарыстанне эмпірычнага правіла, адукаваную здагадку, інтуітыўнае меркаванне альбо здаровы сэнс.

Прыклад:

Дапусцім, вы тэстуеце сайт электроннай камерцыі. Старонка вынікаў пошуку большасці сайтаў электроннай камерцыі змяшчае фільтры і функцыі сартавання. Шматгадовы вопыт тэсціравання вэб-сайтаў электроннай камерцыі даведаўся, што спалучэнне фільтраў і варыянтаў сартавання можа выявіць цікавыя памылкі, як гэта было шмат разоў, таму ў наступным праекце я інтуітыўна правяру некаторыя сцэнарыі звязаны з аб'яднаннем фільтраў і параметраў сартавання.




Выпрабаванне аракулаў

Уявіце, што я хаджу абедаць з сябрам. Я заходжу ў рэстаран а 12-й гадзіне ў чацвер. Праз гадзіну, атрымліваючы асалоду ад ежы, я выходжу з рэстарана ў 13.00 у пятніцу. Хоць я перажыў толькі адну гадзіну, свет вакол мяне змяніўся на дзень.

Як мне даведацца, што тут праблема?

У мяне можа быць некалькі паведамленняў на мабільным тэлефоне ад сяброў і сям'і, якія цікавяцца, дзе я. У мяне можа быць паркоўка. Я магу заўважыць, як хтосьці чытае газету ў пятніцу.

Ёсць некалькі спосабаў, якімі я магу вызначыць, што я прапусціў дзень свайго жыцця. Гэта мае падарожныя аракулы ў часе. Ёсць шэраг спосабаў, якімі я магу вызначыць, што я выявіў памылку ў праграмным дадатку. Гэта мае выпрабавальныя аракулы.


Аракулы - гэта проста прынцып альбо механізм, з дапамогай якога мы распазнаем праблему. Тэставыя аракулы - гэта ў асноўным вашы чаканыя вынікі.

Прыклад:

Дапусцім, вы тэстуеце функцыянальнасць для ўваходу на сайт. Па-першае, вы можаце праверыць сапраўднае імя карыстальніка і сапраўдны пароль і чакаць каб убачыць альбо перанакіраванне на старонку майго ўліковага запісу, альбо перанакіраванне на старонку да ўваходу ў сістэму. Аднак пасля таго, як вы паспрабуеце ўвайсці і вы ўбачыце адказ з памылкай 500, вы ведаю што нешта пайшло не так.

Аракулы і эўрыстыка ў спрытным і пошукавым выпрабаванні

І тэставыя аракулы, і тэставая эўрыстыка маюць жыццёва важнае значэнне, калі гаворка ідзе пра пошукавыя выпрабаванні ў рухомых умовах. Калі ў нас не хапае часу на пабудову тэставых прыкладаў, і прадукт пастаянна развіваецца, мы не можам абапірацца толькі на загадзя распрацаваныя тэставыя сцэнарыі, мы павінны выкарыстоўваць свае веды дамена (Test Oracles) і папярэдні вопыт тэставання (Test Heuristics ), каб мець магчымасць хутка распрацоўваць і выконваць тэсты адначасова, а таксама даведацца пра прадукт.