Na jakich urządzeniach warto testować?

To pytanie bardzo zasadne – rynek zalany jest tysiącami typów smartfonów pod kontrolą systemu Android, całkiem pokaźną paletą rozmaitych generacji i modeli Iphone’a, a na marginesie jeszcze widać urządzenia bazujące na platformie Windows. Jakby tego było mało, sytuacja na rynku jest bardzo dynamiczna, więc właściwy wybór urządzeń do testów nie jest sprawą oczywistą.


 

Mariusz Bukowiecki – tester oprogramowania od niemal 3 lat. Pasjonat technologii, najlepiej czuje się w testach natywnych aplikacji mobilnych. Ma za sobą zarówno liczne krótko jak i długoterminowe projekty. Od niedawna zgłębia tematykę automatyzacji testów aplikacji mobilnych w Appium

 

 

 

 

 


Przy rynku, na którym istnieje równolegle ponad 10 tys. modeli urządzeń mobilnych, ciężko wybrać coś odpowiedniego do testów. Osobiście, w swojej pracy przede wszystkim staram się przeprowadzić testy na najpopularniejszych urządzeniach i systemach operacyjnych.

Jakie są obecnie najpopularniejsze systemy operacyjne?

Z racji, że udział Androida i iOS w rynku urządzeń mobilnych wynosi ponad 99%, postanowiłem skoncentrować się w tym artykule tylko na tych dwóch systemach operacyjnych.

Jeśli chodzi o platformę Android to w tym momencie najpopularniejszym systemem jest Nougat  – 28,5 % (dane z lutego 2018 r.). Wciąż bardzo dobrze trzyma się dwuletni Marshmallow – 28,1 % oraz Lollipop 24,6%. Mimo, że od premiery najnowszego systemu Google – Androida Oreo – minęło już ponad pół roku, jego udział w rynku stanowi dopiero 1,1 %. Świadczy to o nie lada problemie z fragmentacją Androida, wynikającym głównie z tego, że producenci niespecjalnie śpieszą się z aktualizacją swoich urządzeń do nowszych wersji systemu.

Źródło: https://developer.android.com/index.html

Nieco inne dane przedstawia firma Apteligent (na dzień 11.04.2018):

Źródło: https://www.apteligent.com/

Rozbieżności w raportach Google i Apteligent wynikają z tego, że Apteligent bierze pod uwagę również urządzenia spoza Google Play, oraz, że ich dane są aktualizowane codziennie.

Warto również wspomnieć skąd Apteligent pozyskał te dane. Ranking udziału poszczególnych wersji Androida w rynku oraz udziału poszczególnych modeli telefonów w rynku został zbudowany na podstawie ponad 8 miliardów uruchomień aplikacji, z danymi dostarczonymi przez użytkowników z ponad 175 krajów.

Wracając do popularności poszczególnych wersji systemów, zgoła odmiennie sytuacja wygląda na platformie iOS. Tutaj najnowszą wersję systemu – iOS 11 posiada już ponad 79,8% użytkowników. Na drugim miejscu plasuje się iOS 10 z udziałem w rynku wynoszącym  13,93%. Sytuacja jest bardziej klarowna i w moich testach skupiam się na dwóch powyższych wersjach systemu. Trzecie miejsce zajmuje iOS 9 z udziałem w rynku na poziomie 5,29%. Większość aplikacji, które testowałem przez ostatnie pół roku nie wspiera już nawet tej wersji systemu, jeśli jednak jest ona jeszcze obsługiwana przez daną aplikację, to oczywiście trzeba sprawdzić jak działa taka kombinacja. Warto mieć na uwadze, że udział tego wydania systemu będzie malał praktycznie z dnia na dzień.

Źródło: https://www.apteligent.com/

Jakie są obecnie najpopularniejsze modele telefonów?

Kiedy mowa o konkretnych modelach urządzeń, na których warto testować oprogramowanie, sytuacja robi się bardziej skomplikowana. Przede wszystkim staram się przeprowadzać testy na najpopularniejszych urządzeniach na rynku, na który trafi aplikacja. W przypadku platformy iOS, to sytuacja w skali globalnej przedstawia się następująco (na dzień 11.04.2018):

Źródło: https://www.apteligent.com/

W związku z tym, że pod kontrolą iOS znajduje się zaledwie typów 35 urzadzeń,  sytuacja w poszczególnych krajach będzie odzwierciedlała raczej sytuację globalną. Oto jak wygląda analogiczne Top 10 w przypadku systemu Android (na dzień 11.04.2018):

Źródło: https://www.apteligent.com/

Niestety mocnym determinantem jest rynek, na który przeznaczona jest aplikacja. W USA sytuacja nie odbiega mocno od średniej globalnej, ale jeśli sprawdzimy jak wygląda lista 10 najpopularniejszych urządzeń w Chinach, to możemy się już mocno zdziwić. Na próżno szukać tam urządzeń, które zdołały zdominować globaklny rynek. Tabela Top 10 w Chinach przedstawia się następująco (na dzień 11.04.2018):

Źródło: https://www.apteligent.com/

Powyżej przedstawiłem najpopularniejsze systemy oraz modele urządzeń, ale oczywiście nie są to jedyne wyznaczniki dobrych testów. Nasza aplikacja na pewno będzie inaczej wyglądać przy różnych rozdzielczościach ekranu. Jeśli testujemy aplikację na iOS to oprócz tego, że powinniśmy ją sprawdzić na wszystkich dostępnych wersjach systemu to jeszcze na wszystkich dostępnych rozdzielczościach. Na szczęście paleta urządzeń z iOS nie jest duża. Jeśli byłbym mocno ograniczony czasowo i musiał wybrać tylko 5 urządzeń do testów, mój zestaw mógłby wyglądać następująco:

  • iPhone X, iOS 11.3
  • iPhone 8, iOS 11.2
  • iPhone 7 Plus, iOS 11.1
  • iPhone 6S, iOS 10.3
  • iPhone SE, iOS 9.3.5

Powyższy zestaw obejmuje różne modele, różne wersje systemu i różne rozdzielczości ekranu.

Jakie modele mogą sprawić najwięcej problemów?

Na platformie iOS, dość specyficzne błędy mogą się pojawić na iPhone X, ponieważ urządzenie to posiada dodatkową przestrzeń na dole i górze ekranu, a  aplikacje do tej pory po prostu nie były pisane z myślą o takim rozwiązaniu. Podczas moich testów udało mi się znaleźć naprawdę sporo błędów w GUI na tym konkretnym modelu.

W sytuacji, w której mamy więcej czasu, a nasza aplikacja jest wspierana też przez iOS 9, warto sprawdzić jak prezentuje się na iPhone 4S. Zdarza się, że deweloperzy zapominają, że to urządzenie również dostało upgrade do iOS 9 i przez swoją małą rozdzielczość ekranu (o przekątnej tylko 3,5 cala), aplikacje zawierają poważne błędy – nie tylko w GUI.

Na platformie Android wybór urządzeń do testów jest o wiele trudniejszy. Jak wspomniałem na wstępie, na rynku istnieje równolegle co najmniej kilkanaście tysięcy smartfonów pod kontrolą Androida. Podobnie jak w przypadku iOS, oprócz najbardziej popularnych modeli w danym regionie, skupiłbym się na różnych rozdzielczościach. Coraz bardziej popularny wśród flagowców staje się wyświetlacz o proporcjach 18:9. Urządzenia, które posiadają taki wyświetlacz to jeszcze świeży Samsung Galaxy S9, Samsung Galaxy S8 i LG G6. W porównaniu do Samsunga Galaxy S7, który ma proporcje 16:9, tutaj mamy o prawie 16% więcej miejsca. Z racji swojej popularności (2 miejsce w ujęciu globalnym) oraz niestandardowego ekranu, nie wyobrażam sobie aby mogło zabraknąć tego urządzenia w testach jakiejkolwiek aplikacji.

Mimo, że Android Oreo ma zaledwie 1,2% udziału w rynku, to koniecznie trzeba testować aplikacje również na nim. Popularność tej wersji szybko rośnie i z miesiąca na miesiąc coraz więcej urządzeń znajduje się pod jej kontrolą. Rekomendowałbym urządzenie z czystym Androidem, takie jak Google Pixel czy Nexus i testy już na wersjach beta systemu zanim trafi on do ostatecznych użytkowników.

W Android 8 pojawiła się nowa, ciekawa funkcja, a mianowicie autouzupełnianie w aplikacjach. Nasze adresy mailowe czy hasła od tej pory nie będą się pojawiać tylko w formularzach Google, ale również w aplikacjach. Tę funkcjonalność trzeba koniecznie sprawdzać w testowanych aplikacjach. Co najmniej dwie aplikacje testowane przeze mnie do tej pory nie były przygotowane na tę funkcję i po automatycznym uzupełnieniu danego pola po prostu przestawały pracować.

Kiedy mówi się o najnowszej wersji systemu oczywiście należy też wspomnieć o najstarszej wspieranej wersji. Z mojego doświadczenia wynika, że najwięcej błędów generują urządzenia ze starą wersja Androida w połączeniu z małym wyświetlaczem. Takim telefonem, na którym znalazłem dużo specyficznych dla niego błędów był popularny swego czasu w Polsce Samsung Galaxy Trend Plus pod kontrolą Androida 4.2.2.

Innymi problematycznymi telefonami mogą być urządzenia marki Xiaomi, w których w większości modeli spotkamy się charakterystyczną nakładką MIUI. Niektórzy twierdzą nawet, że na tyle zmienia ona Androida, że można ją traktować jako odrębny system, dlatego też warto sprawdzić jak nasza apka będzie się zachowywać przy tak wyjątkowej wersji systemu.

Urządzeniami, na których napotkałem sporo unikalnych błędów, są smartfony LG. Przykładowo: jedną z podstawowych funkcjonalności testowanej przeze mnie aplikacji było skanowanie paszportu za pomocą aparatu i upload tego dokumentu na serwer. O ile inne urządzenia radziły sobie  z tym krokiem bez większych problemów, to na G4 nie byłem w stanie tego kroku w ogóle przejść. Wynikało to ze zbyt dużego obciążenia pamięci RAM.

A co z tabletami?

Niestety prognozy dla tabletów nie są zbyt optymistyczne. Urządzenia te były popularne kiedy kiedy jeszcze smartfony miały mniejsze wyświetlacze i stanowiły poniekąd pomost między telefonami a laptopami. Od jakiegoś czasu można zaobserwować tendencję spadkową jeśli chodzi o sprzedaż tradycyjnych tabletów, a prognozy mówią, że tablety jakie znamy odejdą do lamusa. Ich miejsce zajmą prawdopodobnie tzw. hybrydy, czyli połączenie tabletu i laptopa.

Jeśli jednak nasza aplikacja jest przeznaczona również na tablety to tak jak w przypadku smartfonów, starałbym się dywersyfikować urządzenia. Przede wszystkim skupiłbym się na różnych rozdzielczościach. Często aplikacja na tablety będzie działać zarówno w pozycji portretowej jak i horyzontalnej. Sporo problemów testowanym przeze mnie aplikacjom sprawiały tablety o nietypowych rozdzielczościach, jak na przykład Asus Google Nexus 7 o przekątnej ekranu 7 cali.

A jeśli nie mamy fizycznych urządzeń do testów?

W takim przypadku ciągle pozostaje kilka możliwości. Pierwszą opcją są emulatory urządzeń, osobiście jednak nie jestem fanem takiego rozwiązania z prostej przyczyny – prawdopodobnie 0% użytkowników korzysta z emulatorów więc takie testy nie mogą być w pełni wiarygodne.

Innym rozwiązaniem są tzw. farmy fizycznych urządzeń jak np. Bitbar, Kobiton, SauceLabs czy Amazon AWS. Niewątpliwą ich zaletą jest to, że posiadają one prawdziwe urządzenia. Mając plik instalacyjny – .apk czy .ipa możemy naszą aplikację zainstalować na wybranym urządzeniu i przeprowadzić zarówno testy manualne, jak i automatyczne. Jeśli chodzi o te drugie, to większość takich farm wspiera Appium.

Trzecim rozwiązaniem jest wypożyczanie urządzeń mobilnych – lub własne, kompleksowo wyposażone laboratorium, jakim dysponuje chociażby TestArmy. W naszych szafkach znaleźć można wszystkie topowe modele popularnych i cenionych producentów, jak np SONY (użyczane nam bez ograniczeń, gdy tylko zajdzie taka potrzeba), po niszowe marki, jak Meizu (dokupowane regularnie, zazwyczaj co kwartał).

Podsumowanie

Przetestowanie aplikacji na wszystkich urządzeniach jest fizycznie niemożliwe, co nie zmienia faktu, że zawsze trzeba dążyć do testowania na jak największej liczbie urządzeń. Próbując odpowiedzieć na pytanie tytułowe, czyli na jakich urządzeniach warto testować odpowiem:

na najpopularniejszych w danym kraju urządzeniach, na urządzeniach z różnymi wersjami systemu i na urządzeniach o różnych rozdzielczościach ekranu. Do tego warto dorzucić kilka problematycznych modeli, o których wspomniałem w artykule, a z efektu pracy na pewno będziemy zadowoleni 🙂

Comments are closed.