Trwa sprzedaż biletówTesting Ground Conference, bilety 30% taniej

Organizujemy Testing Ground Conference, jedną z największych konferencji QA w Polsce. Kod poniżej daje 30% na każdy bilet.

Kup bilety
Testowanie aplikacji webowych: co sprawdzić, jakie testy i jakimi narzędziami

Czas czytania: około 13 minut

Aplikacja webowa działa poprawnie na Waszym laptopie, w Chrome, przy dobrym łączu i na koncie testowym z pełnymi uprawnieniami. Problem w tym, że użytkownik wchodzi z telefonu w metrze, ma włączony tryb ciemny, blokadę ciasteczek i konto z ograniczeniami. Testowanie aplikacji webowych polega na sprawdzeniu, czy system działa poprawnie także wtedy, gdy warunki odbiegają od tych z komputera zespołu. To praca na czterech warstwach naraz: interfejsie w przeglądarce, komunikacji przez protokół HTTP, logice po stronie serwera i danych w bazie.

Ten materiał jest częścią kursu automatyzacji prowadzonego przez Tomasza Stelmacha, założyciela Quality Island. Zebraliśmy w nim to, co tester musi rozumieć, zanim napisze pierwszy test automatyczny aplikacji webowej: czym różni się aplikacja od strony, jakie rodzaje testów mają sens, co znaczą kody odpowiedzi serwera i jak wygląda kolejność pracy w realnym projekcie.

Testowanie aplikacji webowych w trzech zdaniach

Testowanie aplikacji webowej to sprawdzenie czterech warstw naraz: interfejsu w przeglądarce, komunikacji przez HTTP, logiki na serwerze i spójności danych w bazie. Zakres dobiera się do ryzyka biznesowego, a nie do listy funkcji, dlatego najpierw testujemy ścieżki, na których firma zarabia albo traci reputację. Testy funkcjonalne odpowiadają na pytanie, czy aplikacja robi to, co powinna, a testy wydajności, bezpieczeństwa i dostępności odpowiadają na pytanie, jak dobrze to robi.

Czym jest aplikacja webowa?

Aplikacja webowa to program uruchamiany w przeglądarce, który działa na serwerze, a nie na komputerze użytkownika. Nie instalujecie jej, nie aktualizujecie ręcznie i nie zależy od systemu operacyjnego. Wystarczy adres i przeglądarka. Bankowość internetowa, sklep, panel administracyjny, system rezerwacji, poczta w przeglądarce i narzędzie do zarządzania zadaniami to wszystko aplikacje webowe.

Z perspektywy testera najważniejsza jest konsekwencja tej architektury: to, co widzicie na ekranie, jest tylko końcem długiej drogi. Kliknięcie w przycisk uruchamia żądanie do serwera, serwer sięga do bazy danych albo do innej usługi, przetwarza dane i odsyła odpowiedź, którą przeglądarka zamienia na obraz. Błąd może powstać na każdym z tych etapów, a użytkownik zobaczy tylko jego skutek, najczęściej w postaci pustego ekranu albo komunikatu bez treści.

450 000+
testów automatycznych napisanych przez zespół Quality Island, w większości dla aplikacji webowych
72%
mniej awarii w okresach szczytowych w projekcie dla Argos po uporządkowaniu testów aplikacji sklepu
12%
wzrost konwersji w tym samym projekcie po ustabilizowaniu koszyka i płatności
5 dni na 10 h
skrócenie regresji przed wydaniem, gdy część sprawdzeń zeszła z interfejsu na poziom API

Aplikacja webowa a strona internetowa: gdzie przebiega granica?

Strona internetowa pokazuje treść, aplikacja webowa pozwala coś zrobić. Granica bywa płynna, bo współczesne witryny mają formularze i wyszukiwarki, ale dla testera różnica jest bardzo praktyczna. Strona ma stan, który zmienia redakcja. Aplikacja ma stan, który zmienia użytkownik, i to właśnie ten stan trzeba sprawdzać w wielu kombinacjach.

Cecha Strona internetowa Aplikacja webowa
Rola użytkownika czyta, ogląda, ewentualnie wysyła formularz kontaktowy tworzy, edytuje i usuwa dane, wykonuje operacje na własnym koncie
Stan i dane ten sam dla wszystkich odwiedzających różny dla każdego konta, zależny od uprawnień i historii działań
Logowanie zwykle brak podstawa działania, razem z rolami i uprawnieniami
Co psuje się najczęściej wygląd, linki, szybkość ładowania logika procesu, spójność danych, uprawnienia, integracje
Priorytet w testach treść, dostępność, indeksowanie ścieżki użytkownika i procesy biznesowe od początku do końca

W praktyce projektowej ta różnica przekłada się wprost na liczbę przypadków testowych. Stronę sprawdza się w kilkunastu scenariuszach, aplikację w kilkuset, bo każdy proces ma warianty zależne od roli, danych i stanu poprzedniego kroku.

Co tester musi rozumieć przed pierwszym testem?

Bez zrozumienia, co dzieje się między kliknięciem a wynikiem na ekranie, zgłoszenia błędów są bezużyteczne dla programistów. Cztery pojęcia wystarczą, żeby zacząć rozmawiać z zespołem tym samym językiem.

PRZEGLĄDARKA

Pobiera kod strony i zamienia go w obraz. To ona wykonuje kod JavaScript, przechowuje ciasteczka i pamięta sesję. Ta sama aplikacja w dwóch przeglądarkach może zachować się inaczej.

SERWER

Przyjmuje żądania, sprawdza uprawnienia, wykonuje logikę biznesową i odsyła odpowiedź. Tu zapadają decyzje, których użytkownik nie widzi, na przykład czy rabat przysługuje.

DOM

Drzewo elementów strony, na którym operują testy automatyczne. Selektor wskazujący element w DOM to podstawowe narzędzie testera automatyzującego.

API

Kanał, którym przeglądarka rozmawia z serwerem. Sprawdzenie logiki na tym poziomie jest szybsze i stabilniejsze niż przez interfejs.

W naszych projektach ta wiedza skraca czas diagnozy błędu z godzin do minut. Tester, który potrafi otworzyć narzędzia deweloperskie i pokazać, że serwer odesłał kod 500 z konkretnym komunikatem, oddaje programiście gotowy trop zamiast zdania „nie działa”.

Jakie testy aplikacji webowych wykonujemy?

Rodzaj testu wybiera się na podstawie ryzyka, nie na podstawie mody. Poniższa tabela pokazuje, co sprawdza każdy rodzaj, kiedy go uruchomić i jakimi narzędziami pracuje się najczęściej.

Rodzaj testów Co sprawdza Kiedy uruchamiać Narzędzia
Funkcjonalne czy funkcje działają zgodnie z wymaganiami przy każdej nowej funkcji Playwright, Selenium, Cypress
Regresyjne czy zmiana nie zepsuła tego, co działało przed każdym wydaniem zestaw automatyczny w procesie ciągłej integracji
Integracyjne i API poprawność wymiany danych między usługami przy zmianie kontraktu albo integracji Postman, REST Assured, SoapUI
Wydajnościowe czas odpowiedzi i zachowanie pod obciążeniem przed sezonem i po zmianach architektury Apache JMeter, Gatling, k6
Bezpieczeństwa podatności, uprawnienia, ochrona danych cyklicznie oraz przed wdrożeniem OWASP ZAP, Burp Suite, przegląd ręczny
Dostępności zgodność z wytycznymi WCAG, obsługa klawiaturą i czytnikiem przy nowych widokach i przed audytem axe, Lighthouse, testy ręczne z czytnikiem ekranu
Użyteczności czy użytkownik rozumie i kończy proces przed przebudową i po spadku konwersji sesje z użytkownikami, analiza ścieżek
Zgodności z przeglądarkami wygląd i działanie w różnych przeglądarkach przy zmianach interfejsu macierz przeglądarek, testy równoległe

W projekcie dla Argos, sklepu internetowego, zaczęliśmy właśnie od tej tabeli. Okazało się, że zespół miał dużo testów funkcjonalnych nowych funkcji i prawie żadnych regresyjnych, więc każde wydanie było ryzykiem. Po przebudowie zestawu regresja skróciła się z pięciu dni do dziesięciu godzin, a liczba błędów krytycznych na produkcji spadła o 46 procent.

Testy funkcjonalne aplikacji webowych

Testy funkcjonalne odpowiadają na pytanie, czy aplikacja robi to, co obiecuje. Zaczynamy od procesów, które przynoszą pieniądze albo chronią przed stratą: rejestracja, logowanie, wyszukiwanie, koszyk, płatność, wysyłka dokumentu, zatwierdzenie wniosku.

Każdy z tych procesów sprawdzamy w trzech wariantach. Ścieżka pozytywna to zachowanie użytkownika, który robi wszystko poprawnie. Ścieżka negatywna to złe dane, brak uprawnień, przerwane połączenie i cofnięcie się w przeglądarce. Warunki brzegowe to wartości skrajne: pole na 255 znaków wypełnione 256 znakami, koszyk z jednym produktem, koszyk z setką produktów, kwota zero i kwota maksymalna.

Z naszego doświadczenia to właśnie ścieżki negatywne wyłapują najwięcej poważnych błędów, a są testowane najrzadziej. Zespoły chętnie sprawdzają, czy formularz się wysyła, rzadziej sprawdzają, co się stanie, gdy użytkownik kliknie wyślij dwa razy w ciągu sekundy.

Testy wydajnościowe aplikacji webowych

Aplikacja, która odpowiada po ośmiu sekundach, jest dla użytkownika równie bezużyteczna jak aplikacja, która nie odpowiada wcale. Testy wydajnościowe sprawdzają czas odpowiedzi, liczbę jednoczesnych użytkowników i zachowanie systemu przy ruchu większym niż zakładany.

Podstawowe scenariusze to test obciążeniowy, czyli ruch zgodny z prognozą, test przeciążeniowy, czyli ruch ponad prognozę, oraz test wytrzymałościowy, czyli stałe obciążenie przez wiele godzin. Ten ostatni wykrywa wycieki pamięci, których nie widać w krótkim badaniu. Według dokumentacji Google dotyczącej metryk Core Web Vitals czas do największego elementu treści powinien mieścić się w 2,5 sekundy, a to dobry punkt odniesienia dla widoków publicznych.

Najczęstszym narzędziem w polskich projektach pozostaje Apache JMeter, głównie dlatego, że nie wymaga pisania kodu i pozwala zbudować plan testu z gotowych elementów. W projekcie dla Autono, firmy z branży wynajmu samochodów, testy wydajnościowe pokazały, że system utrzymuje stabilność przy obciążeniu większym o 120 procent od zwykłego ruchu, co pozwoliło spokojnie wejść w sezon wakacyjny.

Testy bezpieczeństwa aplikacji webowych

Najczęstszy błąd bezpieczeństwa w aplikacjach webowych nie jest wyrafinowany: to brak sprawdzenia uprawnień po stronie serwera. Interfejs ukrywa przycisk, którego użytkownik nie powinien widzieć, ale samo żądanie do serwera nadal działa. Tester sprawdza to w kilka minut, podmieniając identyfikator w adresie żądania.

Punktem odniesienia jest zestawienie OWASP Top 10, które opisuje najczęstsze kategorie podatności w aplikacjach webowych. Dla testera oznacza to konkretną listę sprawdzeń: kontrola dostępu do cudzych danych, walidacja danych wejściowych, bezpieczeństwo sesji i ciasteczek, ochrona przed wstrzyknięciem kodu oraz poprawna konfiguracja nagłówków bezpieczeństwa.

W naszej praktyce testy bezpieczeństwa dzielimy na dwa poziomy. Pierwszy to codzienna higiena testera, czyli sprawdzenie uprawnień i walidacji przy okazji testów funkcjonalnych. Drugi to testy bezpieczeństwa prowadzone przez specjalistów, z narzędziami do skanowania i ręczną analizą, zwykle przed dużym wdrożeniem albo cyklicznie w sektorze regulowanym.

Kody odpowiedzi HTTP w pracy testera

Kod odpowiedzi to pierwsza informacja, którą tester powinien sprawdzić przed napisaniem zgłoszenia. Mówi, czy problem leży po stronie przeglądarki, po stronie serwera, czy w danych żądania. Pięć kategorii wystarczy, żeby ustawić rozmowę z programistą na właściwym torze.

Zakres Znaczenie Kody, które widać najczęściej Co robi tester
100 do 199 informacyjne 100 Continue rzadko istotne w testach interfejsu
200 do 299 powodzenie 200 OK, 201 Created, 204 No Content sprawdza treść odpowiedzi, bo kod 200 nie oznacza poprawnych danych
300 do 399 przekierowania 301 Moved Permanently, 302 Found, 304 Not Modified sprawdza cel przekierowania i liczbę przeskoków
400 do 499 błąd po stronie żądania 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 422 Unprocessable Content weryfikuje dane wejściowe, sesję i uprawnienia
500 do 599 błąd po stronie serwera 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable, 504 Gateway Timeout zgłasza błąd z identyfikatorem żądania i czasem wystąpienia

Dwa rozróżnienia warto zapamiętać na stałe. Kod 401 oznacza brak uwierzytelnienia, czyli system nie wie, kim jesteście, a kod 403 oznacza brak uprawnień, czyli system wie, kim jesteście, i nie pozwala na tę operację. Kod 200 z pustą albo błędną treścią to nadal błąd, mimo że narzędzia pokazują zielony status. Szerzej opisaliśmy to w materiale o metodach HTTP w testach API.

Przeglądarki, urządzenia i rozdzielczości

Nie testujemy wszystkiego wszędzie, tylko tam, gdzie są Wasi użytkownicy. Macierz przeglądarek buduje się z danych analitycznych, a nie z przekonań zespołu. Zwykle wystarczą dwie najpopularniejsze przeglądarki w wersji aktualnej i poprzedniej, plus jedna przeglądarka mobilna na systemie iOS i jedna na Androidzie.

Do tego dochodzą trzy rozdzielczości: telefon, tablet i typowy laptop. W praktyce projektowej najwięcej błędów wizualnych wychodzi na szerokości około 360 pikseli, bo tam elementy zaczynają się nakładać, oraz na bardzo szerokich monitorach, gdzie treść rozjeżdża się na całą szerokość. Warto też sprawdzić tryb ciemny i powiększenie strony do 200 procent, bo to wymóg wytycznych dostępności.

Testowanie aplikacji w sektorze regulowanym

W bankowości, ubezpieczeniach i ochronie zdrowia testowanie przestaje być kwestią dobrej praktyki, a staje się wymogiem formalnym. Rozporządzenie DORA, obowiązujące podmioty finansowe w Unii Europejskiej od 17 stycznia 2025 roku, wymaga regularnego testowania systemów krytycznych, a część tych testów musi wykonać strona niezależna od producenta oprogramowania.

Dla zespołu testowego oznacza to trzy dodatkowe wymagania. Dokumentacja testowa musi być kompletna i możliwa do przedstawienia audytorowi. Wyniki muszą być powtarzalne, czyli test uruchomiony ponownie ma dać ten sam rezultat. Dostęp do danych produkcyjnych jest ograniczony, więc dane testowe trzeba przygotować osobno, z zachowaniem zasad ochrony danych osobowych.

W projekcie dla ChaosGears z branży medycznej zbudowaliśmy dokumentację testową i odbiorczą oraz przeprowadziliśmy procedury odbiorcze właśnie w takim reżimie. Kluczowe okazało się nie samo testowanie, tylko możliwość udowodnienia, co i kiedy zostało sprawdzone.

Jak zapewnić działanie aplikacji przez całą dobę?

Testy przed wydaniem nie wystarczą, bo aplikacja psuje się także wtedy, gdy nikt jej nie zmienia. Kończy się miejsce na dysku, wygasa certyfikat, zewnętrzna usługa przestaje odpowiadać, a baza danych spowalnia wraz z przyrostem rekordów.

Ciągłość działania buduje się na trzech warstwach. Monitoring sprawdza dostępność i czas odpowiedzi z zewnątrz, w krótkich odstępach. Testy dymne uruchamiane po każdym wdrożeniu potwierdzają, że najważniejsze ścieżki działają na środowisku produkcyjnym. Alerty łączą jedno z drugim, kierując zgłoszenie do osoby dyżurnej zamiast do skrzynki, której nikt nie czyta.

Warto też zaplanować, co się dzieje po awarii. Procedura wycofania wdrożenia, kopie zapasowe z odtwarzalnością sprawdzoną w praktyce i lista kontaktów to elementy, które w naszej praktyce najczęściej okazują się nieaktualne dokładnie w momencie, gdy są potrzebne. Ten obszar porządkujemy w ramach audytu QA.

Od czego zacząć testowanie aplikacji webowej?

Kolejność ma znaczenie, bo pierwsze dni pracy decydują o tym, czy testy trafiają w ryzyko, czy w przypadkowe funkcje. W naszych projektach zaczynamy zawsze tak samo.

Najpierw rozmowa o tym, co dla biznesu znaczy poważna awaria. Potem lista procesów krytycznych, zwykle od trzech do siedmiu. Następnie przejście tych procesów ręcznie, z notowaniem wszystkiego, co dziwne. Dopiero wtedy powstają przypadki testowe, a na końcu decyzja, które z nich automatyzować. Automatyzacja bez tego kroku daje zestaw testów, który sprawdza rzeczy łatwe do sprawdzenia, a nie ważne.

Chcecie nauczyć się testować aplikacje webowe warsztatowo, na realnym systemie i z praktykiem? Kurs testera manualnego Quality Island to 4 dni pracy: proces testowy, projektowanie przypadków, praca w narzędziach i raportowanie defektów. Ponad 1 600 przeszkolonych osób, ocena 5.0 z ponad 80 opinii Google.

Zobaczcie program kursu

Najczęstsze pytania o testowanie aplikacji webowych

Czym różni się testowanie aplikacji webowej od mobilnej? Aplikacja webowa działa w przeglądarce, więc dochodzi zgodność z przeglądarkami i rozdzielczościami, a odpada instalacja i sklep z aplikacjami. Aplikacja mobilna wymaga testów na urządzeniach, uprawnień systemowych i zachowania przy słabym zasięgu. Wspólna zostaje warstwa API i logika serwera.

Ile testów automatycznych potrzebuje aplikacja webowa? Nie liczbę, tylko pokrycie ryzyka. Dobrym punktem wyjścia jest zestaw regresyjny obejmujący wszystkie procesy krytyczne, uruchamiany przy każdym wydaniu, z przewagą testów na poziomie API nad testami przez interfejs, bo te drugie są wolniejsze i mniej stabilne.

Czy tester aplikacji webowych musi umieć programować? Do testów manualnych nie, ale znajomość podstaw HTML, protokołu HTTP i zapytań SQL bardzo przyspiesza pracę. Do automatyzacji potrzebny jest już jeden język programowania i praca z narzędziem takim jak Playwright albo Selenium.

Co sprawdzić najpierw, gdy aplikacja działa wolno? Najpierw czy problem jest po stronie przeglądarki, czy serwera. Zakładka sieci w narzędziach deweloperskich pokazuje czas odpowiedzi każdego żądania. Jeśli serwer odpowiada szybko, a strona i tak ładuje się długo, przyczyna leży w obrazach, skryptach albo liczbie żądań.

Czy testy dostępności są obowiązkowe? Dla podmiotów publicznych w Polsce tak, na podstawie ustawy o dostępności cyfrowej. Od czerwca 2025 roku Europejski Akt o Dostępności rozszerza wymagania na wiele usług komercyjnych, w tym handel elektroniczny i bankowość, więc dla części firm prywatnych to również obowiązek, a nie dobra wola.

Co zabrać z tego artykułu

01Aplikacja webowa to cztery warstwy naraz: przeglądarka, komunikacja HTTP, serwer i baza danych. Błąd może powstać w każdej z nich, a użytkownik zobaczy tylko skutek.

02Zakres testów wybieracie z ryzyka biznesowego, a nie z listy funkcji. Najpierw procesy, na których firma zarabia albo traci reputację.

03Ścieżki negatywne i warunki brzegowe wyłapują najwięcej poważnych błędów, a są sprawdzane najrzadziej.

04Kod odpowiedzi serwera sprawdzajcie przed napisaniem zgłoszenia. Kod 401 to brak uwierzytelnienia, kod 403 to brak uprawnień, a kod 200 z pustą treścią to nadal błąd.

05Macierz przeglądarek buduje się z danych analitycznych, nie z przekonań zespołu. Zwykle wystarczą dwie przeglądarki i trzy rozdzielczości.

06W sektorze regulowanym liczy się nie tylko przetestowanie, ale możliwość udowodnienia, co i kiedy zostało sprawdzone.


Powiązane na blogu Quality Island

Pełna lista źródeł

Autor materiału kursowego: Tomasz Stelmach, założyciel Quality Island. Tekst zaktualizowany we wrześniu 2026 roku.

Co o tym sądzisz?

Dodaj komentarz

Bądź na bieżąco
Bądź na bieżąco
Automatyzacja testów z narzędziem Playwright (Python)
Automatyzacja testów z narzędziem Playwright (C#)

2657,00 PLN

12.10.26, 02.11.26, 23.11.26, 14.12.26, 18.01.27
2 dni
Automatyzacja testów z narzędziem Playwright (Python)
Automatyzacja testów z narzędziem Playwright (Python)

2670,00 PLN

08.10.26, 27.10.26, 17.11.26, 09.12.26, 14.01.27
2 dni
Automatyzacja testów z narzędziem Playwright
Automatyzacja testów z narzędziem Playwright (Java)

Pierwotna cena wynosiła: 2661,00 PLN.Aktualna cena wynosi: 2523,00 PLN.Ostatnie miejsca w promocyjnej cenie

23.09.26, 15.10.26, 05.11.26, 26.11.26, 17.12.26, 20.01.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
Jak skrócić testy regresyjne z 5 dni do 10 godzin: case Argos
Cyber Resilience Act: nowy obowiązek testowania podatności przez cały cykl życia produktu
AI Act: obowiązki testowania systemów wysokiego ryzyka, termin przesunięty na 2027
Popularne kategorie