differences between unit testing
Детаљна упоредба јединице, интеграције и функционалног испитивања:
За било коју софтверску апликацију веома је важно и јединствено тестирање, као и тестирање интеграције, јер свако од њих користи јединствени поступак за тестирање софтверске апликације.
Али било које, па чак и обоје не могу заменити функционално тестирање ни у једном тренутку.
Шта ћете научити:
- Јединствено тестирање против интеграционог тестирања против функционалног испитивања
- Шта је јединствено тестирање?
- Шта је интеграционо тестирање?
- Јединствено тестирање наспрам интеграционог тестирања
- Функционално тестирање
- Тачна разлика
- Закључак
- Препоручено читање
Јединствено тестирање против интеграционог тестирања против функционалног испитивања
Јединствено тестирање означава тестирање појединачних модула апликације у изолацији (без икакве интеракције са зависностима) како би се потврдило да код ради све како треба.
како отворити јар датотеке виндовс 10
Интеграционо тестирање означава проверу да ли различити модули раде добро када се заједно комбинују у групи.
Функционално испитивање означава тестирање дела функционалности у систему (може да комуницира са зависностима) како би се потврдило да код ради исправне ствари.
Функционални тестови повезани су са интеграционим тестовима, међутим, они означавају тестове који проверавају целокупну функционалност апликације са свим кодовима који се изводе заједно, што је готово тест супер интеграције.
Јединствено тестирање подразумева проверу једне компоненте система, док тестирање функционалности подразумева проверу рада апликације у односу на предвиђену функционалност описану у спецификацији системских захтева. С друге стране, интеграционо тестирање разматра проверу интегрисаних модула у систему.
И, што је најважније, да бисте оптимизовали повраћај улагања (РОИ), ваша база кода би требало да има што више јединствених тестова, мање интеграционих тестова и најмањи број функционалних тестова.
Ово је најбоље илустровано у следећој тест пирамиди:
Јединствене тестове је лакше написати и брже извршити. Време и напор за спровођење и одржавање тестова повећавају се од јединственог до функционалног испитивања као што је приказано у горњој пирамиди.
Пример:
Хајде да разумемо ове три врсте тестирања на превише поједностављеном примеру.
На пример . За функционални мобилни телефон, главни делови који су потребни су „батерија“ и „сим картица“.
Пример јединичног тестирања - Проверава се животни век, капацитет и други параметри батерије. Сим картица се проверава ради активирања.
Пример тестирања интеграције - Батерија и сим картица су интегрисани, тј. Састављени да би се покренуо мобилни телефон.
Пример функционалног испитивања - Функционалност мобилног телефона проверава се у погледу његових карактеристика и употребе батерије, као и могућности сим картице.
Видели смо пример лаички речено.
Узмимо сада технички пример странице за пријаву:
Готово свака веб апликација захтева од својих корисника / купаца да се пријаве. Због тога свака апликација мора имати страницу „Пријава“ која садржи следеће елементе:
- Налог / корисничко име
- Лозинка
- Дугме за пријаву / пријаву
За јединствено тестирање, следећи случајеви могу бити:
- Дужина поља - поља за корисничко име и лозинку.
- Вредности поља за унос треба да буду важеће.
- Дугме за пријаву је омогућено тек након што се у оба поља унесу важеће вредности (Формат и дужина).
За интеграционо тестирање, следећи примери могу бити:
- Корисник види поруку добродошлице након што унесе важеће вредности и притисне дугме за пријаву.
- Корисник би требало да дође до странице добродошлице или почетне странице након важећег уноса и клика на дугме Пријава.
Сада, након што се изврше тестирање јединице и интеграције, да видимо још тест случајеви који се разматрају за функционално тестирање:
- Очекивано понашање се проверава, тј. Да ли је корисник у могућности да се пријави кликом на дугме за пријаву након уноса важећих вредности корисничког имена и лозинке.
- Да ли постоји порука добродошлице која ће се појавити након успешне пријаве?
- Да ли постоји порука о грешци која би се требала појавити на неважећим подацима за пријаву?
- Постоје ли сачувани колачићи веб локација за поља за пријаву?
- Може ли се инактивирани корисник пријавити?
- Постоји ли веза „заборављена лозинка“ за кориснике који су заборавили лозинке?
Много је више таквих случајева који функционалном испитивачу падну на памет током обављања функционалних испитивања. Али програмер не може узети све случајеве док прави случајеве за тестирање јединице и интеграције.
Стога постоји пуно сценарија који тек треба да се тестирају чак и након јединственог и интеграционог тестирања.
Сада је време да испитамо јединицу, интеграцију и функционално тестирање једно по једно.
Шта је јединствено тестирање?
Као што и само име говори, овај ниво укључује тестирање „јединице“.
Овде јединица може бити најмањи део апликације која се може тестирати, било да је реч о најмањој појединачној функцији, методи итд. Програмери софтвера су ти који пишу јединице тестова. Циљ је да се ускладе захтеви и очекивано понашање јединице.
Испод је неколико важних тачака о јединственом тестирању и његовим предностима:
- Јединствено тестирање се врши пре тестирања интеграције од стране програмера софтвера који користе технике испитивања беле кутије .
- Јединствено тестирање не проверава само позитивно понашање, тј. Тачан излаз у случају ваљаног уноса, већ и кварове који се јављају са неисправним уносом.
- Проналажење проблема / грешака у раној фази је врло корисно и смањује укупне трошкове пројекта. Како се јединично тестирање врши пре интеграције кода, проблеми пронађени у овој фази могу се решити врло лако, а њихов утицај је такође веома мали.
- Јединствени тест тестира мале делове кода или појединачне функције, тако да су проблеми / грешке пронађени у овим тест случајевима независни и не утичу на остале тест случајеве.
- Још једна важна предност је што јединствени тест случајеви поједностављују и олакшавају тестирање кода. Дакле, постаје лакше решити проблеме у каснијој фази, јер ће бити тестирана само најновија промена кода.
- Јединствени тест штеди време и трошкове, а може се поново користити и лако се одржава.
ЈУнит ( Јава фрамеворк ), ПХПУнит (ПХП фрамеворк), НУнит (.Нет фрамеворк) итд. Су популарни алати за јединствено тестирање који се користе за различите језике.
Шта је интеграционо тестирање?
Интеграционо тестирање је тестирање интеграције различитих делова система заједно. Прво се интегришу два различита дела или модула система, а затим се врши интеграционо тестирање.
Циљ тестирања интеграције је да се провери функционалност, поузданост и перформансе система када је интегрисан.
Испитивање интеграције врши се на модулима који су прво тестирани, а затим тестирање интеграције дефинише да ли комбинација модула даје жељени излаз или не.
Интеграционо тестирање могу обавити независни тестери или програмери.
Постоје 3 различите врсте приступа интеграцијском тестирању. Размотримо укратко сваку од њих:
пронађи команду у унику са примерима
а) Приступ интеграције Великог праска
У овом приступу сви модули или јединице су интегрисани и истовремено тестирани у целини. То се обично ради када је цео систем спреман за интеграционо тестирање у једном тренутку.
Молимо вас да не мешате овај приступ интеграционог тестирања са системским тестирањем, тестира се само интеграција модула или јединица, а не цео систем као што се то ради у системском тестирању.
Главни приступ Великог праска предност је да се све интегрисано тестира одједном.
Један главни недостатак је да постаје тешко идентификовати кварове.
Пример: На слици испод, јединице 1 до јединице 6 интегрисане су и тестиране помоћу приступа Великог праска.
б) Приступ од врха надоле
Интеграција јединица / модула тестира се од врха до дна, корак по корак.
Прва јединица се тестира појединачно писањем тест СТУБС . После тога се нижи нивои интегришу један по један све док се последњи ниво не састави и не тестира.
Приступ од врха према доле је врло органски начин интеграције, јер је у складу са оним како се ствари дешавају у стварном окружењу.
Једини забринутост са овим приступом је да се главна функционалност тестира на крају.
за који процес су потребне аутоматизоване израде и испитивања ради верификације софтвера током развоја
ц) Приступ одоздо према горе
Јединице / модули се тестирају од доњег до горњег нивоа, корак по корак, све док се сви нивои јединица / модула не интегришу и не тестирају као једна целина. Програми стимулатора тзв ВОЗАЧИ користе се у овом приступу. Лакше је открити проблеме или грешке на нижим нивоима.
Главни недостатак овог приступа је да се проблеми на вишем нивоу могу идентификовати на крају тек када су све јединице интегрисане.
Јединствено тестирање наспрам интеграционог тестирања
Након што смо имали довољно расправе о јединственом тестирању и интеграционом тестирању, прођимо брзо кроз разлике између њих у следећој табели:
Јединствено тестирање | Испитивање интеграције |
---|---|
Извршено у почетној фази испитивања, а затим се може извршити било када | Мора се извршити након јединственог тестирања и пре тестирања система |
Тестира појединачну компоненту целог система, тј. Тестира јединицу у изолацији. | Тестира системске компоненте које раде заједно, тј. Тестирају сарадњу више јединица. |
Брже за извршење | Може трчати споро |
Нема спољне зависности. Свака спољна зависност се изругује или умањује. | Захтева интеракцију са спољним зависностима (нпр. База података, хардвер итд.) |
Једноставно | Комплекс |
Диригује програмер | Проводи испитивач |
То је врста тестирања беле кутије | То је врста тестирања црне кутије |
Јефтино одржавање | Скупо одржавање |
Почиње од спецификације модула | Почиње од спецификације интерфејса |
Јединствено тестирање има уски опсег јер само проверава да ли сваки мали део кода ради оно што је предвиђено. | Има шири опсег јер покрива целу апликацију |
Резултат јединичног тестирања је детаљна видљивост кода | Резултат интеграционог тестирања је детаљна видљивост интеграционе структуре |
Откријте проблеме у оквиру функционалности само појединих модула. Не излаже грешке интеграције или проблеме широм система. | Откријте грешке које настају када различити модули међусобно комуницирају како би формирали целокупан систем |
Функционално тестирање
ДО техника испитивања црне кутије , где се функционалност апликације испитује како би се генерисао жељени излаз при пружању одређеног уноса назива „функционално тестирање“.
У нашем процеси тестирања софтвера , то радимо писањем тест случајева према захтевима и сценаријима. За било коју функционалност, број написаних тест случајева може варирати од једног до више.
Тест примери се у основи састоје од следећих делова:
- Резиме теста
- Предуслови (ако постоје)
- Кораци уноса у тест примеру
- Подаци о тестирању (ако постоје)
- Очекивани излаз
- Напомене (ако постоје)
„На основу захтева“ и „На основу пословног сценарија“ су два облика функционалних испитивања која се спроводе.
У тестирању заснованом на захтевима, тест случајеви се креирају према захтевима и тестирају у складу с тим. У функционалном тестирању заснованом на пословном сценарију, тестирање се врши имајући на уму све сценарије из пословне перспективе.
Међутим, главни недостатак функционалног тестирања је вероватна сувишност у тестирању и могућност пропуштања неких логичких грешака.
Тачна разлика
Погледајмо њихове разлике.
Ево неких главних:
Јединствено тестирање | Интеграционо тестирање | Функционално испитивање | |
---|---|---|---|
Дефиниција и сврха | Тестирање најмањих јединица или модула појединачно. | Тестирање интеграције две или више јединица / модула комбинованих за извршавање задатака. | Тестирање понашања апликације према захтеву. |
Сложеност | Нимало сложен јер укључује најмање кодове. | Нешто сложенији од јединичних тестова. | Сложенији у поређењу са јединственим и интеграционим тестовима. |
Технике испитивања | Техника тестирања беле кутије. | Техника испитивања беле кутије и црне кутије. Тестирање сиве кутије | Техника тестирања црне кутије. |
Главна пажња | Појединачни модули или јединице. | Интеграција модула или јединица. | Читава функционалност апликације. |
Грешка / покривени проблеми | Јединствени тестови проналазе проблеме који се често могу појавити у модулима. | Тестови интеграције проналазе проблеме који се могу појавити током интеграције различитих модула. | Функционални тестови проналазе проблеме који не дозвољавају апликацији да извршава своју функционалност. То укључује и неке проблеме засноване на сценарију. |
Питање бекство | Нема шансе за бекство. | Мање шансе за бекство. | Више шанси да се проблем побегне јер је листа тестова које треба покренути увек бесконачна. |
Такође прочитајте => Шта је испитивање карактеристика
Закључак
Све ове три врсте испитивања су у корелацији.
Да би се постигла потпуна покривеност, потребни су јединствени тестови за путање / линије кода, функционални и интеграциони тестови како би се осигурало да ’јединице’ раде заједно.
Надам се да ће вам овај чланак дати јасну представу о јединственом, интеграцијском и функционалном тестирању, заједно са њиховим разликама, иако ових облика тестирања има много више !!
Препоручено читање
- Најбољи алати за тестирање софтвера 2021. године (КА Тест Аутоматион Тоолс)
- Споцк за интеграцију и функционална испитивања са селеном
- Функционално тестирање вс нефункционално тестирање
- Преузимање е-књиге за тестирање буквара
- 10 најбољих алата за тестирање интеграције за писање интеграционих тестова
- Кључне разлике између тестирања црне кутије и тестирања беле кутије
- Комплетан водич за функционално тестирање са својим врстама и примерима
- Функционално тестирање против тестирања перформанси: треба ли то радити истовремено?