Przejdź do głównej zawartości

Wzorce testowania aplikacji mobilnych

Twoja aplikacja React Native działa bezbłędnie na iPhone 15 Pro leżącym na biurku. Potem zaczynają napływać raporty o crashach: Android 12 na Samsung Galaxy A13, iOS 16 na iPhone SE (2. generacja) i layout tabletowy, w którym każdy element tekstowy nakłada się na siebie. Testowanie mobilne to eksplozja kombinatoryczna — dziesiątki urządzeń, wiele wersji systemu operacyjnego, różne rozmiary ekranu i zachowania specyficzne dla platformy. Narzędzia AI nie mogą testować na każdym urządzeniu, ale mogą generować testy pokrywające największy obszar.

  • Generowanie testów cross-platform dla aplikacji React Native i Flutter
  • Strategie macierzy urządzeń maksymalizujące pokrycie bez testowania każdej permutacji
  • Wzorce testowania specyficzne dla platformy: gesty, nawigacja i uprawnienia
  • Testowanie responsywnego layoutu na różnych rozmiarach i orientacjach ekranu
  • Prompty AI do generowania zestawów testów Detox i Maestro
Generate Detox E2E tests for our React Native app's onboarding flow:
Flow: Splash -> Welcome -> Permission Requests -> Profile Setup -> Home
1. Splash screen: Verify logo displays, auto-navigates after 2 seconds
2. Welcome: Swipe through 3 carousel pages, tap "Get Started"
3. Permissions: Handle push notification permission dialog (allow and deny paths)
4. Profile: Fill name, select avatar, tap "Complete"
5. Home: Verify the user name appears, main navigation tabs are visible
Platform-specific handling:
- iOS: Use system dialog matchers for permission requests
- Android: Use UiAutomator for permission dialogs
Test both:
- Happy path (all permissions granted)
- Permissions denied path (verify graceful degradation)
- Back navigation at each step
Save to /e2e/onboarding.e2e.ts

Nie możesz testować na każdym urządzeniu. Wybieraj strategicznie.

“Testy Detox przechodzą na symulatorze, ale failują na prawdziwych urządzeniach.” Symulatory i emulatory nie replikują idealnie zachowania prawdziwych urządzeń. Gesty, wydajność i dialogi systemowe zachowują się inaczej. Uruchamiaj testy critical-path na przynajmniej jednym prawdziwym urządzeniu przez usługę chmurową (BrowserStack, AWS Device Farm).

“Testy są niestabilne z powodu timingu animacji.” Animacje mobilne powodują problemy z timingiem. Wyłącz animacje w buildach testowych (UIView.setAnimationsEnabled(false) na iOS, Settings > Developer options > Animation scale 0x na Androidzie) lub użyj synchronizacji Detox.

“Testy Android zachowują się inaczej na różnych producentach.” Samsung, Xiaomi i OnePlus dodają własne warstwy UI wpływające na dialogi systemowe i nawigację. Testuj na trzech głównych producentach z Twoich analityk, nie tylko na standardowym emulatorze Pixel.

“Nasze CI jest zbyt wolne na testy mobilne.” Zestawy testów mobilnych są z natury wolniejsze niż testy webowe. Uruchamiaj smoke testy (3-5 krytycznych flowów) na każdym PR i pełny zestaw w nocy. Użyj chmurowych farm urządzeń do równoległego wykonywania.