Какво е Integration testing и за какво служи?

+2 гласа
2,675 прегледа
попитан 2016 юли 27 от Binki.Danova. (1,410 точки)
Здравейте. Какво представлява Integration testing-а? За какво се ползва? Какви типове Integration testing познавате? Един колега в работата се опита да ми го обясни, но не го разбрах много добре. Някой може ли от опита си да сподели?

1 отговор

+1 глас
отговорени 2016 юли 28 от Daniel Ivanov (11,160 точки)

Здравей,

Integration testing или тестване на интеграцията е фаза от софтуерното тестване и част от йерархията на тестването, при което индивидуалните софтуерни модули са комбинирани и тествани като една цяла група. Прави се след unit testing-а и преди validation testing-а.
Integration testing-ът взема input модулите, които са минали юнит тестинга, групира ги и им пуска тестове, които са определени още от тестовия план за интеграционно тестване и накрая връща като output дали интегрираната система е годна за системно тестване.
 
За какво се ползва?
Целта на integration testing-а е да провери дали групата от модули е функционална, стабилна и надеждна. Тези модули/единици се изпълняват през техните интерфейси с помощта на black box testing-а, като success и error кейсовете биват симулирани чрез подходящи параметри и входящи данни (data inputs). Тест кейсовете се правят така, че да проверят дали всички компоненти в групите си взаимодействат както трябва, например между различни procedure calls или process activations и се прави след юнит тестинга. Според SDLC (Software Development Life Cycle-a) integration testing-ът се прави след модулните и функционалните тестове.
Типове integration testing
Big Bang
При този подход повечето от develop-натите модули са групирани заедно с цел формиране на цялостен софтуер или голяма част от системата, които след това биват интеграционно тествани. Big Bang методът е много ефективен и спестява бая време, но ако тест кейсовете и техните резултати не са описани правилно цялият интеграционен процес ще стане много по-сложен и може да възпрепятства тест екипа като в резултат интеграицонното тестване би било провелено. 
Един от най-ползваните типове Big Bang тествания е Usage Model testing-а (тип тип инт.тестване/ под тип :D ). Ползва се както в софтуерното, така и в хардуерното тестване. Тук се тества като се създават близки до реалните enviroment (средa) и workload (натовареност) и това дава обективни резултати.
 
Top-down, Bottom-up, Sandwich & Risky -hardest
Bottom up подходът за тестване е такъв, при който компонентите от най-ниско ниво (например за операционни системи, хардуерни драйвери и т.н.) се тестват най-напред и чак след това тези от от по-високо (за текстообработващи програми, бази данни, видео игри и т.н.) , което си е логично - нали така?
Всички на дъното или модулите от по-ниско ниво първо се интегрират и тогава се тестват и като че ли е най-полезен само когато всички или повечето от  модулите от същото ниво са готови.
Top down – отгоре надолу.
Sandwich testing – комбинира top down с bottom up – тоест отгоре и отдолу едновременно.
Risky- hardest – при който се почва интеграционното тестване от най-рисковите и трудни за тестване софтуерни модули.

...