logo logo

Czy TestProject może stać się najlepszym frameworkiem do automatyzacji?

Czy TestProject może stać się najlepszym frameworkiem do automatyzacji?

Kiedy zaczynasz swoją pierwszą pracę w roli testera, marzy ci się by móc pracować przy wielu niebanalnych projektach. Najlepiej żeby było to coś zjawiskowego i nowoczesnego jak choćby modny ostatnimi czasy Internet Rzeczy. Wyobrażasz sobie wówczas jak to będziesz pracować przy europejskich reaktorach jądrowych, dla których trzeba będzie wykonać okulary rozszerzające rzeczywistość wirtualną, przez projekty konsumenckie związane z inteligentnymi głośnikami oraz domem, aż po opaski dla sportowców, które mierzą rytm serca i dane dotyczące ciała, że o inteligentnych zegarkach zbliżeniowych nie wspomnę. A gdzieś tam, na horyzoncie, widzisz ślady autonomicznych pojazdów i inteligentnych budynków. Świat czeka na ciebie z otwartymi rękoma.

Wyobrażasz sobie zatem niesamowite oprogramowanie oraz sprzęt, który wymagać będzie od ciebie ponad ludzkiego doświadczenia i niszowych umiejętności. Wszechmocna wiedza technologiczna, aby móc w ogóle pojąć koncepcję kryjącą się za akronimem IoT, będzie czymś co będzie nakręcać cię przez całą karierę. Zwłaszcza jeśli chcesz przeprowadzić wartościowe testy, które określą jakość proponowanego rozwiązania.

Szkoda tylko, że nikt ci nie powiedział w sekrecie, że w większości przypadków, nie uświadczysz tu takiej magii, o której właśnie myślisz. A przynajmniej nie na początku.

W większości przypadków, szczególnie gdy jesteś juniorem, twoje testy i praca sprowadzą się do kombinacji testów API oraz, powiązanych z tworzonym produktem, aplikacji mobilnych. Tylko tyle albo, jak kto woli, aż tyle.

I chociaż diabeł tkwi w szczegółach, a i często, im głębiej angażując się w projekt, poznasz detale niewidoczne na pierwszy rzut oka, tak 90% umiejętności jakich będziesz potrzebować do weryfikacji jakości nie będzie różnić się od tego co jest na rynku doskonale znane i dobrze opisane.

No ale to twój pierwszy szlif więc i ambicje masz spore. Już korci cię aby wprowadzić jakąś automatyzację! Bo czemu nie, prawda? Na rynku dostępne jest tyle niesamowitego oprogramowania, tak wiele wspaniałych frameworków do wykorzystania, tak wiele bibliotek, które potrafią zauroczyć w mgnieniu oka. Aż chce się położyć łapki na każdym i sprawdzić co u nas przyniesie największą korzyść. W końcu innowacyjne rozwiązanie wymaga użycia innowacyjnych technologii, prawda?

Tyle, że tu tkwi pewien problem. Mianowicie umiejętna automatyzacja tej infrastruktury.

Jeśli będziesz miał trochę szczęścia, tj. dostaniesz zielone światło od swojego szefa na pełną swobodę działania, co i tak wiemy jak się skończy, to następne tygodnie poświęcisz na przygotowanie środowiska (a i tak zrobisz to byle jak). Spędzisz czas zapisując czego potrzebujesz w twoim przypadku, jakiego urządzenia tyczy się projekt, komu i w jaki sposób ma on służyć. Jeśli będziesz miał odrobinę szczęścia to pozwolą ci kupić „wszystko zamknięte w jednym pakiecie”. W większości przypadków jednak, entuzjazm szefa skończy się z koniecznością płacenia, i wówczas będziesz musiał zaoferować bezpłatne i open-sourcowe rozwiązania i skonfigurować je samodzielnie. Brzmi cudownie.

No i czym tu się przejmować lub martwić? Dla dobrego testera nie istnieją wyzwania, którym nie podołałby, prawda? Zawsze można skorzystać z pomocnego Stackoverflow gdzie znajdziemy tak sugestie jak i porady. A przecież i wydawcy zapewniają coraz lepsze repozytoria github z rozpisaniem kolejnych kroków. A przynajmniej chcesz w to wierzyć.

Inna sprawa, że czasem te repozytoria były ostatni raz zaktualizowane kilka lat temu.

Godziny lecą, a ty ciągle czytasz. Ciągle coś pobierasz i instalujesz. I wciąż masz nowe problemy, które rozciągają się aż po wieczność.

Masz npm? To świetnie, ale obsługujemy tylko pip. Masz pip? Wspaniale, ale nie obsługujemy twojej wersji systemu operacyjnego. Ale hej, zawsze możesz zainstalować nieoficjalne biblioteki. Tyle, że nie wiadomo jak to będzie współpracować z naszym oprogramowaniem.

A właśnie – jeśli już mowa o bibliotekach. Bądź cierpliwy, ponieważ nie wspieramy już Twojego języka. Używasz Pythona 3.8? To wspaniale, ale my zatrzymaliśmy się na wersji 2.6 i nie będziemy jej aktualizować do 2025 roku. A może nigdy. Zobaczymy.

Czekaj, czekaj…  teraz jeszcze musimy doinstalować tylko odpowiednie starsze wersje i sterowniki do obsługiwanych i wspieranych urządzeń (co też może chwilę potrwać). Jeszcze tylko odblokować odpowiednie porty, dodać odpowiednie ścieżki do odpowiednich folderów, pogrzebać w biosie by pozwolił na odpalanie emulatorów i parę innych sztuczek, które sprawią, że nasz RAM nie wyparuje w przeciągu paru sekund.

Ale załóżmy, że wszystko idzie dobrze. Jesteś nowy ale masz dryg do tego.

Przygotowałeś wszystko jak należy (ba, nawet IDE masz odpowiednio skonfigurowane) i możesz zacząć pisać swoje scenariusze testowe. Teraz jedyne co ci pozostało to mieć poprawną kolejność plików i folderów, jakąś ogólną hierarchię katalogów, pamiętać o regularnym aktualizowaniu repozytorium i będzie jakoś działać.

Oczywiście najlepiej gdybyś miał to wszystko na zasadzie „plug & play” w formie jakiegoś gotowego kontenera, który można by szybko zainstalować (idziesz na kawę, a wszystko dzieje się w tle samo). Ale tak dobrze to zwykle nie jest, a w momencie gdy będziesz chciał sobie ponowne przygotować środowisko (np. na drugim laptopie) to, mimo, że będziesz wykonywać te same kroki, doświadczysz zupełnie nowego świata, pełnego kolorowych i nowych problemów.

To jest chyba jeden z powodów, dla którego warto zasugerować w tym momencie użycie oprogramowania TestProject jako ciekawą alternatywę.

Zazwyczaj, szykując wszystko od zera, często pojawia się sytuacja, w której natykasz się na problem, którego nikt nie jest w stanie ci rozwiązać, a jedyne źródło wiedzy do jakiego się dokopałeś pokazuje zagraniczne forum z 2014 gdzie, od tamtej pory, wpis straszy niczym duch. Nikt na niego nie odpowiedział, nikt się nim nie interesuje.

I jasne – są starsi koledzy w projekcie. Ale czasem ego dochodzi do głosu i chcesz zrobić wszystko “samemu”.

Jeśli jesteś nowicjuszem to TestProject stanowi interesujące rozwiązanie z kilku powodów. Szczególnie jeśli zależy ci na czasie i natychmiastowości. Zapewnia dokładnie takie doświadczenie jakiego oczekujesz.

Projekt, i odpowiednie katalogi, są przygotowane dla ciebie. Kompatybilność i wykrywanie urządzeń mobilnych jest ekstremalnie proste i nie wymaga dużego nakładu czasu oraz energii. Zintegrowany monitoring trwających testów oraz gotowe raporty są również na wyciągnięcie ręki. A to tylko czubek góry lodowej.

Czy kiedykolwiek chciałeś mieć dostęp do kompleksowego, różnorodnego zestawu dodatków, których mógłbyś używać natychmiast, gdy tylko zmienią się wymagania projektowe? Teraz masz taką możliwość. I nie ma różnicy czy borykasz się z trudnym do ściągnięcia plikiem lub jakimś zabezpieczeniem, które ciężko jest obejść. Nie ma znaczenia czy chcesz przetestować hasło jednorazowe do uwierzytelniania Google, czy coś, co wymaga użycia JavaScript. Nie ma znaczenia czy chcesz wykonać monkey testy czy wysłać sobie SMS z potwierdzeniem. Teraz wszystko jest dostępne w jednym miejscu z natychmiastową możliwością prawidłowej instalacji. A ponieważ mówimy o otwartym community, które aktywnie wspiera rozwój wszystkich dodatków to i sam możesz sprawdzić, kto dokładnie dodał określony addon, co jest zawarte w pakiecie i co myślą o tym inni testerzy. Nic nie pozostawione jest przypadkowi.

Ale to nie wszystko.

Skoro wspomnieliśmy już o generowaniu raportów. I to dostępne jest tutaj w przystępnej dla oka formie. Wszystkie statystyki są czytelne, jasno podzielone i posegregowane. Niepotrzebna jest żadna, dodatkowa praca, bo i wszystko jest podane na srebrnej tacy. Bez konieczności instalowania dodatkowych rozwiązań albo, co mogłoby być jeszcze gorsze, użycia zewnętrznych programów, których toporność uprzykrza życie.

Nagle nie trzeba już spędzać czasu na dodatkowe slajdy przygotowane w Power Point lub użycie arkuszy kalkulacyjnych Excela, w których dość łatwo o pomyłkę pomimo stosowania podwójnej weryfikacji. Otwórz zakładkę RAPORTY w TestProject, a zobaczysz m.in. statystyki dotyczące udanych/ominiętych/zawieszonych/nieudanych testów. Stosunek i liczbę testów, które zakończyły się błędem lub też zostały przerwane w trakcie trwania. Liczbę wywołanych jobów (zdefiniowanych, po raz kolejny, przez ciebie) i całkowity czas trwania. Źródła wywołania testów (użytkownik, scheduler, API, Continous Integration). Czy nawet ­współczynnik sukcesu na określonych platformach. Mnóstwo przydatnych informacji, które możesz pobrać w formacie PDF i wysłać bezpośrednio do swojego PMa.

I jasne – jak się uprzesz to możesz zastosować inne, darmowe narzędzia lub użyć wspomnianego wcześniej excela. Ale równie dobrze możesz pisać wszystko na kartce i wysyłać wyniki gołębiem pocztowym. Tylko po co miałbyś to robić?

Samo tworzenie testów, mimo, że nosi znamiona „nagrywarek” też jest nad wyraz przyjemne. To jest wyskakujące okienko czy zwykły toast? Powinienem używać unikalnego identyfikatora lub długiej ścieżki xpath? Od czego powinienem zacząć? TestProject rozwiązuje te kwestie na kilka sposobów. Przede wszystkim pomaga w znalezieniu najlepszego lokalizatora i sugeruje najkorzystniejsze rozwiązanie. Wystarczy jedynie nacisnąć dwukrotnie SHIFT i cieszyć się pomocnikiem, który pokaże Ci dokładnie to, czego szukałeś.

A co jeśli preferujesz automatyzację z poziomu kodu? Klasyczne „sam napiszę sobie wszystko od zera”? Wówczas i w tym przypadku TestProject uratuje twoje życie oferując ci bardzo przyjazny sposób eksportowania nagranych testów. Wystarczy wówczas wybrać język (Java, C#, Python) i SDK (Selenium Open SDK, Appium SDK, TestProject legacy SDK) i właściwie wszystko dostajemy podane na tacy. Zostaje nam wówczas jedynie „uszlachetnić” kod (zastosować np. Page Object Pattern) i będziemy mieli do czynienia z całkiem wygodną metodą „zaczęcia” automatyzacji, której kierunek określimy już sami.

Inną kwestią wartą odnotowania jest szybkość wykonywania i działania programu. Wszystko jest natychmiastowe, stabilne i precyzyjne. Żadnego czytania na „doczytywanie” lub „nieodnalezione ekrany”. Agent, wywołany w tle, sprawdza się wyśmienicie i praktycznie nigdy nie zawodzi. Nie wymaga też od ciebie skomplikowanego przekazywania uprawnień lub, co gorsza, spędzania setek godzin na zastanawianiu się “co znaczy ten dziwny błąd, który mi wyskoczył”?

Poza tym interfejs użytkownika i doświadczenie płynące z korzystania produktu są nad wyraz przyjemne i bardzo ciężko jest się zgubić na jakimkolwiek etapie. Wszystko jest jasne, dobrze dopasowane do współczesnego, wymagającego testera, a do tego jest niezwykle przejrzyste.

A nawet jeśli się zgubisz, o co jest bardzo trudno, to wszystkie instrukcje, poradniki i przykładowe kody są bardzo często aktualizowane. Praktycznie każdy element jest świetnie opisany do tego stopnia, że czytając i podążając za samą dokumentacją odnajdziesz odpowiedzi na wszystkie swoje pytania i zyskasz doświadczenie, o które tak zabiegałeś.

Jeśli zatem rozpoczynasz swoją przygodę i boisz się, że “zginiesz” w morzu pytań i niewiadomych to od tej pory możesz spać spokojnie. Sprytne głowy pomyślały o tym aby dostarczyć ci doskonale narzędzie, które pomoże ci z każdym problemem, który posiadasz.

Może teraz pora na twój krok? 😉

About the author

Marcin Sikorski

Public speaker, writer, tester, influencer, mentor. Specialist of Internet of Things and Industry 4.0 working in IT since 2013. Advisor for Polish government (IoT department) in area of where the IoT can be implemented in Poland and how exactly this can be achieved. Currently working with a smart solution for nuclear power plants.

After hours, an enthusiast of optimization, China and mountain climbing.

Website – https://www.smartrzeczy.pl

Leave a Reply

FacebookLinkedInTwitterEmail