Преглед садржаја
- Шта је тестирање интеграције?
- Зашто тестирање интеграције?
- Шта су стубови и драјвери у интеграцијским тестовима?
- Који су типови/приступи тестирању интеграције?
- Како урадити интеграцијско тестирање?
- Најбољи алати за тестирање интеграције:
- Савети за тестирање интеграције:
- повезани чланци
- Препоручени чланци
Шта је тестирање интеграције?
Интеграционо тестирање је описано као процес тестирања софтвера у коме је неколико софтверских модула логички интегрисано и тестирано. У овом процесу, више модула се прво појединачно тестирају, а затим тестирају као једна интегрисана јединица. Цела група се прегледа да би се видело да ли интегрисани модул ради како се очекује.
То је прагматичан приступ развоју софтвера који захтева пажљив процес за развој производа кроз континуирано тестирање и ревизију. Ово се постиже постепеним интегрисањем модула или компоненти апликације.
Овај тип теста се примењује и агрегира за тестирање и дефинише у оквиру плана интеграцијског теста који се изводи локално. Интеграциони тестови обезбеђују систем интеграције и систем спреман за тестирање. Примарни фокус ових тестова је тестирање интеракције између различитих компоненти.
Интеграциони тестови су од огромног значаја, јер су све компоненте и модули комбиновани и тестирани. Интеграциони тест постаје витална потреба сваке компаније када планира да пређе на нови пословни модел, нове технологије или чак нове производе или услуге. Интеграциони тестови су суштински део циклуса тестирања, омогућавајући тестерима да пронађу недостатке након интеграције више јединица.
Имамо различите врсте тестирања као што су Јединично тестирање , Тестирање система , и Прихватање тестирање .

Зашто тестирање интеграције?
- Тестови су поузданији и удобнији за изоловање грешака.
- Могу се користити лутке или заглавци и драјвери.
- Интеграционо тестирање улива поверење у програмера.
- Брже пробне радње.
- Интеграционо тестирање почиње у веома раној фази животног циклуса развоја, а програмери могу да ухвате грешке раније него касније.
- Интеграциони тестови откривају грешке на нивоу система, као што су покварена шема базе података и погрешна интеграција кеша.
- Удобније за тестирање у окружењу у развоју.
- Прављење правог теста даје прецизан механизам повратне спреге између програмера и инжењера за тестирање.
- Боља покривеност кода.
- Удобније је пратити покривеност кода.
- Углавном помаже у изградњи случајева коришћења у реалном времену током тестирања од краја до краја.
Шта су стубови и драјвери у интеграцијским тестовима?
Стубови и драјвери су псеудо-кодови или лажни кодови који се користе за тестирање компоненти интеграције када један или више модула нису развијени и потребни су за тестирање других модула. То је програм који обезбеђује тврдо кодиране кодове док улаз прихвата излаз модула у интеграцијском тесту.
У методологији интеграцијских тестова који се обично називају програми за позивање, стубови и драјвери су пожељни одозго надоле. Насупрот томе, возачи се пријављују за приступ одоздо према горе. Стубови и тестери драјвера могу да искористе и стимулишу понашање модула који још нису интегрисани са софтвером. Штавише, они помажу у симулацији активности компоненти које недостају.
Који су типови/приступи тестирању интеграције?
Интеграционо тестирање Великог праска:
Интеграциони тест великог праска је користан приступ тестирању софтвера; опрема програмере са пуним скупом интеграцијских тестова за њихов софтвер, системе и апликације на почетку интеграцијских тестова.
Интеграционо тестирање великог праска је континуирано тестирање које се дешава пре него што системски сегменти формирају систем. То је један од приступа који највише обећава тестирање софтвера , где стална интеграција система и компоненти доводи до формирања комплетног система или апликације.
Предности:
- Корисно за мале системе.
- Главна предност је што је све завршено пре него што почне тестирање интеграције.
Недостаци:
- Веома дуготрајно
- Тешко је пратити узрок неуспеха због одложене интеграције.
- Шансе за критичне кварове су веће јер се у тестирању великог праска све компоненте истовремено тестирају заједно.
- Постоји велика могућност појаве критичних грешака у производном окружењу.
- Ако се пронађе нека грешка, постаје изузетно тешко одвојити све модуле да би се утврдио њен основни узрок.
Инкрементално тестирање интеграције
У тестовима инкременталне интеграције, програмери интегришу модуле користећи стубове или драјвере да би један по један открили дефекте. У овом приступу, тестирање се врши мешањем два или више модула који су логички повезани један са другим, а затим се тестира у вези са њиховим правилним функционисањем. Остали повезани модули се интегришу постепено, а процес се наставља све док се сви логички повезани модули не интегришу и успешно тестирају. Насупрот томе, велики прасак је још једна техника тестирања интеграције, где су сви модули интегрисани у један снимак.
Инкрементално тестирање је два типа.
1. Приступ одозго надоле:
Интеграционо тестирање одозго надоле је приступ где се компонента креира на нижем нивоу и интегрише у компоненту на вишем нивоу. Интеграциони тестови одозго надоле се више фокусирају на интеграцију компоненти на врху него на дну. Програмер може користити стубове за овај приступ. Овај приступ је за широк спектар подухвата, као што су постављање циљева, буџетирање и предвиђање.
Приступ тесту интеграције одозго надоле прво тестира модуле високог нивоа, а затим модуле све више нижег нивоа. Овај метод омогућава да се тестови спроводе одозго надоле, праћење контролних токова и архитектонских структура, са интеграцијским тестовима који почињу одозго надоле. Најчешћа примена је приступ од врха до дна који користи стубове за интеграцијске тестове и резултате теста.
Предности:
- Овај метод не утиче тако озбиљно на ресурсе за рад и одржавање као што се приближава одоздо према горе.
- Локализација квара је лака.
- Рани прототип се може лако добити.
- Најпре би се могле пронаћи и поправити главне мане у дизајну.
- Приоритетни модули се могу прво тестирати.
- Предност овог приступа је што се одлуке могу донети и спровести веома брзо.
Недостаци:
- Овај приступ захтева много Стубова.
- Модули на нижем нивоу се тестирају неефикасно.
- Пружа ограничену покривеност у првим фазама.
- Програмери ће можда морати да развију прилагођене адаптере у раној фази.
- Трошкови имплементације ће вероватно бити већи.
2. Приступ одоздо према горе:
Приступ одоздо према горе је супротан тесту интеграције одозго надоле: модули у најнижем слоју се прво тестирају и интегришу, а затим интегришу узастопно са другим модулима у покрету.
Интеграциони тестови одоздо према горе почињу тестовима јединица, након чега следи модуларна конструкција. Прво се тестира родитељски модул, затим подређени модул и тако даље док се не интегрише.
Тест драјвер се покреће и преноси одговарајуће податке из модула ниског нивоа, а када је код у другом модулу спреман, драјвер замењује стварни модул. Доњи модул се тестира, а модули вишег нивоа се тестирају на исти начин као у тесту интеграције допуне, али са другим драјвером.
Предности:
- Лакша локализација квара.
- Време потребно за праћење приступа одоздо према горе је много мање од других метода тестирања.
- Свест корисника о производу.
- Аутоматизација може заменити многе ручне процесе.
- Исплативо.
- Лакше тест запажања.
- Корисно ако се велики недостаци појаве при дну програма.
Недостаци
- Програм, као целина, не постоји док се не дода последњи модул.
- Рани прототип није могућ.
- Стратегију одоздо према горе води постојећа инфраструктура уместо пословних процеса.
- Обавезни модули (на највишем нивоу софтверске архитектуре) који контролишу ток апликације се тестирају последњи и могу бити склони дефектима.
Тестирање сендвича / хибрида
Сендвич тестирање је спој приступа одоздо-нагоре и одозго надоле, тако да користи предност и приступа одоздо-нагоре и приступа одозго надоле.
Током те фазе тестирају се интерфејс и комуникација између сваког модула. Такође је познато као тестирање хибридне интеграције. Модификовани сендвич тестови су невероватно корисни, помажући тестерима да тестирају различите компоненте система док су интегрисане.
Предности:
- Приступ сендвич тестирању је користан за опсежне пројекте који имају под-пројекте.
- Омогућава паралелно тестирање.
- Временски је ефикасан.
- Програмери цене овај приступ јер комбинују Предности свих повезаних тестирање оквири, помажући професионалцима да искористе све што је најбоље у вези са њима на јасан начин.
Недостаци:
- Тестирање сендвича је прилично скупо.
- Сендвич тестирање се не може користити за системе који имају доста међузависности са различитим компонентама/модулима.
- У сендвич тестирању/хибридном тестирању, потреба за стубовима и драјверима је веома велика.
- Тестирање може постати компликовано.
- Тешко је локализовати грешке.
- Мешовита испитивања захтевају високе трошкове.
- Овај приступ није погодан за мале пројекте.
Како урадити интеграцијско тестирање?
Обично, тестирање интеграције долази након тестирања јединица. Када су све појединачне јединице и тестиране, програмери почињу да комбинују те тестиране модуле и почињу да врше тестирање интеграције. Главни циљ процеса овде је да се тестирају интерфејси између јединица/модула.
- Припремите дизајн.
- Изаберите тип приступа тестирању са горње листе.
- У складу са тим изаберите тестне случајеве, оквире и скрипте.
- Заједно распоредите изабране јединице и покрените тестове интеграције.
- Пратите дефекте и грешке да бисте забележили резултате тестова.
- Понављајте горе наведене тачке док се цео систем не тестира.
Приоритет процеса мора бити на интерфејсним везама које су интегрисане између модула.
Најбољи алати за тестирање интеграције:
ВецторЦАСТ/Ц++ је аутоматизовано решење за тестирање јединица и интеграције које се користи за валидацију безбедносних и тржишно критичних уграђених система. Ово решење за динамичко тестирање се у великој мери користи у индустријама као што су авионика, медицински уређаји, аутомобили, индустријске контроле, железница и финансијски сектори.
Цитрус је оквир отвореног кода који може помоћи програмерима да аутоматизују тестирање интеграције за било који протокол за размену порука или формат података. Цитрус је оквир избора за тестирање интеграције порука ваше апликације., ако користите транспорт за размену порука као што су ХТТП, РЕСТ, СОАП или ЈМС.
ЛДРА омогућава програмерима да изводе тестове јединица и интеграције на главном и циљном уређају. Са ЛДРА програмери могу брзо и лако да генеришу и изврше тестове на нивоу јединице и интеграције, како на хосту (самостално или са циљном симулацијом) тако и на циљном хардверу.
Ових дана неколико предузећа негује пословно оријентисану архитектуру. Традиционална метода тестирања интеграције, као и приступ одоздо према горе, захтева значајне напоре да се креирају тестни подаци. Випроов Смарт Интегратион Тест Аццелератор (СИТА) помаже програмерима да превазиђу ове изазове. Овај оквир омогућава програмерима да убрзају генерисање тестних података и дизајн теста.
Ратионал Интегратион Тестер (РИТ) је алатка за тестирање интеграције раније позната као Греен Хат. ИБМ је купио Греен Хат 2012. Са ИБМ-овим Ратионал Интегратион Тестер-ом, програмери могу да добију окружење без скриптовања, а развој је могућ за СОА тестове за размену порука и пројекте интеграције. Ратионал Интегратион Тестер омета проблеме интеграције уз помоћ итеративних и агилних развојних метода. Алат је сада део Ратионал Тест Воркбенцх-а.
Савети за тестирање интеграције:
- Покрените интеграцијске тестове док не пронађете барем једну грешку.
- Након што изолујете грешку, решите је одмах додавањем или изменом кода.
- Вежбајте тестирање интеграције тек након правилног спровођења јединичног тестирања.
- Запис вашег напретка помаже; програмери боље анализирају неуспех и воде евиденцију о потенцијалним разлозима за неуспех.
- Евидентирање вам помаже да анализирате квар и водите евиденцију о потенцијалним разлозима за неуспех, као и да искључите друга објашњења, сужавајући стварни узрок.
- Уверите се да се ваше окружење за тестирање и развој подударају.
- Користите вредне податке теста.
- Користите заједничко складиште за грешке и тестове.