Шта је динамичко тестирање? Врсте, технике и пример

Динамичко тестирање

Динамичко тестирање је метода тестирања софтвера која се користи за тестирање динамичког понашања програмског кода. Основна сврха динамичког тестирања је тестирање понашања софтвера помоћу динамичких променљивих или променљивих које нису константне и проналажење слабих области у програмском окружењу. Код мора да се изврши да би се тестирало динамичко понашање.

Сви знамо да је тестирање верификација и валидација и потребно је 2 Вс да би се тестирање завршило. Од 2 В, верификација се назива статичким тестирањем, а друга „В“, валидација је позната као динамичко тестирање.

Пример динамичког тестирања

Хајде да разумемо Како се врши динамичко тестирање на примеру:

Претпоставимо да тестирамо страницу за пријаву где имамо два поља која кажу „Корисничко име“ и „Лозинка“, а корисничко име је ограничено на алфанумеричко.

Када корисник унесе корисничко име као 'Гуру99', систем прихвата исто. Када корисник уђе као Гуру99@123, апликација шаље поруку о грешци. Овај резултат показује да се код понаша динамички на основу уноса корисника.

Динамичко тестирање је када радите са стварним системом пружајући улаз и упоређујући стварно понашање апликације са очекиваним понашањем. Другим речима, рад са системом са намером проналажења грешака.

Дакле, на основу горњих изјава можемо рећи или закључити да је динамичко тестирање процес потврђивања софтверских апликација као крајњег корисника у различитим окружењима за изградњу правог софтвера.

Шта ради динамичко тестирање?

Главни циљ динамичких тестова је осигурати да софтвер ради исправно током и након инсталације софтвера, осигуравајући стабилну апликацију без већих недостатака (ова изјава је дата јер ниједан софтвер није без грешака, тестирање може само показати присутност недостатака и не одсуство)

Главна сврха динамичког теста је осигурати доследност софтвера; хајде да расправимо ово на примеру.

У апликацији за банкарство налазимо различите екране попут одељка Моји рачуни, Трансфер средстава, Плаћање рачуна итд. Сви ови екрани садрже поље за износ који прихвата неке знакове.

Рецимо да поље Моји рачуни приказује износ као 25.000 и Трансфер средстава као 25.000 долара и екран за плаћање рачуна као 25000 долара иако је износ исти, начин приказа износа није исти, па софтвер постаје неконзистентан.

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

Врсте динамичког тестирања

Динамичко тестирање је подељено у две категорије

  • Тестирање беле кутије
  • Тестирање црне кутије

Сликовни приказ испод даје нам идеју о врстама динамичког тестирања, нивоима тестирања итд.

Хајде да укратко разговарамо о свакој врсти тестирања и његовој намени

Тестирање беле кутије - Вхите Бок Тестинг је метода тестирања софтвера у којој је интерна структура/ дизајн познат тестеру. Главни циљ тестирања Вхите Бок -а је да провери перформансе система на основу кода. Углавном га изводе програмери или испитивачи беле кутије који имају знање о програмирању.

Тестирање црне кутије - Блацк Бок Тестинг је метода тестирања у којој се налази унутрашња структура/ код/ дизајн НЕ познат тестеру. Главни циљ овог тестирања је да се провери функционалност система који се тестира, а ова врста тестирања захтева извршавање комплетног пакета тестова и углавном га изводе тестери, а нема потребе за било каквим знањем програмирања.

Тхе Црна кутија Тестирање се опет класификује у две врсте.

Су

  • Функционално тестирање
  • Нефункционално тестирање

Функционално тестирање:

Функционално тестирање се врши како би се проверило да ли су све развијене карактеристике у складу са функционалним спецификацијама, а извршава се извршавањем функционалних тестова које је написао тим за контролу квалитета, у фази функционалног тестирања, систем се тестира обезбеђивањем уноса, провером излаза и упоређујући стварне резултате са очекиваним резултатима.

Постоје различити нивои функционалног тестирања од којих су најважнији

  • Јединствено тестирање - Генерално, јединица је мали део кода који се може тестирати, Јединствено тестирање изводи се на појединачној јединици софтвера и изводе га програмери
  • Интегратион Тестинг - Интеграцијско тестирање је тестирање које се проводи након јединичног тестирања и проводи се комбинирањем свих појединачних јединица које се могу тестирати, а изводе га програмери или тестери
  • Тестирање система - Тестирање система се изводи како би се осигурало да ли систем ради према захтевима и генерално се изводи када је комплетан систем спреман, изводе га тестери када се Буилд или код пусти КА тиму
  • Прихватање тестирање - Тестирање прихватљивости се врши да би се проверило да ли је систем испунио пословне захтеве и да ли је спреман за употребу или је спреман за примену, а генерално га изводе крајњи корисници.

Нефункционално тестирање : Нефункционално тестирање је техника тестирања која се не фокусира на функционалне аспекте и углавном се концентрише на нефункционалне атрибуте система, као што су цурење меморије, перформансе или робусност система. Нефункционално тестирање се врши на свим нивоима теста.

Постоји много техника нефункционалног тестирања од којих су најважније

  • Тестирање перформанси - Тестирање перформанси врши се ради провере да ли је време одзива система нормално према захтевима под жељеним оптерећењем мреже.
  • Тестирање опоравка - Тестирање опоравка је метод којим се проверава колико је систем способан да се опорави од пада и хардверских кварова.
  • Испитивање компатибилности - Тестирање компатибилности се врши да би се проверило како се систем понаша у различитим окружењима.
  • Сигурносно тестирање - Сигурносно тестирање се врши ради провере робусности апликације, тј. Како би се осигурало да само овлашћени корисници/улоге приступају систему
  • Тестирање употребљивости - Тестирање употребљивости је начин да крајњи корисници провере употребљивост система како би проверили колико су корисници задовољни са системом.

Технике динамичког тестирања

Технике динамичког тестирања у СТЛЦ састоји се од различитих задатака као што су Анализа захтева за тестове, Планирање теста, Дизајн и имплементација тестног случаја, Подешавање тестног окружења, Извођење тестног случаја, Пријављивање грешака и коначно затварање теста. Сви задаци у техникама динамичког тестирања зависе од завршетка претходног задатка у процесу тестирања.

У СТЛЦ -у можемо рећи да стварни процес динамичког тестирања почиње од дизајна тест случаја, хајде да детаљно разговарамо о свакој активности.

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

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

Након што је стратегија дефинисана и прихваћена од стране менаџмента, тада почиње дизајн стварног теста процеса

Шта је дизајн и имплементација теста

У овој фази идентификујемо,

  • Карактеристике које треба тестирати
  • Изведите услове тестирања
  • Изведите ставке покрића
  • Изведите тестне случајеве

Подешавање тестног окружења

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

Тест Екецутион

Током ове фазе, тест случајеви се заправо извршавају.

Извештај о грешци је ухваћен

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

Предности динамичког тестирања

  • Динамичко тестирање може открити откривене недостатке за које се сматра да су претешки или компликовани и који се не могу покрити статичком анализом
  • У динамичком тестирању софтвер извршавамо с краја на крај, осигуравајући софтвер без грешака, што заузврат повећава квалитет производа и пројекта.
  • Динамичко тестирање постаје основни алат за откривање било каквих безбедносних претњи

Недостаци динамичког тестирања

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

Закључак:

У софтверском инжењерингу, верификација и валидација су две мере које се користе за проверу да ли софтверски производ испуњава спецификације захтева. Статичко тестирање укључује верификацију, док динамичко тестирање укључује валидацију. Заједно помажу у испоруци исплативог квалитетног софтвера.

Овом чланку доприноси Радхика Ренамала