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ę
Błędy w aplikacji mobilnej: 7 luk w testach i jak je zamknąć
Czas czytania: 13 minut

Błędy w aplikacji mobilnej, które trafiają do użytkowników, rzadko wynikają z jednego złego commita. Najczęściej to skutek kilku powtarzalnych luk w samym procesie testów: jeden telefon zamiast matrycy urządzeń, brak testu aktualizacji, zero scenariuszy słabej sieci. Ten tekst opisuje siedem takich luk i do każdej daje konkretne narzędzie: polecenie adb, profil sieci w emulatorze, tabelę urządzeń z danymi dla Polski albo listę kontroli bezpieczeństwa.

Piszemy dla testerów, liderów QA i zespołów, które budują aplikacje na Androida i iOS. Jeśli dopiero układacie fundamenty, zacznijcie od naszego kompletnego przewodnika po testowaniu aplikacji mobilnych. Tutaj skupiamy się na tym, gdzie proces najczęściej przecieka.

Progi Google Play, po których aplikacja traci widoczność

1,09%

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

0,47%

użytkowników z ANR, czyli aplikacją, która przestała odpowiadać

8%

próg awarii lub ANR dla jednego modelu telefonu

36,3%

udział iOS w polskim ruchu mobilnym, wrzesień 2026

Źródło: Google, Android vitals, dokumentacja Android Developers, 2026; StatCounter Global Stats, Polska, wrzesień 2026.

Dlaczego błędy w aplikacji mobilnej kosztują więcej niż w webie?

Błąd w aplikacji mobilnej uderza w trzy miejsca naraz: w użytkownika, w ocenę w sklepie i w widoczność w samym sklepie. Według dokumentacji Android vitals z 2026 roku Google Play może ograniczyć widoczność aplikacji, która przekracza 1,09% użytkowników z awarią albo 0,47% użytkowników z ANR. Ten sam dokument podaje osobny próg 8% dla pojedynczego modelu telefonu. Przy jego przekroczeniu sklep może pokazać ostrzeżenie na karcie aplikacji.

Wniosek jest prosty: aplikacja może być stabilna średnio i jednocześnie dostać ostrzeżenie na jednym popularnym modelu. Dlatego matryca urządzeń nie jest dodatkiem do testów, tylko obroną konkretnej liczby w konsoli Google Play. Na webie błąd naprawiacie wdrożeniem w kilka minut. W mobile poprawka czeka na przegląd w sklepie i na to, aż użytkownik zainstaluje aktualizację.

Lista siedmiu błędów w aplikacji mobilnej popełnianych podczas testów, grafika Quality Island

Błąd 1: czy testujecie mobilkę tak samo jak stronę WWW?

To błąd testerów, którzy przychodzą z projektów webowych. Strona WWW żyje w karcie przeglądarki. Aplikacja mobilna ma własny cykl życia: system może ją wstrzymać, wyrzucić z pamięci, uśpić w trybie Doze albo przerwać połączeniem telefonicznym.

Typowe defekty z tej kategorii wyglądają tak: formularz traci wpisane dane po powrocie z aparatu, płatność wisi po odebraniu połączenia, a powiadomienie nie przychodzi, bo system uśpił aplikację. Żaden z nich nie wyjdzie w teście, który klika ścieżkę od początku do końca bez przerw.

Jak tego uniknąć: dopiszcie do każdej ścieżki krytycznej scenariusze przerwań. Na Androidzie większość z nich wywołacie poleceniami z dokumentacji Android Developers, bez fizycznego telefonu w ręku:

# tryb Doze i App Standby (Android Developers, Optimize for Doze and App Standby)
adb shell dumpsys battery unplug
adb shell dumpsys deviceidle force-idle
adb shell am set-inactive pl.firma.aplikacja true
# powrót do normalnego stanu
adb shell dumpsys deviceidle unforce
adb shell dumpsys battery reset
# emulator: połączenie przychodzące i 5% baterii
adb emu gsm call 600700800
adb emu power capacity 5

Do tego włączcie w opcjach programisty ustawienie „Nie zachowuj aktywności”. Każde wyjście z ekranu niszczy wtedy aktywność, więc od razu widać, czy aplikacja poprawnie zapisuje i odtwarza stan. Szerszy przegląd tego, jakie rodzaje testów wchodzą w grę, znajdziecie w tekście o rodzajach i typach testów aplikacji mobilnych.

Błąd 2: jak zbudować matrycę urządzeń zamiast testować na jednym telefonie?

Testy na jednym telefonie dają fałszywe poczucie bezpieczeństwa. Nie przetestujecie wszystkich modeli, więc potrzebujecie matrycy: małej, uzasadnionej danymi listy konfiguracji. Najlepszym źródłem są Wasze własne dane z Google Play Console, App Store Connect albo analityki. Gdy aplikacja jest nowa, punktem startu mogą być dane rynkowe.

Co mierzymy Wynik dla Polski Co z tego wynika dla matrycy
System Android 63,7%, iOS 36,3% oba systemy od pierwszego dnia, iOS nie jest niszą
Wersje Androida 16: 44,2%; 15: 14,3%; 14: 12,2%; 13: 11,6%; 12 i starsze ok. 13% najnowsza wersja plus dwie do trzech starszych
Producenci Apple 36,3%, Samsung 27,1%, Xiaomi 14,2%, Motorola 5,6% Samsung i Xiaomi mają własne nakładki i agresywne oszczędzanie baterii
Rozdzielczości 414×896: 21,6%; 384×832: 9,9%; 390×844: 6,8%; 360×800: 5,5% najmniejszy ekran 360 punktów szerokości musi się mieścić

Źródło: StatCounter Global Stats, mobile, Polska, wrzesień 2026, odczyt 11.10.2026.

Z takich danych składamy matrycę w trzech poziomach. Poziom pierwszy przechodzi pełną regresję przy każdym wydaniu, poziom drugi testy dymne, a trzeci tylko ścieżki krytyczne raz na cykl.

Poziom Przykładowe urządzenia Zakres testów
1, zawsze iPhone z iOS 26, Samsung z Androidem 16, Xiaomi z Androidem 15 pełna regresja ścieżek krytycznych
2, przy wydaniu iPhone z iOS 18, Samsung ze średniej półki z Androidem 14, Motorola z Androidem 13 testy dymne, instalacja i aktualizacja
3, raz na cykl telefon z Androidem 12 i ekranem 360×800, iPad, wersja beta systemu logowanie, płatność, zgody i powiadomienia

Źródło: przykład Quality Island zbudowany na danych StatCounter dla Polski, wrzesień 2026. Własna analityka ma pierwszeństwo.

Wbrew pozorom

Wiele zespołów wciąż traktuje iPhone’a jako dodatek do „androidowej” Polski. Według StatCounter udział iOS w polskim ruchu mobilnym wzrósł z 28,4% we wrześniu 2025 roku do 36,3% we wrześniu 2026 roku. To prawie ośmiu na stu użytkowników więcej w dwanaście miesięcy, więc matryca sprzed roku może już nie pasować do Waszych klientów.

Fizyczne telefony z poziomu pierwszego warto mieć na biurku. Resztę matrycy taniej jest wynająć w chmurowej farmie urządzeń. Porównanie dwóch największych usług, z cenami sprawdzonymi u dostawców, opisujemy w tekście o Sauce Labs i BrowserStack.

Błąd 3: dlaczego sama warstwa wizualna to za mało?

Interfejs to tylko wierzch aplikacji. Pod spodem są lokalna baza danych, synchronizacja, API i zadania w tle. W naszych projektach najdroższe błędy w aplikacji mobilnej siedzą właśnie tam: dane rozjeżdżają się między telefonem a serwerem, a użytkownik widzi poprawny ekran z nieaktualną treścią.

Częsty mit mówi, że lokalna baza SQLite jest wolna. Sam silnik jest szybki i działa w miliardach urządzeń. Problemy robią zapytania na głównym wątku, brak indeksów i migracje schematu. Na Androidzie zapytanie na głównym wątku potrafi zamrozić ekran, a każdy taki przypadek podnosi wskaźnik ANR z Android vitals.

  • Wątek główny. Włączcie StrictMode w buildzie testowym, żeby odczyt z dysku na głównym wątku od razu kończył się logiem albo awarią.
  • Kontrakt z API. Sprawdzajcie odpowiedzi serwera osobno od interfejsu. Pomagają w tym automatyczne testy API, które wyłapią zmianę pola, zanim zrobi to aplikacja.
  • Synchronizacja offline. Zapiszcie dane bez sieci, wróćcie do sieci i sprawdźcie konflikt, gdy ten sam rekord zmienił się na serwerze.
  • Długie listy. Przewińcie listę z kilkoma tysiącami pozycji na najsłabszym telefonie z matrycy i obserwujcie zużycie pamięci.

Błąd 4: co pomijacie w testach instalacji i aktualizacji?

Test świeżej instalacji to za mało. Prawdziwy użytkownik nie instaluje aplikacji od zera, tylko aktualizuje wersję sprzed miesiąca z własnymi danymi. Jeśli migracja schematu bazy się wysypie, aplikacja przestaje działać tylko u tych, którzy już ją lubili. Takie błędy w aplikacji mobilnej uderzają w najwierniejszych użytkowników.

Scenariusz Jak go wykonać Co sprawdzić
Aktualizacja z wersji w sklepie zainstalujcie wersję produkcyjną, utwórzcie dane, potem adb install -r z nowym buildem dane, zalogowanie, ustawienia
Przeskok o kilka wersji aktualizacja z wersji sprzed dwóch lub trzech wydań czy wszystkie migracje wykonują się po kolei
Aktualizacja systemu telefon z poziomu 2 matrycy po aktualizacji systemu uprawnienia, powiadomienia, praca w tle
Podniesienie targetSdk build z nowym poziomem API przed terminem Google Play zmiany zachowania opisane dla danej wersji Androida

Źródło: Android Developers, dokumentacja migracji Room i wymagań poziomu API, 2026.

Dla Androida z bazą Room dokumentacja Android Developers opisuje klasę MigrationTestHelper. Tworzy ona bazę w starej wersji, uruchamia migracje i sprawdza schemat. Pamiętajcie jednak, że helper weryfikuje strukturę, a poprawność samych danych musicie sprawdzić własnymi asercjami.

Terminy też robią swoje. Według wymagań Google Play od 31 sierpnia 2026 roku nowe aplikacje i aktualizacje muszą celować w Androida 16, czyli API 36. Każde takie podniesienie zmienia zachowanie aplikacji, więc to dobry moment na pełną regresję, a nie tylko na zmianę jednej liczby w pliku Gradle.

Błąd 5: jak sprawdzać bezpieczeństwo bez pentestu przy każdym wydaniu?

Telefon jest dziś portfelem, kluczem do banku i archiwum zdjęć. Pełny test penetracyjny przy każdym wydaniu jest jednak nierealny. Rozwiązaniem jest stała lista kontroli oparta na standardzie OWASP MASVS, który dzieli wymagania na osiem grup. Część kontroli zespół QA wykona sam, bez specjalistów od bezpieczeństwa.

Grupa MASVS Przykład kontroli dla testera
STORAGE czy token i dane osobowe nie leżą otwartym tekstem w plikach aplikacji i logach
CRYPTO czy aplikacja nie używa własnych, domowych algorytmów szyfrowania
AUTH czy wylogowanie unieważnia sesję także po stronie serwera
NETWORK czy aplikacja odrzuca połączenie przy podstawionym certyfikacie
PLATFORM czy linki głębokie i intencje nie otwierają ekranów bez logowania
CODE czy biblioteki zewnętrzne nie mają znanych podatności
RESILIENCE jak aplikacja reaguje na urządzenie zrootowane albo z jailbreakiem
PRIVACY czy prośba o uprawnienie pojawia się dopiero wtedy, gdy jest potrzebna

Źródło: OWASP Mobile Application Security, MASVS, 2026.

Kontrole z tabeli warto wpiąć w regresję i powtarzać przy każdym wydaniu. Pełny przegląd raz w roku albo przed dużą zmianą zostawcie specjalistom. Opisujemy go w tekście o testach bezpieczeństwa i testach penetracyjnych, a zakres usługi znajdziecie na stronie testów bezpieczeństwa Quality Island.

Błąd 6: jak ustawić priorytety, gdy nie da się przetestować wszystkiego?

Testowanie wszystkiego po równo kończy się tym, że ścieżka płatności dostaje tyle samo uwagi co ekran „O aplikacji”. Priorytety ustalcie z dwóch osi: jak bardzo zaboli błąd i jak często użytkownik korzysta z danej funkcji. Pomaga w tym zasada Pareto w analizie ryzyka.

Obszar Ryzyko Głębokość testów
Rejestracja, logowanie, płatność wysokie, blokuje przychód pełna regresja na poziomie 1 matrycy, przerwania, słaba sieć
Synchronizacja i tryb offline wysokie, ryzyko utraty danych scenariusze konfliktów, aktualizacja z danymi
Powiadomienia i praca w tle średnie Doze, App Standby, nakładki producentów
Ustawienia, profil, ekrany informacyjne niskie testy dymne raz na wydanie

Taką tabelę zapiszcie w planie testów i wracajcie do niej po każdym incydencie z produkcji. Jak ją rozpisać na zadania, pokazujemy w artykule o tym, jak napisać plan testów.

Błąd 7: jak symulować słabą sieć, skoro 3G znika z Polski?

Stary zapis „testujcie w sieciach 3G, LTE i 5G” przestał być aktualny. Według benchmark.pl T-Mobile zakończył wygaszanie 3G w 2023 roku, a Orange w listopadzie 2025 roku, zostawiając tę technologię na około 0,5% stacji. Według spidersweb.pl Play planuje wyłączyć 3G w całym kraju do końca 2026 roku, a według komunikatu Polsatu Plus z maja 2026 roku Plus zacznie wyłączanie w grudniu 2026 roku.

Błędy w aplikacji mobilnej związane z siecią widać dopiero w terenie, więc testujcie nie nazwę technologii, tylko warunki: niską przepustowość, duże opóźnienie, utratę pakietów i przełączanie między Wi-Fi a LTE. Do tego dochodzą tryb samolotowy w połowie operacji, windy, parkingi podziemne i publiczne Wi-Fi z ekranem logowania.

# emulator Androida: start z wolnym łączem i dużym opóźnieniem
emulator -avd Pixel_API_36 -netspeed edge -netdelay gprs
# zmiana w trakcie działania (konsola emulatora)
adb emu network speed 14.4 80
adb emu network delay 150 550
adb emu network status

Profile „edge” i „umts” w emulatorze to tylko gotowe zestawy przepustowości, nie prawdziwe sieci. Dobrze nadają się do udawania słabego zasięgu. Na iOS ten sam efekt daje okno Devices and Simulators w Xcode: Apple pokazało tam warunek Network Link i stan termiczny urządzenia na sesji WWDC 2019. Na Macu dla symulatora użyjcie narzędzia Network Link Conditioner.

Pięć scenariuszy sieciowych do każdej ścieżki krytycznej

Utrata sieci w trakcie

tryb samolotowy po wysłaniu formularza, zanim przyjdzie odpowiedź

Powrót sieci

czy aplikacja sama ponawia żądanie i nie wysyła go dwa razy

Przełączenie Wi-Fi na LTE

wyjście z zasięgu domowej sieci w trakcie pobierania

Duże opóźnienie

500 ms i więcej: czy przycisk blokuje się po pierwszym kliknięciu

Portal logowania

publiczne Wi-Fi, które zwraca stronę HTML zamiast JSON

Użytkownik nie zgłosi Wam, że „aplikacja źle obsługuje utratę pakietów”. Napisze w sklepie, że „nic nie działa w pociągu”, i da jedną gwiazdkę. Dlatego scenariusze z kart warto mieć w regresji, a nie w pamięci jednego testera.

Jak złożyć te siedem lekcji w jeden plan testów?

Wszystkie siedem błędów ma wspólny mianownik: proces testów skrojony pod web, a nie pod telefon w kieszeni. U naszych klientów najlepiej działa prosta kolejność. Najpierw dane o urządzeniach, potem analiza ryzyka, na końcu automatyzacja tego, co powtarzalne.

Autono, automotive i wynajem aut: aplikacja mobilna po uporządkowaniu testów

+120%

obciążenia w sezonie wakacyjnym, przy którym system pozostał stabilny

−55%

błędów krytycznych w procesach rezerwacji

wzrost

satysfakcji użytkowników aplikacji mobilnej

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

  1. Zbierzcie dane o urządzeniach i zbudujcie trzypoziomową matrycę.
  2. Rozpiszcie ryzyka i dopasujcie głębokość testów do każdego obszaru.
  3. Dopiszcie przerwania, Doze i słabą sieć do każdej ścieżki krytycznej.
  4. Testujcie aktualizację z danymi, nie tylko świeżą instalację.
  5. Kontrole MASVS wepnijcie w regresję na stałe.
  6. Automatyzujcie powtarzalne ścieżki, a eksplorację zostawcie ludziom.

Powtarzalne błędy w aplikacji mobilnej najtaniej łapie automatyzacja. Wybierzcie narzędzie pasujące do zespołu. Porównanie Appium, Espresso, XCUITest i Maestro znajdziecie w tekście o narzędziach do automatyzacji testów aplikacji mobilnych. Jeśli wolicie nauczyć się tego w praktyce, prowadzimy szkolenie Testowanie manualne aplikacji mobilnych oraz kurs automatyzacji testów mobilnych w Appium (Java).

Gdy budujecie pierwszą wersję produktu i budżet na testy jest mały, przyda się też tekst na Strefie QA o tym, co testować w MVP, żeby nie zabić pomysłu błędem.

Co zabrać z tego artykułu

01Google Play ocenia stabilność także per model telefonu, z progiem 8%, więc matryca urządzeń chroni konkretną liczbę w konsoli.

02Matrycę budujcie na własnej analityce; dla Polski punkt startu to Android 63,7% i iOS 36,3% (StatCounter, wrzesień 2026).

03Każda ścieżka krytyczna potrzebuje scenariuszy przerwań, Doze i słabej sieci, które wywołacie poleceniami adb i emulatora.

04Testujcie aktualizację z danymi i przeskok o kilka wersji, bo to tam pękają migracje bazy.

05Nie planujcie testów „w 3G”: ta sieć znika z Polski, testujcie warunki, czyli przepustowość, opóźnienie i przełączanie sieci.

Chcecie, żeby ktoś z zewnątrz ułożył Wam matrycę urządzeń, scenariusze przerwań i automatyzację testów mobilnych? Pokażcie nam aplikację, a zaproponujemy zakres dopasowany do Waszych użytkowników.

Zobaczcie usługę


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
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ń
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ń
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
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
Testowanie migracji danych i systemów: co sprawdzić, zanim przełączycie produkcję
Metryki DORA psują się w erze AI: dlaczego szybkość wydawania przestaje być dowodem jakości
OWASP Top 10:2025 okiem testera: co sprawdzić w każdej z dziesięciu kategorii
Popularne kategorie