Przeciętny czas skupienia uwagi człowieka wynosi mniej niż 9 sekund! Czy kiedykolwiek zastanawiałeś się dlaczego? Większość aplikacji mobilnych, które pojawiły się w ostatnim czasie, wymaga przewijania kanału, przy czym mózg jest dostrojony tak, aby nie skupiać uwagi na czymś dłużej niż przez kilka sekund. Doprowadziło to do znacznego skrócenia czasu skupienia uwagi przeciętnego użytkownika.
Mnogość aplikacji mobilnych dostępnych w sklepie z aplikacjami wiąże się z dużą odpowiedzialnością za testowanie aplikacji mobilnych i skalowanie działań związanych z testami regresji. Właśnie w tym pomocne okazują się narzędzia do testowania aplikacji mobilnych.
Byłem jednym z pierwszych użytkowników platform do testowania aplikacji mobilnych i z mojego doświadczenia wynika, że skupienie się na automatyzacji, współczynnikach kształtu oraz testach wydajności odegrało równie ważną rolę w skalowaniu i zwiększaniu wpływu w świecie urządzeń mobilnych. W tym artykule przedstawię najskuteczniejsze techniki automatyzacji testów aplikacji mobilnych.
Testowanie aplikacji mobilnych: elementy, które należy uwzględnić
Testowanie na dowolnej konkretnej platformie wiąże się z własnymi wyzwaniami, ale w przypadku urządzeń mobilnych należy uwzględnić dodatkowe parametry. Niezależnie od tego, czy przeprowadzasz testy manualne, czy automatyzujesz testy, oprócz testów funkcjonalnych przypadki testowe powinny koncentrować się na:
Łączności
Ważne jest ustalenie, co się stanie, jeśli użytkownik korzysta z urządzenia mobilnego w trybie samolotowym lub bez połączenia z internetem, co się stanie w przypadku wahań przepustowości itd., aby mieć pewność, że aplikacja działa.
Have an account? Log In
Lokalizacji
Szczególnie w przypadku aplikacji mobilnych zależnych od GPS lub usług opartych na lokalizacji testy należy przeprowadzać poprzez symulowanie lokalizacji za pomocą narzędzi takich jak MobileSpy, Location Spoofer itp. W przeciwnym razie trudno byłoby przeprowadzić testy — na przykład: jeśli chcesz zasymulować scenariusz testowy dla aplikacji mobilnej do współdzielenia przejazdów, w której ktoś zamawia przejazd z Nowego Jorku, a w mikrousługach zaplecza wprowadzono zmiany dotyczące wyszukiwania kierowcy w tej lokalizacji. Bez symulacji testy nie dostarczyłyby dokładnych wyników.
Systemu operacyjnego
Zwłaszcza przy liczbie telefonów z systemem Android dostępnych obecnie na rynku testowanie wszystkich dostępnych wersji systemu operacyjnego jest niemal niemożliwe — jak zatem ustalić priorytety? W przypadku systemu iOS pojawiają się dodatkowe wyzwania związane z wersjami Xcode powiązanymi ze zmianami wersji systemu operacyjnego.
Obecnie firmy korzystają z usług zewnętrznych dostawców, takich jak BrowserStack, którzy udostępniają symulatory/emulatory różnych systemów operacyjnych, testowanie urządzeń oraz testowanie w różnych przeglądarkach.
Ikony interfejsu użytkownika różnią się w zależności od platform systemów operacyjnych: Windows, iOS i Android, a jeśli chodzi o automatyzację testów, większość z nas ostatecznie korzysta z symulatorów — te dla systemu Android ładują się znacznie dłużej, podczas gdy urządzenia z systemem iOS są szybsze.
Znajomość różnych kombinacji klawiszy na urządzeniach mobilnych, zależnych od typu systemu operacyjnego i służących do wykonywania zrzutów ekranu na potrzeby debugowania problemów, to kluczowa informacja dla każdego, kto testuje aplikacje mobilne.
Współczynnika kształtu
Podczas tworzenia aplikacji mobilnych należy uwzględnić 5 głównych współczynników kształtu dla różnych wersji systemów operacyjnych, a także tryb pionowy lub poziomy dla każdego z tych typów urządzeń:
| Urządzenie | Rozmiar ekranu |
| Małe urządzenia mobilne | 3,5 cala lub mniej |
| Średnie urządzenia mobilne | od 3,5 do 5 cali |
| Tablety | od 5 do 7 cali |
| Małe tablety | od 7 do 8,5 cala |
| Tablety pełnowymiarowe | 8,5 cala lub więcej |
Jak wybrać odpowiednią platformę do automatyzacji urządzeń mobilnych
Uwzględnianie współczynników kształtu podczas tworzenia aplikacji mobilnych oznacza zapewnienie responsywności, gdy ta sama aplikacja jest otwierana na różnych urządzeniach mobilnych i typach systemów operacyjnych. Jeśli aplikacja ma być używana na całym świecie, a firmy chcą zwiększyć bazę użytkowników, powinny podjąć tę decyzję na wczesnym etapie procesu tworzenia i zdecydować się na użycie platform React Native zamiast natywnego tworzenia aplikacji na system Android lub iOS.
W przeciwnym razie firmy będą musiały później poświęcić czas i wysiłek na refaktoryzację oraz przeprojektowanie aplikacji w celu przejścia na platformy React Native. Ma to bezpośredni wpływ na liczbę zespołów i nakład pracy związany z utrzymaniem, ponieważ platformy React Native umożliwiają tworzenie aplikacji zarówno na system iOS, jak i Android.
Tworzenie aplikacji mobilnych z wykorzystaniem platform React Native zmniejsza również obciążenie związane z automatyzacją testów, ponieważ wystarczy utrzymywać jedną platformę do automatyzacji testów dla systemów iOS i Android.
Istnieją różne sposoby tworzenia aplikacji mobilnych. Niektóre firmy decydują się na korzystanie z natywnych języków programowania, takich jak Java i Objective C, odpowiednio dla aplikacji na Androida i iOS. Zaletą korzystania z języków natywnych jest możliwość zapewnienia aplikacjom bogatej funkcjonalności.
Z drugiej strony identyfikatory elementów będą różne na obu platformach — co oznacza, że będziemy potrzebować osobnych natywnych platform testowych do testowania tego samego, takich jak Espresso na Androidzie, XCUITest na iOS itd.
React Native to kolejny powszechnie używany język programowania do tworzenia responsywnych aplikacji mobilnych, który został udostępniony jako otwarte oprogramowanie przez Facebooka. Celem było ujednolicenie prac nad aplikacjami mobilnymi na obu platformach, aby można było korzystać z jednego zespołu, a identyfikatory elementów w obu aplikacjach były takie same — dzięki czemu wystarczyłaby jedna platforma testowa, taka jak Appium, do testowania aplikacji mobilnych.
Jeśli chodzi o automatyzację testów aplikacji mobilnych, wybór odpowiednich narzędzi do automatyzacji kontroli jakości może znacząco wpłynąć na skuteczność testowania.
Jak zautomatyzować testowanie aplikacji mobilnych na iOS
Podczas testowania ręcznego należy spełnić szereg kryteriów: większość firm tworzących aplikacje na iOS jasno określa, które systemy operacyjne i wersje SDK są obsługiwane. Pomaga to ograniczyć zakres testów.
Aby zwiększyć skalę testowania oprogramowania, musimy zainwestować w automatyzację. Istnieje wiele popularnych platform obsługujących automatyczne testowanie aplikacji mobilnych na iOS. Na potrzeby naszej dyskusji ograniczmy zakres do następujących 2 narzędzi do automatyzacji:
- XCUITest
- Appium
| XCUITest | Appium |
| Natywna platforma aplikacji, która może znajdować się w bazie kodu źródłowego systemu iOS. | Odizolowana platforma testowa tworzona poza bazą kodu źródłowego. |
| Napisana w języku Objective C lub Swift | Napisana w językach Java, Python itd. |
| Jawne oczekiwania, które stosują warunek. | Niejawne oczekiwania obejmujące użycie sleep(), co sprawia, że testy są niestabilne. |
| Pozorowanie odpowiedzi interfejsu API zaplecza za pomocą bibliotek otwartego oprogramowania, takich jak Mockingjay | Obsługuje korzystanie z serwera pozorowanego. |
| Ponieważ jest to natywna platforma aplikacji, można jej używać wyłącznie do testowania aplikacji na iOS. | Ponieważ testy znajdują się poza bazą kodu źródłowego i można je pisać w językach takich jak Java, Python itd., można jej używać do testowania aplikacji wieloplatformowych, takich jak aplikacje na Windows, iOS i Androida, pod warunkiem że identyfikatory elementów są takie same na obu platformach. |
Wykorzystałem serwery pozorowane, aby zasymulować wywołania zaplecza i przetestować wyłącznie interfejs użytkownika, tworząc klasę bazową w następujący sposób:

Gdy klasa bazowa jest już gotowa, dodaję właściwy test, wykorzystując wzorzec projektowy obiektu strony, jak pokazano poniżej:

Jak zautomatyzować testowanie aplikacji mobilnych na Androida
Na świecie jest ponad 2 miliardy aktywnych urządzeń z systemem Android. Testowanie aplikacji na Androida na różnych typach urządzeń i systemów operacyjnych jest niemal niemożliwe! Dlatego firmy wyraźnie określają obsługiwane wersje. Zapewnia to również lepsze doświadczenia użytkowników.
Platformy do automatyzacji systemu Android zdecydowanie pomogą przyspieszyć procesy testowania, takie jak Robotium, Selendroid itd., a na potrzeby naszej dyskusji ograniczmy się do narzędzi do automatyzacji: Espresso i Appium:
| Espresso | Appium |
| Natywna platforma, która może znajdować się w bazie kodu źródłowego Androida. | Odizolowana platforma testowa tworzona poza bazą kodu źródłowego. |
| Napisana w językach Java i Kotlin | Napisana w językach Java, Python itp. |
| Jawne oczekiwania, operacje asynchroniczne obsługiwane dzięki funkcji zasobów bezczynności | Niejawne oczekiwania wymagające użycia sleep(), co sprawia, że testy są niestabilne. |
| Zastępowanie odpowiedzi backendu za pomocą bibliotek o otwartym kodzie źródłowym, takich jak Mockito, oraz kreatora Retrofit | Obsługuje użycie serwera pozorowanego. |
| Ponieważ jest to natywna platforma, można jej używać wyłącznie do testowania aplikacji na Androida. | Ponieważ testy znajdują się poza bazą kodu źródłowego i mogą być napisane w językach takich jak Java, Python itp., można jej używać do testowania aplikacji wieloplatformowych zarówno na iOS, jak i na Androidzie, o ile identyfikatory elementów są takie same na obu platformach. |
Jedną z zalet korzystania z natywnych platform aplikacji jest możliwość używania serwerów pozorowanych do symulowania wywołań API backendu, a tym samym testowania wyłącznie interfejsu użytkownika. Oto przykładowy fragment kodu pokazujący, jak udało mi się to osiągnąć:

W zależności od sposobu opracowania architektury mikrousług odpowiedź można pobrać z karty sieciowej przeglądarki lub bezpośrednio od deweloperów, a następnie odwołać się do niej w teście w następujący sposób:

Jak widać na powyższym przykładzie, HomeTabPage jest wywoływana w teście, zamiast konieczności jawnego sprawdzania każdego elementu — w platformie wykorzystałem wzorzec obiektu strony w następujący sposób:

More Articles
Narzędzia do testowania aplikacji mobilnych
Na rynku dostępne są różne narzędzia do testowania, a ich wybór zależy od wielu czynników:
- Kompetencje zespołu
- Cel automatyzacji
- Odbiorcy automatyzacji: menedżerowie produktu/sprzedaż/inżynierowie/testerzy
- Zgodność platformy testowej z natywnym kodem źródłowym
- Liczba aplikacji hybrydowych
Popularne narzędzia używane w branży to między innymi:
- Selendroid
- Robotium
- Appium
- Testdroid
- UiAutomator
Nie masz ochoty przeprowadzać testów we własnym zakresie? Możesz również skorzystać z usług testowania aplikacji mobilnych, aby ktoś zrobił to za Ciebie.
Testowanie wydajności aplikacji mobilnych
Podczas testowania aplikacji mobilnych, oprócz skupiania się na automatyzacji w celu zwiększenia skali testów, powinniśmy również nadać priorytet testom wydajności, ponieważ odgrywają one kluczową rolę w określeniu, czy użytkownik będzie nadal korzystać z naszej aplikacji.
Jeśli ekran ładuje się dłużej niż 2 sekundy, ludzie stają się niecierpliwi — co wiąże się z naszymi badaniami nad czasem skupienia uwagi, dlatego aby utrzymać użytkowników, musimy inwestować w testy wydajności.
Podczas testowania wydajności aplikacji musimy zidentyfikować wskaźniki KPI i porównać z nimi wyniki:
- Maksymalny czas odpowiedzi
- Średni czas odpowiedzi
- Średnia przepustowość
- Szczytowa liczba aktywnych użytkowników dla każdego systemu operacyjnego i urządzenia
Korzystanie z narzędzia do testowania aplikacji mobilnych może uprościć testowanie wydajności. Na przykład Apptim może śledzić wskaźniki wydajności z perspektywy użytkownika końcowego — dostarcza kompleksowe raporty wydajności dla wszystkich kluczowych parametrów wydajności.
Do monitorowania wydajności aplikacji mobilnej możemy użyć monitorowania wydajności Firebase, które zapewnia kontrolę nad danymi dotyczącymi wydajności, udostępniając informacje o działaniu aplikacji wraz z podziałem danych dotyczących śledzenia i sieci na wymiary, takie jak wersja aplikacji, kraj, urządzenie i typ sieci.
Istnieją również inne narzędzia, takie jak Appium Studio, Sauce Labs, Testdroid itp., które oferują podobne możliwości monitorowania wydajności.
Mam nadzieję, że ten artykuł wprowadził Cię w temat testowania aplikacji mobilnych oraz kluczowych czynników z nim związanych!
Aby poznać więcej najlepszych praktyk i wskazówek dotyczących kształtowania procesu programistycznego, zasubskrybuj newsletter The QA Lead.
Powiązana lektura:
Sprawdź również:
- CZYM JEST TESTGEAR? PRZEGLĄD I OMÓWIENIE FUNKCJI
- MIERNIKI MONITOROWANIA SERWERÓW, KTÓRE NALEŻY ŚLEDZIĆ POD KĄTEM STANU I WYDAJNOŚCI SYSTEMU
Powiązana lista narzędzi:



