Testowanie przerwań w aplikacji mobilnej
⚡ Inteligentne podsumowanie
Testowanie przerwań polega na sprawdzeniu, jak zachowuje się aplikacja mobilna w przypadku połączenia, alarmu, powiadomienia lub utraty połączenia z siecią, a także czy po zakończeniu przerwania aplikacja powraca do dokładnie poprzedniego stanu.

Co to jest testowanie przerwań?
Testowanie przerwań To gałąź testowania aplikacji mobilnych, która zajmuje się sposobem, w jaki aplikacja reaguje na przerwanie i powraca do poprzedniego stanu. Przerwanie ma miejsce poza aplikacją – systemem operacyjnym, sprzętem lub inną aplikacją – a test weryfikuje, czy żadne dane, stan ekranu ani trwająca transakcja nie zostaną utracone po powrocie sterowania.
Testowanie przerwań ma zastosowanie do każdego typu aplikacji — internetowej, mobilnej, autonomicznej itd. Różnorodność urządzeń, sieci i konfiguracji sprawia, że jest ono znacznie bardziej widoczne MOBILNA aplikacji niż w przypadku innych.
Dlaczego potrzebujesz testów przerwań?
Co prawie zawsze zdarza się na spotkaniu? Ktoś Ci przerywa, prawda? Kiedy to się zdarza, niektórzy nawet nie mrugają, inni potrzebują chwili, żeby wrócić do pracy, a jeszcze inni całkowicie tracą wątek. Mówiąc prościej, testowanie przerwań ma na celu wykrycie zachowań, które występują w Twojej aplikacji.
Odłóż na chwilę na bok wszelkie sformułowania i spójrz na inną sytuację z życia wziętą. Załóżmy, że masz latarkę i ją włączasz. Bateria się rozładowuje, co przerywa jej działanie. Wymień baterie i przywróć ją do działania. Latarka powinna włączyć się normalnie. To jest właśnie ten przypadek użycia. Dyscyplina testowania, która koncentruje się na tym, czy tak się dzieje, to testowanie przerwań.
Uzasadnienie biznesowe jest proste. Przerwanie następuje w najgorszym możliwym momencie – w trakcie płatności, przesyłania, wypełniania formularza – a użytkownik, który utracił pracę, rzadko próbuje ponownie. Awarie przy wznowieniu, puste ekrany, zduplikowane transakcje i utracone dane w formularzu to wady, które ujawnia tylko przerwanie, dlatego też przetrwają one fazę funkcjonalną, która niczego nie przerywa.
Rodzaj przerw w aplikacji mobilnej
Przerwy można podzielić na kilka znanych grup, przedstawionych na poniższej ilustracji.
Wszyscy znamy typowe przerwy, które zazwyczaj występują. Oto kilka z nich:
- Niski poziom baterii
- Pełna bateria — podczas ładowania
- Przychodzące połączenie telefoniczne
- Przychodzące SMS-y
- Przychodzący alert z innej aplikacji mobilnej
- Podłączony do ładowania
- Odłączony od ładowania
- Urządzenie wyłączone
- Przypomnienia o aktualizacji aplikacji
- Alarmy
- Utrata połączenia sieciowego
- Przywrócenie połączenia sieciowego
Ta lista nie jest wyczerpująca, ale zawiera najczęstsze scenariusze. Praktycznym sposobem na jej uporządkowanie jest podzielenie według źródła: zdarzenia zależne od urządzenia, takie jak bateria i ładowanie, zdarzenia inicjowane przez użytkownika, takie jak odebranie połączenia lub przełączenie aplikacji, oraz zdarzenia zewnętrzne, takie jak utrata sygnału w windzie lub tunelu.
Rozwiązanie w przypadku przerwania
W przypadku wystąpienia tych przerw można spodziewać się jednego z czterech następujących zachowań:
- Uruchom w tle: Przerwanie następuje, gdy aplikacja zajmuje miejsce w tle. Przejmuje kontrolę po zakończeniu przerwy. Na przykład, rozmowa telefoniczna lub FaceTime, którą odbierasz, czytając książkę cyfrową w iBooks (lub podobnej aplikacji). Gdy użytkownik odbierze telefon, iBooks czeka na zakończenie połączenia, a następnie wznawia działanie po jego zakończeniu.
- Pokaż alert: Alert znika, a Ty pracujesz normalnie. W nagłówku pojawia się komunikat „Otrzymano SMS”. Użytkownik nie zwraca na to uwagi i kontynuuje normalną pracę z aplikacją. Inne alerty aplikacji mobilnych, takie jak prośba o dodanie do znajomych na Facebooku czy wiadomość WhatsApp, również należą do tej kategorii. Jeśli jednak użytkownik zdecyduje się przeczytać wiadomość, zostanie zastosowana procedura opisana w punkcie 1. Zignorowanie alertu nie spowoduje zmiany stanu aplikacji.
- Wezwanie do działania: Alarmy muszą zostać wyłączone lub uśpione przed kontynuowaniem pracy. To samo dotyczy wiadomości o aktualizacjach aplikacji. Musisz anulować lub zaakceptować zmiany, zanim przejdziesz dalej. Innym przykładem jest alert o niskim poziomie baterii — możesz wybrać kontynuację pracy jak zwykle lub przejść w tryb niskiego zużycia energii, jeśli urządzenie na to pozwala.
- Bez wpływu: Przykładem jest nawiązanie połączenia sieciowego i połączenie się z nim urządzenia. Ponadto, gdy podłączasz urządzenie do ładowania, nie jest wymagany żaden alert ani wezwanie do działania. Prawdopodobnie będzie ono działać, podczas gdy Ty będziesz nadal korzystać z aplikacji.
Dlatego, w zależności od testowanego przerwania, zrozum zachowanie i sprawdź, czy Twoja aplikacja je spełnia. Co więcej, opisane powyżej zachowanie nie musi być takie samo dla wszystkich aplikacji i urządzeń. Upewnij się, że znasz szczegółowe informacje dotyczące swojej aplikacji mobilnej.
Testowanie przerwań – przypadki testowe z oczekiwanymi wynikami
Po uzgodnieniu oczekiwanego rozwiązania, każde przerwanie staje się zwykłym przypadkiem testowym z wyzwalaczem, działaniem i weryfikowalnym wynikiem. Poniższa tabela pokazuje, jak cztery powyższe rozwiązania przekładają się na konkretne scenariusze.
| Przerwanie | Scenariusz testowy | Spodziewany wynik |
| Przychodzące połączenie telefoniczne | Rozpocznij połączenie, gdy formularz jest wypełniony w połowie, odbierz je, a następnie zakończ połączenie | Aplikacja przechodzi w tło i wznawia działanie na tym samym ekranie, zachowując wprowadzone dane |
| Przychodzący SMS lub powiadomienie push | Wyślij wiadomość, gdy trwa przesyłanie filmu lub pliku i zignoruj baner | Baner pojawia się i znika; stan aplikacji pozostaje niezmieniony |
| Alarmy | Zezwól na uruchomienie zaplanowanego alarmu podczas aktywnej sesji i odrzuć go | Alarm wymaga najpierw wezwania do działania, a następnie aplikacja wznawia działanie od miejsca, w którym została przerwana |
| Ostrzeżenie o niskim poziomie baterii | Rozładuj urządzenie do progu ostrzegawczego podczas transakcji | Wyświetla się ostrzeżenie, transakcja nie jest anulowana, a tryb niskiego poboru mocy nie powoduje uszkodzenia ekranu |
| Utrata połączenia sieciowego | Wyłącz łączność w trakcie żądania, a następnie ją przywróć | Wyświetlany jest wyraźny komunikat, nie występuje żadna awaria, a żądanie zostaje bezpiecznie ukończone lub kończy się niepowodzeniem po przywróceniu |
| Ładowanie podłączone lub odłączone | Podłączanie i odłączanie ładowarki podczas aktywnej sesji | Brak wpływu — aplikacja działa nadal bez widocznych zmian |
| Przypomnienie o aktualizacji aplikacji | Wyświetl monit o aktualizację, gdy aplikacja jest używana | Użytkownik może anulować lub zaakceptować, a ekran bazowy zachowuje ważność dowolnego wyboru |
Zachowaj jeden wiersz na każde przerwanie na każdy ekran krytyczny, zamiast jednego wiersza na każde przerwanie dla całej aplikacji. Ekran płatności, ekran logowania i długi formularz działają inaczej, a pojedynczy, ogólny przypadek to ukrywa.
Teraz, gdy rozumiemy, czym jest testowanie przerwań i co należy sprawdzić podczas jego przeprowadzania, czas porozmawiać o tym, jak to zrobić.
Jak przeprowadzić testowanie przerwań
Spójrz na to stwierdzenie: iBooks musi działać w tle, gdy użytkownik odbiera przychodzące połączenie telefoniczne.
Czy nie nazwałbyś tego wymogiem funkcjonalnym aplikacji iBooks? Ja bym tak nazwał.
Zatem testowanie przerwań jest podzbiorem Testy funkcjonalne Dla aplikacji mobilnej. Aby przeprowadzić testowanie przerwań, należy stosować te same frameworki i narzędzia testowe aplikacji mobilnych. To umiejętności testerów, aby stworzyć te scenariusze. Po wykonaniu tej czynności, należy zaprojektować przypadki testowe i wykonać je dokładnie tak samo, jak każdy inny test.
W praktyce sekwencja jest krótka i powtarzalna:
- Wypisz najważniejsze ścieżki użytkownika — logowanie, płatność, przesyłanie, długie formularze, odtwarzanie multimediów.
- Zaplanuj każdą podróż z listy powyżej i dodaj do niej wszystkie prawdopodobne przerwy.
- Uzgodnij oczekiwane rozwiązanie dla każdego parowania z właścicielem produktu, ponieważ nie ma jednego, uniwersalnego rozwiązania domyślnego.
- Przerwij działanie w momencie największego ryzyka, a nie w chwili bezczynności, a następnie kontynuuj.
- Zweryfikuj stan, dane, sesję i pamięć po wznowieniu działania, a nie tylko to, czy aplikacja jest nadal otwarta.
Więcej informacji na temat szerszej dyscypliny można znaleźć w Testowanie mobilne samouczek i przykładowe przypadki w Testowanie aplikacji mobilnych.
Narzędzia i techniki symulacji przerw
Powyższe scenariusze muszą być tworzone na żądanie, a nie czekane, a każda platforma oferuje sposób, aby to zrobić.
- Android Rozszerzone sterowanie emulatorem: Boczny panel emulatora symuluje połączenie przychodzące, wiadomość SMS, poziom naładowania baterii i stan ładowarki oraz siłę sygnału komórkowego, dzięki czemu większość komunikatów z listy zakłóceń można wyświetlić bez konieczności sięgania po drugi telefon.
- Symulator iOS i Xcode: Stany łączności i sprzętu można zmieniać z poziomu symulatora i ustawień urządzenia, natomiast sparowane urządzenie fizyczne obejmuje scenariusze połączeń, których symulator nie może wywołać.
- Drugie urządzenie fizyczne: Najpewniejszym sposobem odtworzenia rzeczywistej przerwy w działaniu urządzenia pozostaje wykonanie połączenia telefonicznego lub wysłanie wiadomości na testowany telefon z innego telefonu, szczególnie w sytuacjach, gdy liczy się czas.
- Ustawienia urządzenia: Tryb samolotowy, przełączanie Wi-Fi, Nie przeszkadzać, oszczędzanie baterii i zaplanowane alarmy chronią przed przerwami w łączności i zasilaniu na prawdziwych urządzeniach.
- Ramy automatyzacji: Ten sam stos automatyzacji, który jest używany dla reszty zestawu funkcji, może sterować aplikacją przed i po przerwaniu, dzięki czemu weryfikacja wznowienia jest przeprowadzana na bieżąco, a nie na zasadzie „wizualnej”.
- Chmury urządzeń rzeczywistych: Farma hostowanych urządzeń zapewnia większy zasięg dla różnych producentów i wersji systemów operacyjnych, co ma znaczenie, ponieważ obsługa przerw to jeden z obszarów, w którym rozwiązania dostawców różnią się najbardziej.
Niezależnie od mechanizmu, zapisz dokładny moment przerwania w przypadku testowym. „Przerwanie podczas przesyłania” i „przerwanie po przesyłaniu” to różne testy z różnymi trybami awarii.
Najlepsze praktyki testowania przerwań
Istnieje kilka nawyków, które odróżniają użyteczny zestaw przerwań od ćwiczenia polegającego na odhaczaniu pól.
- Przerwij w najgorszym momencie: Target w chwili zatwierdzenia transakcji lub zapisu pliku, ponieważ w tym momencie stan jest najbardziej kruchy.
- Testuj CV, nie przerwy: Błąd prawie zawsze ujawnia się po powrocie sterowania, więc potwierdzenia powinny znajdować się na przywróconym ekranie.
- Obejmij oba kierunki zmian sieciowych: Utrata połączenia i jego odzyskanie to dwa różne przypadki, przy czym ten drugi jest częściej pomijany.
- Zmień czas trwania: Dwusekundowy alert i dziesięciominutowe połączenie powodują przejście aplikacji przez różne ścieżki cyklu życia, w tym usunięcie jej z pamięci.
- Podział na wersje systemów operacyjnych i sprzęt niskiej klasy: Usuwanie tła jest znacznie bardziej agresywne w przypadku urządzeń z ograniczeniami, co pozwala na wykrycie ukrytych wad w telefonach flagowych.
- Zautomatyzuj te powtarzalne: Łączność i przerwy w zasilaniu akumulatora są automatycznie nawiązywane, dzięki czemu nie ma konieczności ręcznej obsługi połączeń i alarmów.
- Monitoruj wykorzystanie zasobów i informuj: Przerwanie powodujące wyciek pamięci lub rozładowanie baterii po wznowieniu jest wadą nawet wtedy, gdy ekran wygląda poprawnie, co łączy tę pracę z testowanie wydajności aplikacji mobilnych.
Czy testowanie przerwań nie jest tym samym, co testowanie odtwarzania?
Nie, nie jest. Testowanie odzyskiwania weryfikuje odtworzenie po awarii. Przerwanie niekoniecznie oznacza awarię — to jedynietraccja.
To jak różnica między przecinkiem a kropką w języku angielskim. To rozróżnienie jest jedynie techniczne, ale obraz jest jasny. Testowanie odzyskiwania (Recovery Testing) pyta, czy aplikacja może wrócić do działania po awarii; Testowanie przerwań (Interrupt Testing) pyta, czy cokolwiek ulega awarii, gdy coś innego zajmuje pierwszy plan.
Oto, co należy wiedzieć, aby rozpocząć przygodę z testowaniem przerwań — ważną i intuicyjną dziedziną testowania aplikacji mobilnych.

