Testowanie aplikacji mobilnych [Cześć 1]

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

Notatka o autorze:

Zajmuję się testowaniem, zabezpieczaniem i zapewnianiem jakości oprogramowania od ponad 13 lat. Rozpocząłem swoją karierę od testów manualnych i analizy biznesowo-technicznej. Obecnie prowadzę firmę Quality Island, która zajmuje się szeroko pojętym testowaniem oprogramowania oraz szkoleniami dla przyszłych i obecnych testerów oprogramowania. Moją specjalnością są testy automatyczne aplikacji webowych oraz budowa procesów automatyzacji i robotyzacji. Od 8 lat prowadzę aktywnie szkolenia oraz konsultacje z tych tematów i wykonuję zlecenia dla firm trzecich jako konsultant, ekspert oraz audytor. Współpracuję również z firmami jako osoba do rekrutacji i weryfikacji technicznych. Interesują mnie głównie tematy związane z architekturą IT oraz zagadnienia DevOps/TestOps, ponieważ ściśle wiążą się z zapewnianiem jakości oprogramowania.

 

Tomasz Stelmach

CEO&Founder

 

0 komentarzy

Wyślij komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *