Czym zajmuje się tester oprogramowania?

Czym zajmuje się tester oprogramowania?
Decydując się na pracę w zawodzie testera oprogramowania, dobrze jest wiedzieć, co może znaleźć się w zakresie jego obowiązków.

Naturalne jest to, że pracodawcy testerów wymagają od swoich współpracowników różnego rodzaju umiejętności, tak technicznych, jak i miękkich. Idealnie byłoby, gdyby to, co pracownik robić potrafi, zazębiało się z tym, jaki jest jego zakres obowiązków. Przeglądając ogłoszenia na stanowisko testera, dość łatwo można stworzyć listę oczekiwań firm poszukujących kandydatów do pracy. Na potrzeby niniejszego artykułu przeanalizowaliśmy te wymagania, które powtarzają się najczęściej w ogłoszeniach skierowanych do Juniorów. Od testera wymaga się:

  • podstawowej znajomości zagadnień związanych z wytwarzaniem oprogramowania,
  • posiadania podstawowych umiejętności testerskich takich jak: tworzenie przypadków testowych, czy umiejętność wykonywania testów manualnych,
  • znajomości języka angielskiego w mowie i piśmie przynajmniej na poziomie B1,
  • komunikatywności, skrupulatności, systematyczności, zdolności analitycznego myślenia i cierpliwości oraz kreatywności.

Do rzadziej pojawiających się wymagań należą:

  • wykształcenie techniczne lub w trakcie studiów, 
  • znajomość języka programowania, 
  • praktyczna znajomość relacyjnych baz danych (SQL),
  • certyfikat ISTQB®,
  • znajomość narzędzi, np. JIRA, czy Confluence.

A jak wymagania stawiane przez pracodawców mają się do zakresu obowiązków testera i jaką pracę wykonuje on na co dzień? 

Podstawowym i najważniejszym obowiązkiem, który widnieje na szczycie listy prawie każdego ogłoszenia, jest oczywiście wykonywanie testów. Często już sama nazwa stanowiska może nakierować kandydata na to, jakie będą to testy, chociaż pojawiające się kiedyś dość często dopiski "tester manualny" i "tester automatyczny" można znaleźć w ogłoszeniach już coraz rzadziej, zwłaszcza przy tych skierowanych do Juniorów. 

Wykonanie testów wiąże się z ich raportowaniem, czyli procesem odnotowania w systemie wykrytych defektów wraz z informacjami o tym co zostało przetestowanie, kiedy, gdzie oraz w jaki sposób, a także kto ten test przeprowadził. W zależności od firmy tworzone są też czasem dodatkowe raporty dla klientów.

Zgłaszanie zaraportowanych błędów prowadzi do kierowania ich do zespołu programistów. To w ich rękach leży wprowadzenie niezbędnych poprawek, które następnie są po raz kolejny weryfikowane przez testera poprzez ponowne odtwarzanie kroków, które spowodowały wcześniejszą awarię systemu, w procesie retestów. Tam, gdzie stosowane są testy regresji, wykonywany jest dodatkowo cały szereg powiązanych ze sobą przypadków testowych, które mają na celu sprawdzenie, czy nie zaszły także inne dodatkowe, niepożądane zmiany. 

Bardziej doświadczony tester w zakresie swoich obowiązków znajdzie także analizę i projektowanie testów, wraz z ich implementacją. Zadania te obejmują analizę podstawy testów i wymagań, określenie środowiska testowego, danych, specyfikacji procedur i skryptów testowych.

Zapewnienie jakości oprogramowania

Przeglądając ogłoszenia, poszukujący tester natrafia czasem  też na stanowiska pod nazwą "tester QA" / "QA Tester" / "QA Engineer" / "Software Quality Assurance Tester". QA, czyli Quality Assurance to dziedzina, która jest znacznie szersza od samego testowania. Szczegółowo omówiliśmy już różnice między tymi dwoma pojęciami w poprzednim artykule, a dla przypomnienia podajemy skrót poniżej.

Zapewnienie jakości skupia się na:

  • definiowaniu i poprawianiu procesów, 
  • pilnowaniu zgodności działań projektowych z procesem, 
  • definiowaniu miar do oceny procesu, 
  • mierzeniu jakości (ale bez jej kontroli),
  • odpowiedzialności inżyniera (kierownika / managera) zapewnienia jakości,
  • jest ono bardziej czynnością prewencyjną niż detekcyjną.

Z kolei testowanie:

  • koncentruje się na dostawie, 
  • szuka defektów, 
  • zatwierdza produkt zgodnie z wymaganiami klienta, 
  • odpowiedzialność należy do testera, 
  • jest bardziej czynnością detekcyjną niż prewencyjną.

Jeśli więc w ogłoszeniu skierowanym do Inżyniera zapewnienia jakości znajdziemy opis zadań testera, to wielce prawdopodobne będzie, że pracodawca szuka właśnie typowego testera, a nie osoby mającej zająć się QA.

Zakres obowiązków a zespół

To, jaki zakres obowiązków posiada tester, zależeć też będzie także od tego, w jakim zespole przyjdzie mu pracować. I tak:

  • tester testujący bezpośrednio w zespole programistów, tworzących oprogramowanie - będzie zgłaszał wykryte defekty do poprawy właśnie im, uczestniczył w spotkaniach i raportował podczas nich status jakości, a także prowadził odpowiednią dokumentację testową,
  • tester w Scrumie – będzie w większości sam organizował sobie pracę oraz wyznaczał kolejności zadań w oparciu i z uwzględnieniem ram czasowych, jednocześnie współodpowiadając za jakość całego projektu. Przetestowany przez niego produkt dostarczony będzie do jego właściciela, a kluczem jest tu odpowiednia organizacja współpracy na linii tester – odbiorca oprogramowania (klient).
  • tester pracujący w zespole testerskim – będzie pracował na podstawie zadań, które wyznaczone są przez lidera testów. Będą nimi wyłącznie testy manualne / testy automatyczne albo testowanie połączone z tworzeniem dokumentacji. Tester może otrzymać do wykonania testy z całego zakresu bądź zostanie on przypisany do określonej części projektu i tam będzie odpowiedzialny za kontrolę jakości.

Niezależnie od tego, czy tester zamierza znaleźć swoją pierwszą pracę, czy też zastanawia się nad zmianą obecnej, dobrym posunięciem będzie uprzednia dokładna analiza tego, czego tak właściwie wymagają obecnie pracodawcy. Jest to bardzo dobrym źródłem informacji dotyczących tego, w jaki sposób warto zadbać o rozwój swoich umiejętności. 

Przy analizie pomocna może okazać się nasza poprzednia publikacja, w której przyjrzeliśmy się najczęstszym błędom pojawiającym się w ogłoszeniach na testerów.

O czymś zapomnieliśmy albo nie uwzględniliśmy czegoś w artykule? Dajcie nam o tym znać w komentarzach.
 

1326

To powinno Cię zainteresować