PrzedsprzedażAkademia AI w testach i jakości oprogramowania: 1 350 zł zamiast 1 750 zł netto do 30 listopada

Startuje przedsprzedaż Akademii AI w testach i jakości oprogramowania: 5 tygodni z Tomaszem Stelmachem, start 11 stycznia 2027. Wyjątkowa cena 1 350 zł netto zamiast 1 750 zł tylko do 30 listopada.

zostało 38 dniZobacz program i zapisz się
Testowanie aplikacji mobilnych część 2: rodzaje i typy testów
Czas czytania: 14 minut

Testy funkcjonalne aplikacji mobilnych sprawdzają, czy aplikacja robi to, czego oczekuje użytkownik, ale to dopiero jeden z dziesięciu rodzajów testów, które realnie chronią ocenę w sklepie. Ten tekst to część 2 cyklu: zamiast definicji dostajecie do każdego rodzaju testu ryzyko, gotowy przypadek testowy i narzędzie. Szeroki przegląd tematu, urządzeń i środowisk znajdziecie w części 1 o testowaniu aplikacji mobilnych.

Zanim zaczniecie, krótka mapa cyklu, żeby nie czytać dwa razy tego samego. Zasady pracy i checklistę 16 przypadków opisuje wpis o best practices testowania aplikacji mobilnych, typowe wpadki zespołów zebraliśmy w artykule o błędach w testowaniu aplikacji mobilnych, a porównanie Appium, Espresso i XCUITest w tekście o narzędziach do automatyzacji testów aplikacji mobilnych. Tutaj skupiamy się wyłącznie na rodzajach testów.

Jakie są typy aplikacji mobilnych i dlaczego to zmienia dobór testów?

Typ aplikacji decyduje o tym, gdzie mieszkają błędy. W aplikacji natywnej szukacie ich osobno na Androidzie i iOS, w hybrydowej w styku WebView z warstwą natywną, a w webowej w przeglądarce i sieci. Starsze materiały, także nasz poprzedni tekst, wrzucały React Native i Flutter do worka z aplikacjami hybrydowymi. To nieprecyzyjne: oba to frameworki wieloplatformowe, które nie renderują interfejsu w WebView.

Typ Jak działa Przykładowe technologie Gdzie szukać błędów
Natywna Osobny kod na każdą platformę, pełny dostęp do API systemu Kotlin, Swift Różnice między platformami, uprawnienia, fragmentacja Androida
Wieloplatformowa Jeden kod, interfejs złożony z natywnych widoków albo rysowany własnym silnikiem React Native, Flutter, Kotlin Multiplatform Most między kodem wspólnym a natywnym, wtyczki, wydajność list i animacji
Hybrydowa Aplikacja webowa w natywnej powłoce, interfejs w WebView Ionic z Capacitorem, Cordova Wersja WebView na urządzeniu, wtyczki natywne, przewijanie i klawiatura
Webowa i PWA Strona uruchamiana w przeglądarce mobilnej, PWA z pracą offline Dowolny framework webowy, Service Worker Responsywność, przeglądarki, cache offline, powiadomienia

Źródło: dokumentacja React Native (2025), Flutter (2025) i Capacitor; klasyfikacja Quality Island

Dokumentacja React Native mówi wprost, że w czasie działania framework tworzy odpowiadające komponentom widoki Androida i iOS. Flutter idzie inną drogą: według dokumentacji architektury ma własne implementacje każdej kontrolki i rysuje je silnikiem Impeller, a kod wydania kompiluje do kodu maszynowego. Dla testów ma to konkretną konsekwencję, o której piszemy niżej w ciekawostce.

Ciekawostka: Flutter nie używa przycisków systemu

Według dokumentacji architektury Fluttera przełącznik w aplikacji Flutter to implementacja w Darcie, a nie systemowy Switch Androida. Dlatego narzędzia, które szukają elementów w drzewie natywnych widoków, widzą ekran Fluttera tylko przez warstwę dostępności (Semantics). Brak etykiet Semantics oznacza naraz gorszą dostępność i niestabilne testy automatyczne. Jedna poprawka naprawia dwa problemy, co w QA zdarza się rzadziej niż premia za brak błędów na produkcji.

Jakie rodzaje testów aplikacji mobilnych warto znać?

Poniższa tabela to ściąga na planowanie wydania. Każdy rodzaj testu odpowiada na inne ryzyko, więc kolejność wierszy nie jest przypadkowa: pierwsze trzy wiersze robicie przy każdym wydaniu, kolejne zależnie od zmiany i domeny.

Rodzaj testu Ryzyko, które zamyka Przykładowy przypadek Narzędzie
Funkcjonalne Funkcja nie działa albo działa inaczej niż w wymaganiu Koszyk zachowuje produkt po zamknięciu aplikacji Espresso, XCUITest, Maestro, Appium
Zgodności Działa na jednym telefonie, pada na innym Ekran płatności na Androidzie 10 i 16 oraz iOS 17 i 26 Farma urządzeń, Firebase Test Lab
Sieciowe Utrata danych przy zmianie zasięgu Płatność przerwana trybem samolotowym Emulator, Charles, Network Link Conditioner
Wydajnościowe Wolny start, ANR, drenaż baterii Zimny start poniżej 5 s na telefonie z niższej półki adb, Android Studio Profiler, Xcode Instruments
Bezpieczeństwa Wyciek danych, przejęcie sesji Token sesji nie trafia do logów ani kopii zapasowej MobSF, Frida, Burp Suite
Użyteczności Użytkownik nie kończy zadania Pięć osób zakłada konto jedną ręką w autobusie Sesje z użytkownikami, nagrania ekranu
Dostępności Aplikacja wyklucza część klientów Cała ścieżka zakupu z TalkBack i VoiceOver TalkBack, VoiceOver, Accessibility Scanner
Instalacji i aktualizacji Utrata danych po aktualizacji Aktualizacja z wersji N-1 zachowuje zalogowanie i koszyk Kanały testowe Google Play i TestFlight
Lokalizacji Ucięte teksty, złe formaty dat i walut Pseudolokalizacja en-XA i ar-XB na ekranie zamówienia Pseudolokalizacje Androida, schemat iOS
Przerwań Utrata stanu przy połączeniu lub powiadomieniu Połączenie przychodzące w trakcie płatności BLIK Urządzenie fizyczne, komendy emulatora

Źródło: opracowanie Quality Island na podstawie dokumentacji Android Developers, Apple i OWASP MAS

Testy funkcjonalne aplikacji mobilnych: jak wygląda dobry przypadek testowy?

Testy funkcjonalne aplikacji mobilnych zaczynają się od ścieżek, za które płaci biznes: logowanie, koszyk, płatność, rezerwacja. Dobry przypadek ma warunki wstępne, kroki, oczekiwany wynik i zaznacza stan aplikacji, który mobilny system potrafi zabić w tle. Tego ostatniego brakuje w większości przypadków, które widzimy u klientów przy audytach.

Pole Treść
ID i tytuł MOB-KOSZ-07: koszyk przetrwa zabicie procesu przez system
Warunki wstępne Użytkownik zalogowany, koszyk pusty, Android 14, opcja programisty Nie zachowuj aktywności włączona
Kroki 1. Dodaj produkt do koszyka. 2. Przejdź do ekranu głównego telefonu. 3. Otwórz trzy inne aplikacje. 4. Wróć do aplikacji z listy ostatnich
Oczekiwany wynik Koszyk pokazuje 1 produkt, cena i wariant bez zmian, brak ponownego logowania
Dane Produkt z wariantem rozmiaru, żeby sprawdzić odtworzenie pełnego stanu
Ryzyko Wysokie: utrata koszyka to porzucony zakup

Źródło: wzór przypadku testowego Quality Island

Ten sam scenariusz w wersji automatycznej. Maestro opisuje przepływ w YAML, więc test czyta także osoba bez doświadczenia w programowaniu. W projektach z istniejącym kodem w Javie albo Pythonie częściej wybieramy Appium, którego uczymy na szkoleniach Appium Java i Appium Python.

appId: pl.sklep.demo
---
- launchApp:
    clearState: true
- tapOn: "Zaloguj"
- inputText: "anna.test@example.com"
- tapOn: "Dalej"
- inputText: "Haslo!2026"
- tapOn: "Zaloguj"
- assertVisible: "Twój koszyk"
- tapOn: "Dodaj do koszyka"
- assertVisible: "1 produkt"
- stopApp
- launchApp
- assertVisible: "1 produkt"

Zwróćcie uwagę na ostatnie trzy kroki: zatrzymanie i ponowne uruchomienie to najtańszy sposób, żeby sprawdzić, czy stan zapisuje się trwale, a nie tylko w pamięci procesu.

Testy zgodności i konfiguracji: jak zbudować matrycę urządzeń?

Testy zgodności sprawdzają tę samą funkcję na różnych urządzeniach, wersjach systemu i rozdzielczościach. Nikt nie przetestuje wszystkich kombinacji, więc matrycę buduje się z danych o Waszych użytkownikach, a nie z rankingów sprzedaży. Źródłem jest Google Play Console, App Store Connect albo analityka produktu.

Poziom 1

Każde wydanie

Urządzenia, które razem dają około 80 procent sesji, plus najstarsza wspierana wersja systemu. Zwykle 4 do 6 modeli, fizycznie albo w farmie.

Poziom 2

Wydania z dużą zmianą UI

Tablet, składany ekran, bardzo mały ekran, tryb ciemny, powiększona czcionka systemowa. Tu najczęściej rozjeżdża się układ.

Poziom 3

Raz na kwartał

Długi ogon modeli z raportów awarii. Jeden przebieg w Firebase Test Lab albo innej chmurze urządzeń zamiast kupowania telefonów.

Matryca bez danych to zgadywanie, a zgadywanie kosztuje. Przy testach dla Autono, wypożyczalni samochodów, praca na realnych scenariuszach sezonowych pozwoliła potwierdzić stabilność systemu przy obciążeniu większym o 120 procent i obniżyć liczbę błędów krytycznych w procesach rezerwacji o 55 procent (dane klienta z case study Quality Island). Więcej o doborze urządzeń piszemy w przewodniku po testowaniu aplikacji mobilnych.

Testy wydajnościowe aplikacji mobilnych: co mierzyć i jakimi progami?

Testy wydajnościowe aplikacji mobilnych mierzą czas startu, płynność, zużycie pamięci i baterii. Najprostszy punkt odniesienia daje Google: według dokumentacji Android vitals zimny start trwający 5 sekund lub dłużej, ciepły 2 sekundy lub dłużej i gorący 1,5 sekundy lub dłużej to start nadmierny. Te same zestawienia pokazują progi stabilności, po przekroczeniu których Google Play ogranicza widoczność aplikacji.

Progi złego zachowania w Android vitals

1,09%

użytkowników z awarią, średnio na wszystkich urządzeniach

0,47%

użytkowników z ANR, czyli zawieszeniem aplikacji

8%

próg awarii i ANR dla pojedynczego modelu telefonu

5 s

zimny start uznawany za nadmierny

Źródło: Android Developers, Android vitals i App startup time (2025)

Pomiar zacznijcie od komend, które nie wymagają żadnego narzędzia poza adb. Pierwsza para daje czas zimnego startu w milisekundach, druga wymusza tryb Doze, w którym system ogranicza pracę w tle, trzecia spowalnia sieć w emulatorze.

# czas zimnego startu (TotalTime w ms), po zatrzymaniu procesu
adb shell am force-stop pl.sklep.demo
adb shell am start -W -n pl.sklep.demo/.MainActivity

# wymuszenie trybu Doze, żeby sprawdzić synchronizację w tle
adb shell dumpsys deviceidle force-idle
adb shell dumpsys deviceidle unforce

# słaba sieć w emulatorze (konsola emulatora przez adb)
adb emu network speed edge
adb emu network delay gprs

Mierzcie na telefonie z niższej półki, nie na flagowcu z biurka programisty. Wąskie gardła wychodzą tam kilka razy szybciej. Gdy aplikacja korzysta z backendu, połączcie test mobilny z obciążeniem serwera: wprowadzenie do metryk i narzędzi daje artykuł o testach wydajnościowych, a zlecone testy wydajności obejmują oba końce.

Testy bezpieczeństwa aplikacji mobilnych: od czego zacząć według OWASP MASVS?

Testy bezpieczeństwa aplikacji mobilnych najłatwiej zaplanować według standardu OWASP MASVS, który dzieli wymagania na osiem grup. Każda grupa to inne pytanie do aplikacji, a tabela pokazuje po jednym przypadku testowym na start. Pełny katalog kontroli i przypadków testowych znajdziecie na stronie OWASP MAS.

Grupa MASVS Pytanie Pierwszy przypadek testowy
STORAGE Czy dane wrażliwe leżą bezpiecznie? Token sesji nie występuje w SharedPreferences, logach ani kopii zapasowej
CRYPTO Czy kryptografia jest poprawna? Brak kluczy zaszytych w kodzie aplikacji
AUTH Czy uwierzytelnianie broni się po stronie serwera? Wylogowanie unieważnia token na serwerze, nie tylko w aplikacji
NETWORK Czy komunikacja jest szyfrowana? Aplikacja odrzuca połączenie przez proxy z niezaufanym certyfikatem
PLATFORM Czy aplikacja bezpiecznie korzysta z systemu? Zrzut ekranu z karty płatności jest zablokowany
CODE Czy kod i zależności są aktualne? Biblioteki bez znanych podatności w skanie zależności
RESILIENCE Czy aplikacja utrudnia manipulację? Reakcja aplikacji bankowej na urządzenie z rootem
PRIVACY Czy zbiera tylko potrzebne dane? Uprawnienie do lokalizacji pojawia się dopiero przy funkcji mapy

Źródło: OWASP Mobile Application Security, MASVS (2025)

Statyczny skan zrobi MobSF w kilka minut, ale wyniki trzeba czytać ze zrozumieniem, bo część alarmów to fałszywe trafienia. Szerzej o rodzajach i etapach piszemy w tekście o testach bezpieczeństwa i testach penetracyjnych. Gdy aplikacja obsługuje płatności albo dane zdrowotne, warto zlecić niezależne testy bezpieczeństwa aplikacji.

Testy sieciowe: jak symulować słabe połączenie, skoro 3G znika z Polski?

Poprzednia wersja tego tekstu radziła testować aplikację w sieciach 3G. Dziś to rada nieaktualna: według Spider’s Web (maj 2026) T-Mobile wyłączył 3G w 2023 roku, Orange pod koniec 2025 roku, Play kończy wygaszanie do końca 2026 roku, a Plus zaczyna w grudniu 2026 roku. Słabe połączenie nie zniknęło jednak razem z 3G: przeniosło się do zatłoczonego LTE, piwnic, wind i pociągów.

Dlatego w testach sieciowych opisujcie warunki, a nie nazwę technologii: przepustowość, opóźnienie, utratę pakietów i zmianę sieci w trakcie operacji. Cztery przypadki, które warto mieć w każdej regresji:

  • płatność przerwana włączeniem trybu samolotowego po kliknięciu Zapłać: brak podwójnego obciążenia, czytelny komunikat, możliwość ponowienia
  • przejście z Wi-Fi na sieć komórkową podczas wysyłania formularza: dane nie giną
  • start aplikacji bez sieci: ekran z treścią z pamięci podręcznej zamiast pustej białej strony
  • opóźnienie 2 sekund na każdym żądaniu: przyciski nie przyjmują podwójnego kliknięcia

Na Androidzie spowolnienie ustawicie w konsoli emulatora poleceniami network speed i network delay, opisanymi w dokumentacji konsoli emulatora. Na iOS służy do tego Network Link Conditioner z narzędzi Xcode, a na obu platformach proxy Charles z ograniczaniem przepustowości.

Testy użyteczności i dostępności: jakie wymiary i gesty sprawdzić?

Testy użyteczności sprawdzają, czy ludzie kończą zadanie, a nie czy przycisk działa. Badanie nie musi być drogie: Jakob Nielsen w artykule Nielsen Norman Group (2000) pokazał, że pierwsze badanie z pięcioma uczestnikami wykrywa około 85 procent problemów użyteczności, i radzi rozłożyć budżet na trzy rundy po pięć osób. Mobilny dodatek to warunki: jedna ręka, słońce na ekranie, powiadomienie w połowie formularza.

Wytyczna Minimalny rozmiar celu dotykowego Jak sprawdzić
WCAG 2.2, kryterium 2.5.8 (poziom AA) 24 na 24 piksele CSS albo odpowiedni odstęp Pomiar w narzędziach deweloperskich, Accessibility Scanner
Apple Human Interface Guidelines 44 na 44 punkty Xcode Accessibility Inspector
Material Design (Android) 48 na 48 dp Accessibility Scanner na Androidzie

Źródło: W3C WCAG 2.2 (2023), Apple Human Interface Guidelines, Android Developers

Dostępność testujcie czytnikami ekranu przez całą ścieżkę, nie ekran po ekranie: TalkBack na Androidzie, VoiceOver na iOS. Typowe błędy to ikony bez etykiet, focus uciekający po zamknięciu okna i komunikaty błędów niewidoczne dla czytnika. Checklistę z przykładami znajdziecie w artykule o 7 obszarach dostępności do przetestowania, a audyt robimy w ramach usługi testów dostępności. Badania z użytkownikami prowadzimy w ramach testów użyteczności.

Testy instalacji, aktualizacji i lokalizacji: co psuje się po wydaniu?

Test instalacji na czystym telefonie przechodzi prawie zawsze. Psuje się aktualizacja, bo dopiero ona uruchamia migrację bazy danych, zmianę formatu zapisanych ustawień i nowe uprawnienia. W naszych projektach mobilnych przypadek aktualizacji z wersji N-1 z wypełnionymi danymi jest obowiązkowy przed każdym wydaniem i regularnie łapie błędy, których nie widać na świeżej instalacji.

  1. Zainstalujcie wersję produkcyjną, zalogujcie się, wypełnijcie koszyk, ulubione i ustawienia.
  2. Zaktualizujcie aplikację do kandydata wydania z kanału testowego (wewnętrzne testy Google Play, TestFlight).
  3. Sprawdźcie zachowanie sesji, danych lokalnych i uprawnień, potem powtórzcie po aktualizacji samego systemu operacyjnego.
  4. Odinstalujcie i zainstalujcie ponownie: aplikacja nie może zakładać, że dane z poprzedniej instalacji istnieją.

Lokalizację sprawdzicie, zanim pojawi się tłumacz. Android ma wbudowane pseudolokalizacje: en-XA wydłuża teksty i dodaje akcenty, a ar-XB odwraca kierunek pisania. Jeden przebieg na takim ustawieniu pokazuje ucięte etykiety i teksty zaszyte w kodzie. Pamiętajcie też o formatach: data, waluta z przecinkiem dziesiętnym i polska odmiana liczebników (1 produkt, 2 produkty, 5 produktów).

Które rodzaje testów mobilnych automatyzować, a które zostawić ludziom?

Automatyzujcie to, co powtarzalne i stabilne: regresję ścieżek krytycznych, smoke test każdego buildu, zgodność na matrycy urządzeń i pomiary startu. Ludziom zostawcie użyteczność, eksplorację nowych funkcji, ocenę pierwszego wrażenia i dostępność z czytnikiem ekranu, gdzie liczy się ocena, a nie asercja. Jak policzyć, który przypadek opłaca się automatyzować, pokazuje artykuł o tym, czym różni się testowanie manualne i automatyczne.

W Quality Island napisaliśmy ponad 450 000 testów automatycznych, a mimo to w projektach mobilnych zawsze planujemy też sesje ręczne na fizycznych urządzeniach. Automat nie poczuje, że telefon się grzeje. Tester poczuje, a czasem nawet ogrzeje sobie dłonie w styczniu. Gdy chcecie zbudować automatyzację u siebie, punktem startu jest automatyzacja testów mobilnych, a kompetencje zespołu rozwinie szkolenie testowanie aplikacji mobilnych.

O tym, jak inne zespoły układają strategię testów mobilnych, regularnie opowiadają prelegenci Testing Ground Conference, a krótsze analizy dla liderów publikuje Strefa QA.

Co zabrać z tego artykułu

01React Native i Flutter to frameworki wieloplatformowe, nie aplikacje hybrydowe. Hybryda to interfejs w WebView, jak w Ionic z Capacitorem.

02Każdy rodzaj testu zamyka inne ryzyko: funkcjonalne, zgodności i sieciowe robicie przy każdym wydaniu, resztę według zmiany i domeny.

03Progi Android vitals to gotowe kryteria: 1,09% awarii, 0,47% ANR, zimny start poniżej 5 sekund.

04Testy sieciowe opisujcie warunkami (przepustowość, opóźnienie, zmiana sieci), bo operatorzy w Polsce wygaszają 3G, a słaby zasięg zostaje.

05Aktualizacja z wersji N-1 z danymi to przypadek obowiązkowy, bo świeża instalacja ukrywa błędy migracji.

Źródło: Android Developers, OWASP MAS, W3C, Spider’s Web, praktyka Quality Island

Chcecie ułożyć strategię testów mobilnych i matrycę urządzeń pod Waszych użytkowników? Zaprojektujemy zakres i wykonamy testy funkcjonalne, zgodności i bezpieczeństwa.

Testy funkcjonalne


Powiązane na blogu Quality Island

Pełna lista źródeł

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
Szkolenie Bezpieczne programowanie z AI: tworzenie oprogramowania z asystentami kodu
Bezpieczne programowanie z AI
Bezpieczne programowanie z AI: tworzenie oprogramowania z asystentami kodu

1 690,00 zł

26.11.26, 17.12.26, 28.01.27, 04.03.27, 25.03.27
1 dzień
Szkolenie AI Act i RODO w firmie: bezpieczne korzystanie ze sztucznej inteligencji
AI Act i RODO w firmie
AI Act i RODO w firmie: bezpieczne korzystanie ze sztucznej inteligencji

1 290,00 zł

24.11.26, 15.12.26, 26.01.27, 02.03.27, 30.03.27
1 dzień
Szkolenie Testy bezpieczeństwa dla początkujących: OWASP Top 10 i pierwsze testy aplikacji webowych
Testy bezpieczeństwa dla początkujących
Testy bezpieczeństwa dla początkujących: OWASP Top 10 i pierwsze testy aplikacji webowych

1 000,00 zł

18.11.26, 09.12.26, 13.01.27, 03.02.27, 24.02.27, 17.03.27
1 dzień
Popularne artykuły
Język Gherkin: co to jest i jak go używać w testowaniu oprogramowania, grafika Quality Island
Język Gherkin: co to jest i jak go używać w testowaniu oprogramowania
Smoke test: co to jest i czym różni się od sanity testu, grafika Quality Island
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, grafika Quality Island
Jak zostać testerem oprogramowania: ścieżka krok po kroku bez dyplomu informatyka
Najnowsze artykuły
Testowanie migracji danych i systemów: siedem warstw kontroli przed przełączeniem produkcji
Testowanie migracji danych i systemów: co sprawdzić, zanim przełączycie produkcję
Metryki DORA w erze AI, tempo wydawania a stabilność dostarczania oprogramowania
Metryki DORA psują się w erze AI: dlaczego szybkość wydawania przestaje być dowodem jakości
OWASP Top 10 2025 okiem testera, lista dziesięciu kategorii ryzyka w testach bezpieczeństwa
OWASP Top 10:2025 okiem testera: co sprawdzić w każdej z dziesięciu kategorii
Popularne kategorie