КампутарыПраграмнае забеспячэнне

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

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

метады

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

Метады праверкі (тэставанні) праграм можна падзяліць на статычныя і дынамічныя.

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

Дынамічныя тэхнікі наступныя:

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

празрыстае тэставанне

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

Тэставанне праграм метадам белага скрыні валодае наступнымі перавагамі:

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

недахопы:

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

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

Асноўныя разнавіднасці:

1) тэставанне кіравання патокам - структурная стратэгія, якая выкарыстоўвае паток кіравання праграмай у якасці мадэлі і якая аддае перавагу большай колькасці простых шляхоў перад меншай колькасцю больш складаных;

2) адладка галінавання мае на мэце даследаванне кожнай опцыі (праўдзівай ці ілжывай) кожнага аператара кіравання, які таксама ўключае ў сябе аб'яднанае рашэнне;

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

4) праверка патоку дадзеных - стратэгія даследаванні патоку кіравання шляхам анатацыі графа інфармацыяй аб аб'яўленні і выкарыстанні зменных праграмы;

5) тэставанне цыклаў - цалкам засяроджана на правільным выкананні цыклічных працэдур.

паводніцкая адладка

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

Перавагі такога падыходу:

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

Тэставанне праграм метадамі чорнай скрыні мае наступныя недахопы:

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

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

Да дадзенай катэгорыі можна аднесці наступныя метады тэставання праграмнага забеспячэння:

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

2) краёвай аналіз факусуюць на праверцы межаў або экстрэмальных межавых значэнняў - мінімумах, максімумах, памылковых і тыповых значэннях;

3) фаззинг - выкарыстоўваецца для пошуку хібаў рэалізацыі з дапамогай ўводу скажоных або полуискаженных дадзеных у аўтаматычным або паўаўтаматычным рэжыме;

4) графы прычынна-следчых сувязяў - методыка, заснаваная на стварэнні графаў і ўсталяванні сувязі паміж дзеяннем і яго прычынамі: тоеснасць, адмаўленне, лагічнае АБО і лагічнае І - чатыры асноўных сімвала, якія выказваюць ўзаемазалежнасць паміж прычынай і следствам;

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

6) тэставанне ўсіх пар - тэхніка, набор тэставых значэнняў якой уключае ўсе магчымыя дыскрэтныя камбінацыі кожнай пары ўваходных параметраў;

7) адладка пераходаў станаў - тэхніка, карысная для праверкі машыны станаў, а таксама для навігацыі па графічным інтэрфейсе карыстача.

Тэставанне метадам чорнай скрыні: прыклады

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

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

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

Якая колькасць тэстаў неабходна вырабіць, каб праверыць усе магчымыя значэнні для 4 вокнаў сцяжка і аднаго двухпазіцыйны поля, задавалага час у секундах? На першы погляд разлік просты: 4 поля з двума магчымымі станамі - 24 = 16, якія неабходна памножыць на лік магчымых пазіцый ад 00 да 99, гэта значыць 1600 магчымых тэстаў.

Тым не менш гэты разлік памылковы: мы можам вызначыць, што двухпазіцыйны поле можа таксама ўтрымліваць прабел, т. Е. Яно складаецца з двух літарна-лічбавых пазіцый і можа ўключаць сімвалы алфавіту, адмысловыя знакі, прабелы і т. Д. Такім чынам, калі сістэма ўяўляе сабой 16-бітны кампутар, то атрымаецца 216 = 65 536 варыянтаў для кожнай пазіцыі, выніковых ў 4 294 967 296 тэставых выпадкаў, якія неабходна памножыць на 16 камбінацый для сцяжкоў, што ў агульнай складанасці дае 68 719 476 736. Калі іх выканаць з хуткасцю 1 тэст у секунду, то агульная прад олжительность тэставання складзе 2 177,5 гадоў. Для 32 або 64-бітных сістэм, працягласць яшчэ больш.

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

эквівалентнае разбіццё

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

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

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

Напрыклад, у (1 / x) 1/2 выкарыстоўваецца тры паслядоўнасці дадзеных, тры эквівалентных разбіцця:

1. Усе станоўчыя колькасці будуць апрацоўвацца такім жа чынам і павінны даваць правільныя вынікі.

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

3. Нуль будзе апрацоўвацца асобна і дасць памылку «дзяленне на нуль». Гэта раздзел з адным значэннем.

Такім чынам, мы бачым тры розных раздзела, адзін з якіх зводзіцца да адзінаму значэнні. Ёсць адзін «правільны» раздзел, які дае пэўныя вынікі, і два «няправільных», з некарэктнымі вынікамі.

краёвай аналіз

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

  • няправільнае выкарыстанне аператараў адносіны (<,>, =, ≠, ≥, ≤);
  • адзінкавыя памылкі;
  • праблемы ў цыклах і ітэрацый,
  • няправільныя тыпы або памер зменных, якія выкарыстоўваюцца для захоўвання інфармацыі;
  • штучныя абмежаванні, звязаныя з дадзенымі і тыпамі зменных.

напаўпразрыстае тэставанне

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

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

  • архітэктурная мадэль;
  • уніфікаваны мова мадэлявання (UML);
  • мадэль станаў (канчатковы аўтамат).

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

Такія метады тэставання маюць наступныя перавагі:

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

недахопы:

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

Іншая назва тэхнікі шэрага скрыні - напаўпразрыстая адладка.

Да гэтай катэгорыі адносяць такія метады тэставання:

1) артаганальны масіў - выкарыстанне падмноства ўсіх магчымых камбінацый;

2) матрычная адладка з выкарыстаннем дадзеных аб стане праграмы;

3) рэгрэсіўны праверка, якая праводзіцца пры унясенні новых змяненняў у ПА;

4) шаблонны тэст, які аналізуе дызайн і архітэктуру дыхтоўнага прыкладання.

Параўнанне метадаў тэставання ПА

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

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

Ніжэй прыведзены асноўныя адрозненні трох дынамічных тэхнік тэставання - дадзена табліца параўнання паміж трыма формамі адладкі ПА.

аспект

Метад чорнай скрыні

Метад шэрага скрыні

Метад белага скрыні

Наяўнасць звестак аб складзе праграмы

Аналізуюцца толькі базавыя аспекты

Частковае веданне пра ўнутраную прыладу праграмы

Поўны доступ да зыходнага кода

Ступень драбнення праграмы

нізкая

сярэдняя

высокая

Хто вырабляе адладку?

Канчатковыя карыстальнікі, тэсціроўшчыкі і распрацоўшчыкі

Канчатковыя карыстальнікі, адладчык і дэвелаперы

Распрацоўшчыкі і тэсціроўшчыкі

база

Тэставанне грунтуецца на знешніх пазаштатных сітуацыях.

Дыяграмы БД, дыяграмы патоку дадзеных, ўнутраныя стану, веданне алгарытму і архітэктуры

Унутраная прылада цалкам вядома

ступень ахопу

Найменш вычарпальная і патрабуе мінімуму часу

сярэдняя

Патэнцыйна найбольш вычарпальная. Патрабуе шмат часу

Дадзеныя і ўнутраныя межы

Адладка выключна метадам спроб і памылак

Могуць правярацца дамены дадзеных і ўнутраныя межы, калі яны вядомыя

Лепшае тэставанне даменаў дадзеных і ўнутраных межаў

Прыдатнасць для тэставання алгарытму

няма

няма

ды

аўтаматызацыя

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

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

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

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

  • кіраванне тэсціраваннем, якое ўключае падтрымку кіравання праектам, версіямі, канфігурацыямі, рызыка-аналіз, адсочванне тэстаў, памылак, дэфектаў і інструменты стварэння справаздач;
  • кіраванне патрабаваннямі, якое ўключае захоўванне патрабаванняў і спецыфікацый, іх праверку на паўнату і шматзначнасць, іх прыярытэт і отслеживаемость кожнага тэсту;
  • крытычны прагляд і статычны аналіз, уключаючы маніторынг патоку і задач, запіс і захоўванне каментароў, выяўленне дэфектаў і планавых карэкцый, кіраванне спасылкамі на праверачныя спісы і правілы, адсочванне сувязі зыходных дакументаў і кода, статычны аналіз з выяўленнем дэфектаў, забеспячэннем адпаведнасці стандартам напісання кода, разборам структур і іх залежнасцяў, вылічэннем метрычных параметраў кода і архітэктуры. Акрамя таго, выкарыстоўваюцца кампілятары, аналізатары сувязяў і генератары крос-спасылак;
  • мадэляванне, якое ўключае прылады мадэлявання бізнес-паводзінаў і праверкі створаных мадэляў;
  • распрацоўка тэстаў забяспечвае генерацыю чаканых дадзеных зыходзячы з умоў і інтэрфейсу карыстальніка, мадэляў і кода, кіраванне імі для стварэння або змены файлаў і БД, паведамленняў, праверкі дадзеных зыходзячы з правілаў кіравання, аналізу статыстыкі умоў і рызык;
  • крытычны прагляд шляхам ўводу дадзеных праз графічны інтэрфейс карыстальніка, API, камандныя радкі з выкарыстаннем кампаратараў, якія дапамагаюць вызначыць паспяховыя і няўдалыя тэсты;
  • падтрымка асяроддзяў адладкі, якая дазваляе замяніць адсутны абсталяванне або ПА, у т. ч. сімулятары абсталявання на аснове падмноства дэтэрмінаванага выхаду, эмулятары тэрміналаў, мабільных тэлефонаў або сеткавага абсталявання, асяроддзя для праверкі моў, АС і апаратнага забеспячэння шляхам замены адсутнічаюць кампанентаў драйверамі, фіктыўнымі модулямі і інш., а таксама прылады для перахопу і мадыфікацыі запытаў АС, сімуляцыі абмежаванняў ЦПУ, АЗП, ПЗУ або сеткі;
  • параўнанне дадзеных файлаў, БД, праверка чаканых вынікаў падчас і пасля заканчэння тэставання, у т. ч. дынамічнае і пакетнае параўнанне, аўтаматычныя «аракулы»;
  • вымярэнне пакрыцця для лакалізацыі уцечак памяці і некарэктных кіравання ёю, ацэнкі паводзінаў сістэмы ва ўмовах сімуляваць нагрузкі, генерацыі нагрузкі прыкладанняў, БД, сеткі або сервераў па рэалістычным сцэнарах яе росту, для вымярэння, аналізу, праверкі і справаздачы аб сістэмных рэсурсах;
  • забеспячэнне бяспекі;
  • тэставанне прадукцыйнасці, нагрузкі і дынамічны аналіз;
  • іншыя інструменты, у т. ч. для праверкі правапісу і сінтаксісу, сеткавай бяспекі, наяўнасці ўсіх старонак вэб-сайта і інш.

перспектыва

Са змяненнем тэндэнцый у індустрыі ПА працэс яго адладкі таксама схільны зменам. Існуючыя новыя метады тэставання праграмных прадуктаў, такія як сэрвіс-ориентированнае архітэктура (SOA), бесправадныя тэхналогіі, мабільныя паслугі і т. Д., Адкрылі новыя спосабы праверкі ПА. Некаторыя з змен, якія чакаюцца ў гэтай галіне на працягу наступных некалькіх гадоў, пералічаныя ніжэй:

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

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

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 be.atomiyme.com. Theme powered by WordPress.