Typy testów oprogramowania: funkcjonalne, niefunkcjonalne, strukturalne i regresja
Czas czytania: 12 minut

Typy testów oprogramowania to kategorie testowania wyróżnione według celu: testy funkcjonalne sprawdzają, co robi system, testy niefunkcjonalne, jak dobrze to robi, testy strukturalne, czy pokryto logikę kodu, a testy regresji i potwierdzające, czy zmiana niczego nie zepsuła. Typ testów mówi, co sprawdzamy. Poziom testów mówi, kiedy. To dwa różne wymiary i większość nieporozumień w zespołach bierze się z ich pomieszania.

Ten przewodnik jest dla testerów, liderów QA i decydentów technicznych. Dostajecie cztery tabele, przykład jednej funkcji sklepu przetestowanej pięcioma typami testów oraz mapę, który typ pojawia się na którym etapie projektu. Rodzaje testów oprogramowania porządkujemy tu według słownika ISTQB i normy ISO/IEC 25010:2023, a nie według tego, jak akurat nazywa je zespół.

Czym są typy testów oprogramowania?

Słownik ISTQB definiuje typ testów jako grupę czynności testowych ukierunkowanych na konkretne cechy oprogramowania, wynikające z konkretnych celów. Jeden typ pyta „czy to działa zgodnie z wymaganiami”, drugi „czy to wytrzyma realny ruch”, trzeci „czy ktoś nie złamie zabezpieczeń”. Typy nie konkurują ze sobą. W dojrzałym procesie QA współistnieją i dopiero razem tworzą siatkę bezpieczeństwa wokół produktu.

Poziom testów to osobna oś: jednostkowy, integracyjny, systemowy i akceptacyjny. Opisujemy ją w tekście Poziomy testowania oprogramowania. Ten sam typ można uruchomić na różnych poziomach. Test wydajnościowy pojedynczej funkcji to poziom jednostkowy, test wydajnościowy całej aplikacji pod ruchem to poziom systemowy. Testy funkcjonalne też występują na każdym poziomie, od testu jednej metody po test akceptacyjny całego procesu zakupowego.

Testy funkcjonalne
Co robi system? Weryfikacja wymagań: rabat, faktura, logowanie, odzyskiwanie hasła.
Testy niefunkcjonalne
Jak dobrze to robi? Wydajność, bezpieczeństwo, użyteczność, zgodność, niezawodność.
Testy strukturalne
Czy przeszliśmy przez kod? Biała skrzynka, ścieżki, warunki, pokrycie w procentach.
Regresja i retest
Czy zmiana coś zepsuła i czy naprawiony błąd zniknął? Uruchamiane po każdej zmianie.

Dlaczego zespoły mylą typy testów?

Z naszego doświadczenia w audytach QA wynika pięć powtarzalnych powodów. Każdy ma realny koszt i każdy da się naprawić bez nowych narzędzi:

Pomyłka Skutek Naprawa
Poziom mylony z typem zespół mówi „robimy testy integracyjne”, ale nie wie, czy sprawdza funkcje, czy wydajność plan testów, który nazywa wprost, jaki typ testów działa na każdym poziomie
Niefunkcjonalne jako dodatek wydajność i bezpieczeństwo trafiają na koniec, gdy na poprawki brakuje czasu progi wydajności i bezpieczeństwa w kryteriach akceptacji od pierwszego sprintu
Regresja mylona z retestem pojęcia używane zamiennie, raporty niezrozumiałe dla biznesu słowniczek projektu z definicjami ISTQB i przykładem
Wszystko ręcznie powtarzalne scenariusze zjadają czas testerów przed każdym wydaniem automatyzacja regresji i ścieżek krytycznych w pierwszej kolejności
Brak powiązania z ryzykiem zespół testuje to, co łatwe, a nie to, co drogie w razie awarii priorytety według analizy ryzyka, nie wygody

Uporządkowanie typów testów to jeden z najtańszych kroków poprawy jakości: nie wymaga zakupu narzędzi, tylko wspólnego języka. Pierwsze miejsce, w którym ten język warto zapisać, to plan testów.

Testy funkcjonalne: co robi system

Testy funkcjonalne weryfikują, czy system realizuje funkcje opisane w wymaganiach, historyjkach użytkownika i przypadkach użycia. Słownik ISTQB opisuje testowanie funkcjonalne jako testowanie, które ocenia, czy komponent lub system spełnia wymagania funkcjonalne. Testy funkcjonalne wykonuje się ręcznie albo automatycznie, na każdym poziomie testów.

Przykłady funkcji, które sprawdzają testy funkcjonalne: generowanie potwierdzenia zakupu, wystawianie faktury, naliczanie rabatu w koszyku, logowanie i odzyskiwanie hasła. W praktyce dokumentacja bywa niekompletna albo nieaktualna, więc najważniejsze zadanie testera to zrozumienie wymagań, nie odhaczanie kroków. Wiedzę warto czerpać z rozmów z analitykami, programistami i klientami.

Dobre testy funkcjonalne nie kończą się na ścieżce, w której wszystko idzie idealnie. Najwięcej błędów chowa się w przypadkach brzegowych: puste pola, błędne dane, nietypowe kombinacje opcji, przerwany proces. Do ich projektowania służą techniki czarnej skrzynki, takie jak podział na klasy równoważności i analiza wartości brzegowych, opisane w tekście o piramidzie testów i technikach projektowania. Jeśli potrzebujecie, żeby ktoś z zewnątrz przeprowadził testy funkcjonalne Waszej aplikacji, zobaczcie zakres usługi testy funkcjonalne aplikacji webowych i mobilnych. O specyfice telefonów piszemy osobno w artykule Testowanie aplikacji mobilnych: rodzaje i typy testów.

Testy niefunkcjonalne: jak działa system

Testy niefunkcjonalne nie sprawdzają, co system robi, tylko jak działa: wydajność, bezpieczeństwo, użyteczność, zgodność i niezawodność. ISTQB opisuje testowanie niefunkcjonalne jako testowanie cech niefunkcjonalnych. Wbrew częstemu przekonaniu wykonuje się je na wszystkich poziomach, nie dopiero pod koniec projektu. Pełny przewodnik z metodami znajdziecie w artykule Testy niefunkcjonalne: czym są i jak je przeprowadzić, tutaj skupiamy się na tym, jak odróżnić je od reszty.

Rodzaj Co sprawdza Jak się bada Czego brak kosztuje
Wydajnościowe czas odpowiedzi, obciążenie, przeciążenie, wytrzymałość, skalowalność JMeter, Gatling, k6, Locust aplikacja poprawna funkcjonalnie, ale niedostępna przy dużym ruchu
Bezpieczeństwa odporność na ataki, dostęp osób nieuprawnionych, podatności skanery podatności, testy penetracyjne, przegląd kodu; punkt odniesienia OWASP Top 10 wyciek danych klientów, przejęcie kont
Użyteczności i dostępności czy z systemu da się wygodnie korzystać, także z czytnikiem ekranu testy z użytkownikami, heurystyki, audyt WCAG poprawna funkcja, której nikt nie potrafi znaleźć
Zgodności i przenośności działanie w różnych przeglądarkach, systemach i urządzeniach macierz środowisk, chmury urządzeń aplikacja działająca tylko u testera
Instalacji i migracji czy instalacja, aktualizacja i migracja danych przebiegają bez błędów czyste środowisko, aktualizacja z poprzedniej wersji utracone dane klienta po aktualizacji

Testy niefunkcjonalne potrzebują liczb, inaczej kończą się zdaniem „działa szybko”. Według Google web.dev dobre doświadczenie użytkownika oznacza Largest Contentful Paint do 2,5 sekundy, Interaction to Next Paint do 200 milisekund i Cumulative Layout Shift do 0,1, mierzone na 75. percentylu odsłon. Takie progi wpisane w kryteria akceptacji zamieniają ogólnik w test, który da się zaliczyć albo oblać.

Core Web Vitals: progi dobrego wyniku

2,5 s

Largest Contentful Paint, ładowanie głównej treści

200 ms

Interaction to Next Paint, reakcja na interakcję

0,1

Cumulative Layout Shift, stabilność układu

75.

percentyl odsłon, na którym mierzymy próg

Źródło: Google, web.dev, Web Vitals, stan na 2026.

Wbrew pozorom

Po polsku „bezpieczeństwo” to jedno słowo, a norma jakości oprogramowania ma na nie dwie osobne cechy. Wersja ISO/IEC 25010 z listopada 2023 roku dodała do modelu jakości cechę safety, czyli bezpieczeństwo użytkowania (system nie szkodzi ludziom ani otoczeniu), obok istniejącej security, czyli ochrony przed atakiem. Ta sama aktualizacja zmieniła nazwę użyteczności na interaction capability, a przenośności na flexibility. Jeśli w wymaganiach stoi „system ma być bezpieczny”, warto dopytać, o które bezpieczeństwo chodzi, bo to dwa zupełnie różne zestawy testów.

Dwa rodzaje testów niefunkcjonalnych najczęściej decydują o losie produktu na produkcji: wydajnościowe i bezpieczeństwa. Szczegóły opisujemy w tekstach Testy wydajnościowe oraz Testy bezpieczeństwa i testy penetracyjne. Jeśli wolicie zlecić je zespołowi z zewnątrz, zobaczcie testy wydajnościowe aplikacji i testy bezpieczeństwa w ofercie Quality Island.

Testy funkcjonalne kontra niefunkcjonalne

Testy funkcjonalne mówią, co robi system, testy niefunkcjonalne, jak działa. Testy funkcjonalne opierają się na wymaganiach biznesowych i zwykle startują pierwsze. Niefunkcjonalne opierają się na mierzalnych parametrach i niemal zawsze wymagają dedykowanych narzędzi. W wierszu „przykłady” wpisujemy wyłącznie typy testów, bez poziomów, żeby nie powtarzać błędu, przed którym ostrzegamy wyżej:

Kryterium Testy funkcjonalne Testy niefunkcjonalne
Pytanie czy system robi to, co powinien jak dobrze to robi
Podstawa wymagania biznesowe, specyfikacja, historyjki mierzalne parametry: czas, obciążenie, podatności, zgodność
Kolejność zwykle startują pierwsze równolegle, od pierwszych sprintów, nie dopiero na końcu
Narzędzia ręcznie albo automatycznie, narzędzia ogólne (Playwright, Selenium, Postman) niemal zawsze dedykowane (JMeter, k6, skanery podatności, narzędzia WCAG)
Przykłady typów testy zgodności z wymaganiami, testy przypadków użycia, testy przejść między stanami, testy reguł biznesowych, testy integracji danych między modułami wydajnościowe, obciążeniowe, bezpieczeństwa, użyteczności, dostępności, instalacji, migracji
Poziomy wszystkie: od jednostkowego do akceptacyjnego wszystkie: od jednostkowego do akceptacyjnego

Ostatni wiersz jest celowo identyczny po obu stronach. Poziom nie rozstrzyga, czy test jest funkcjonalny. Rozstrzyga to pytanie, na które odpowiada. Testy funkcjonalne i niefunkcjonalne występują obok siebie, nie zamiennie, a test akceptacyjny może zawierać jedne i drugie.

Testy strukturalne: testowanie białej skrzynki

Testy strukturalne, nazywane testami białej skrzynki, projektuje się na podstawie wewnętrznej struktury kodu. Dane wejściowe dobiera się tak, żeby przejść przez zaimplementowane ścieżki, pętle i warunki, a dokładność mierzy się pokryciem kodu w procentach. ISTQB opisuje testowanie białoskrzynkowe jako testowanie oparte na analizie wewnętrznej struktury komponentu lub systemu.

To podejście wymaga znajomości kodu, dlatego prowadzą je zwykle programiści albo testerzy techniczni, najczęściej na poziomie jednostkowym i integracyjnym. Testy białoskrzynkowe mają jedno ograniczenie, które warto znać: sprawdzają to, co zaimplementowano, a nie to, czego brakuje. Funkcji, której nikt nie napisał, nie pokryje żaden procent pokrycia. 100 procent pokrycia kodu, który robi nie to, co trzeba, to wciąż 100 procent. Tylko radość krótsza. Dlatego testy strukturalne uzupełniają testy funkcjonalne, ale ich nie zastępują.

Testy regresji i testy potwierdzające: czym się różnią?

Test potwierdzający (retest) sprawdza, czy konkretny naprawiony błąd zniknął: powtarzacie dokładnie ten test, który wcześniej zakończył się niepowodzeniem. Test regresji sprawdza szerzej, czy zmiana nie zepsuła obszarów, które wcześniej działały. Definicje: test potwierdzający i testowanie regresji w słowniku ISTQB.

Oba pojawiają się po naprawie błędu i razem domykają cykl jakości. Regresja jest najlepszym kandydatem do automatyzacji, bo powtarzacie ją po każdej zmianie. U naszych klientów to od niej zaczynamy prawie każdy projekt automatyzacji. W projekcie dla Argos, e-commerce, automatyzacja testów i uporządkowanie procesów QA skróciły regresję przed wydaniem z 5 dni do 10 godzin. Rodzaje regresji i sposoby jej skracania opisujemy w tekście Testy regresyjne, a wybór narzędzi do automatyzacji w przeglądzie narzędzi do testowania oprogramowania.

Argos, e-commerce: efekt automatyzacji i uporządkowania testów

10 godzin

regresja przed wydaniem, wcześniej 5 dni

−72%

awarii w okresach szczytowych

−46%

błędów krytycznych na produkcji

+12%

konwersji dzięki stabilności checkoutu

Źródło: case study klienta Quality Island, liczby potwierdzone przez klienta, 2026.

Regresja przed każdym wydaniem zjada Wam dni? Testy regresyjne Quality Island dobieramy do ryzyka i zmian. Wycena w 24 godziny od rozmowy.

Zobaczcie zakres i cennik

Jeden koszyk, pięć typów testów: przykład

Teoria najlepiej siada na jednym przykładzie. Weźmy funkcję, którą zna każdy sklep internetowy: kod rabatowy w koszyku. Ta sama funkcja dostaje pięć różnych typów testów, a każdy łapie inną klasę błędów:

Typ testów Co konkretnie sprawdzamy Jaki błąd łapie
Testy funkcjonalne kod 10 procent obniża cenę o 10 procent; kod wygasły zwraca komunikat; kod nie łączy się z inną promocją, jeśli regulamin tego zabrania rabat naliczony podwójnie albo na wykluczony produkt
Testy niefunkcjonalne: wydajność czas przeliczenia koszyka przy 500 jednoczesnych użytkownikach w godzinie startu promocji koszyk, który działa w testach, a w czarny piątek odpowiada po kilkunastu sekundach
Testy niefunkcjonalne: bezpieczeństwo czy kod da się zgadnąć seryjnie, czy cenę można podmienić w żądaniu do API promocja wyczerpana przez bota w kwadrans
Testy strukturalne czy testy jednostkowe przechodzą przez każdą gałąź warunku: kwota minimalna, wykluczone kategorie, waluta martwa gałąź kodu, która nigdy nie była uruchomiona
Regresja i retest po poprawce zaokrągleń: retest błędu plus regresja całego checkoutu i płatności naprawiony rabat, który zepsuł koszty dostawy

Liczby w przykładzie są ilustracyjne, a nie wynikiem konkretnego projektu. Pokazują jednak sedno: żaden pojedynczy typ testów nie złapałby wszystkich pięciu błędów. Więcej o testowaniu sklepów, od koszyka po płatności, piszemy w artykule Testowanie e commerce.

Jak typy testów układają się w cyklu wytwórczym?

Typy testów pojawiają się na różnych etapach projektu. Im wcześniej wykryjecie błąd, tym mniej pracy kosztuje jego poprawka, bo zmienia się mniej kodu, dokumentacji i danych. To prawidłowość, którą każdy zespół zna, i którą większość ignoruje pod presją terminu.

Wymagania i projekt
Projektowanie scenariuszy i kryteriów akceptacji, także niefunkcjonalnych (progi czasu odpowiedzi, poziom WCAG).
Rozwój, poziom jednostkowy
Testy strukturalne i jednostkowe, prowadzone zwykle przez programistów, oraz pierwsze testy funkcjonalne.
Integracja
Czy moduły poprawnie współpracują: testy funkcjonalne API i pierwsze pomiary wydajności.
Poziom systemowy
Pełny produkt: wydajność, bezpieczeństwo, użyteczność w warunkach zbliżonych do produkcyjnych.
Akceptacja i wdrożenie
Testy akceptacyjne potwierdzają zgodność z oczekiwaniami biznesu, regresja zabezpiecza ostatnie zmiany.
Utrzymanie
Po każdej zmianie regresja i retesty, żeby chronić to, co już działa.

Pełny obraz etapów akceptacji znajdziecie w tekście Testy akceptacyjne (UAT). Jeśli chcecie dobrać właściwe typy testów do swojego produktu i ułożyć je w spójny proces, pomagamy w tym w ramach strategii jakości oprogramowania. Podstawy klasyfikacji testów są też częścią szkolenia ISTQB Foundation Level, przez które przeszło wielu z ponad 2 500 specjalistów przeszkolonych przez Quality Island. A o tym, jak liderzy jakości przekładają typy testów na decyzje budżetowe, piszemy na portalu Strefa QA w tekście o kosztach utrzymania oprogramowania.

Co zabrać z tego artykułu

01Typ testów mówi, co sprawdzamy, poziom testów mówi, kiedy. Testy funkcjonalne i niefunkcjonalne występują na wszystkich poziomach.

02Testy funkcjonalne weryfikują wymagania, a ich najcenniejsza część to przypadki brzegowe, nie ścieżka idealna.

03Testy niefunkcjonalne potrzebują progów liczbowych, na przykład Core Web Vitals: LCP 2,5 s, INP 200 ms, CLS 0,1.

04Retest sprawdza jeden naprawiony błąd, regresja chroni cały system. Automatyzację zaczynajcie od regresji.

05Jedna funkcja potrzebuje kilku typów testów: żaden typ w pojedynkę nie łapie wszystkich klas błędów.

Źródło: ISTQB Glossary, ISO/IEC 25010:2023, Google web.dev 2026, case study Argos (Quality Island, 2026).

Chcecie wiedzieć, które typy testów Wam brakuje i od czego zacząć automatyzację? Zrobimy przegląd obecnego pokrycia i priorytetów według ryzyka biznesowego.

Porozmawiajmy o audycie QA


Powiązane na blogu Quality Island

Pełna lista źródeł

  • ISTQB, Glossary, wersja online 2026: hasła test type, functional testing, non-functional testing, white-box testing, confirmation testing, regression testing.
  • ISTQB, Certified Tester Foundation Level v4.0, 2023. Podział na typy i poziomy testów.
  • arc42, Update on ISO 25010, version 2023, 2023. Nowa cecha safety oraz zmiany nazw cech modelu jakości.
  • Google, Web Vitals, web.dev, stan na 2026. Progi LCP 2,5 s, INP 200 ms, CLS 0,1 na 75. percentylu.
  • OWASP, OWASP Top 10, edycja 2021 i kolejne. Punkt odniesienia dla testów bezpieczeństwa aplikacji webowych.
  • Dokumentacja narzędzi wydajnościowych: Apache JMeter, Grafana k6, Locust, stan na 2026.
  • Dane własne Quality Island, 2026: case study Argos (e-commerce) z liczbami potwierdzonymi przez klienta, ponad 2 500 przeszkolonych specjalistów.
😡 7 😮 3 😆 2 👍 1

Co o tym sądzisz?

Dodaj komentarz

Bądź na bieżąco
Strefa QA, portal z eksperckimi artykułami o jakości oprogramowania
Bądź na bieżąco
AI Act w wyrobach medycznych
AI Act w wyrobach medycznych: testy i dokumentacja AI pod MDR

1690,00 PLN

30.11.26, 18.01.27, 08.03.27
1 dzień
AI Act w bankowości i ubezpieczeniach
AI Act w bankowości i ubezpieczeniach: scoring kredytowy, wycena ubezpieczeń i FRIA

1690,00 PLN

27.11.26, 15.01.27, 05.03.27
1 dzień
Testowanie systemów AI wysokiego ryzyka pod AI Act
Testowanie systemów AI wysokiego ryzyka pod AI Act: dokumentacja testowa i QMS dla dostawców

2390,00 PLN

26.11.26, 14.01.27, 04.03.27
2 dni
Popularne artykuły
Język Gherkin: co to jest i jak go używać w testowaniu oprogramowania
Smoke test: co to jest, kiedy go uruchamiać i czym różni się od sanity testu
Jak zostać testerem oprogramowania: ścieżka krok po kroku bez dyplomu informatyka
Najnowsze artykuły
Ile kosztują testy oprogramowania: cennik i czynniki ceny
Strategia testowania w organizacji: czego uczy nas case PKO BP
Koszt zespołu QA: własny zespół czy outsourcing? Rachunek dla CTO na 2026 rok
Popularne kategorie