Przeczytaj o urządzeniach do testów oprogramowania. Dowiedz się, jakie czekają Cię wyzwania związane z kompletowaniem bazy urządzeń do testów.
 

Kompleksowe testy oprogramowania to w dzisiejszych czasach rzecz niezwykle ważna. Mnogość wszelkiego rodzaju urządzeń i systemów utrudnia zapewnienie jak najszerszej grupie użytkowników właściwego doświadczenia przy użytkowaniu oprogramowania.

Dlaczego w ogóle warto wspierać korzystanie z produktu na różnych urządzeniach? Choćby dlatego, że konkurencja nie zawsze to robi! A tam, gdzie niektóre firmy zmniejszają zakres obsługiwanych platform, tam inne widzą potencjalną okazję. Wspieranie szerokiej gamy systemów pozwala dotrzeć na nowe rynki a co za tym idzie generować większe przychody, jednak pociąga to za sobą pewne konsekwencje. Oferowanie produktu działającego na różnych urządzeniach niesie ze sobą konieczność przetestowania aplikacji na większej ilości sprzętu - najlepiej jak najbardziej różnorodnego. W takich wypadkach należy stworzyć dział QA zaopatrzony w odpowiedni sprzęt lub, jeśli zapotrzebowanie na testy nie jest regularne, skorzystać z pomocy wyspecjalizowanej w tym firmy. 

W tym artykule poruszę właśnie kwestię sprzętu od strony organizacyjnej, jako osoba za niego odpowiedzialna. Przedstawię plusy i minusy różnych rozwiązań a także przybliżę problematykę związaną z organizacją i rozwojem bazy urządzeń testowych. Postaram się zawrzeć tu ważne spostrzeżenia oraz informacje zebrane w trakcie pracy, co jak mam nadzieję pomoże uniknąć pewnych pułapek i problemów.

Kompletowanie urządzeń dla zespołu testerskiego

Zaczynając od początku, jeśli chcemy stworzyć bazę urządzeń, trzeba pomyśleć o samym doborze sprzętu. Smartfony to obecnie najpopularniejszy użytkowy sprzęt elektroniczny i to one są głównym targetem wielu aplikacji. Tablety wyraźnie zeszły na dalszy plan - obecnie produkuje je jedynie kilka firm a ich udział w rynku jest dość niski.

Konieczność posiadania sprzętu wynika z trudności dopasowania oprogramowania do działania w każdych warunkach. Różnice pomiędzy poszczególnymi modelami zarówno w oprogramowaniu jak i fizycznym osprzęcie potrafią być diametralne co często wywołuje niespodziewane błędy.

Dwa główne systemy na urządzenia mobilne które należy brać pod uwagę to iOS oraz Android tworzone kolejno przez Apple oraz Google. Dla firmy, która chce zaopatrzyć się w nazwijmy to “zestaw startowy urządzeń”, należy uwzględnić obie wyżej wymienione platformy. Jako bazę możemy przyjąć trzy urządzenia na Androida oraz dwa na iOS-a. Różnica w ilości wynika ze względu na dużo większą różnorodność modeli, w przypadku Androida. Najlepiej byłoby kupić urządzenia z trzech przekrojów cenowych, tak zwanych low-end, mid-range oraz flagship. 

Urządzenia low-end do testów

Low-end to urządzenia o relatywnie słabych parametrach (zapewniających jednak pełnię możliwości korzystania z systemu), bardzo popularne między innymi w krajach rozwijających się, ale także w Polsce. Nie ma tutaj z góry ustalonych jednolitych wartości cenowych dla tych kategorii, każdy w tej kwestii może mieć lekko inne założenia, w moim wypadku są to kwoty do 700 zł za urządzenie.

Z popularnych obecnie modeli mógłbym polecić smartfony Xiaomi z serii Redmi. Xiaomi to chiński producent wyróżniający się dobrym stosunkiem możliwości urządzenia do jego ceny, a także dość mocno zmodyfikowaną wersją systemu Android, która niestety może rodzić dodatkowe błędy i problemy. Jako alternatywy proponuję telefony amerykańskiej marki Motorola z serii Moto.

Urządzenia mid-range do testów

To tutaj mamy największą różnorodność i stale rosnącą popularność smartfonów z tej kategorii. Górny limit cenowy w przypadku mid-range oscyluje w okolicach 2000 zł i daje duże możliwości wyboru.

W tej kategorii rekomenduję zakup urządzeń z serii Galaxy A koreańskiej firmy Samsung. Telefony tej firmy są znane i popularne w niemalże wszystkich częściach świata. Występują w różnych przedziałach cenowych, a także zawierają autorski procesor Koreańczyków wraz z ich zmodyfikowaną wersją systemu operacyjnego Android. Chińską alternatywą dla Samsunga mogą być telefony firmy Huawei, która trzyma silną pozycję między innymi w Polsce. Ich autorskie procesory z serii Kirin wraz mocno zmodyfikowanym systemem wyposażonym między innymi we własny sklep z aplikacjami mają spory potencjał w kontekście testowania.

Urządzenia flagowe do testów

Nazwa flagship oznacza model flagowy, czyli prezentujący szczyt możliwości technologicznych danego producenta. Telefony te nie bez powodu są najdroższe - tutaj nie ma limitu cenowego. Przy tak dużej inwestycji zdecydowanie warto zastanowić się nad długowiecznością urządzenia - w niej prym wiedzie seria Pixel od Google. Oferują oni o wiele lepsze wsparcie software dla swoich urządzeń. Jako producent systemu Android zawsze przygotowują jego nowe wersje z myślą o telefonach własnej produkcji. Dzięki temu najnowsze wersje Androida, specjalnie przygotowane pod dany model, są wydawane szybciej niż u innych firm. Aktualizacje są także wydawane są przez dłuższy czas, co sprawia, że takie urządzenie bardzo dobrze zniesie próbę czasu z perspektywy przydatności testowej.

Urządzenia do testowania na iOS

Przechodząc do iOS, ekosystem firmy Apple jest o wiele bardziej ścisły pod kątem ilości wydanego w nim sprzętu, co znacznie ułatwia sprawę. W regularnych odstępach wydawane są nowe modele z głównej linii, dodatkowo co pewien czas ukazuje się nowy tańszy model, gdy nie mogę być w pełni pełen nazewnictwa w przyszłości, to obecnie rolę tanich modeli pełni seria SE, natomiast seria główna posiada jedynie numerki. Telefony te posiadają dość długi okres wsparcia, jednak dla świętego spokoju zamiast oszczędzać na starszych modelach, rekomenduje zakupienie najnowszych, co zapewni możliwie najpłynniejsze działanie oraz długi okres wsparcia.

A co dalej?

Zakładając, że mamy już bazę w postaci najpotrzebniejszych modeli, możemy pomówić teraz o dalszych perspektywach rozbudowy floty telefonów. Przy doborze kolejnych modeli ważne jest zachowanie dużej różnorodności. Parametry które mają tutaj szczególne znaczenie to między innymi procesory, rozmiar i proporcje ekranu, wersja nakładki systemowej, wersja systemu czy też po prostu popularność danego modelu w Polsce lub innym, ważnym dla nas, regionie.

Dbanie o sprzęt do testów

Kiedy mamy już sprzęt, dochodzi kolejny obowiązek zajmowania się nim, co wbrew pozorom nie jest rzeczą prostą. Składa się to na wiele czynności, które należy wykonywać regularnie - wraz ze wzrostem liczby urządzeń może stać się to czasochłonne.

Osoba wyznaczona do zajmowania się telefonami musi przygotować i prowadzić wewnętrzny system inwentaryzacji. Początkowo może on się składać z dowolnego programu do organizacji danych, jak chociażby arkusz kalkulacyjny. Ważne jest, aby posiadał on opcję śledzenia zmian. Zapisowi powinny podlegać nie tylko modele urządzeń, ale też ich parametry.

Bardzo przydatne i przyszłościowe jest tworzenie unikalnych, wielocyfrowych kodów dla sprzętu, co pomoże odróżnić go w wypadku posiadania dwóch tych samych egzemplarzy. Taki kod można wydrukować na drukarce do etykiet a następnie umieścić z tyłu urządzenia. Pozwala to na jego łatwe rozpoznanie bez konieczności uruchomienia. Tak jak w przypadku większości danych, baza sprzętu też powinna mieć backup w razie awarii. Proces samego wydawania sprzętu również powinien być w jakiś sposób kontrolowany. Przykładowo może zostać ustalona określona godzina, o której wyznaczona osoba przydziela pracownikom telefony, o które wcześniej wnioskowali.

Zarządzanie sprzętem firmowym w erze home office

A co z oficjalną stroną przekazania sprzętu do użytku poza biurem? W wypadku sprzętu na stałe przypisanego do pracownika wystarczy jednorazowy dokument o odpowiedzialności, który podpisuje się ponownie jedynie w wyniku zmiany sprzętu. Sprawa komplikuje się gdy mamy do czynienia ze sprzętem testowym często przekazywanym z rąk do rąk. Tutaj każdorazowo wymagane jest oficjalne ręcznie podpisane przez pracownika oświadczenia o wypożyczeniu oraz oddaniu sprzętu, co pozwala na pełne przekazanie odpowiedzialności.

Potencjalnym problemem okazuje się też dokumentacja i kontrola przekazywania sprzętu. W momencie, gdy urządzenia wędrują poza firmę, należy dokładnie je śledzić. Wiedza kto je posiada i gdzie się znajduje pomaga uniknąć wielu nieprzyjemnych sytuacji. Oprogramowanie do zarządzania urządzeniami jest tu kluczem do sukcesu. Może to być nawet tak coś prostego jak Trello. Dzięki temu w razie nagłej potrzeby sprowadzenia do firmy danego urządzenia można szybko je wyśledzić oraz skontaktować się z osobą obecnie je posiadającą.

Innym problemem wypożyczania sprzętu firmowego jest dostępność urządzeń. Przy zbyt małej ich ilości ciężko jest zapewnić dobry przepływ między kilkoma osobami, które ich akurat potrzebują. W tak trudnej sytuacji najlepiej jest zarządzić tymczasową pracę w biurze dla osób potrzebujących sprzętu. Pozwoli to zaoszczędzić czas związany z jego przekazywaniem.

Bezpieczeństwo urządzeń

A czy wypożyczany testerom sprzęt da się jakoś zabezpieczyć? Bezpieczeństwo fizyczne w trakcie przechowywania może sprawiać problemy przy większej ilości urządzeń. Dobrym i prostym rozwiązaniem może być tutaj szafka czy też szafa zamykana wielopółkowa, gdzie będziemy mogli umieścić urządzenia a następnie zamknąć całość dla bezpieczeństwa. Jej lokalizacja ma oczywiście znaczenie - szafka nie może znajdować się w zbyt łatwo dostępnym miejscu. Inną alternatywą jest szafka narzędziowa, która pozwala na większą oszczędność przestrzeni. 

Gdy z kolei mówimy o sprzęcie wypożyczonym do pracy zdalnej to początkujący dział testów z niskimi funduszami raczej nie będzie miał możliwości wykorzystania specjalnego oprogramowania do jego zabezpieczenia, co znacznie utrudnia sprawę.

Warto jednak przy konfiguracji upewnić się że wypożyczony sprzęt:

  • ma włączone szyfrowanie danych,
  • posiada blokadę zabezpieczoną co najmniej PIN lub też hasłem,
  • jest podpięty do firmowego maila.

Pozwala to do pewnego stopnia na jego nadzór za pomocą narzędzi udostępnionych przez Google oraz Apple. Dla większy poziom nadzoru należy skorzystać z rozwiązań typu MDM lub też UEM, które przybliżę w dalszej części artykułu.

Oprócz kontroli ważna jest też czystość. Mam tutaj na myśli zarówno sterylność, jak i zaśmiecenie pamięci urządzenia pozostałościami z testów. Sprzęt przeznaczony do testów, który nie jest na stałe do kogoś przypisany, ma potencjał do zaniedbań w obu wyżej wymienionych kwestiach, jako iż nikt z użytkowników nie czuje za niego w pełni odpowiedzialny. Radą na to są oczywiście odpowiednie zasady i ich egzekwowanie.

Jeśli chodzi o czystość fizyczną to należy zapewnić testerom odpowiednie środki oraz narzędzia do czyszczenia urządzeń, tak aby przy każdym ich pobraniu oraz oddaniu mogli je przeczyścić. W dzisiejszych czasach coś co przechodzi między wieloma osobami stwarza potencjalne ryzyko choroby które należy zminimalizować. Warto również wydrukować krótką instrukcję przypominającą o tym pracownikom i powiesić ją w miejscu odbierania sprzętu.

Cyfrowa czystość osiągana przez regularne czyszczenie zawartości telefonu może sprawić więcej problemów. W tym przypadku można postawić zasadę, aby każdy czyścił po sobie. Niestety z jej egzekwowaniem potrafi być jednak różnie. Aplikacje nawet po odinstalowaniu potrafią zostawić ukryte w pamięci śmieci, które z czasem mogą się nawarstwiać. Pewniejszą, choć bardziej pracochłonną dla opiekującego się sprzętem opcją, jest regularne czyszczenie wszystkich urządzeń własnoręcznie. Zamiast ręcznego usuwania aplikacji jedna po drugiej przydaje się wtedy opcja przywrócenia telefonu do ustawień fabrycznych. Konfiguracja telefonu jest w większości przypadków o wiele szybsza niż czyszczenie sprzętu, który przez ostatnie 2-3 miesiące był aktywnie używany do testowania.

Zatem, czy można wypożyczać urządzenia na pracę zdalną? Jak najbardziej, ale tworzy to sporo wyzwań. Możliwe, że dla relatywnie małej firmy, która nie ma pełnowymiarowego pracownika od zajmowania się sprzętem testerskim, lepiej będzie zorganizować odpowiednie stanowiska w biurze. Ostateczny wybór, a także jego plusy oraz minusy zależą od sytuacji danej firmy.

Aktualizowanie sprzętu firmowego

Nie do końca oczywistą sprawą są aktualizacje. Naturalnym jest że aktualizacje bezpieczeństwa są ważne i powinny być przez użytkowników robione kiedy to tylko możliwe, nie zawsze tak się jednak dzieje i nie każdy wie jakie to ważne w dzisiejszej erze cyfryzacji. 

Podczas testów wyniknąć może jednak inny problem. Wymuszenie aktualizacji systemu przed aktualizacją zabezpieczeń na zdrowy rozsądek jest rzeczą niesprawiającą problemu, ponieważ każdy chce mieć najnowsze funkcje. Urządzenia testerskie rządzą się jednak nieco innymi prawami. Należy tu dążyć bardziej do szerokiej rozpiętości pod kątem dostępnych wersji systemów niż do możliwie jak najbardziej aktualnej ich iteracji, a to ze względu na większe pokrycie przypadków testowych.

Zawsze warto na jednym z telefonów mieć system sprzed dwóch-trzech lat, ponieważ wciąż jest masa ludzi korzysta z telefonów o podobnych parametrach jednak starszych modelach niemających już dostępu do najnowszych aktualizacji - rodzi to popyt na aplikacje pisane z uwzględnieniem starszych systemów. Efekt ten jest dość mocno widoczny na urządzeniach z Androidem, gdzie występują duże różnice pomiędzy używanymi przez różnych użytkowników wersjami systemu. Firma Google usiłuje walczyć z tym problemem, nie jednak tempo aktualizowania urządzeń na nowe wersje systemu wciąż jest bardzo małe. Przeciwnie jest z firmą Apple która utrzymuje wsparcie danego modelu przez 4-5 lat, jednak nawet tutaj dla upewnienia się wiele firm testuje swoje aplikacje na paru starszych wersjach systemu.

Zaawansowane administrowanie

Wiele z wymienionych w artykule zadań i rozwiązań zakładało mniejsze ilości urządzeń. Co jednak gdy dział testerski się rozwinął, fundusze wzrosły a wraz z nimi ilość urządzeń? W tym wypadku z pomocą przychodzi cała kategoria oprogramowania zwana MDM (Mobile Device Management) lub też bardziej rozbudowane UEM (Unified Endpoint Management) . Oprogramowanie tego typu skupia się na zapewnieniu scentralizowanego punktu zdalnej kontroli wielu urządzeń. Powstało z myślą właśnie o firmach i ułatwieniu zarządzania ich sprzętem. W zależności od danego produktu różnią się one znacząco opcjami.

Jako przykład podam tutaj rozwiązanie Google Endpoint Management, które w przeciwieństwie do tego, jak mogłoby się wydawać, wspiera nie tylko system producenta, ale również konkurencyjne rozwiązanie w postaci środowiska iOS czy też systemu Windows. Pozwala na zaawansowaną konfigurację urzadzeń z wykorzystaniem wbudowanej w telefony platformy Android Enterprise. Aby rozpocząć zarządzanie urządzeniem wystarczy podpięcie telefonu do odpowiednio skonfigurowanego adresu mailowego z domeny G Suite.

Wiele tego typu usług posiada darmowy okres próbny, który pozwala na sprawdzenie funkcjonalności przed podjęciem decyzji co do zakupu. W wielu wypadkach istnieje też możliwość szybkiej autokonfiguracji - w telefonach z Androidem wystarczy wykonać 5 kliknięć na ekranie startowym, ukazującym się po pierwszym odpaleniu urządzenia. Odpala to czytnik kodów QR, którym skanujemy wygenerowany w panelu MDM znak. Niemalże całkowicie automatyzuje to proces konfiguracyjny i po paru chwilach telefon jest widoczny w panelu oprogramowania i gotowy do działania. Firma Apple lekko utrudnia sytuację, wymagając uprzednio wygenerowanie odpowiedniego certyfikatu na stronie producenta. 

Tego typu rozwiązania występują w dwóch wersjach. Hostowane na serwerze lokalnym firmy dają większą kontrolę nad konfiguracją, wymagają jednak więcej pracy i uwagi. Chmurowe rozwiązanie natomiast dają większą wygodę i łatwość obsługi. Jako iż uważam, że głównym celem jest ułatwienie pracy, osobiście preferuje drugą opcję.

Test Farm

Oprócz softu, który ułatwia zarządzanie w ogólnym tego słowa znaczeniu, możemy też natknąć się na ten skrojony bezpośrednio pod testy. Test Farm, bo tak nazywa się to rozwiązanie, polega na podpięciu telefonów do centralnego punktu w postaci serwera, który pozwala na ich zdalne używanie. Rozwiązania takie tworzą między innymi Google oraz Samsung. Ilość dostępnych urządzeń oraz jakość działania całości pozostawiają wiele do życzenia, jednak nadrabiają one brakiem jakichkolwiek opłat.

Droższą alternatywą jest tu AWS Device Farm od Amazonu, który za opłatą pozwala testować na niemalże 150 urządzeniach, zarówno starych jak i nowych. Koszta potrafią się sporo różnić zależnie od wybranej opcji, co pozwala dobrać usługę zarówno do codziennych testów pełnej gamy urządzeń przez wielu pracowników, jak i uzupełniającego użytkowania od czasu do czasu dla specyficznych i najnowszych modeli, a także tych mających problemy z dostępnością. Nie jest to jednak idealne rozwiązanie, które w przypadku bardziej złożonych projektów może generować niebotyczne koszty ze względu na zapotrzebowanie szerokiej gamy urządzeń i konieczność przeprowadzania wielu jednoczesnych testów - nie wspominając nawet o tym, iż urządzenia dostępne na platformie nie muszą zgadzać się z określonymi przypadkami testowymi.

Dla firm chcących postawić tego typu rozwiązanie samodzielnie istnieje darmowe oprogramowanie OpenSTF, znajdujące się na GitHub. Po rozstawieniu na serwerze i podłączeniu do niego urządzeń daje pełnię funkcji i wygodę. Podpięte urządzenia pozostają w firmie w specjalnie wydzielonym miejscu, gdzie cały czas podpięte są do zarządzającego nimi centralnego serwera, umożliwiając zdalny dostęp bez konieczności fizycznego wypożyczenia.

Nie istnieją niestety eleganckie rozwiązania pomagające wygodnie przechowywać oraz organizować podpięte urządzenia. Wiele podstawek nie jest po prostu przystosowanych do ciągłego trzymania wiecznie działającego urządzenia. Mniej eleganckie rzeczy pokroju zwykłej szafy czy też po prostu stołu, znajdującego się w odpowiednio chronionym pomieszczeniu, oczywiście zdadzą egzamin, jednak mogą prowadzić do problemów z organizacją czy też żywotnością urządzeń. Głównym problemem w takim przypadku są baterie ciągle podpiętych i funkcjonujących smartfonów, które po kilku latach przestają działać lub puchną, co stwarza pewne ryzyko, dlatego też warto mieć pod ręką gaśnice i regularnie sprawdzać stan urządzeń. Ryzyko to jest co prawda relatywnie małe, jednak nie należy go lekceważyć.

Z perspektywy testerów rozwiązanie to ma same plusy. Pozwala ono na łatwe wypożyczanie i użytkowanie podpiętych telefonów. Administrator zyskuje tutaj łatwą kontrolę urządzeń, niwelując większość problemów, jakie występują w związku z posiadaniem dużej ich liczby, jednak robi to kosztem wielu innych kłopotów i dodatkowych obowiązków związanych z dbaniem o działanie systemu. Występuje tutaj również cała masa problemów jakie można napotkać na każdym etapie wdrażania.

Pierwszym z nich jest skalowalność. Każdy z telefonów musi być połączony kablem USB do huba z funkcją ładowania. Huby są następnie podłączane do maszyny działającej jako serwer - nie trzeba mówić że przy dużej ilości urządzeń komputer potrafi wariować. Za duża ilość różnych sygnałów jednocześnie, potrafi przeciążyć kontroler i zaburzyć jego działanie. Należy tutaj zastosować odpowiednie huby USB oraz odpowiednie karty rozszerzeń USB z własnymi kontrolerami. Nie ma jednak jasno opisanych wszystkich możliwych przypadków - autorzy oprogramowania mogą zarekomendować jedynie kilka konfiguracji i urządzeń, które sami sprawdzili, ich dostępność jednak pozostawia wiele do życzenia. Oczywiście zawsze można spróbować użyć sprzętu o zgodnych parametrach, jednak nie mamy gwarancji że będzie on działał bezproblemowo. Pozostaje niestety metoda prób i błędów, która potrafi być dość kosztowna.

Kolejnym potencjalnym problemem jest szybkość internetu. Jako iż całość opiera się na strumieniowaniu obrazu, to serwer z podpiętymi 40 aktywnymi urządzeniami wymaga szybkiego łącza internetowego.

Ostatnim nie mniej ważnym problemem jaki chciałem wymienić jest potencjalna zawodność. Farma testowa składa się z masy urządzeń połączonych otwartym, nie do końca dopracowanym, oprogramowaniem, przy założeniu, że wszystko będzie razem bezproblemowo działać. Nie zamierzam twierdzić iż jest to coś, co psuć się będzie codziennie, jednak należy rozważyć ewentualność, że gdy oprzemy workload testerów na tymże rozwiązaniu i pewnego dnia ono tymczasowo padnie - zaburzy tym samym pracę wszystkich testerów. Podsumowując, farma testowa to zdecydowanie ciekawe rozwiązanie, jednak wymaga uprzedniego przemyślenia jej opłacalności. 

Podsumowując

Zarządzanie sprzętem dla testerów jest pełne potencjalnych problemów i miejsc na optymalizacje. Firmy niezdające sobie sprawy z ilości obowiązków, jakie się z tym wiążą, może zostać nimi przytłoczone. Na ratunek przychodzą narzędzia i usługi, ułatwiające pracę osoby zarządzającej, wiąże się to zwykle jednak z kosztami na które nie zawsze można sobie pozwolić. Obecna popularność pracy zdalnej znacząco wpływa na zarządzanie czymś takim i tymczasowo wymusza stosowanie dodatkowych środków bezpieczeństwa. W sytuacji gdy plany obejmują szybki rozwój bazy urządzeń warto rozważyć wyznaczenie osoby, której głównym zadaniem będzie ogarnięcie całości problemów z tym związanych, tak aby nie zaburzać workflow reszty pracowników. Mam nadzieję, że powyższy artykuł przybliża w pewnym stopniu odpowiednio się do tego przygotować. Powodzenia!