Здравей,
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 – при който се почва интеграционното тестване от най-рисковите и трудни за тестване софтуерни модули.