Асновы тэсціравання праграмнага забеспячэння - пытанні і адказы

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



Што такое тэсціраванне праграмнага забеспячэння?

Розныя людзі прыдумалі розныя азначэнні для тэсціравання праграмнага забеспячэння, але ў цэлым мэта:

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

Тэставанне праграмнага забеспячэння часта выкарыстоўваецца разам з тэрмінамі праверка і праверка .


Праверка : Ці правільна мы робім працу? Праверка : Ці правільна мы робім працу?

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


Праверка - гэта працэс праверкі таго, што ўказанае - тое, што на самой справе хацеў карыстальнік.



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



Што такое пошукавае выпрабаванне і калі яго трэба праводзіць?

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

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


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

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



Якія тэставыя методыкі існуюць і якая іх мэта?

Тэхнічныя прыёмы ў асноўным выкарыстоўваюцца для дзвюх мэтаў: а) для выяўлення дэфектаў; б) для памяншэння колькасці тэстаў.

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


Чаму неабходна тэсціраванне?

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


Прыкладамі могуць быць:

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


У чым розніца паміж памылкай, дэфектам, памылкай, няўдачай, няспраўнасцю і памылкай?

Памылка і памылка - гэта адно і тое ж. Памылка, дэфект і няспраўнасць - гэта адно і тое ж.

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

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




Наколькі дастаткова тэставання?

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

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



Што такое асноўны працэс выпрабаванняў

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

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


Асноўны тэставы працэс складаецца з пяці відаў дзейнасці:

  • Планаванне
  • Спецыфікацыя
  • Выкананне
  • Запіс
  • Праверка завяршэння выпрабаванняў

Працэс тэставання заўсёды пачынаецца з планавання выпрабаванняў і заканчваецца праверкай завяршэння тэсту.

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



Сем прынцыпаў тэсціравання праграмнага забеспячэння

Ніжэй прыведзены сем прынцыпаў тэсціравання праграмнага забеспячэння:

1. Тэставанне паказвае наяўнасць памылак

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

2. Вычарпальнае тэставанне немагчыма

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

3. Ранняе тэсціраванне

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

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

4. Кластэрызацыя дэфектаў

Падчас тэставання можна заўважыць, што большасць паведамленых дэфектаў звязана з невялікай колькасцю модуляў у сістэме. г.зн. невялікая колькасць модуляў ўтрымлівае большасць дэфектаў сістэмы. Гэта прымяненне прынцыпу Парэта да тэставання праграмнага забеспячэння: прыблізна 80% праблем выяўляецца ў 20% модуляў.

5. Парадокс пестыцыдаў

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

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

6. Тэставанне залежыць ад кантэксту

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

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

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

7. Адсутнасць памылак

Тое, што тэставанне не выявіла дэфектаў праграмнага забеспячэння, гэта не азначае, што яно гатовае да адпраўкі. Ці былі выкананыя тэсты сапраўды распрацаваны, каб выявіць большасць дэфектаў? альбо дзе яны распрацавалі, каб даведацца, ці адпавядае праграмнае забеспячэнне патрабаванням карыстальніка? Ёсць мноства іншых фактараў, якія неабходна ўлічваць, перш чым прымаць рашэнне аб пастаўцы праграмнага забеспячэння.



Што такое тэставанне White Box

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

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

Адзінкавае тэставанне

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

Статычны і дынамічны аналіз

Статычны аналіз прадугледжвае праходжанне кода для высвятлення магчымых дэфектаў кода. Дынамічны аналіз прадугледжвае выкананне кода і аналіз вынікаў.

Ахоп заявы

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

Ахоп галіны

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

Праверка бяспекі

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

Тэставанне мутацый

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

Перавагі тэставання White Box

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

Недахопы тэставання White Box

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



Што такое тэставанне Black Box

Пры тэставанні Black Box тэстар тэстуе прыкладанне без ведання ўнутранай працы прыкладання, якое тэстуецца.

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

Тэхніка тэставання памежнага аналізу

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

Дзяржаўная пераходная тэхніка

Тэхніка праверкі стану пераходу выкарыстоўваецца там, дзе нейкі аспект сістэмы можа быць апісаны так званым 'канчатковым аўтаматам'. Гэта проста азначае, што сістэма можа знаходзіцца ў (канчатковым) колькасці розных станаў, і пераходы з аднаго стану ў іншы вызначаюцца правіламі 'машыны'.

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

Тэхніка тэставання на эквівалентнасць падзелу

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

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

Перавагі тэставання чорнай скрынкі

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

Недахопы тэставання чорнай скрыні

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