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.
Czego się nauczysz
Dział zatytułowany „Czego się nauczysz”- 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
Generowanie testów cross-platform
Dział zatytułowany „Generowanie testów cross-platform”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 seconds2. 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.tsclaude "Create a comprehensive Detox test suite for our React Native app:
1. Analyze the navigation structure in /src/navigation/2. Generate E2E tests for each user flow: - Onboarding (first launch experience) - Authentication (login, signup, password reset) - Core feature (main product interaction) - Settings (profile edit, preferences, logout)
3. For each test: - Handle both iOS and Android platform differences - Include proper device synchronization waits - Test both portrait and landscape orientations - Handle system dialogs (permissions, alerts)
4. Create test utilities: - /e2e/utils/auth.ts (login/logout helpers) - /e2e/utils/permissions.ts (grant/deny system permissions) - /e2e/utils/navigation.ts (navigation state helpers)
Run on iOS simulator first, then verify Android compatibility."Generate mobile E2E tests for this React Native application:1. Analyze the app's navigation and screens2. Create Detox tests for all critical user flows3. Handle platform-specific differences (iOS vs Android)4. Run tests on both platforms and fix any failures5. Create a PR with the test suite
Include a device matrix configuration for CI.Strategia macierzy urządzeń
Dział zatytułowany „Strategia macierzy urządzeń”Nie możesz testować na każdym urządzeniu. Wybieraj strategicznie.
Testowanie specyficzne dla platformy
Dział zatytułowany „Testowanie specyficzne dla platformy”Testowanie gestów i interakcji
Dział zatytułowany „Testowanie gestów i interakcji”Testowanie responsywnego layoutu
Dział zatytułowany „Testowanie responsywnego layoutu”Testowanie offline i sieciowe
Dział zatytułowany „Testowanie offline i sieciowe”Gdy coś się zepsuje
Dział zatytułowany „Gdy coś się zepsuje”“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.