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.

  • 🔘 Zakres: Technika ta jest częścią testowania aplikacji mobilnych, ale ma zastosowanie również do oprogramowania internetowego i samodzielnego.
  • ️ Źródła przerw: Połączenia przychodzące, wiadomości SMS, alarmy, niski poziom baterii, zdarzenia ładowania, aktualizacje aplikacji i zmiany sieci obejmują większość rzeczywistych scenariuszy.
  • ✅ Cztery oczekiwane rezultaty: Działać w tle, wyświetlać alerty, wzywać do działania lub nie mieć żadnego wpływu — każda aplikacja definiuje, która opcja ma zastosowanie.
  • 🧪 Projekt testu: Testowanie przerwań jest podzbiorem testowania funkcjonalnego, dlatego obowiązują w nim te same ramy, przypadki testowe i proces wykonywania.
  • 🛠️. Symulacja: Rozszerzone sterowanie emulatorem, ustawienia urządzenia i chmury rzeczywistych urządzeń odtwarzają na żądanie połączenia, alerty i utratę połączenia.
  • 📊 Brak testów odzyskiwania: Testowanie odzyskiwania sprawdza możliwość przywrócenia działania po awarii, podczas gdy przerwanie jest tylkotracnie jest to wina, ale błąd.

Testowanie przerwań w aplikacji mobilnej, pokazujące połączenie przychodzące przejmujące ekran aktywnej aplikacji

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.

Rodzaje przerw w działaniu aplikacji mobilnej, w tym połączenia, SMS-y, alarmy, zdarzenia związane z baterią i siecią

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ń:

  1. 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.
  2. 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.
  3. 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.
  4. 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:

  1. Wypisz najważniejsze ścieżki użytkownika — logowanie, płatność, przesyłanie, długie formularze, odtwarzanie multimediów.
  2. Zaplanuj każdą podróż z listy powyżej i dodaj do niej wszystkie prawdopodobne przerwy.
  3. Uzgodnij oczekiwane rozwiązanie dla każdego parowania z właścicielem produktu, ponieważ nie ma jednego, uniwersalnego rozwiązania domyślnego.
  4. Przerwij działanie w momencie największego ryzyka, a nie w chwili bezczynności, a następnie kontynuuj.
  5. 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.

FAQ

Scenariusze są takie same, ale wyniki nie. Obie platformy inaczej zarządzają aplikacjami działającymi w tle i usuwaniem pamięci. Android Skórki dostawców dodają własne reguły dotyczące baterii, dzięki czemu ten sam test może przejść pomyślnie na jednej rodzinie urządzeń, a nie na innej.

Modele sztucznej inteligencji odczytują historie użytkowników i raporty o awariach, proponując połączenia przerwań, których tester mógł nie uwzględnić – na przykład połączenie przychodzące dokładnie w momencie odświeżania tokena. Uczenie maszynowe grupuje również dzienniki awarii produkcyjnych, aby pokazać, które przerwy w pierwszej kolejności powodują problemy u rzeczywistych użytkowników.

Drugi pilot sprawnie tworzy szablon – uruchamia aplikację w tle, przełącza połączenie, czeka, a następnie potwierdza przywrócenie ekranu. Decyzja o tym, kiedy przerwać i jaki stan musi zostać utrzymany, należy do testera, dlatego traktuj wygenerowane skrypty jako wstępny projekt do przeglądu.

Tak. Obie nazwy opisują tę samą aktywność i są używane zamiennie w różnych zespołach i narzędziach. Wybierz jedną pisownię dla swojego planu testów i stosuj ją konsekwentnie, ponieważ mieszana terminologia utrudnia wyszukiwanie zestawów i ułatwia tworzenie duplikatów przypadków.

Użyj obu. Emulatory idealnie nadają się do szybkiej, powtarzalnej łączności i obsługi baterii w rurociągu. Do autentycznych połączeń, menedżerów baterii dostawców i usuwania danych z pamięci o małej pojemności wymagane są prawdziwe urządzenia, a to właśnie w takich warunkach ujawniają się najtrudniejsze defekty wznowienia.

Awarie przy wznawianiu, puste lub niewłaściwe ekrany po powrocie, utracone dane wprowadzone w formularzu, zduplikowane płatności z powodu ponownych żądań, zerwane sesje wymagające ponownego logowania, zatrzymane odtwarzanie multimediów oraz wycieki pamięci lub baterii, które pojawiają się dopiero po wielokrotnym przejściu aplikacji w tło.

To jest jedno i drugie. Przerwy w działaniu sieci, baterii i przełączaniu aplikacji działają niezawodnie i należą do przebiegu regresji. Połączenia przychodzące, alarmy i komunikaty o zasilaniu specyficzne dla danego dostawcy zazwyczaj szybciej można przećwiczyć ręcznie na prawdziwym telefonie, dlatego większość zespołów ma przy sobie mały zestaw instrukcji.

Rozpocznij natychmiast po ukończeniu krytycznej ścieżki rozwoju, a nie w ostatnim tygodniu hartowania. Wznowienie defektów często wymaga zmian w cyklu życia lub zarządzaniu stanem, a ich wdrożenie po zamrożeniu wersji Release Candidate jest kosztowne.

Podsumuj ten post następująco: