Testowanie integracyjne to faza tworzenia i testowania oprogramowania, w której łączy się i testuje wiele jednostek lub modułów w ramach programu lub konfiguracji sprzętowej. Te różne jednostki są zazwyczaj testowane indywidualnie, aby upewnić się, że każda jednostka działa poprawnie samodzielnie; ta faza testowania integruje te odmienne jednostki w większy system. Można to zrobić podczas tworzenia oprogramowania, aby zapewnić, że różne aspekty większego programu będą mogły ze sobą współpracować, lub podczas testowania sprzętu, aby zapewnić odpowiednią funkcjonalność między różnymi jednostkami. Testowanie integracyjne jest kluczową fazą testowania, ponieważ można znaleźć wiele błędów i można opracować wczesne wersje całego oprogramowania lub sprzętu.
Nazywane również integracją i testowaniem lub I&T, testowanie integracyjne jest zwykle postrzegane jako druga główna faza testowania. Pierwsza faza nazywana jest testowaniem jednostkowym i koncentruje się głównie na testowaniu poszczególnych jednostek lub części większego programu lub systemu, aby upewnić się, że każda jednostka działa samodzielnie. Te oddzielne jednostki są zbierane razem w testach integracyjnych, gdy każda z nich przejdzie testy jednostkowe, aby zapewnić, że mogą współpracować w większych grupach. Następnie będą one zwykle umieszczane razem w pełnym systemie lub programie, który jest rozwijany i testowany jako część tego pełnego systemu, co nazywa się testowaniem systemowym.
Istnieje wiele sposobów przeprowadzania testów integracyjnych, chociaż zazwyczaj stosuje się kilka typowych metod. Testowanie oddolne jest dość powszechne i zwykle obejmuje testowanie różnych aspektów zintegrowanego systemu, zaczynając od niższych poziomów systemu. Gdy te „dolne” aspekty systemu przejdą testy, testowanie przesuwa się „w górę” do ważniejszych aspektów. Można również przeprowadzić testy integracyjne odgórne, w których najpierw testowane są najwyższe poziomy systemu, a proces jest kontynuowany „w dół” do niższych poziomów.
Jednym z głównych problemów związanych z tymi dwoma typami testów integracyjnych jest jednak to, że żaden z nich nie może łatwo ustanowić wczesnej wersji produktu z podstawową funkcjonalnością. Ten typ wydania wersji alfa może mieć kluczowe znaczenie dla większych możliwości testowania, dlatego zwykle należy zastosować inne podejścia, aby umożliwić takie wydanie. Jednym z takich podejść jest testowanie typu „wielki wybuch”, w którym wszystkie części zintegrowanego systemu są testowane jednocześnie. Może to być korzystne, jeśli w testowanym oprogramowaniu jest niewiele problemów lub błędów, ale może być trudno wskazać konkretne problemy, jeśli występuje ich zbyt wiele.
Istnieje również rodzaj testów integracyjnych określany jako „testowanie kanapkowe”, który ma na celu złagodzenie niektórych z tych problemów. Zasadniczo ten rodzaj testowania zaczyna się od jednoczesnego testowania odgórnego i oddolnego, a obie formy testowania skutecznie „spotykają się w środku”. Pozwala to na wczesne testowanie podstawowych systemów logicznych, zaletę testowania odgórnego i wcześniejsze identyfikowanie mniejszych problemów, tak jak w przypadku testowania oddolnego. Takie testy mogą również szybciej wyprodukować wczesną wersję produktu do bardziej zakrojonych na szeroką skalę testów lub zaawansowanych demonstracji produktu w mediach.