Jak rozwijać się jako tester - mockowanie danych w aplikacji mobilnej
Jesteś testerem manualnym i zastanawiasz się, co dalej? Ścieżek rozwoju oraz umiejętności, które możesz polepszać, jest wiele. Możesz rozwijać się w wielu kierunkach, jak np. na Kierownika Testów, Analityka Biznesowego, Analityka Testów, Scrum Mastera, Agile Coacha, Lidera Projektu, Testera Bezpieczeństwa, Testera Wydajności, Testera Automatyzującego itd. Jak widzisz, jest ich mnóstwo i nie zawsze od razu wiadomo, w którym kierunku podążać.
Zatem zanim wybierzesz konkretną ścieżkę, możesz również rozwijać kompetencje miękkie, poszerzać wiedzę testerską na podstawie sylabusa ISTQB, polepszać procesy w projekcie lub kontakt z klientem. A jeżeli brakuje Ci technicznych umiejętności, tym bardziej warto poświęcić im czas, ponieważ obojętnie, w którą stronę będziesz chciał się rozwijać, bez technicznych podstaw może być ciężko zrozumieć niektóre obszary produktu.
Robienie pierwszego kroku
Gdy szukasz pomysłu na kierunek rozwoju i nie masz obok siebie osoby, która mogłaby pomóc Ci go wyznaczyć, warto zebrać feedback od swojego zespołu pod kątem potrzeb i oczekiwań względem testera. Jest to jeden ze sposobów, który jest prosty, szybki i efektywny. Jest tak, ponieważ w zespołach zazwyczaj jest co najmniej jedna doświadczona osoba, a więc ma dużo większą wiedzę oraz kontekst, w czym możesz pomóc i jednocześnie się rozwijać.
Wydawać się może, że każdy będzie miał wobec Ciebie te same oczekiwania, ale w rzeczywistości nie do końca tak jest. Developer Androida, iOS, Project Manager itd., mają inny obraz Twojej pracy, a co za tym idzie, inne oczekiwania. Po zebraniu takiego feedbacku, na jego podstawie możesz stworzyć listę swoich celów. W sytuacji, gdy do tej pory skupiałeś się w głównej mierze na kompetencjach miękkich, większość z nich będzie zapewne związanych z technicznymi umiejętnościami.
Ważne jest jednak też to, aby podjęta decyzja była przemyślana. Aby taka była, musisz wziąć pod uwagę, czy wybrany cel jest spójny z celami firmy oraz zespołu. Ma to duże znaczenie, ponieważ gdy pójdziesz w kierunku, którego nie będziesz mieć okazji używać na co dzień w pracy, to po pierwsze ciężko będzie Ci się rozwijać w tym obszarze, a po drugie nowo nabyta wiedza nie zostanie doceniona.
Czego warto się nauczyć?
Gdy chcesz się rozwijać pod kątem technicznych umiejętności, to jedną z podstawowych rzeczy, od, której warto zacząć i która może otworzyć furtkę do dalszych kierunków rozwoju, może być mockowanie danych aplikacji w kodzie podczas testów manualnych. Jest to symulowanie odpowiedzi z jakiegoś źródła, aby uzyskać pożądany efekt. Tym źródłem może być API (tzn serwer/backend), biblioteka lub nawet pojedyncza linijka w kodzie.
Przydaje się to podczas testowania przypadków użycia, których nie jesteś w stanie wywołać w normalnych warunkach lub zajęłoby to bardzo dużo czasu. Jednak jest to szczególnie pomocne w przypadku, gdy nie ma możliwości, aby skorzystać w tym celu z aplikacji służących do przechwytywania ruchu HTTP, jak np. CharlesProxy.
Przykład:
Aplikacja po jednej godzinie oglądania wideo powinna pokazać baner. Takie warunki często są na stałe zapisane w kodzie, dlatego testowanie czegoś takiego w inny sposób niż ingerencja w kod może być uciążliwe.
Na samym początku należy również wybrać jedną platformę, od której zaczniesz naukę, ponieważ przyswajanie dwóch na raz może być problematyczne. Podzielenie swoich celów na mniejsze jest zawsze dobrym pomysłem. Jednak w przyszłości na pewno łatwiej będzie rozpocząć naukę tego samego na drugiej platformie, ponieważ pewne kroki będą się pokrywały lub będą zbliżone do siebie.
Część z niżej wymienionych poszczególnych etapów nauki mockowania danych aplikacji w kodzie można wykonać samodzielnie bez pomocy dewelopera, czy też bez dostępu do projektu. Przydają się w pracy testera nie tylko przy mockowaniu danych i są na tyle uniwersalne, że warto zapoznać się z nimi również na samym początku przygody z testowaniem.
Jak nauczyć się mockowania
1. Na początku należy nauczyć się komend oraz korzystania z terminala (wiersza poleceń)Zaleta: Możliwość interakcji ze wszystkimi funkcjami narzędzi, jak np. podczas budowania projektu, co w tym przypadku jest koniecznością, ponieważ ciężko bez korzystania z terminala go zbudować. Co za tym idzie, łatwiejsza komunikacja z Developerem na temat napotkanych trudności podczas budowania projektu.
2. Następnie warto poznać workflow gita (umownego systemu kontroli wersji kodu) i narzędzia z nim związane, jak np. GitHub, GitLab
Zalety: Wiedza na temat numerów wersji jakie ficzery i fixy w sobie zawierają. Co za tym idzie, samodzielność testera w pobieraniu odpowiednich wersji do testów.
Drugą zaletą jest możliwość sprawdzenia nazwy brancha, na którym trwa praca nad funkcjonalnością. Jest ona potrzebna do zbudowania tej wersji i przetestowania jej zanim będzie wydana do testów. Co za tym idzie, feedback pomiędzy QA a Developerem będzie szybszy.
3. Kolejnym etapem jest poznanie procesu budowania projektu lokalnie przez Xcode lub Android Studio w zależności od platformy
Zalety: Umiejętność budowania projektu lokalnie, a także testowanie na wszystkich dostępnych urządzeniach na rynku za pomocą symulatorów/emulatorów. Należy pamiętać, że możliwości symulatorów są ograniczone, a więc nie każdą funkcjonalność można przetestować oraz że nie zastąpią one w pełni działania realnego urządzenia. Dzięki temu możliwa jest weryfikacja nie tylko pod kątem urządzenia, ale i wersji systemu.
Przykłady ficzerów, które przetestujesz jedynie na realnym urządzeniu, znajdziesz tutaj.
Kolejną zaletą jest dostarczanie bardziej szczegółowych informacji o błędach. Podawanie informacji z debuggera na temat błędów lub dokładnym miejscu wystąpienia crasha w kodzie.
4. Na końcu nauczyć się pracy z kodem i próbować rozumieć go, aby móc w przyszłości samodzielnie mockować dane
Zaleta: Poznanie podstaw do rozpoczęcia nauki w kierunku mockowania danych, ale też pisania testów automatycznych lub samego programowania.
Podsumowanie
Wybranie ścieżki rozwoju zazwyczaj jest wyzwaniem. Nie zawsze od razu trzeba wybierać konkretną drogę. Wystarczy wzmacniać silne strony, a uzupełniać słabe. Należy pamiętać, jak duże znaczenie ma feedback, ponieważ może okazać się pomocny w określaniu nowych celów. Ważne, aby nie stać w miejscu, tylko krok po kroku realizować swój plan, a konkretny kierunek rozwoju sam w między czasie się nasunie. Motywacją może być też świadomość możliwości, które otworzą się przed Tobą po osiągnięciu założonych celów.
W kolejnych częściach artykułów zostaną pokazane w praktyce oraz na konkretnych przykładach wymienione powyżej poszczególne etapy nauki mockowania danych w aplikacji. Będzie to uproszczona forma, aby była jak najbardziej zrozumiała. Kroki te będą pokazane na przykładzie Xcode.