Czym tak naprawdę zajmują się Specjaliści z dziedziny Quality Assurance? Kto może zostać Specjalistą QA? Co trzeba zrobić, żeby osiągnąć wysoki poziom wiedzy i doświadczenia w tej roli? Aby przybliżyć kwestię QA w projektach IT, warto zrozumieć, czym tak naprawdę zajmują się specjaliści dbający o jakość wytworzonego oprogramowania. O roli Quality Assurance Specialist opowiedzieli nam nasi Line Managerowie – Wiola i Tomek –  z działu QA. 

Czym zajmuje się Specjalista QA?

Przede wszystkim dba o jakość wytwarzanego oprogramowania, testując działanie całej aplikacji lub poszczególnych jej fragmentów. Ale QA to nie tylko pisanie testów. To również znajomość branży, której dedykowane jest rozwiązanie, a także udoskonalanie samego procesu wytwarzania aplikacji. Błędy lub braki mogą pojawić się na każdym etapie realizacji projektu. Zarówno na etapie określania wymagań, jak i na etapie samego testowania. W praktyce oznacza to identyfikowanie błędów w działaniu aplikacji oraz wyszukiwanie miejsc, w których mogłaby być po prostu lepsza.
Specjalista QA jako pierwszy ma kontakt z aplikacją i dba o to, by ta była jak najlepszą odpowiedzią na oczekiwania i potrzeby użytkowników. Musi więc doskonale znać i rozumieć założenia i wymagania odbiorcy produktu oraz dążyć do ich spotkania z potrzebami i oczekiwaniami użytkowników. Do tego konieczne jest kompleksowe, analityczne podejście, wrodzona dociekliwość i umiejętność zadawania pytań.

Czyli nie jest to zajęcie dla wszystkich. Kto się najlepiej sprawdzi w roli Specjalisty QA?

Quality Assurance to zajęcie dla osób przede wszystkim posiadających zdolności analityczne, dociekliwych i dokładnych. To punkt wyjścia, za którym idzie rozumienie programowania i samego kodu. Umiejętność programowania choć nie jest niezbędna, zdecydowanie ułatwia i usprawnia pracę testera. To tak jak ze znajomością języka obcego czy każdej innej umiejętności – przynajmniej podstawowa wiedza pozwala na identyfikowanie błędów w danym zakresie i jest podstawą do dalszego rozwoju, ulepszeń, usprawnień. QA, tak jak developer, zazwyczaj specjalizuje się w jednej technologii, ale dobrze jest mieć podstawy kilku języków, co zapewnia swobodę i elastyczność działania w różnych projektach. Dodatkowo przydatny jest tzw. „pożyteczny pesymizm”. Zakładając, że nie wszystko działa jak należy, jesteśmy bardziej  skoncentrowani na znalezieniu nieprawidłowości lub elementów, które można usprawnić.

Jaką wiedzę i umiejętności trzeba posiadać, aby być w tym dobrym?

Dla developera testów automatycznych ważne są przede wszystkim podstawy programowania, znajomość metodyk wytwarzania oprogramowania (np. Agile). Do tego znajomość systemu kontroli wersji (np. Git), narzędzi do raportowania błędów (np. JIRA), znajomość narzędzi automatyzujących budowanie projektu (np. Maven). Dobra znajomość programowania jest zdecydowanie atutem.  Dodatkowo ważne są frameworki związane z automatyzacją testów, np. Selenium WebDriver. Oczywiście jeśli ktoś ich nie zna, to dokształcenie w tym zakresie nie powinno stanowić większego problemu i można to zrobić w stosunkowo krótkim czasie.Niezwykle istotne są umiejętności tzw. „miękkie” – komunikatywność i umiejętność pracy w zespole. Nasza praca to stały kontakt i relacje z innymi członkami zespołu projektowego. Aby nasze działania były jak najefektywniejsze, musimy być w stałym kontakcie i porozumieniu z analitykami, developerami, project managerami oraz wszystkimi uczestnikami procesu wytwarzania oprogramowania. Wymiana informacji i komunikacja to podstawa.

Czy testy automatyczne są lepsze od manualnych?

Z pewnością są szybsze, pozwalają na większą powtarzalność i oszczędność czasu. Automatyzacja pozwala też na uniknięcie powtarzalności i monotonii w pracy testera. W przypadku testów manualnych,  wielokrotne sprawdzanie tych samych funkcjonalności zajmuje o wiele więcej czasu, ale ich przewagą jest sam człowiek, jego intelekt i sprawne reagowanie na zmiany.

Jakie możliwości rozwoju ma tester automatyczny? 

Dzięki temu, że jesteśmy „po środku” – między programowaniem a analizą, mamy doskonały widok na cały proces powstawania aplikacji oraz finalny produkt. To punkt, z którego z jednej strony blisko do analizy biznesowej, z drugiej do kodu aplikacji. Tak jak w każdym zawodzie – jeśli praca sprawia Ci satysfakcję zostajesz tu gdzie jesteś, zdobywasz coraz większe doświadczenie, docierając do pozycji seniora. Jeśli potrzebujesz zmian – zawsze masz wybór. Rozszerzasz wiedzę z zakresu programowania, piszesz coraz lepszy kod i rozwijasz się w obszarze automatyzacji albo przechodzisz na inną ścieżkę kariery. Jak już wspomnieliśmy, QA współpracuje z biznes analitykami i jeśli tylko jego zainteresowanie analizą biznesową jest duże, ma szansę stać się BA. Trzecia możliwość to rozwój w kierunku programowania i przejście na ścieżkę developera backend lub frontend. A zatem możliwości i szans rozwoju jest wiele. Wszystko jednak zależy od indywidualnego podejścia, predyspozycji i zainteresowań.

Zatem QA może zostać deweloperem. A czy np. Junior Java Developer może zostać testerem automatycznym? 

Jak najbardziej. Pisanie testów automatycznych to też programowanie. Różnica jest taka, że my nie tworzymy kodu aplikacji tylko kod, który sprawdza czy aplikacja działa zgodnie z wymaganiami funkcjonalnymi. Ostatecznie mamy wpływ na wygląd i funkcjonalność dostarczonego rozwiązania. Jak już mówiliśmy, znajomość programowania jest niezbędna do pisania dobrej jakości kodu testów. Dobrej jakości testy to z kolei gwarancja jakości całej aplikacji. Znajomość programowania np. w Java plus ok. 3 tygodnie na poznanie Selenium WebDriver otwiera szereg możliwości, o jakich wcześniej wspominaliśmy. Pozwala to na spojrzenie na kod i tworzenie aplikacji z innej perspektywy.

Jak wygląda Wasza codzienna praca? Co w niej najbardziej lubicie?

Dzień QA wygląda różnie, w zależności od sprintu. Głównie jest to pisanie testów automatycznych, robienie review kodu i historyjek, a pod koniec sprintu – checkout, regresja i stabilizacja testów. Wszystko w ciągłym kontakcie z resztą zespołu projektowego, a więc komunikacja i jeszcze raz komunikacja.
To co jest w naszej pracy najlepsze to przede wszystkim brak monotonii – codziennie dzieje się coś innego – oraz możliwość bezpośredniej współpracy z wieloma osobami o różnych kompetencjach i umiejętnościach.

Co robić, aby móc zostać Specjalistą QA?

Trzeba obiektywnie ocenić czy posiada się cechy oraz umiejętności właściwe i pożądane dla tej roli. To podstawa. Jeżeli nic nas nie ogranicza i mamy odpowiednie predyspozycje, sugerujemy kształcenie z podstaw programowania. Istnieją też kierunki studiów podyplomowych przygotowujące do roli QA. Osobom znającym języki programowania polecilibyśmy też szkolenia i warsztaty z zakresu Tests Automation, śledzenie blogów tematycznych i udział w konferencjach. Jeżeli trafią do dobrego zespołu QA, z pewnością znajdą tam wsparcie i będą mogli korzystać z wiedzy i doświadczenia kolegów.