Не може да се направи разработка на софтуер без тестване на изпълним код. Всъщност той отнема половината от цялото време, отделено за развитие, и повече от половината от разходите по проекта. Той обаче е неразделна част от процеса на създаване на нови приложения, програми, системи.
Един от начините за контрол на качеството на софтуера е интеграционното тестване, на входа на който се подават отделни модули, тествани на предишния етап. За разлика от модулната версия, при която се откриват грешки, локализирани във всяка отделна функция или клас, интеграционното тестване е търсене на дефекти, свързани с осъществяването на взаимодействието между отделните части на създавания продукт. Функционалното тестване на интеграцията използва метода на бялата кутия, т.е. инженер по качеството налични и известни текстове на всеки отделен модул, както и принципите на взаимодействие между тях.
Монолитен метод означава, че всички модули, които в бъдеще ще бъдат подложени на интеграционно тестване, се събират едновременно. Почти със сигурност има ситуации, в които част от тествания комплекс все още не е готова.
В този случай, той се заменя с допълнително разработени "щепсели" или драйвери.
Наред с монолитния метод се идентифицира и инкременталният метод (наричан още стъпка по стъпка), тъй като обемът на тествания код нараства постепенно, което позволява локализиране на области с дефекти в взаимовръзките между отделните части.
Инкременталният метод включва два начина за добавяне на модули:
Основният недостатък на монолитен тип монтаж е голямото количество време и разходи за труд за имитиране на липсващите части на тествания комплекс. Изглежда, че мъничките са доста удобен инструмент за тестване, но възникват ситуации, когато процесът трябва да пресъздаде симулационните части на програмата. Например, в случай на промени в състава на тестваните модули. Освен това ефективността на търсенето на дефекти не е толкова висока, когато работата не се извършва с реален продукт, а само с фиктивен компонент. Същият недостатък съпровожда инкременталното тестване с възходящ метод на изграждане.
В същото време, един от недостатъците на метода стъпка по стъпка е необходимостта от организиране и създаване на среда за изпълнение на модули в дадена последователност. Също така е почти невъзможно паралелното развитие на горните и долните нива.
Разбира се, и двата метода на сглобяване, монолитни и инкрементални, имат не само недостатъци, но и предимства. В първия случай има отлични възможности за паралелно развитие на всички класове и функции, включени в тестването, както на началния етап, така и след прецизиране. Методът „стъпка по стъпка“ е по-трудоемък: модулите се свързват постепенно и постепенно се откриват грешки и дефекти. Това, както знаете, ви позволява да намалите времето за търсене на такива.
На този етап се извършва колосалната работа по проверка на взаимните връзки на всички нива, без които, разбира се, не е възможно да се правят допълнителни тестове.
Тестване на интеграционния софтуер има няколко предимства:
Тестването на интеграцията е завършено, но това не е всичко. Намерените грешки се фиксират и изпращат на разработчика за корекция, след което процесът започва отново.
Първо, необходимо е да се провери дали идентифицираните дефекти са отстранени. Второ, по време на промяната на изходния код могат да възникнат нови грешки в работата на програмата и взаимодействие със софтуер на трети страни.
Въпреки че в момента има голям брой методи за контрол на качеството, тестването на интеграцията все още играе важна роля. Пример за такъв вид проверка може ясно да покаже "пречките" при разработването на софтуер и документация.
В зависимост от размера на първоначалния набор от данни и домейна за развитие, може да има проблем с времето на тестване и сложността на събитието като цяло.
За най-ефективна проверка на разработката е необходимо да се използват огромни количества входни данни и условия, с които е невъзможно да се работи с "ръчно". За да се реши този проблем, се използва автоматизация на теста. Подобно на други видове, интеграционното тестване може също да бъде автоматизирано. Това ще намали времето за разработване като цяло, както и ще подобри ефективността на процеса на откриване на грешки.
Въпреки това автоматизацията на теста не може да замести изцяло работата на инженера по качеството, а само да я допълни.
Така, интеграционното тестване е неразделна част от разработването на всеки софтуер и един от етапите на целия процес на проверка на качеството на продукта. Както всеки метод, той има редица предимства и недостатъци, но без неговото приложение става невъзможно да се разработи висококачествен софтуер.