Testowanie systemowe to weryfikacja kompletnego, zintegrowanego systemu względem wymagań - funkcjonalnych i niefunkcjonalnych - na środowisku możliwie zbliżonym do produkcyjnego. W kolejności poziomów testów przychodzi po testach jednostkowych i integracyjnych, a przed akceptacyjnymi.
Z perspektywy analityka to etap, na którym jego wymagania są sprawdzane jeden do jednego: zespół testowy bierze specyfikację i systematycznie weryfikuje każde zachowanie. Jeśli wymaganie jest niemierzalne albo dwuznaczne, właśnie tu wraca jako pytanie - dlatego dobrze napisane wymagania skracają testy systemowe o tygodnie.
W MediFlow testy systemowe e-rejestracji objęły pełne przepływy: od założenia konta pacjenta, przez wyszukanie lekarza w jednej z 12 przychodni, rezerwację, płatność za wizytę komercyjną, po przypomnienie SMS i oznaczenie wizyty jako odbytej w panelu recepcji. Całość na kopii produkcyjnej konfiguracji, z prawdziwymi grafikami i zanonimizowanymi pacjentami. Wyszło między innymi, że przy jednoczesnym odwołaniu i rezerwacji tego samego slotu system potrafił podwójnie zarezerwować termin.
Częsta pomyłka: mylenie testów systemowych z akceptacyjnymi. Różnica jest w pytaniu i w ludziach: testy systemowe wykonuje zespół QA i pyta „czy system spełnia wymagania?", UAT wykonuje biznes i pyta „czy da się na tym pracować?". Te pytania dają różne odpowiedzi - system może być w pełni zgodny ze specyfikacją i jednocześnie nieużywalny w realnym procesie, bo specyfikacja czegoś nie przewidziała. Druga pomyłka: testowanie na środowisku odbiegającym od produkcji. Wyniki bywają wtedy bezwartościowe.