Przewodnik dla początkujących dotyczący testowania aplikacji mobilnych
Podobnie jak każde inne oprogramowanie, aplikacje mobilne muszą zostać dokładnie przetestowane przed ich wydaniem, aby upewnić się, że wszystko działa dokładnie tak, jak było zamierzone.
Podczas gdy testowanie aplikacji mobilnych jest już długim i uciążliwym procesem, codzienne wprowadzanie nowych urządzeń przenośnych, wersji systemów operacyjnych i narzędzi do testowania aplikacji sprawiło, że praca testerów aplikacji mobilnych jest bardziej złożona i wymagająca niż kiedykolwiek.
Jeśli jesteś początkującym, który planuje rozpocząć karierę w testowaniu aplikacji mobilnych, ten przewodnik pomoże Ci dowiedzieć się wszystkiego na ten temat. Zacznijmy od zrozumienia, czym właściwie jest testowanie aplikacji mobilnych!
Co to jest testowanie aplikacji mobilnych?
Na dzisiejszym wysoce konkurencyjnym globalnym rynku, gdzie sukces aplikacji mobilnej zależy od całkowitej liczby pobrań, pozytywnych recenzji, które zdobyła i pozycji w sklepie z aplikacjami, aplikacja mobilna, którą właśnie stworzyłeś musi być nieskazitelny, aby przyciągać, angażować i zatrzymywać użytkowników, a można to osiągnąć jedynie poprzez rygorystyczne testy aplikacji mobilnych.
Testowanie aplikacji mobilnych to zasadniczo proces znajdowania i naprawiania błędów w aplikacji mobilnej w celu poprawy jej ogólnej jakości, funkcjonalności, użyteczności i spójności oraz uczynienia jej tak bezbłędną, jak to tylko możliwe dla użytkowników. Przeprowadzane ręcznie lub automatycznie za pomocą narzędzi do testowania aplikacji mobilnych lub za pomocą kombinacji obu tych metod, testowanie aplikacji mobilnej, jeśli jest wykonywane prawidłowo, nie tylko zapewnia nieskazitelne i satysfakcjonujące wrażenia użytkownikom, ale także odgrywa istotną rolę w popularyzacji aplikacji i odnieść sukces niemal w mgnieniu oka. Krótko mówiąc, testowanie aplikacji mobilnych jest tym, czego potrzebuje każda aplikacja, aby była bezbłędna, skuteczna i wysokiej jakości.
Kluczowe wyzwania związane z testowaniem aplikacji mobilnych
Testowanie aplikacji mobilnych jest znacznie bardziej złożone niż tradycyjne testowanie komputerów stacjonarnych i dlatego stanowi zupełnie nowy zestaw wyzwań zarówno dla testerów, jak i programistów. Poniżej wymieniono kluczowe wyzwania, przed którymi stoją testerzy, poprawiając jakość i wydajność aplikacji mobilnej:
Różne typy aplikacji mobilnych:
To duże wyzwanie samo w sobie, ponieważ aplikacja mobilna może być natywna, internetowa lub hybrydowa. Ponieważ każdy typ aplikacji jest zbudowany inaczej i różni się od siebie zarówno pod względem procesu instalacji, jak i funkcjonalności, należy go przetestować w zupełnie inny sposób. Podstawowa różnica między poszczególnymi typami aplikacji wiąże się z szeregiem wyzwań związanych z testowaniem aplikacji mobilnych.
Różne urządzenia mobilne:
Jednym z największych wyzwań, przed którymi stoją testerzy aplikacji mobilnych, jest duża różnorodność urządzeń mobilnych dostępnych obecnie na rynku. Należą do nich smartfony, tablety, czytniki e-booków, urządzenia do noszenia i wszelkie inne urządzenia mobilne, które pojawią się w najbliższej przyszłości. Mając różne rozmiary ekranu, rozdzielczości, metody wprowadzania danych i możliwości sprzętowe, urządzenia te stanowią zupełnie wyjątkowy zestaw wyzwań dla testerów aplikacji mobilnych.
Różnorodność systemów operacyjnych:
Różne urządzenia mobilne używają różnych systemów operacyjnych, a różne wersje danego systemu operacyjnego są używane przez różne urządzenia w danym momencie. Na przykład Android nadal ma w użyciu 8 różnych wersji systemu operacyjnego; z drugiej strony 65% urządzeń Apple korzysta z iOS 11, podczas gdy iOS 10 jest zainstalowany na 28% urządzeń Apple, a 7% nadal korzysta z wcześniejszych wersji iOS. Testowanie jednej aplikacji na wielu urządzeniach mobilnych działających w różnych wersjach tego samego systemu operacyjnego stanowi wyjątkowe wyzwanie dla testerów aplikacji mobilnych.
Niezliczeni producenci:
Kolejnym dużym wyzwaniem, z którym muszą zmierzyć się testerzy, jest stale rosnąca liczba producentów urządzeń mobilnych. W 2015 roku było tylko około 1200 producentów urządzeń mobilnych, a na początku samego 2018 roku liczba ta sięgała już ponad 1600. Niewątpliwie liczby te będą tylko rosły w kolejnych latach. Różne zmiany w sprzęcie i oprogramowaniu, które producenci wprowadzają do swoich urządzeń mobilnych w celu odróżnienia się od siebie, mają bezpośredni wpływ na działanie aplikacji, co sprawia, że proces testowania jest jeszcze bardziej złożony i wymagający.
Wyzwania związane z łącznością:
Skuteczne radzenie sobie z różnymi opcjami łączności, takimi jak różne sieci komórkowe (2G/3G/4G LTE/4G VoLTE, a teraz 5G), Wi-Fi, Bluetooth, podczerwień itp. W przypadku wszystkich trybów łączności aplikacja musi działać płynnie w różnych warunkach sieciowych, takich jak zmiana sieci komórkowej, roaming, słaby sygnał sieciowy, brak zasięgu sieci, niska prędkość połączenia itp. Jednak to wyzwanie nie jest liczone jako duże jeden dla aplikacji offline.
Ciągłe testowanie:
Aby przetrwać na dzisiejszym bezwzględnie konkurencyjnym rynku, aplikacja mobilna musi być często aktualizowana o nowe funkcje i ulepszenia. Aby spełnić to wymaganie, wielu programistów woli stosować metodologię Agile zamiast tradycyjnego podejścia Waterfall, które prowadzi do ciągłej integracji i wdrażania aplikacji mobilnej. W związku z tym wymagane jest ciągłe testowanie aplikacji, aby upewnić się, że wszystkie ulepszenia są przeprowadzane poprawnie. Jest to również bardzo wymagająca praktyka dla testerów aplikacji mobilnych!
Wybór sposobu testowania:
Kolejną przeszkodą, którą muszą pokonać testerzy, jest wybór odpowiedniego podejścia do testowania aplikacji mobilnych za pomocą odpowiednich narzędzi do testowania aplikacji mobilnych. Tam, gdzie do testowania aplikacji mobilnych stosuje się głównie dwa podejścia (ręczne i automatyczne), rynek jest pełen różnych zautomatyzowanych narzędzi do testowania aplikacji mobilnych, co sprawia, że wybór odpowiednich narzędzi do testowania jest bardzo mylącym i żmudnym zadaniem, chyba że jeden ma wcześniej zaplanowaną strategię testowania.
Różne rodzaje testowania aplikacji mobilnych
Podobnie jak każde inne oprogramowanie, aplikacja mobilna również musi zostać rygorystycznie przetestowana, aby zapewnić najwyższą jakość, użyteczność i bezpieczeństwo. Aby osiągnąć to samo, podczas tworzenia aplikacji mobilnych stosuje się kilka rodzajów metodologii testowania. Przyjrzyjmy się, czym one są i czym się od siebie różnią.
Funkcjonalne testy interfejsu użytkownika:
Będąc najbardziej podstawowym rodzajem testów, testy funkcjonalne zapewniają, że aplikacja działa idealnie zgodnie z wcześniej zdefiniowanymi wymaganiami użytkownika. Testy te są zwykle przeprowadzane w celu sprawdzenia, czy interfejs użytkownika i przepływ połączeń aplikacji działają poprawnie. Jeśli jednak testy funkcjonalne są wykonywane ręcznie, często okazują się niezwykle intensywnym, złożonym i czasochłonnym zadaniem ze względu na kilka wyzwań związanych z urządzeniami mobilnymi.
Test użyteczności:
Ponieważ użyteczność odgrywa istotną rolę w określaniu komercyjnego sukcesu każdej aplikacji mobilnej, testy użyteczności koncentrują się głównie na trzech kluczowych obszarach doświadczenia użytkownika: wydajności, skuteczności i zadowoleniu użytkownika. Testy te są przeprowadzane w celu zapewnienia spójności wrażeń użytkownika na wszystkich urządzeniach i sprawdzenia, czy aplikacja mobilna jest łatwa w użyciu dla użytkowników końcowych.
Testy zgodności:
Testy zgodności są przeprowadzane w celu sprawdzenia, czy aplikacja dobrze renderuje się na różnych urządzeniach mobilnych, rozmiarach ekranu, przeglądarkach, rozdzielczościach oraz platformach i wersjach systemu operacyjnego. Na przykład aplikacja mobilna, która działa poprawnie na smartfonie, może zachowywać się zupełnie inaczej na tablecie. W ten sposób testy kompatybilności oceniają funkcjonalność aplikacji na różnych urządzeniach mobilnych i platformach.
Testowanie wycieku pamięci:
Znane również jako testowanie zasobów niskiego poziomu, testowanie wycieku pamięci odnosi się do sprawdzania, jak wydajnie aplikacja wykorzystuje wbudowaną pamięć urządzenia mobilnego, na którym jest używana. Obejmuje to przede wszystkim testowanie ogólnego wykorzystania pamięci, automatyczne usuwanie plików tymczasowych po określonym czasie oraz narastające problemy z lokalną bazą danych. Ponieważ urządzenia mobilne są bardzo ograniczone pod względem pamięci w porównaniu do urządzeń stacjonarnych, testowanie wycieków pamięci jest wyjątkowo istotne dla zapewnienia prawidłowego działania aplikacji mobilnej.
Test wydajności:
Podstawowym celem testów wydajnościowych jest upewnienie się, że aplikacja jest w stanie poradzić sobie z różnymi wyzwaniami urządzenia mobilnego, takimi jak słaby zasięg sieci, przełączenie połączenia z sieci komórkowej na Wi-Fi, udostępnianie czegoś poza aplikacją, niski poziom dostępnej baterii lub pamięci, aplikacja prędkość, jednoczesne korzystanie z aplikacji przez wielu użytkowników i inne podobne warunki. Innymi słowy, testy wydajności są przeprowadzane w celu sprawdzenia wydajności aplikacji mobilnej, sieci i serwera.
Przerwy/Testowanie operacyjne:
Działanie aplikacji może zostać przerwane przez kilka zdarzeń występujących na urządzeniu mobilnym, takich jak połączenia lub SMS-y, wyskakujące powiadomienia, włożenie lub wyjęcie kabla zasilającego, wyjęcie baterii, awaria i przywrócenie działania sieci, ostrzeżenie o niskim poziomie baterii itp. Testowanie przerwań jest przeprowadzany w celu sprawdzenia, czy aplikacja mobilna jest w stanie wytrzymać wszystkie te przerwy, zamykając się za każdym razem, gdy ma miejsce zdarzenie i automatycznie uruchamiając się ponownie po nim.
Testowanie instalacji:
Testy instalacyjne sprawdzają, czy aplikację można zainstalować, odinstalować lub zaktualizować w rozsądnym czasie bez żadnych trudności ze strony użytkownika. Podczas tej fazy testowania testerzy aplikacji mobilnych nie tylko dbają o awarie, które mogą wystąpić podczas tych trzech procesów, ale także zapewniają, że wszystkie dane aplikacji zostaną całkowicie usunięte z pamięci urządzenia po zakończeniu procesu dezinstalacji.
Testowanie bezpieczeństwa:
Obejmuje to weryfikację, czy bezpieczeństwo i prywatność danych użytkowników nie są zagrożone w aplikacji za pomocą różnych technik, takich jak skanowanie luk w zabezpieczeniach, przeglądanie dzienników, testy penetracyjne, wybieranie wojenne, wykrywanie wirusów, łamanie haseł itp. Głównym celem Testy bezpieczeństwa mają na celu poprawę poufności, autentyczności i integralności aplikacji mobilnej.
Testowanie lokalizacji:
Testowanie lokalizacji zapewnia użyteczność, funkcjonalność i dostępność aplikacji mobilnej w wielu różnych regionach geograficznych i strefach czasowych. Ten rodzaj testów jest przeprowadzany zwłaszcza wtedy, gdy planujesz przetłumaczyć swoją aplikację na kilka języków lub wdrożyć ją w różnych krajach. Testy lokalizacji są uważane za ostatni etap kontroli jakości aplikacji.
Testowanie regresji:
Ten rodzaj testów polega na ponownym przeprowadzeniu wcześniej przeprowadzonych pomyślnie testów, aby upewnić się, że zmiany wprowadzone w kodzie aplikacji nie wprowadziły ponownie żadnych starych ani nowych błędów. Ponieważ testy regresji można przeprowadzać wielokrotnie na każdym z czterech poziomów testowania (jednostkowy, integracyjny, systemowy i akceptacyjny), są one idealnym kandydatem do testów automatycznych.
Pomocne wskazówki dotyczące zwycięskiej strategii testowania aplikacji mobilnych
Jeśli naprawdę chcesz wygrać w testowaniu aplikacji mobilnych, nie możesz przeoczyć opracowania jasnej i solidnej strategii testowania. Właściwy plan strategiczny testowania aplikacji mobilnych nie tylko pomaga łatwo pokonać wyżej wymienione wyzwania związane z testowaniem aplikacji mobilnych, ale także chroni przed przygnębiającymi scenariuszami odrzucenia aplikacji. Poniżej przedstawiono najlepsze praktyki, których należy przestrzegać, aby przetestować aplikację mobilną w sposób wydajny i skuteczny.
Testowanie automatyczne a ręczne:
Testowanie aplikacji mobilnych, jak już wspomniano powyżej, można przeprowadzić ręcznie lub za pomocą zautomatyzowanych narzędzi do testowania aplikacji mobilnych, takich jak Appium, SeeTest, Selenium i Ranorex. Ponieważ jedno lub oba podejścia są stosowane na różnych etapach cyklu życia aplikacji mobilnej, musisz być ekspertem w wyborze między nimi w zależności od sytuacji. Ponieważ zautomatyzowane testowanie aplikacji mobilnych jest kluczem do pomyślnego testowania regresji podczas różnych faz rozwoju, powinno być przeprowadzane tylko w scenariuszach, w których:
- Masz najczęstsze przypadki testowe
- Przypadki testowe mają przewidywalne wyniki
- Przypadki testowe można łatwo zautomatyzować
- Przypadki testowe są bardzo czasochłonne lub niemożliwe do wykonania ręcznie
- Aplikacja stale się rozwija
- Cykl życia tworzenia aplikacji mobilnych jest bardzo długi
Wręcz przeciwnie, ręczne testowanie aplikacji opiera się na danych wejściowych, analizie lub ocenie człowieka i powinno być stosowane, jeśli aplikacja zawiera nowe funkcje i funkcjonalności lub wymaga przetestowania tylko raz lub dwa razy.
Emulatory a urządzenia fizyczne:
Podobnie jak w przypadku dwóch podejść, istnieją dwa główne sposoby testowania aplikacji mobilnej: za pomocą emulatorów urządzeń wirtualnych lub rzeczywistych urządzeń fizycznych. Podczas gdy użycie emulatorów urządzeń okazuje się niezwykle pomocne na początkowych etapach tworzenia aplikacji do testowania podstawowych funkcjonalności, nie działają one tak wydajnie jak fizyczne urządzenia mobilne na późniejszych etapach testowania, takich jak testy Beta. Istnieją trzy typy emulatorów urządzeń mobilnych:
- Emulator urządzenia: dostarczany przez producentów urządzeń.
- Emulator przeglądarki: symuluj renderowanie dla urządzeń mobilnych w przeglądarkach.
- Emulator systemu operacyjnego: zapewniany przez sam system operacyjny.
Aby szybko i skutecznie uzyskać najlepsze wyniki testów, najpierw przetestuj aplikację mobilną na emulatorach, aby wykryć i naprawić jak najwięcej błędów. Po osiągnięciu zadowalającego poziomu testów możesz przejść do testowania aplikacji na fizycznych urządzeniach mobilnych w bardziej realistycznym scenariuszu.
Wybór odpowiednich modeli urządzeń mobilnych:
Decyzja, które urządzenie lub model urządzenia powinno zostać użyte do przetestowania aplikacji mobilnej, jest prawdopodobnie pierwszą rzeczą, która przychodzi do głowy każdemu testerowi podczas tworzenia rzeczywistego środowiska testowego. Czasami może to być naprawdę trudna decyzja, ponieważ wybrane urządzenia decydują o tym, jak Twoja aplikacja będzie działać na miliardach innych podobnych urządzeń. Dlatego przy wyborze urządzenia docelowego należy wziąć pod uwagę trzy kluczowe czynniki:
- Wersja systemu operacyjnego
- Rozmiar i rozdzielczość ekranu
- Współczynnik kształtu
W razie potrzeby nie wahaj się wziąć pod uwagę kilku innych czynników, takich jak pamięć wewnętrzna, opcje łączności itp., Wybierając model urządzenia.
Rozważ testowanie w chmurze:
Aby przenieść swoje wysiłki testowe na zupełnie nowy poziom, możesz także wypróbować testowanie aplikacji mobilnych w chmurze. Zapewniając internetowe środowisko do testowania aplikacji mobilnych, testowanie w chmurze umożliwia szybkie i wydajne wdrażanie, testowanie i zarządzanie aplikacjami mobilnymi. Oprócz zmniejszenia ogólnych kosztów i czasu projektu, testowanie aplikacji w chmurze oferuje również kilka innych korzyści, takich jak:
- Wysoce skalowalne, w pełni zsynchronizowane i wstępnie skonfigurowane środowiska testowe
- Nie ma potrzeby inwestowania w żadne inne zaawansowane narzędzia testowe, zasoby ani konfiguracje
- Zmniejsza możliwość wystąpienia defektów spowodowanych błędnie stworzonym lub niestabilnym środowiskiem testowym
- Oszczędza testerom konieczność konfigurowania lokalnych środowisk testowych, co jest bardzo czasochłonne i często prowadzi do opóźnień w projektach
- Obsługuje testowanie złożonych, dynamicznych i odmiennych aplikacji, co jest prawie niemożliwe w środowisku wewnętrznym.
- Wyniki testów w czasie rzeczywistym
- Automatyczne kopie zapasowe i odzyskiwanie
Zorganizuj testy beta:
Testy beta to świetny i skuteczny sposób na analizę funkcjonalności i użyteczności aplikacji mobilnej z pomocą rzeczywistych użytkowników końcowych korzystających z rzeczywistych urządzeń. Ta faza jest rzeczywiście przeprowadzana w celu sprawdzenia, jak dobrze aplikacja działa na rzeczywistych urządzeniach i sieciach, a także w celu upewnienia się, że wszystkie błędy zostały naprawione przed uruchomieniem. Jeśli testujesz aplikację na iOS, możesz wykorzystać moc bezpłatnego narzędzia TestFlight do zarządzania testami beta.
Podobnie możesz użyć Konsoli Google Play, aby rozpowszechniać swoją aplikację na Androida wśród zaufanych użytkowników i testerów do testowania wersji beta za pośrednictwem różnych Grup dyskusyjnych Google lub społeczności Google+.