Articles

Porównanie narzędzi do testów automatyzacyjnych w urządzeniach mobilnych: Appium, TestComplete, UI Automator, SeeTest, Robotium, XCUITest i inne

SPIS TREŚCI

Czas czytania: 14 minut

Testowanie mobilne jest bardziej złożone niż testowanie stron internetowych. Podczas gdy to drugie dotyczy różnych przeglądarek i różnych wersji, testowanie mobilne skupia się na wersjach Androida i iOS oraz rozdzielczościach ekranów mobilnych. Poza stockowym Androidem, inżynierowie QA mają do czynienia z niestandardowymi interfejsami użytkownika. Większość producentów urządzeń dodaje je do standardowego Androida, aby zapewnić dodatkowe funkcje i bardziej charakterystyczny wygląd. Słynne przykłady to OxygenOS firmy OnePlus i One UI firmy Samsung.

W tym artykule chcemy ułatwić Ci życie, porównując dedykowane narzędzia do automatyzacji testów mobilnych. Zawarliśmy w nim rekomendacje wewnętrznych i zewnętrznych ekspertów, którzy przedstawiają swoje opinie na temat narzędzi do automatyzacji testów mobilnych.

Jak testować aplikacje mobilne

Więc, jak odbywa się testowanie mobilne? Inżynierowie QA używają narzędzi do automatyzacji testów mobilnych, aby ułatwić interakcję kodów testowych z aplikacją. Pytanie brzmi, jak przeprowadzać mobilne testy automatyzacji. Istnieją trzy opcje.

Poprzez lokalne urządzenia mobilne na żywo. Dzięki prawdziwym urządzeniom podłączonym do USB, QA mogą przetestować działanie aplikacji z perspektywy użytkownika końcowego. Mogą to przyspieszyć, uruchamiając testy równolegle na kilku urządzeniach z Androidem. Chociaż jest to nadal dość czasochłonne ze względu na wymóg ręcznego ustawienia infrastruktury, takie testowanie zapewnia najbardziej dokładne wyniki. Alternatywnie, można skorzystać z usług testowych w chmurze.

Używanie chmury prawdziwych urządzeń. Aby rozszerzyć pokrycie urządzeń, QA przeprowadzają testy w zdalnym środowisku testowym – farma urządzeń aka chmura urządzeń. Preinstalowane w OS i przeglądarkach, farmy urządzeń zapewniają testerom dostęp do wielowersyjnych urządzeń fizycznych. Testerzy mają do dyspozycji dashboard, gdzie mogą zarządzać wszystkimi podłączonymi urządzeniami. Sauce Labs i BrowserStack są szeroko stosowanymi chmurami urządzeń.

Via emulator Android / symulator iOS. QAs testują również aplikacje mobilne za pomocą oprogramowania, które imituje urządzenie mobilne na ich pulpicie. W szczególności, emulator Androida naśladuje zarówno oprogramowanie, jak i środowisko sprzętowe urządzenia docelowego, podczas gdy symulator iOS – tylko oprogramowanie mobilne. Dlatego do testowania potrzebny jest oryginalny komputer Apple. Wśród głównych zalet emulatorów Aleksander Kot, inżynier automatyki mobilnej w AltexSoft, wymienia możliwość bardzo szybkiego przełączania się między urządzeniami. Anastasiya Nalyhach, inżynier automatyzacji testów w EPAM Systems, dodaje, że emulatory pozwalają jej na szybkie uruchomienie lokalnych testów na komputerze, gdy nie ma dostępnego prawdziwego urządzenia. Jednak emulatory nie są tak niezawodne, jak prawdziwe urządzenia.

Emulator Androida w Android Studio

Emulator Androida w Android Studio

Emulator Androida w Android Studio

Aby zrozumieć, jak wszystkie te komponenty składają się na proces testowania, musimy najpierw zrozumieć, jak mobilne testy automatyzacji działają w ogóle.

Jak działa mobilne testowanie automatyzacji

Do tworzenia i testowania urządzeń mobilnych używane są następujące IDE: Android Studio oraz Apple Xcode. Te IDE posiadają wszystkie niezbędne narzędzia do pracy z kodem, w tym debuggery kodu (np. Android Debug Bridge), emulatory i symulatory.

Interfejs, który umożliwia komunikację pomiędzy urządzeniem mobilnym a komputerem nazywany jest sterownikiem mobilnym. Oficjalne sterowniki Androida to UI Automator i Espresso. Opracowane przez Google, oba sterowniki są zawarte w dobrze udokumentowanej Bibliotece Wsparcia Testów Androida. Poza tym, istnieją sterowniki firm trzecich, takie jak Robotium i Selendroid ( Selenium dla Androida). Jeśli chodzi o iOS, sterownik XCUITest jest dostarczany z Xcode.

Jeśli masz do czynienia z aplikacją mobilną dostępną zarówno na iOS jak i Androida, pisanie oddzielnych testów dla każdego systemu operacyjnego zajmie trochę czasu. Możesz umożliwić ponowne wykorzystanie kodu, korzystając z narzędzia wieloplatformowego. W efekcie piszesz kod tylko raz i jest on kompatybilny z obydwoma OS-ami. Najpopularniejszym przykładem międzyplatformowego narzędzia do testowania urządzeń mobilnych jest Appium.

Trzy sposoby korzystania z narzędzia do automatyzacji testów mobilnych

Trzy sposoby korzystania z narzędzia do automatyzacji testów mobilnych narzędzie

Trzy sposoby korzystania z narzędzia do automatyzacji testów mobilnych

Podsumujmy cały proces na przykładzie Appium. Po opracowaniu kodu, klient Appium wysyła polecenia do serwera Appium poprzez jego API. Appium z kolei konwertuje komendy na format akceptowany przez natywny framework testowy danej platformy (UIAutomator, XCUITest) i w efekcie początkowe komendy są wykonywane w testowanej aplikacji wewnątrz symulatora lub emulatora. Alternatywnie, można użyć chmury urządzeń, takiej jak Sauce Labs, która ma wszystkie niezbędne urządzenia preinstalowane dla Ciebie. Wystarczy więc tylko połączyć się z platformą chmury. W przypadku, gdy zdecydujesz się na prawdziwe urządzenia, będziesz musiał połączyć się i skonfigurować je samodzielnie.

Kiedy zautomatyzować testy mobilne

Często testy mobilne są wykonywane ręcznie ze względu na złożoność automatyzacji tego procesu. Działania na ekranie dotykowym, takie jak przewijanie i przeciąganie są dość trudne do zautomatyzowania. Rozróżnijmy przypadki, kiedy rozsądnie jest zautomatyzować testy mobilne i te, kiedy mądrzej jest trzymać się ręcznych kontroli.

Podobnie jak w przypadku testów webowych, istnieje wiele scenariuszy dla zautomatyzowanego QA aplikacji:

1. Długoterminowe projekty. Automatyzacja jest opłacalna w dłuższej perspektywie, jeśli planujesz stale rozwijać i utrzymywać aplikację.

2. Kontrole konserwacyjne. Jeśli aplikacja mobilna pozyskuje dane ze zdalnego serwera poprzez API, synchronizacja aplikacji musi być monitorowana codziennie. Często zmiany zachodzące po stronie serwera prowadzą do różnych zgrzytów, takich jak nieudane logowanie czy brak możliwości wyświetlenia niektórych elementów na ekranie.

3. Smoke testy. Jeśli mamy do czynienia z samodzielną aplikacją, która nie korzysta z zewnętrznych zasobów, pomijamy poprzedni krok i od razu przechodzimy do smoke testów. Wykonywane przed wydaniem, są powierzchownym sprawdzeniem podstawowych funkcji.

4. Testy regresyjne. Jest to najdokładniejsze sprawdzenie wszystkich rutynowych testów, które mogą być zautomatyzowane. Automatyzacja jest szczególnie opłacalna w przypadku regresji o dużej objętości.

5. Rurociągi ciągłej integracji. Ponieważ ciągła integracja obraca się tylko wokół testów automatycznych, nie ma tu innej opcji.

Nie zapominaj jednak o testach manualnych. Będą one bardziej precyzyjne pod względem zakłóceń, takich jak przychodzące teksty, połączenia, powiadomienia push itp. Obejmuje to również testowanie działania aplikacji w zależności od rodzaju połączenia internetowego (3G, LTE, itp.), jak również w trybie offline.

Więc, ważne jest, aby mieć zarówno ręczne, jak i automatyczne testy mobilne. Podczas gdy testy manualne skupiają się na testach eksploracyjnych lub testach użyteczności, testy automatyczne zajmują się wysoce powtarzalnymi testami funkcjonalnymi. Aby uzyskać więcej szczegółów na temat testowania ręcznego i automatycznego, sprawdź nasz dedykowany artykuł.

Ponadto, dokonujemy przeglądu narzędzi, które pomogą Ci przekształcić ręczne testowanie Twojej aplikacji w zautomatyzowane. Aby dowiedzieć się o ogólnych narzędziach do automatycznego testowania, przeczytaj nasz artykuł na ten temat. Tutaj koncentrujemy się na testach mobilnych, chociaż niektórzy gracze pozostaną, ponieważ wspierają zarówno testy webowe jak i mobilne.

Narzędzia do testów open-source na Androida i iOS

Narzędzia do testów open-source na Androida i iOS

Narzędzia do automatyzacji mobilnej na Androida

Istnieje wiele popularnych narzędzi do pisania testów automatycznych na Androida i emulowania zachowania użytkownika w aplikacji. Pierwszą rzeczą, którą należy sprawdzić są narzędzia, które Google samo zbudowało dla swojego systemu operacyjnego, UI Automator i Espresso. Jeśli jesteś przyzwyczajony do Selenium w środowiskach webowych, istnieje jego mobilna wersja – Selendroid. Możesz również sprawdzić popularne i łatwe w użyciu Robotium, które jest wspierane przez dużą społeczność open source.

Zaczniemy więc od porównania dwóch natywnych narzędzi do testowania Androida – UI Automator i Espresso.

Espresso i UI Automator: tandem do natywnego testowania Androida

Pierwotnie zaprojektowane dla deweloperów, Espresso wymaga dostępu do kodu źródłowego. Zapewnia więc testowanie białej skrzynki w przeciwieństwie do UI Automatora. Obsługuje aplikacje Android począwszy od wersji 2.3. UI Automator został wydany później, więc obsługuje Androida 4.3+.

Jest powód, dla którego Google utrzymuje je oba. Każdy framework ma pewne luki, które drugi wypełnia. Podczas gdy Espresso może działać tylko wewnątrz kontekstu naszej aplikacji testowej, UI Automator jest w stanie sprawdzić interakcje aplikacji z innymi aplikacjami. Frameworki te nie są wymienne, ale uzupełniają się wzajemnie. Dlatego lepszym rozwiązaniem jest użycie obu frameworków do testowania aplikacji mobilnej.

Espresso i UI Automator plusy:

  • Szybkość testowania dzięki synchronizacji kodu (Espresso jest szybsze)
  • Reliability: utrzymywane przez samo Google. Jeśli coś się zepsuje, jest naprawiane niemal natychmiast
  • Wbudowany rejestrator testów (tylko dla Espresso)
  • Aktywna społeczność, w której deweloperzy nieustannie się udzielają i odpowiadają na pytania

Espresso i UI Automator minusy:

  • Ograniczona obsługa języków: Java i Kotlin.
  • Kontrole niestandardowe wymagają dobrych umiejętności programistycznych i głębokiego zrozumienia jak działa Android.

UI Automator Viewer

UI Automator Viewer

UI Automator Viewer, Źródło: Arseny Batyrov

Oba Selendroid i Robotium zostały opracowane przed oficjalnymi sterownikami. Nie są one jednak tak dobrze wspierane jak narzędzia Google.

Selendroid: Narzędzie Selenium do testowania kompatybilności z Androidem

Selendroid jest mobilnym narzędziem automatyzacji Selenium, zorientowanym wyłącznie na Androida. Ale używając ios-driver – API Selenium WebDriver – wraz z Selendroid, będziesz w stanie testować także aplikacje iOS. Napisane na API klienta Selenium Web Driver, testy Selendroid są w pełni zintegrowane z obecnymi frameworkami Selenium. Wykorzystując Selenium Inspector, narzędzie do tworzenia testów, Selendroid monitoruje aktualny stan UI aplikacji.

Zalety Selendroid:

  • Funkcja hot-plugging umożliwia odłączanie urządzeń bez przerywania testu. Ostatecznie, zwiększa to liczbę urządzeń, które mogą być jednocześnie testowane.
  • Ma wysoką kompatybilność z JSON Wire Protocol i Selenium 3 Ready.
  • Kompatybilność wstecz. Na przykład, może wspierać Android API 10 (wersja 2.3.3) poprzez API 19 (wersja 4.4).
  • Nie wymaga żadnych dostosowań aplikacji do automatyzacji.
  • Istnieje wbudowany sterownik Android WebView app.

Selendroid cons:

  • Nie ma możliwości automatyzacji testowania działań poza aplikacją jak aparat, mapy, itp.
  • Slow: Jest trudny w użyciu na niektórych maszynach z mniej niż 4GB RAM.

Robotium: black-box UI testing library for Android applications

Robotium, jedno z pierwszych zautomatyzowanych narzędzi testujących dla Androida, jest często używane. Ponieważ służy ono do testowania black-box, nie wymaga dodatkowych danych o strukturze aplikacji czy wykonywanych klasach. Jedyne co Robotium musi wiedzieć to nazwa podstawowej klasy i jak się do niej podłączyć. Java jest preferowanym językiem do tworzenia testów Robotium.

Zalety Robotium.

  • Pozwala na tworzenie testów funkcjonalnych, szkieletowych oraz testów akceptacji użytkownika.
  • Ma dużą społeczność: Jest wielu programistów open-source, którzy przyczyniają się do wprowadzania kolejnych funkcji w kolejnych wydaniach.

Zapytaliśmy Myhailo Skrypchuk, dewelopera w Brandnic, o ich wykorzystanie Robotium do testowania aplikacji generatora nazw firm: „Używamy tego narzędzia w testach operacyjnych, aby ocenić, czy operacja została wykonana przy użyciu właściwego przepływu danych. Ponadto, w testach bezpieczeństwa – znajdujemy i usuwamy luki i podatności, przeprowadzamy różne pozorowane cyberataki. W testach wydajnościowych badamy aplikację pod kątem zapotrzebowania na pamięć i szybkości wykonania zadania.”

Wady Robotium:

  • Przywiązanie do jednego procesu aplikacji, podobnie jak w przypadku Espresso.

„Jeśli Twoja aplikacja wywołuje inny proces – Robotium nie może go zobaczyć i wykonać w nim żadnej akcji” – dodaje Myhailo.

  • Brak możliwości zablokowania/odblokowania smartfona lub tabletu.
  • Brak funkcji nagrywania i odtwarzania
  • Nieudana próba dostarczenia zrzutów ekranu.

iOS mobile automation testing tools

Jeśli jesteś uwikłany w testowanie aplikacji na iPhone, sprawdź jakie masz opcje. Wszystko sprowadza się do XCUITest – oficjalnego narzędzia do testowania UI firmy Apple. Z drugiej strony, Google oferuje niezłą alternatywę – EarlGrey, która może okazać się bardziej odpowiednia dla Twoich potrzeb.

XCUITest: natywne metody pracy z iOS UI

XCUITest działa w środowisku Xcode, a jego testy muszą być napisane w Swift lub Objective-C. Jego wsparcie dla wersji zaczyna się od iOS 9.

XCUITest pros:

  • Dystrybuowane równoległe uruchamianie testów
  • Wbudowany rejestrator testów dla prostych testów, elementów UI i ich charakterystyki

XCUITest minusy:

  • Apple jest wolniejszy od Google pod względem reagowania na błędy
  • Słaba dokumentacja: Nie zawiera opisu wszystkich metod i sposobu ich użycia.
  • Mała społeczność: Ciężko będzie Ci uzyskać odpowiedź na swoje pytanie.
  • Szybkość uruchamiania testów jest powolna w porównaniu do testów Androida.
  • Aktualizacje frameworka są rzadkie.
  • Out-of-the-box testowanie tylko na symulatorach, wymaga dodatkowych narzędzi do pracy z prawdziwymi urządzeniami. Jednym z nich jest Facebook WebDriverAgent (WDA). Uruchomiony na symulatorze lub prawdziwym urządzeniu, WDA przekazuje komendy poprzez API do XCUITest.

EarlGrey: odpowiedź Google na XCUITest

Rozwijany przez Google w 2016 roku EarlGrey jest bardzo podobny do Espresso. Samo Google używa tego narzędzia do testów funkcjonalnych natywnych aplikacji na iOS, takich jak YouTube, Google Calendar, Google Photos, Google Translate itp. Możesz dodać Earlgrey do swojego projektu Xcode ręcznie lub za pomocą menedżera dependecy .

W przeciwieństwie do XCUITest, ten framework automatyzacji UI dzieli ten sam proces z aplikacją: Skrypty testowe czekają na wystąpienie określonych zdarzeń UI przed bezpośrednim rozpoczęciem interakcji z UI aplikacji. W ten sposób test może wpływać na pamięć współdzieloną zmieniając zachowanie runtime aplikacji. Chociaż EarlGrey automatycznie synchronizuje się z UI i żądaniami sieciowymi, nadal pozwala na implementację niestandardowych czasów.

Przewagi Earl Grey nad XCUITest:

  • Przywraca funkcje synchronizacji Espresso do testowania iOS
  • Obsługa rzeczywistych urządzeń

Wady Earl Grey:

  • Anonimowe raporty statystyk z powrotem do Google
  • Tylko testowanie pojedynczej aplikacji

Międzyplatformowe narzędzia do automatyzacji testów mobilnych

Narzędzia do testów mobilnych, które działają dla obu OS-ów, pozwolą Ci zaoszczędzić sporo czasu i wysiłku. Podczas gdy łatwo jest się zgubić w gąszczu możliwości, wybraliśmy pięć najlepszych – zarówno darmowych jak i licencjonowanych – frameworków, które pomogą Ci w tworzeniu mobilnych, międzyplatformowych testów automatycznych. Appium jest pierwszą rzeczą, która przychodzi na myśl. Ale nie jest tak łatwo go rozgryźć, szczególnie jeśli nie znasz się na Selenium. Czasami lepiej jest zapłacić więcej za automatyzator bez skryptów. Przyjrzymy się obu opcjom dzięki narzędziom z tej listy.

Porównanie międzyplatformowych mobilnych narzędzi do testowania automatyzacji

Porównanie międzyplatformowych mobilnych narzędzi do testowania automatyzacji

Appium: wszechstronny framework do testowania mobilnego UI

Jeśli masz wprawę w Selenium, Appium będzie dla ciebie spacerkiem po parku. Jest to w zasadzie Selenium WebDriver zaprojektowany do testowania urządzeń mobilnych. Podstawową funkcją serwera Appium jest odbieranie żądań testowych w formacie JSON i konwertowanie ich na polecenia, które mogą być dalej akceptowane przez natywne frameworki testowe.

Jak działa serwer Appium

Jak działa serwer Appium

Jak działa serwer Appium

Testy oparte na Appium i WebDriver mogą być uruchamiane przy użyciu frameworka automatyzacji testów WebDriverIO.

Jest to wiązanie WebDrivera dla Node.js. WDIO posiada własny runner testowy i jest łatwo konfigurowalny. Jego interfejs wiersza poleceń jest wyposażony w ładne narzędzie konfiguracyjne, które pomaga stworzyć plik konfiguracyjny w mniej niż minutę. Daje on również przegląd wszystkich dostępnych pakietów firm trzecich, takich jak adaptacje frameworków, reporterzy i usługi, i może je zainstalować.

Appium plus. Appium to zdecydowanie najbardziej uniwersalny framework do testowania mobilnego UI.

  • Wspiera automatyzację na wielu platformach: iOS mobile, Android mobile i Windows desktop.
  • Narzędzie automatyzuje wszystkie rodzaje aplikacji: natywne, mobile web i hybrydowe.
  • Appium jest kompatybilne ze wszystkimi popularnymi językami programowania: Ruby, Python, Java, JavaScript, PHP, C# oraz RobotFramework. Mając klientów napisanych w każdym z tych języków, nie ma żadnych ograniczeń jeśli chodzi o runnery i frameworki testowe. Jest to właściwie wpisane w filozofię Appium – nie nakładaj żadnych ograniczeń na swoje środowisko testowe, abyś mógł nim zarządzać w sposób, w jaki sam zdecydujesz.
  • W przeciwieństwie do innych narzędzi automatyzacji, Appium dostarcza stabilny interfejs oparty na WebDriverze, dzięki czemu Twoje testy będą łatwe do przeprowadzenia pomimo wszelkich aktualizacji.

Przykładowa implementacja Appium dla Androida

Przykładowa implementacja Appium dla Androida

Przykładowa implementacja Appium dla Androida, Źródło: Thomas Hansson

Przykładowa implementacja Appium dla iOS

Przykładowa implementacja Appium dla iOS, Źródło: Thomas Hansson

Appium cons:

  • Anastasiya Nalyhach zauważa, że Appium nie wchodzi w bezpośrednią interakcję z aplikacją, ale używa protokołu HTTP do wysyłania komend. Aleksander Kot dodaje do tego, że „wykonywanie poleceń zajmuje chwilę z powodu długiego łańcucha interakcji pod maską Appium: Po uruchomieniu urządzenia i utworzeniu sesji, Appium przechodzi do nawiązania połączenia z serwerem WebDriverAgent. Dopiero potem, serwer WebDriverAgent komunikuje się z natywnym frameworkiem testowym Apple w celu wykonania poleceń na urządzeniu.”
  • Bez dostępu do kodu źródłowego, istnieją problemy z modyfikacją stanu aplikacji. Dodatkowo, Appium nie pozwala na wyśmiewanie części back-endowej podczas weryfikacji UI. Na koniec należy pamiętać o posiadaniu wydajnego sprzętu, ponieważ Appium zużywa dużo zasobów.

Calabash: Behavior Driven Development testing framework

Jeśli Xamarin jest bliższy Twojemu sercu, postaw na Calabash. W 2017 roku Xamarin przestał wspierać Calabash, a dzięki pomocy społeczności, Calabash przekształcił się w narzędzie open-source. Istnieją biblioteki dla każdej platformy: Calabash iOS i Calabash Android.

Calabash zapewnia, że aplikacja składa się z odpowiednich funkcji, scenariuszy i definicji kroków, a także czy jest uruchamiana z odpowiednimi danymi wejściowymi.

Calabash pros:

  • Będąc zorientowanym na BDD, Calabash przeprowadza testy deweloperskie w oparciu o działanie aplikacji.
  • W przeciwieństwie do agnostycznego Appium, Calabash jest ściśle połączony z behawioralnym Cucumberem, używając go do definiowania scenariuszy testowych w prostym języku. Dzięki temu jest on zrozumiały nawet dla nietechnicznych członków zespołu.

Calabash minusy:

  • Calabash umożliwia interakcje z aplikacją tylko dla frameworka testowego opartego na Ruby.
  • Brak funkcji nagrywania i odtwarzania.
  • Debugowanie skryptów testowych i utrzymanie testów to główne problemy. Wraz z rosnącą liczbą testowanych urządzeń, utrzymanie plików z danymi testowymi staje się trudne.
  • Pisanie skryptów testów automatyzacji dla Calabash wymaga wykwalifikowanego i biegłego testera.

SeeTest: komercyjna platforma do testowania ciągłego

SeeTest firmy Experitest jest pierwszym komercyjnym, wieloplatformowym narzędziem testowym na naszej liście. Dostępny z 30-dniowym okresem próbnym, plan automatyzacji SeeTest kosztuje użytkownika 199 dolarów miesięcznie, jeśli płaci się za niego z rocznym wyprzedzeniem lub 249 dolarów miesięcznie. Więc po co płacić, skoro są darmowe narzędzia?

SeeTest ma wiele zalet:

  • Zintegrowane możliwości Appium w wygodnym interfejsie z takimi funkcjami, jak odbicie urządzenia, rejestrator testów, szpieg obiektów i wizualne informacje zwrotne
  • Rozszerzone pokrycie automatyzacji, w tym skanowanie kodów kreskowych & check, funkcje audio, symulacja GPS i TouchID, lub niestandardowe elementy, takie jak suwaki, pickery, tabele, gesty i dowolne złożone UI.
  • WtyczkiIDE do tworzenia i uruchamiania testów na prawdziwych urządzeniach bezpośrednio z Eclipse lub IntelliJ
  • Dostęp do 1000+ urządzeń mobilnych w chmurze i równoległe uruchamianie setek testów
  • Szczegółowe raporty z testów ze zrzutami ekranu, filmami wideo i plikami dziennika.

SeeTest Reporter

SeeTest Reporter

SeeTest Reporter

Podsumowując, SeeTest doskonale wpisuje się w proces CI, ponieważ pozwala na priorytetyzację, harmonogramowanie i dystrybucję wielu testów równolegle na urządzeniach i OS-ach istotnych dla danego builda.

Wady SeeTest. Zawsze jest jakieś ale. W przypadku SeeTest jest to jego cena, przez co narzędzie nie nadaje się do małych projektów. Dodatkowo, narzędzie nie jest open source, więc nie ma miejsca na poprawki.

TestComplete: autorski moduł do testowania mobilnego bez skryptów

TestComplete jest produktem SmartBear, lidera automatyzacji testów oprogramowania. Oferuje on zautomatyzowane moduły do testów mobilnych, desktopowych i webowych. Z TestComplete możesz tworzyć testy poprzez ich nagrywanie lub edytowanie poleceń testowych w panelach i edytorach. Testy można uruchamiać wewnątrz platformy lub eksportować do zewnętrznych aplikacji.

TestComplete za:

  • Dostępna jest szeroka gama języków programowania (np. JavaScript, Python, Jscript.)
  • Narzędzie do nagrywania i odtwarzania bez użycia skryptów pozwala na nagrywanie gestów wielodotykowych (swipe, pinch, drag, drop lub scroll) i odtwarzanie ich. Steve Pritchard, konsultant IT w firmie Anglo Liners, twierdzi, że takie testy są równie dokładne jak te ręczne.

TestKompletne odtwarzanie gestów z ekranu dotykowego

TestKompletne odtwarzanie gestów z ekranu dotykowego
TestKompletne odtwarzanie gestów z ekranu dotykowego

TestKompletne odtwarzanie gestów z ekranugestów na ekranie

TestKompletne odtwarzanie gestów na ekranie dotykowym

  • Specyficzne punkty kontrolne weryfikują stan aplikacji podczas przebiegu testu.
  • Automatyczne kontrole walidują kluczowe aspekty. Steve potwierdza: „Dzięki informacjom generowanym przez narzędzie w czasie rzeczywistym, jesteśmy w stanie śledzić postęp i status naszych stron z każdego urządzenia jednocześnie.”
  • Istnieje wstępna integracja z narzędziem do testowania API SoapUI.

TestComplete minusy:

  • To rozwiązanie jest drogie. Za moduł mobilny wraz z samą platformą, TestComplete wystawi Ci rachunek na minimum 2 299 dolarów rocznie. To tylko dla jednego urządzenia komputerowego. Takie rozszerzenia jak równoległe wykonywanie testów, powtórki testów wideo, rozpoznawanie wizualne napędzane przez AI, automatyczne audyty stron internetowych pod kątem wydajności, dostępności i SEO mają dodatkowe ceny. Ponadto, TestComplete pobiera osobne opłaty za szkolenia i certyfikację. Wraz z zakupem, klienci TestComplete otrzymują dostęp do Case Management Portal, gdzie mogą zwrócić się o wsparcie. Zanim podejmiesz jakiekolwiek zobowiązania, możesz wypróbować go przez miesiąc.
  • Testowanie systemu iOS za pomocą TestComplete wymaga zainstalowania narzędzi do wirtualizacji sprzętu na komputerze Mac.

Tricentis Tosca: licencjonowany silnik Mobile Engine 3.0 oparty na modelu

Jako część standardowej instalacji Tricentis Tosca, silnik Tosca Mobile Engine 3.0 musi być wyraźnie wybrany poprzez konfigurację niestandardową. W połączeniu z Appium, Tricentis pozwala na wykorzystanie możliwości Appium bez konieczności zajmowania się jego techniczną złożonością. Poza tym, Tosca Mobile Engine 3.0 wykorzystuje komponenty narzędzi AndroidSDK i Xcode. Jest on zintegrowany z chmurami urządzeń: Perfecto, Mobile Labs, Sauce Labs oraz TestObject. W ten sposób nie jesteś uzależniony od środowisk testowych, ale możesz je zaangażować, gdy zajdzie taka potrzeba.

Tricentis Tosca plus. Podobnie jak TestComplete, Tricentis umożliwia bezskryptową automatyzację testów wraz z ręcznym pisaniem kodu, co czyni go łatwym w użyciu. Wśród możliwości Tricentis, z których można skorzystać są:

  • Syntetyczne generowanie danych testowych,
  • Testy oparte na ryzyku,
  • Projektowanie przypadków testowych,
  • Wykonanie rozproszone,
  • Wirtualizacja usług,
  • Zarządzanie testami i analityka,Integracje z narzędziami DevOps i zarządzania cyklem życia aplikacji
  • Automatyczne wdrażanie i uruchamianie z testami uruchamianymi automatycznie bez konieczności ręcznej interakcji.

Tricentis Tosca cons: Tosca ma niestandardową wycenę, która jest po wysokiej stronie. Nawiąż bezpośredni kontakt, aby dowiedzieć się tego samemu.

Wyzwania związane z testami mobilnymi (w porównaniu do testów webowych)

W zakresie wdrażania funkcjonalności, rozwój mobilny opiera się na istniejącym zestawie funkcji webowych. Tak więc, tworzenie aplikacji wspierającej powinno być łatwiejsze. Ale to nie odnosi się do procesu testowania. Tutaj, testowanie mobilne zaczyna się od początku, bez względu na to, jak dokładne były testy sieciowe. Teraz, dokonamy przeglądu głównych trudności, jakie napotyka testowanie mobilne w przeciwieństwie do testowania stron internetowych.

Fragmentacja urządzeń. Tak jak w przypadku testów sieciowych, gdzie mamy do czynienia tylko z komputerami PC i laptopami, testy mobilne obejmują telefony, tablety, smartwatche, itd. Tak więc, obsługa wielu producentów sprzętu z różnymi rozmiarami ekranów i niestandardowymi UI, komplikuje proces testowania.

Podwójna praca. Testy webowe dotyczą tylko jednego środowiska – przeglądarki, gdzie wieloplatformowość nie jest tak istotna jak w przypadku testów mobilnych. Mając oko na mobilne systemy operacyjne Android i iOS, testerzy muszą znaleźć dwa typy lokalizatorów obiektów strony i zaimplementować oddzielne testy dla podobnych funkcji. Obsługując dwa zestawy infrastruktury jednocześnie, dział QA musi być gotowy na wszelkie aktualizacje typu push, które mogą powodować przerwy w testach.

Dopasowanie urządzeń. Jak zawsze, iOS wymaga komputera Apple do pisania testów automatycznych.

Szybkość testowania. Testy webowe są wykonywane bezpośrednio w przeglądarce. W przeciwieństwie do testów mobilnych, gdzie kod przechodzi przez dłuższy łańcuch działań zanim zostanie wykonany na urządzeniu docelowym. Powoduje to opóźnienia w procesie testowania mobilnego.

Narzędzia i wsparcie. W przeciwieństwie do automatyzacji webowej, mobile ma mniej dojrzałą społeczność, która nie jest w stanie odpowiedzieć na niektóre pytania. Narzędzia do niej wciąż ewoluują.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *