Zespoły inżynierskie i testerskie rzadko działają w izolacji. Co jeszcze zmieniło się w podejściu do testowania?

geek.justjoin.it 1 rok temu

Proces testowania został przeniesiony bliżej fazy rozwoju programowania, co korzystnie wpływa na jakość wytworzonego oprogramowania. To jedna ze zmian w branży IT, do której doszło na przestrzeni ostatni lat. Co jeszcze zmieniło się? O to zapytałem Kajetana Raduckiego, QA Lead / Senior QA Automation Engineer w Grupa Unity.

Co w ostatnich latach zmieniło się w podejściu do testowania oprogramowania?

Ostatnie lata przyniosły dynamiczny rozwój w podejściu do testowania oprogramowania. Zmieniło się wiele rzeczy i ciężko byłoby je wszystkie wymienić, jednak te które przychodzą mi do głowy jako pierwsze i najważniejsze to:

  • upowszechnienie automatyzacji testów, zarówno UI jak i API i jednocześnie rozwój narzędzi odpowiadających za te testy (Cypress, Playwright i inne),
  • przeniesienie procesu testowania bliżej fazy rozwoju oprogramowania. Testowanie nie jest już tylko fazą końcową, ale jest integrowane od samego początku procesu developmentu,
  • wzrost świadomości potrzeby testowania pod kątem bezpieczeństwa,
  • testowanie aplikacji mobilnych i testowanie w chmurze.

Jak ten obszar branży IT wyglądał wcześniej?

Powiedziałbym, iż najczęściej testy rozpoczynały się później niż teraz – testerzy pracowali nad oprogramowaniem, które było już ukończone przez zespół programistów. Dodatkowo, najczęściej aplikacje były testowane jedynie manualnie – automatyzacja nie czymś powszechnym, rzadziej testowano także chociażby wydajność.

Z mojej obserwacji wynika też, iż zespoły testerskie i deweloperskie częściej działały w izolacji, jako osobne zespoły, a samo testowanie było traktowane jako osobny proces od procesu wytwarzania oprogramowania. w tej chwili wszystko to dynamicznie się zmienia.

Co miało wpływ na wspomnianą zmianę? Dlaczego nadeszła ona teraz, a nie rok, dwa lata temu?

Myślę, iż każdy obszar branży IT jest od siebie zależny. Dynamiczny rozwój w sferze wytwarzania systemu wymusza również rozwój w sferze testowania. Warto dodać konkurencję między firmami IT, jak również wzrost świadomości Klientów i ich oczekiwań. Dużo osiągnęli także sami specjaliści QA, którzy przez kilka ostatnich lat wypracowali lepsze i bardziej skuteczne procesy testowania, a także położyli nacisk na rozwój kompetencji w swoich zespołach.

Zmiana ta prawdopodobnie przyniosła także zmianę, jeżeli chodzi o zakres umiejętności potrzebnych do pracy testera. Jak ten zakres wygląda dzisiaj?

Obecnie testerzy częściej posiadają większy arsenał umiejętności, w tym umiejętności technicznych. Jeszcze kilka lat temu wymagania stawiane przez specjalistami z branży były nieco niższe. Na stanowisko juniorskie często wystarczała umiejętność planowania i przeprowadzania testów manualnych. Obecnie, gdy coraz bardziej powszechna stała się automatyzacja testów i częściej kładzie się nacisk na np. testy niefunkcjonalne, takie jak testy wydajnościowe lub testy bezpieczeństwa, zakres umiejętności testera poszerzył się.

Wielu inżynierów zna co najmniej jeden język programowania, potrafi testować nie tylko frontend, ale także backend. Dochodzi do tego umiejętność automatyzacji testów UI i API w wybranym narzędziu (Selenium, Cypress, Playwright i inne), zrozumienie architektury oprogramowania, znajomość podstaw bezpieczeństwa aplikacji i wiele innych umiejętności technicznych, których nie sposób tutaj wymienić.

Dochodzi do tego bardzo ważna kwestia, a mianowicie umiejętność pracy w zespole i zasób kompetencji miękkich, które dobry specjalista QA musi posiadać. Ceni się między innymi komunikatywność, odpowiedzialność za swoją pracę, proaktywność i umiejętność zarządzania czasem. Na marginesie – uważam iż zdecydowanie zbyt rzadko mówi się o potrzebie rozwoju kompetencji miękkich w kontekście osób technicznych w IT – jest to bardzo ważna, nieco niedoceniana rzecz.

Należy jeszcze dodać zrozumienie biznesu – umiejętność zrozumienia biznesowych wymagań i celów pozwala testerom na bardziej skuteczne identyfikowanie testów, które są najważniejsze dla spełnienia potrzeb klientów.

Moim zdaniem, testy stały się naprawdę ciekawą, różnorodną i przez to atrakcyjną branżą na rynku IT.

To, iż zmieniło się podejście do potrzeby testowania systemu znaczy, iż testerzy mogą na rynku pracy “czuć się bezpiecznie”?

Z jednej strony media informują o recesji w gospodarce i kryzysie między innymi w branży IT, ale z własnych obserwacji widzę, iż brakuje dobrych specjalistów, czyli ludzi autentycznie zainteresowanych testowaniem oprogramowania, chcących poszerzać swoje umiejętności i poszerzać doświadczenie.

Całą branżę IT uznaję za stosunkowo bezpieczną i perspektywiczną, ale myślę, iż przez długi czas odczuwany będzie niedobór szczególnie takich osób jak opisanych wyżej – a ci najlepsi wciąż będą mogli przebierać w ofertach pracy.

Wspomniałeś o braku dobrych specjalistów, o tym, iż przez cały czas są poszukiwani. Jakie źródła wiedzy polecasz?

Do wyboru są kursy wideo (zarówno te na YouTube, jak i te płatne, na Udemy lub na prywatnych stronach twórców), książki, artykuły, konferencje, warsztaty, bootcampy – możliwości jest sporo.

Osobom początkującym polecam udział w warsztatach prowadzonych przez ekspertów, ewentualnie zakup kursów wideo nagrywanych przez takie osoby. Taki sposób nauki jest bardzo efektywny, a połączony z ćwiczeniami gwarantuje uzyskanie praktycznej wiedzy na dany temat.

Wiedzę można uzupełniać książkami, wpisami blogowymi i artykułami, przeglądaniem dokumentacji. Fajnym sposobem na zorientowanie się jakie w branży panują trendy i w jakim kierunku zmierza rynek (czyli – czego warto się nauczyć) są konferencje testerskie. Kojarzę dwie, w których uczestniczyłem i je polecam – są to ConSelenium i Automatyzacja w Praktyce. Dodatkowo, z tych darmowych – TestFest, TestDive.

Przed jakimi wyzwaniami dzisiaj stoi branża testerska? Co jest największym problemem i co mogłoby go rozwiązać?

Branża testerska stoi przed wyzwaniami, które są wynikiem szybkiego rozwoju technologicznego i zmieniających się potrzeb rynku. Chodzi między innymi o coraz większy stopień skomplikowania i złożoność aplikacji, które tworzymy, a także zwiększające się tempo wytwarzania oprogramowania.

Niesie to potrzebę ciągłego doskonalenia swoich umiejętności i “nadążanie” za zmianami w branży. Nie postrzegam tego jako problem, a raczej okazję do rozwoju i do posiadania większej różnorodności obowiązków.

Jeśli coś mógłbym określić jako problem, byłby to moim zdaniem fakt, iż w sieci istnieje kilka inicjatyw rozwojowych skierowanych stricte do specjalistów QA.

Tak samo wiele firm z różnych powodów nie ma u siebie procesów ułatwiających rozwój w zakresie testowania oprogramowania. Inicjatywy tego typu zaczynają być niezbędne z powodu wspomnianej wcześniej potrzeby ciągłego rozwoju specjalistów i ich nadążania za rynkowymi trendami. Z rozmów z innymi testerami wiem, iż tego typu inicjatywy są dla nich czymś, co mocno zachęca ich do wyboru danej firmy podczas procesu rekrutacyjnego.

Zaciekawiłeś mnie tym, iż firmy nie mają procesów ułatwiających rozwój w zakresie testowania. Z czego to wynika?

Ciężko powiedzieć – myślę iż czasem są to ograniczenia budżetowe, czasem brak doświadczonej osoby, która mogłaby zająć się rozwojem zespołu testerskiego. Powodem może być także to, iż niektóre firmy niestety nie widzą potrzeby inwestowania czasu i pieniędzy w ten obszar. Na szczęście, to już się dynamicznie zmienia.

Jak do tematu rozwoju umiejętności testerów podchodzi się w organizacji, z której współpracujesz?

Oprócz budżetu rozwojowego, który pozwala na zapewnienie materiałów do nauki takich jak książki, kursy wideo itd., mamy także dwie ważne inicjatywy pomagające w rozwoju.

Pierwsza z nich to cykliczne spotkania dla wszystkich testerów (i nie tylko), gdzie najczęściej ja i drugi lider (z tego miejsca pozdrawiam Cię Krystian) prezentujemy narzędzia przydatne w pracy testera. Pokazywaliśmy np. podstawy Cypressa, Playwrighta, omawialiśmy jak pisać testy API w Rest Assured, jak rozpocząć przygodę z testami wydajnościowymi w JMeter. Ta inicjatywa rozwojowa została ciepło przyjęta przez organizację, ponieważ staramy się wybierać tematy potencjalnie przydatne w codziennej pracy i tłumaczymy je od zera, co czyni je bardziej przystępnymi.

Druga z tych inicjatyw to stanowisko lidera technicznego – osoby, która wskazuje mniej doświadczonym osobom kierunek rozwoju i na bieżąco pomaga w problemach technicznych. Jest to szczególnie przydatne dla osób początkujących, które są – w pozytywnym znaczeniu – prowadzone za rękę na początku swojej kariery w IT.

Co doradziłbyś początkującemu testerowi? Jak powinien zadbać o to, by być atrakcyjnym na rynku pracownikiem?

Myślę, iż najważniejsze to zdobyć fundamentalne umiejętności potrzebne w pracy testera, a następnie obrać konkretny kierunek rozwojowy.

Jako umiejętności niezbędne do pracy, rozumiem przede wszystkim znajomość teorii testowania, umiejętność tworzenia scenariuszy i przypadków testowych, umiejętność testowania API, znajomość SQL, Git, a także znajomość podstaw programowania. Na pewno nie zaszkodzi podstawowa wiedza na temat automatyzacji testów.

Podkreślę to – według mnie, tester powinien mieć naprawdę solidną wiedzę dotyczącą podstawowych koncepcji, terminologii i technik testowania oprogramowania, ale także powinien rozwijać swoje umiejętności programistyczne. Dlaczego? Ponieważ otwiera to drogę do automatyzacji testów, ale także poprawia rozumienie kodu aplikacji i ułatwia rozumienie całego procesu wytwarzania oprogramowania. Powtórzę, iż stanowisko testera staje się coraz bardziej techniczne więc powyższa teza nie powinna dziwić.

Następną rzeczą jest także ciągły rozwój – nauka nowych technologii, elastyczność i gotowość do nauki. W tej branży jest to niezbędne.

Przydaje się także posiadanie swojego portfolio, lub profilu np. na Githubie – czegoś co prezentuje nasze umiejętności na zewnątrz.

Kajetan Raducki. QA Lead / Senior QA Automation Engineer w Grupa Unity. Inżynier QA, lider zespołu, specjalizujący się w testach automatycznych UI głównie z wykorzystaniem Javy. Prywatnie tata dwójki maluchów i pasjonat historii.

Idź do oryginalnego materiału