Testowanie aplikacji mobilnych [Cześć 1]

styczeń 16, 2021

O tym, jak ważną rolę odrywa testowanie w całym procesie wytwórczym, nie trzeba już dziś nikogo przekonywać. Niedawno braku odpowiedniej jakości testów bardzo dotkliwie doświadczyli twórcy gry „CyberPunk 2077”. Długo wyczekiwana światowa premiera gry nie wypadła zbyt pomyślnie. Ogromna liczba błędów i bugów znacznie wpłynęła na całościowy odbiór produktu, a także doprowadziła do sytuacji, w której to światowi dystrybutorzy gier postanowili usunąć ją czasowo ze swoich sklepów. Każda aplikacja niezależenie od typu, platformy czy zastosowania powinna przejść proces testowy, aby zminimalizować ryzyko wystąpienia błędów, szczególnie tych poważnych, inaczej mówiąc krytycznych. Właśnie dlatego należy przeprowadzać dokładne testy aplikacji mobilnych.

Proces testowy i sposób jego realizacji zależy przede wszystkim od typu aplikacji, jaką mamy za zadanie przetestować. Aplikacje mobilne będą wymagały innych testów niż aplikacje webowe czy desktopowe. Jest to oczywiście ściśle związane z samą budową oraz zastosowaniem różnych typów aplikacji. W tym artykule postaram się szczegółowo opisać, na czym polegają testy aplikacji mobilnych. Szerokie zastosowanie urządzeń mobilnych, w szczególności smartfonów, przyczyniło się do spopularyzowania aplikacji mobilnych, które już dzisiaj są najpopularniejszymi aplikacjami na rynku. W kolejnych latach prognozowany jest jeszcze bardziej dynamiczny wzrost liczby aplikacji mobilnych, co oznacza, że ten rynek stanie się naprawdę potężny. Wniosek jest prosty – testowanie aplikacji mobilnych ma przed sobą świetlaną przyszłość.

Na samym początku przedstawiam definicję aplikacji mobilnej:

Przykładami aplikacji mobilnych są np:

  • aplikacje bankowości internetowej:

iPKO, PeoPay, Alior Mobile

  • aplikacje rozrywkowe

Spotify Mobile, YouTube Mobile

  • komunikatory

Whatsapp, Twitter Mobile

Trzy największe systemy mobile (Android, iOS, Windows Phone) – mają swoje własne platformy sprzedażowe, na których udostępniają/sprzedają aplikacje mobilne:

Typy Aplikacji

Aplikacje mobilne dzielą się na trzy główne typy:

  • Aplikacje internetowe, będące tak naprawdę stroną internetową uruchamianą z urządzenia mobilnego z wykorzystaniem przeglądarki mobilnej.
  • Aplikacje natywne, czyli rodzaj aplikacji mobilnej, stworzonej specjalnie na konkretny system mobilny (np. iOS, Android, Windows Mobile).
  • Aplikacje hybrydowe, a więc połączenie mobilnej aplikacji internetowej z aplikacją natywną.

Nie istnieje jeden najlepszy typ aplikacji. Każdy ma swoje plusy i minusy. Wybór typu aplikacji zależy od naszych wymagań, oczekiwań oraz możliwości budżetowych.

Testy aplikacji mobilnych

Teraz, kiedy wiemy już, co to aplikacje mobilne i potrafimy rozróżnić ich typy, a także poznaliśmy ich mocne oraz słabsze strony, możemy przejść w końcu do omawiania podstawowego zagadnienia, jakim są testy aplikacji mobilnych.

Wiemy już, że aplikacje mobilne możemy testować na urządzeniach mobilnych. Musicie jednak wiedzieć, że do testów możemy również wykorzystać emulatory urządzeń mobilnych (oprogramowanie, które symuluje pracę urządzenia mobilnego). Jest to często dużo tańsza opcja wykorzystywana do testów, jednak testy na prawdziwych urządzeniach mobilnych mają znacznie więcej zalet od testów na emulatorach. Obecnie najczęściej przeprowadza się tzw. automatyczne testowanie. Całkowicie manualne testowanie aplikacji mobilnych powoli odchodzi do przeszłości. Istniejące obecnie narzędzia znacznie usprawniają cały proces, jednak potrzeba wykwalifikowanych osób do ich obsługi. Jeśli chodzi o to, w czym automatyczne testowanie przewyższa testy manualne przykłady można mnożyć. Przede wszystkim jest szybsze i dokładniejsze. Ta metoda okazuje się niezastąpiona przy testowaniu wydajności, obciążenia, funkcjonalności, czy powtarzalnych zadań. Tylko w niektórych przypadkach lepiej sprawdzają się testy manualne. Przykłady to testowanie eksploracyjne lub sprawdzanie użyteczności.

Zalety testów na prawdziwych urządzeniach mobilnych:

• Wysoka dokładność wyniku testu
• Prosta replikacja błędów
• Punkty takie jak rozładowanie baterii, geolokalizacja, powiadomienia push, wbudowane czujniki urządzeń są łatwe do przetestowania
• Możliwość testowania aplikacji mobilnej w rzeczywistym środowisku i warunkach

Wady testów na prawdziwych urządzeniach mobilnych:

• Ogromna liczba często używanych urządzeń
• Dodatkowe wydatki na konserwację urządzeń
• Ograniczony dostęp do urządzeń często używanych w innych krajach

Wykorzystanie rzeczywistych urządzeń z punktu widzenia testów jest najlepszą opcją, ale również najdroższą, gdyż trzeba posiadać dużą farmę urządzeń, które przecież nie należą do najtańszych. Dlatego w celu optymalizacji kosztów, można wykorzystywać emulatory urządzeń, ale trzeba mieć również świadomość ich ograniczeń czy wad.

Zalety wykorzystania emulatorów do testowania aplikacji mobilnej:

  • Prosta konfiguracja
  • Szybka praca
  • Ekonomiczne

Wady korzystania z emulatorów do testowania aplikacji mobilnej:

  • Sprzęt urządzenia nie jest brany pod uwagę.
  • Możliwe są fałszywe alarmy
  • Niekompletne dane wyników symulacji, co utrudnia pełną analizę wyników badań.

Rozwiązania chmurowe

Istnieje jeszcze jedno, można powiedzieć łączone rozwiązanie, czyli testowanie aplikacji mobilnych z wykorzystaniem chmury oraz farm urządzeń.

Testowanie aplikacji mobilnych za pomocą narzędzi chmurowych wydaje się być często optymalnym wyborem. Może pomóc przezwyciężyć wady prawdziwych urządzeń i symulatorów.

Główne zalety rozwiązań chmurowych do testów aplikacji mobilnych:

  • Łatwa dostępność
  • Możliwość uruchamiania urządzeń mobilnych w wielu systemach i sieciach.
  • Możliwość nie tylko testowania, ale także aktualizowania i zarządzania aplikacjami w chmurze.
  • Ekonomiczne.
  • Wysoka skalowalność.
  • Ten sam skrypt można uruchomić równolegle na kilku urządzeniach.

Główne wady rozwiązań chmurowych do testów aplikacji mobilnych:

  • Mniej kontroli
  • Nie ma tak wysokiego poziomu bezpieczeństwa.
  • Zależność połączenia internetowego

Popularne usługi chmurowe, które posiadają swoje bogate farmy urządzeń to np. https://saucelabs.com czy https://www.browserstack.com.

W kolejnej części omówię dokładnie jakie typy testów przeprowadza się na aplikacjach mobilnych, z jakich narzędzi możemy korzystać oraz na co szczególnie należy zwrócić uwagę wykonując testy aplikacji mobilnych.

Autor: Tomasz Stelmach

Pozostałe:

Typy testów

Testowanie oprogramowania to bardzo rozległy obszar branży IT. Testować aplikacje możemy na wiele sposobów, a same testy mogą mieć różne cele. I to właśnie wspomniane cele testowania, definiują typy testów, jakimi możemy poddać oprogramowanie. Jeśli celem testów jest...

Agile i SCRUM, czyli co?

Agile to ostatnimi czasy bardzo popularny termin. Jest odmieniamy przez wszystkie przypadki. Obecnie zdecydowana większość zespołów developerskich korzysta z Agile w swojej codziennej pracy. O „Agile” i „Zwinnym” podejściu do prowadzenia projektów słyszeli już chyba...

Raport z testów – must have!

Dzisiaj napiszę kilka słów o niezbędnym elemencie w każdym procesie testowym - mowa oczywiście o tytułowym – Raporcie z Testów. Na początek, krótka regułka określająca, czym tak naprawdę jest Raport z Testów: O jakich czynnościach testowych traktuje powyższa...

Testy wydajnościowe

W tym materiale chciałbym przybliżyć Wam tematykę testów wydajnościowych. Testy wydajnościowe te są dość specyficznym, ale jednocześnie popularnym i bardzo ważnym rodzajem testów w przekroju całego procesu testowego niemal każdego oprogramowania. Testowanie wydajności...

Testy End to End

W tym materiale postaram się przybliżyć Wam szczególny rodzaj testów, jakim niewątpliwie są testy End To End. Zapewne, jeśli jesteście testerami, czy tez osobami należącymi do zespołów zapewniania jakości, to nieraz słyszeliście termin „End-to-End”, czy...