„Czepiaj się” i zadawaj pytania – o roli testera oprogramowania. Wywiad z Anną Pokojową
Jak wygląda idealny proces wytwarzania oprogramowania? To taki, w którym zespół przechodzi do kolejnego etapu dopiero gdy zakończy prace nad poprzednim. – W rzeczywistości niestety się zdarza, że niektóre etapy albo są uruchamiane za wcześnie, albo akceptowane są niedokończone. Przekłada się to na problemy w późniejszych etapach – mówi Anna Pokojowa, Testerka oprogramowania w Sente.
Rozmawiamy z nią m.in. o tym, jak wygląda praca testera oprogramowania, ale też o tym, co wpływa na wydajność i efektywność.
Spis treści
Od czego zaczęło się Twoje zainteresowanie pracą testerki?
Od najmłodszych lat interesowałam się grami, które wymagały cierpliwości i logicznego myślenia. Uwielbiałam quizy, zagadki logiczne, gry, w których wcielasz się w detektywa i tym podobne. Po studiach stwierdziłam, że chciałabym wykorzystać naturalne umiejętności analityczne i logiczne, które są niezbędne do pracy jako tester oprogramowania. Identyfikowanie problemów i rozwiązywanie zagadek to umiejętności, które są bardzo cenione w tej branży.
Dodatkowo zawsze przykuwałam uwagę do szczegółów, uwielbiałam się „czepiać” i zadawać pytania: dlaczego jest to zrobione w ten sposób, a nie inny. Praca testera była sposobem wejścia do branży IT, która może prowadzić do różnych możliwości rozwoju, takich jak testowanie automatyczne, zarządzanie jakością oprogramowania, czy też rozwój oprogramowania.
Jak wyglądało Twoje wejście do branży IT? Reklamy kursów i bootcampów zapowiadają, że jest łatwo i przyjemnie.
Rzeczywiście, reklamy kursów i bootcampów często sugerują, że wejście do branży IT jest łatwe i przyjemne.
Na pewno próg wejścia jest mniejszy dla osób, które choć trochę “liznęli” wiedzy z branży IT. Ciężej jest z kolei tym, którzy chcą się całkowicie przebranżowić. Nie zawsze jest to łatwy proces, ale z determinacją, ciężką pracą i właściwymi zasobami edukacyjnymi można osiągnąć sukces w tej dziedzinie.
Po studiach rozpoczęłam naukę z dziedziny testowania oprogramowania. Moim źródłem wiedzy były przede wszystkim blogi innych testerów (wiedza praktyczna) oraz sylabus ISTQB (aby poznać wiedzę teoretyczną). Jak już poczułam, że jestem gotowa na podróż w świat IT, to rozpoczęłam poszukiwania pierwszej pracy.
Co było trudnością? Z czym wówczas mierzyła się osoba, która szukała pierwszej pracy w IT?
Najbardziej przerażało mnie to, że nie wiedziałam, jak wygląda ten mityczny tester. Brakowało mi wiedzy o tym, czym się zajmuje i czego się od niego wymaga, pomimo pokaźnych list wymagań od kandydata na oferowane stanowisko. Każda kolejna rozmowa o pracę na Junior Testera dokładała mi nowych doświadczeń i kreowała tego idealnego testera, jakim chciałam być. Nieraz też takie rozmowy uwidaczniały moje słabe strony, dzięki czemu wiedziałam jakiej wiedzy mi brakuje i nad czym warto popracować, aby zostać testerem.
Mówi się, że pierwsze doświadczenia kształtują to, jak będziemy zachowywać się za kilka lat. Zgadzasz się z tym stwierdzeniem?
W kontekście doświadczeń zawodowych, pierwsze prace mogą pomóc nam określić nasze zainteresowania, umiejętności, a także nasze aspiracje zawodowe. Doświadczenia zdobyte we wczesnych etapach kariery mogą kształtować nasze podejście do pracy, umiejętność radzenia sobie z wyzwaniami zawodowymi oraz nasze cele i ambicje zawodowe.
Moja pierwsza praca w branży IT jako tester nauczyła mnie tego, jak radzić sobie z problemami, kiedy nie ma obok kogoś starszego stażem. Bardzo często testerzy polegają na wiedzy współpracowników, ale umiejętność wyszukiwania informacji jest bardzo ważna i jak się okazuje, przydatna. Oprócz obszernych dokumentacji jest również mnóstwo cennych informacji zawartych w taskach, które zostały już wykonane.
Myślę, że praca jako tester nauczyła mnie również pewnej organizacji pracy. Bywają dni, w których nie wiadomo, za co się wziąć i trzeba świadomie zorganizować pracę w taki sposób, aby wszystkie zadania zostały wykonane na czas. Najczęściej taki układ pracy polega na przejrzeniu zgłoszeń do wykonania i ustaleniu kolejki.
Co poradziłabyś osobom, które chcą zostać testerami manualnymi?
Zrozumienie podstawowych koncepcji związanych z testowaniem oprogramowania, takich jak różne rodzaje testów, metody testowania, narzędzia używane w testowaniu, i tak dalej, jest kluczowe. Istnieje wiele dostępnych zasobów online, kursów, podręczników i artykułów, które mogą pomóc zdobyć podstawową wiedzę na temat testowania oprogramowania.
Kolejną rzeczą jest odnalezienie ścieżki, którą chce się podążać. Chodzi mi o to, że możesz być testerem manualnym aplikacji desktopowej, aplikacji mobilnej, gier komputerowych, urządzeń elektronicznych i wielu innych rzeczy możliwych do testowania. Najlepiej podążać swoimi zainteresowaniami, jeżeli bardziej interesujesz się rozrywką, to testy gier mobilnych będą zdecydowanie lepszą opcją, niż testowanie aplikacji związanych z branżą finansową. Nic nie stoi na przeszkodzie, aby w pewnym momencie zmienić typ branży, jednak o wiele łatwiej będzie rozpocząć przygodę z testowaniem w obszarze, który się zna i lubi.
Warto rozwinąć umiejętności komunikacyjne. Testerzy manualni często muszą efektywnie komunikować się z innymi członkami zespołu, w tym programistami, menedżerami projektu i klientami. Dlatego tak ważna jest umiejętność jasnego wyrażania myśli i spostrzeżeń, jak również umiejętność słuchania i zrozumienia potrzeb innych.
Czy w kontekście zdobywania wiedzy rodzaj firmy ma znaczenie?
Tak, ma znaczenie. Firma działająca w konkretnym sektorze może oferować wiedzę i doświadczenie związaną z tym obszarem. Na przykład firma zajmująca się oprogramowaniem medycznym może zapewnić unikalne doświadczenia związane z regulacjami związanymi z ochroną zdrowia. Firma zajmująca się rozrywką może skupić się na innych aspektach testowania. Równie ważne jest spojrzenie na to, jakie technologie i narzędzia są używane w firmie.
Praca z nowoczesnymi technologiami i narzędziami istotnie wpłyną na doświadczenie, które z pewnością zostanie docenione przez innych pracodawców w sytuacji chęci zmiany pracy. Na rynku niestety dalej można natknąć się na firmy, które mają prehistoryczne technologie i nie chcą przejść na poziom wyżej np. ze względu na koszty. Według mnie jest to zły model i zanim podejmiemy próbę współpracy, warto zapoznać się z narzędziami jakie dana firma proponuje.
Potrafiłabyś stworzyć coś na wzór listy rzeczy, które powinien „odhaczyć” każdy początkujący tester?
Spróbuję podać kilka przykładów, jakie każdy początkujący tester może wpisać na swoją listę:
- Zdobądź podstawową wiedzę: przejdź przez podstawowe koncepcje związane z testowaniem oprogramowania, takie jak różne poziomy i typy testów, metody testowania, cykl życia testowania, narzędzia i techniki testowania. Koniecznie zapoznaj się z różnicą, między testami funkcjonalnymi i niefunkcjonalnymi, jest to bardzo dobra baza do późniejszej pracy testera.
- Praktykuj testowanie ręczne: zdobądź doświadczenie w testowaniu ręcznym, tworząc przypadki testowe, wykonywając testy, dokumentując wyniki testów i zgłaszając błędy. Prostym i przyjemnym przykładem będzie próba przetestowania urządzenia w domu, np. telewizora. Można rozpocząć od trywialnych przypadków testowych jak włączenie/wyłączenie urządzenia, próba zmiany kanałów, naciśnięcia kilku przycisków na pilocie jednocześnie, aż po bardziej skomplikowane przypadki wymagające kreatywności użytkownika (mierzenie czasu odpowiedzi na szybkie zmiany kanałów w telewizorze etc).
- Poznaj procesy deweloperskie: zrozumienie podstawowych procesów deweloperskich, takich jak metodyki Agile, Scrum, czy DevOps, może pomóc w lepszym zrozumieniu kontekstu testowania w ramach projektu.
- Ćwicz analizę i myślenie logiczne, aby skutecznie identyfikować potencjalne problemy w oprogramowaniu i opracowywać odpowiednie testy.
- Testuj różne rodzaje aplikacji: takich jak aplikacje internetowe, mobilne, desktopowe, gry komputerowe, czy też oprogramowanie wbudowane. Możesz spróbować zgłosić błąd podczas grania w ulubionę grę. Osobiście, po rozpoczęciu pracy jako tester, zaczęłam bardziej zauważać bugi w grach i bez oporów zgłaszam je do producenta, o ile jest taka możliwość. To też jest forma zdobywania doświadczenia.
- Rozważ uzyskanie certyfikatów związanych z testowaniem oprogramowania, takich jak ISTQB, aby potwierdzić swoją wiedzę i umiejętności w tej dziedzinie.
Uważasz, że podział na testerów manualnych i automatyzujących jest sztuczny?
Kilka lat temu, kiedy zaczynałam przygodę z testowaniem, powiedziałabym, że podział ten jest słuszny i prawdziwy. Dziś ten podział zaciera się. W rzeczywistości proces testowania oprogramowania często wymaga współpracy między testami manualnymi i automatyzującymi.
Testerzy manualni mogą być zaangażowani w identyfikowanie przypadków testowych, opracowywanie scenariuszy testowych, a nawet wspieranie w tworzeniu skryptów automatyzacji. Z drugiej strony, testerzy automatyzujący mogą nadal być zaangażowani w ręczne testowanie w celu weryfikacji interakcji użytkownika lub testowania aspektów, które nie mogą być zautomatyzowane. Współczesne projekty oprogramowania wymagają elastyczności i wszechstronności ze strony testerów. Coraz częściej testowanie oprogramowania wymaga połączenia zarówno podejścia manualnego, jak i automatyzacji w zależności od kontekstu, potrzeb projektu i wymagań klienta.
Testerzy oprogramowania często posiadają różnorodne umiejętności, które niekoniecznie pasują do sztywnego podziału na testerów manualnych i automatyzujących. Niektórzy testerzy mogą być równie dobrze zaznajomieni zarówno z testowaniem manualnym, jak i automatyzacją, a ich rola może się zmieniać w zależności od potrzeb projektu. W takim kontekście sztywny podział na testowanie manualne i automatyczne może ograniczać elastyczność i sprawność zespołu.
Co wpływa na wydajność Twojej pracy?
Środowisko pracy, w tym aspekty takie jak ergonomia, dostępność narzędzi i technologii, klimat organizacyjny oraz kultura pracy, ma duży wpływ na moją wydajność. Komfortowe i sprzyjające warunki pracy są dla mnie bardzo ważnym aspektem. Cenię możliwość przychodzenia do biura, bo są dni, kiedy to właśnie w biurze czuję się najbardziej produktywna i twórcza. Dość ważne dla mnie są również motywujące cele i wyzwania.
Przykładowo: nigdy sama nie pisałam dokumentacji technicznej, a ostatnio otrzymałam okazję do jej stworzenia. O wiele lepiej wstawało mi się do pracy z myślą, że nie muszę ponownie wykonywać tych samych obowiązków, ale mogę poświęcić czas na pisanie dokumentacji, która nie będzie kolejnym dokumentem zalegającym w firmowej chmurze. Świadomość, że moja twórczość może się komuś przydać jest naprawdę motywująca.
Ostatnia rzecz, która pcha mnie do działania jest odpowiednia organizacja czasu pracy. Każdy z nas powinien być w stanie efektywnie planować swoje zadania, priorytetyzować je i utrzymywać równowagę między pracą a życiem prywatnym. Od pewnego czasu jestem wielbicielem techniki “próby 5 minut”: jeżeli przekładamy pewne zadanie na później, kompletnie nie możemy się za nie zabrać, to warto nastawić minutnik na 5 minut i rozpocząć pracę. Koniecznie musi to być focus na pracy: bez rozpraszania się. W większości przypadków po 5 minutach i dzwonku minutnika, zaczynamy pracować dalej, nie patrząc już na czas. Jest to doskonała metoda, która potwierdza, że najgorzej jest zacząć, później już z górki.
Jak wyobrażasz sobie idealny proces wytwarzania oprogramowania?
Idealny, czyli taki, który wypala 100% czasu poświęconego na wytworzenie oprogramowania. Wymarzony proces to taki, który rozpoczyna kolejny etap dopiero po tym, jak poprzedni zakończy się pełnym sukcesem. W rzeczywistości niestety się zdarza, że niektóre etapy albo są uruchamiane za wcześnie, albo akceptowane są niedokończone. Przekłada się to na problemy w późniejszych etapach i jeżeli nie zostaną wystarczająco wcześnie odkryte bądź naprawione, to mogą spowodować dużo niechcianych niespodzianek na koniec projektu. Oczywiście każdy z tych etapów powinien być dokładnie opisany określonym wzorem dokumentu.
Idealny proces wytwarzania oprogramowania powinien być dostosowany do konkretnych potrzeb i warunków projektu, a także uwzględniać najlepsze praktyki branżowe oraz wspierać skuteczną komunikację i współpracę między członkami zespołu. Ważny jest sposób zaplanowania pracy: estymacja czasu, priorytetyzacja zadań, przydzielanie pracy osobom z zespołu w ten sposób, aby każdy wykorzystał swój potencjał w stu procentach.
Świetnie, jeżeli programiści przystępują do implementacji kodu, stosując praktyki programowania zwinności, takie jak programowanie parami, ciągła integracja kodu, refaktoryzacja itp. a testerzy pracują równolegle z programistami, aby zapewnić, że kod jest testowany na bieżąco. Po pozytywnym wdrożeniu produktu i wsparciu zespół powinien przeprowadzić retrospekcję i przeanalizować, co poszło świetnie, co trochę gorzej i na co zwrócić uwagę podczas kolejnej realizacji.
Anna Pokojowa. Testerka oprogramowania w Sente. Zajmuje się systemami ERP, posiada 5 lat doświadczenia w branży. Do świata IT zagościła nie przez przypadek, studia techniczne i chęć szukania dziury w całym pchnęły ją do testowania. Na co dzień próbuje pokazać, jak różnorodne jest testowanie, zachowując przy tym worklife balance.