Narzędzia do automatyzacji testów aplikacji mobilnych

Testowanie aplikacji na urządzeniach mobilnych jest wyjątkowo wymagającą czynnością. Sprawa wygląda jeszcze trudniej w przypadku automatyzacji testów na popularnych „mobilkach”. Podczas przeprowadzania testów musimy brać pod uwagę nie tylko samą aplikację, ale również specyfikę urządzeń przenośnych. Na szczęście w kontekście automatyzacji testów, jak zawsze z pomocą przychodzą nam zaawansowane narzędzia. Dzisiaj postaram się przedstawić moją piątkę najlepszych narzędzi do automatyzacji testów aplikacji mobilnych. Zaczynamy!

1. Appium

Zdecydowanie numer jeden na rynku narzędzi dedykowanych do automatyzacji testów aplikacji mobilnych. Pozycję lidera zawdzięcza przede wszystkim temu, że spokojnie radzi sobie ze wszystkimi typami aplikacji mobilnych (obsługuje aplikacje natywne, hybrydowe oraz webowe). Dużą zaletą jest również jego cena, a właściwie brak ceny, gdyż rozwiązanie jest całkowicie darmowe, oparte na licencji open-source. Do działania wykorzystywany jest dobrze nam znany z „webówki” interfejs WebDrivera. Szerokie zastosowanie na rynku zawdzięcza również temu, że potrafi obsługiwać wiele języków programowania w tym Javę, Pythona, czy C#. Dzięki temu narzędziu możemy wykonywać testy zarówno bezpośrednio na rzeczywistych urządzeniach mobilnych, jak i symulatorach i emulatorach. Oczywiście Appium bardzo dobrze radzi sobie z popularnymi systemami operacyjnymi (iOS, Android).

Link: http://appium.io/

Zalety:
– obsługa wszystkich typów aplikacji mobilnych (natywne, hybrydowe, webowe)
– darmowy
– obsługa wielu popularnych języków programowania
– obsługa Android, iOS

2. Robotium

narzędzie robotium

Kolejne dość szeroko wykorzystywane narzędzie na rynku aplikacji mobilnych. Na samym początku należy powiedzieć, że narzędzie jest również całkowicie darmowe (analogicznie jak w przypadku Appium, oparte jest na licencji open source). Z wykorzystaniem Robotium, możemy testować tylko androidowe aplikacje hybrydowe bądź natywne. Sporym ograniczeniem narządzania jest obsługa tylko jednego języka programowania (JAVA) z wykorzystaniem, którego możemy pisać testy automatyczne. Robotium dobrze sprawdza się w projektowaniu prostych, jak i bardziej złożonych testów automatycznych. Słabszą stroną tego narzędzia jest stosunkowo wolne wykonywanie testów automatycznych na rzeczywistych urządzeniach mobilnych.

Link: https://github.com/RobotiumTech/robotium

Zalety:
– darmowe
– możemy pisać bardzo złożone testy automatyczne
– bardzo dobra współpraca z systemem Android
– obsługa aplikacji hybrydowych i natywnych (Android)

Wady:
– obsługa tylko jednego języka programowania (JAVA)
– dość wolne wykonywanie testów automatycznych

3. Espresso

narzędzie espresso


Espresso to rozwiązanie stworzone przez światowego giganta na rynku technologicznym -Google. Narzędzie jest integralną częścią pakietu Android SDK. Jest to natywna platforma do testów automatycznych aplikacji na Androida. Zapewnia zarówno testy czarno, jak i białoskrzynkowe komponentów systemu Android. Z Espresso możemy pracować, wykorzystując język programowania Java ( Kotlin ). Ogromną zaletą, która uwidacznia się od razu po napisaniu pierwszego testu – jest duża szybkość działania testów i współpracy z systemem android. Na duży plus zasługuje również szybka i prosta konfiguracja i integracja z Android Studio.

Link: https://developer.android.com/training/testing/espresso

Zalety:
– szybkość działania, wykonywania testów
– prosta konfiguracja
– przejrzysta dokumentacja

Wady:
– obsługa tylko systemu Android
– obsługa tylko JAVY (Kotlina)

4. UI Automator

narzędzie UI Automator


Kolejne narzędzie ze „stajni” Googla. Z tego tez względu oprogramowania posiada bardzo podobną charakterystykę do wyżej opisanego narzędzia Espresso. Z wykorzystaniem UI Automator możemy tworzyć testy automatyczne do aplikacji opartych na systemie Android. W odróżnieniu od Espresso to narzędzie skupia się tylko na testach czarnoskrzynkowych (bez potrzeby wnikania w kod źródłowy aplikacji), a więc idealnie sprawdzi się w testowaniu na warstwie UI. Narzędzie wyróżnia się na pewno prostą implementacji kodu i szybkością pisania testów.

Link: https://developer.android.com/training/testing/ui-automator

Zalety:
– prostota implementacji kodu
– dobra dokumentacja
– dobra komunikacja integracja z systemem Android
– szybkość pisania testów

Wady:
– obsługa tylko systemu Android

5. Selendroid

narzędzie selendroid


Idealnym opisem tego narzędzia będą 3 słowa „Selenium dla Androida”. Selendroid daje nam możliwość wykonywania testów w środowisku Android oraz iOS (iOS Driver). Obsługuje aplikacje zarówno natywne jaki hybrydowe. Testy pisane są przy użyciu Selenium Webdriver. Możemy wykonywać testy zarówno na urządzeniach fizycznych, jak i emulatorach wirtualnych. Dużym plusem jest również możliwość integracji z mechanizmem Selenium GRID, dzięki któremu możemy wykonywać testy na dowolnych węzłach oraz w trybie równoległym. Rozwiązanie darmowe.

Link: http://selendroid.io/

Zalety:
– darmowy
– Android, iOS
– oparty na Selenium WebDriver

Wady:
– stosunkowo wolne działanie testów

Inne narzędzia wspierające testy

Apptim

Narzędzie do testowania aplikacji i analizowania ich wydajności. Mierzy m.in.: czasy renderowania aplikacji, zużycie energii, wykorzystanie zasobów, na systemach Android i iOS.

Link: https://www.apptim.com/

MonkeyTalk

Służy do automatyzacji testów funkcjonalnych aplikacji mobilnych (Android, iOS). Narzędzie zupełnie darmowe. Narzędzie zawiera w sobie m.in. nagrywarkę testów.

Link: https://github.com/alexnauda/monkeytalk

Sauce Labs

Rozwiązanie umożliwia testy w chmurze dla aplikacji natywnych i hybrydowych na systemach Androida i iOS.

Link: https://saucelabs.com/

DeviceAnywhere

Chmurowe rozwiązanie, które automatyzuje testy funkcjonalne aplikacji mobilnych na Androida i iOS.

Link: https://www.crunchbase.com/organization/deviceanywhere

TestFairy

TestFairy umożliwia testy aplikacji mobilnych z nagrywaniem wideo (obsługa Androida i iOS).

Link: https://www.testfairy.com/

Kobiton

Kobiton to platforma chmurowa dla urządzeń mobilnych, która zapewnia dostęp do rzeczywistych urządzeń w celu uruchamiania ręcznych i automatycznych testów natywnych, internetowych i hybrydowych aplikacji Android / iOS

Link: https://kobiton.com/

Testdroid

Pomaga testować aplikacje na Androida i iOS na prawdziwych urządzeniach zarówno do testów automatycznych i ręcznych.

Link: https://testmatick.com/testing-tools/testdroid/

TestObject

Rozwiązanie pomaga w testowaniu natywnych, hybrydowych i mobilnych aplikacji internetowych zarówno na Androida, jak i iOS

Link: https://app.testobject.com/

Ranorex Studio

Ranorex Studio to kompleksowe rozwiązanie do testowania aplikacji mobilnych. Umożliwia również bezkodowe tworzenie testów automatycznych.

Link: https://www.ranorex.com/

EggPlant

Jest przydatny do automatyzacji interfejsu użytkownika i testowania funkcjonalnego, testowania opartego na obrazach, testowania mobilnego, testowania sieci, testowania sieci i testowania w różnych przeglądarkach.

Link: https://www.eggplantsoftware.com/

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 *