W ostatniej dekadzie nastąpił wzrost liczby użytkowników smartfonów. Obecnie obywatele USA spędzają więcej czasu na urządzeniach mobilnych niż na oglądaniu telewizji.
Źródło – eMarketer.com
Przede wszystkim użytkownicy smartfonów spędzają czas na aplikacjach mobilnych. W związku z tym, stworzenie doskonałej aplikacji mobilnej jest niezwykle istotne. Aby zapewnić, że ich aplikacje działają bezproblemowo na Androidzie i iOS, właściwe testowanie przed wydaniem ich w odpowiednich sklepach z aplikacjami jest krytyczne.
W tym artykule omówimy najlepsze praktyki testowania aplikacji mobilnych. Porozmawiamy o najpopularniejszych frameworkach testujących i zobaczymy jak używać niektórych z nich, takich jak Appium, Selendroid.
Automatyczne frameworki testujące aplikacje mobilne
Istnieje wiele frameworków i narzędzi używanych do testowania aplikacji mobilnych. Niektóre z najpopularniejszych to:
Appium
Appium jest popularnym narzędziem open-source używanym do zautomatyzowanego testowania aplikacji mobilnych. Programista może testować swoje natywne lub hybrydowe aplikacje iOS i Android za pomocą Appium. Appium nie działa samo. Uruchamia przypadki testowe za pomocą interfejsu WebDriver. Ponieważ obsługuje wiele platform, testerzy mogą również ponownie wykorzystać swój kod źródłowy do testowania na iOS i Androidzie.
Run your Appium tests on real Android & iOS devices
Testuj 100 minut dziennie za darmo.
Calabash
Calabash to framework do testowania aplikacji mobilnych, który działa z wieloma językami. Obsługuje Ruby, Java, Flex i .NET. Testerzy mogą korzystać z API umożliwiających tworzenie aplikacji natywnych, które działają na urządzeniach z ekranami dotykowymi. Ten framework posiada biblioteki, które pozwalają skryptom testowym na programową interakcję z natywnymi i hybrydowymi aplikacjami.
Selendroid
Selendroid jest również znany jako selenium for mobile apps dla Androida. Testerzy mogą wykonywać natywne i hybrydowe testy aplikacji mobilnych przy użyciu Selendroida. Selendroid może wykonywać równoległe przypadki testowe na wielu urządzeniach, podobnie jak Selenium dla testów między przeglądarkami.
Espresso
Espresso jest użytecznym frameworkiem testowym do automatyzacji testów interfejsu użytkownika (UI) aplikacji mobilnej. Biorąc pod uwagę, że testowanie interfejsu użytkownika aplikacji jest niezbędne przed jej wdrożeniem, programiści i testerzy aplikacji powszechnie używają Espresso. Programiści mogą stworzyć scenariusz i nagrać, w jaki sposób wchodzą w interakcję z urządzeniem. Następnie mogą dodać asercje, które weryfikują zachowanie elementów UI aplikacji poprzez przechwytywanie zrzutów. Narzędzie zapisuje nagranie i generuje przypadki testowe UI, które można wykorzystać do testowania swojej aplikacji.
Robotium
Robotium jest popularnym narzędziem open-source przeznaczonym wyłącznie do testowania aplikacji androidowych. Przypadki testowe są napisane w Javie. Robotium jest popularne ze względu na możliwość pisania zautomatyzowanych testów black-box. Automatyzuje wiele czynności, które tester może wykonać na swojej aplikacji androidowej i zajmuje minimalną ilość czasu na napisanie przypadków testowych.
Oprócz tych, istnieją inne popularne narzędzia jak Monkeytalk, Testdroid, Frank, UIAutomator.
Wskazówki i najlepsze praktyki zautomatyzowanego testowania aplikacji mobilnych
Poniżej przedstawiamy kilka najlepszych praktyk, które zespoły inżynierskie powinny stosować myśląc o zautomatyzowanym testowaniu aplikacji mobilnych :
- Uczynić aplikację testowalną
W obecnej erze agile, deweloperzy muszą budować aplikacje, które są gotowe do testowania. Programiści powinni aktywnie dyskutować z zespołami testującymi, aby ustalić wytyczne. Na przykład, programiści powinni nadawać elementom unikalne ID, aby uczynić je testowalnymi.
- Nie nadużywaj XPath
XPath jest językiem zapytań, który może wybierać węzły w pliku XML. Może być używany do nawigacji po elementach podczas testowania. Google czy Apple nie dostarczają natywnie zapytań typu XPath. Więc jeśli testerzy używają ich dużo, Appium jest zmuszone do wykonania pewnych połączeń. Te wywołania pod maską znajdują elementy wspierające XPath, ale negatywnie wpływają na wydajność.
- Arrange Selectors in the Right Order
XPath jest oparty na lokalizacji. Jest powolny w porównaniu do innych lokalizatorów w selenie jak ID, Link Text, czy Name. Uporządkuj selektory w taki sposób, aby ID przychodziło jako pierwsze, a XPath jako ostatnie, aby szybciej identyfikować elementy.
- Użyj ID dostępności
Zamiast nadmiernego używania XPath, testerzy mogą użyć lokalizatorów ID dostępności. Jeśli użytkownicy ustawią ID dostępności na swoich elementach, uczyni to je bardziej testowalnymi i zwiększy zakres testowania ich aplikacji.
- Rozważenie stanów widoku aplikacji
Stan widoku jest techniką używaną do przechowywania wartości strony, gdy aplikacja wysyła lub otrzymuje informacje z serwera. Załóżmy, że istnieje 15 przypadków testowych dla określonej funkcjonalności aplikacji. Wśród nich, 10 przypadków testowych powtarza tę samą funkcjonalność logowania i przechodzenia na stronę. Taka duplikacja jest ogromną stratą czasu. Podczas tworzenia, skonfiguruj stan widoku aplikacji w taki sposób, aby testowanie rozpoczynało się dokładnie tam, gdzie jest to potrzebne.
- Nie idź na kompromis z emulatorami i symulatorami
Emulatory i symulatory częściowo naśladują prawdziwe urządzenia. Jednak wydajność aplikacji różni się w zależności od oprogramowania i konfiguracji sprzętowej rzeczywistych urządzeń użytkowników. Dlatego też, testowanie aplikacji mobilnych na prawdziwych urządzeniach jest koniecznością. Nawet Google i Apple zalecają takie testy przed umieszczeniem aplikacji w Google Play i App Store.
Istotnym sposobem na uzyskanie maksymalnego pokrycia jest użycie produktu do testowania w chmurze, takiego jak BrowserStack, który zapewnia dostęp do ponad 2000 prawdziwych urządzeń z systemami iOS i Android.
Start Cloud Based Testing for Free
Podsumowując
Wraz ze wzrostem penetracji smartfonów i czasu spędzanego na urządzeniach mobilnych, zapewnienie bezproblemowego korzystania z aplikacji mobilnych jest krytyczne. Aby to osiągnąć, zespoły muszą przyjąć odpowiednie ramy testowania. Popularne frameworki do automatyzacji testów to Appium, Calabash, Selendroid. Zespoły programistów muszą również pamiętać o najlepszych praktykach i powinny aktywnie współpracować z zespołami testującymi, aby upewnić się, że budują aplikacje, które są łatwiejsze do testowania. Testy muszą być również przeprowadzane na prawdziwych urządzeniach, a nie na emulatorach i symulatorach. Wszystko to pomoże zespołom szybciej wysyłać aplikacje i zapewnić użytkownikom wolne od błędów doświadczenie.