Co robi QA Engineer?

I czym jego praca różni się od testera oprogramowania?

7/2/2024

Wśród ofert pracy w dziedzinie szeroko pojętego utrzymania jakości, można trafić na kilka różnych stanowisk - tester oprogramowania, QA Specialist czy QA Engineer. I to tym ostatnim zajmiemy się w dzisiejszym wpisie, bo wbrew pozorom, praca QA Engineera mocno różni się od pracy testera oprogramowania. Oczywiście, zakres zadań może być inny zależności od firmy, a niektóre organizacje nie do końca rozdzielają te dwa stanowiska, ale przyjrzyjmy się ogólnie przyjętym obowiązkom.

Co oznacza QA?

Zacznijmy od rozwinięcia skrótu QA. Quality Assurance, czyli zapewnianie jakości. W naszym przypadku jakości oprogramowania. Wiem, że to dalej nie mówi zbyt wiele, ale pod tym pojęciem kryje się szereg procesów dążących do stworzenia aplikacji najwyższej klasy. Przejdźmy więc do poszczególnych punktów.

Zapewnianie jakości to nie tylko testowanie

Testowanie ma na celu weryfikację oraz walidację oprogramowania i jest tylko jedną z wielu części procesu zapewniania jakości. Działamy tu już na gotowych elementach aplikacji - sprawdzamy zgodność z wymaganiami, odtwarzamy historyjki użytkownika, szukamy błędów czy upewniamy się, że przedmiot testów jest zgodny z oczekiwaniami klienta.

Z kolei zapewnianie jakości jest szerokim procesem, gdzie oprócz klasycznego testowania, konieczna jest obserwacja tworzonego oprogramowania od samego początku cyklu. Oznacza to weryfikację wymagań i dokumentacji, a także ocenę ryzyka powstania błędów na każdym etapie pracy.

Inaczej mówiąc, zapewnianie jakości oprogramowania to zestaw działań mających na celu zagwarantowanie, że oprogramowanie spełnia określone wymagania jakościowe oraz jest zgodne z ustalonymi standardami i procedurami. Proces ten obejmuje cały cykl życia oprogramowania, od fazy planowania i projektowania, przez rozwój, aż po testowanie, wdrażanie i utrzymanie.

Będąc bardziej szczegółowym, wyodrębniłbym tu cztery kluczowe cele:

  • Zapobieganie defektom - identyfikacja potencjalnych problemów i błędów na wczesnym etapie.

  • Wykrywanie defektów - wspomniane wyżej testowanie. Zarówno manualne, jak i automatyczne.

  • Zwiększanie jakości produktu - poprawa ogólnej jakości oprogramowania poprzez monitorowanie i doskonalenie procesów tworzenia oprogramowania.

  • Spełnienie wymagań użytkowników - upewnienie się, że końcowy produkt spełnia wymagania i oczekiwania klientów oraz użytkowników końcowych.

Oczywiście, QA Engineer nie jest jedyną osobą odpowiedzialną za proces utrzymania jakości oprogramowania. Zajmuje się tym cały zespół, ale QA Engineer powinien mieć znaczący wpływ na proces. Oprócz udziału we wspomnianym wcześniej szacowaniu ryzyka, weryfikacji wymagań czy ustalaniu strategii testowania, do obowiązków QA Engineera należą również poniższe zadania.

Więcej tego typu obrazków znajdziesz na moim Instagramie.

Automatyzacja testów

Jednym z obowiązków QA Engineera jest automatyzacja testów. Powtarzalne przypadki testowe są świetnym obiektem do automatyzacji - zamiast ręcznie przeklikiwać wszystkie kroki, kod połączony z odpowiednimi narzędziami zrobi to za nas.

Do automatyzacji wykorzystuje się wybrane języki programowania (np. JavaScript, TypeScript czy Python) oraz specjalne frameworki. Przykładem jest Selenium, Cypress czy Playwright. Dobór narzędzia powinien być oparty o potrzeby projektu.

Nadzorowanie wdrożeń

Jako osoba mająca szeroką wiedzę o oprogramowaniu (od technicznej, jak i domenowej strony), QA Engineer często uczestniczy w procesie wdrażenia zmian na produkcję - czyli dostarczeniu aplikacji (lub jej aktualizacji) do klienta. Przed rozpoczęciem wdrożenia wymagane są skrupulatne testy regresji (zazwyczaj połączone ze wspomnianymi automatami), a po wdrożeniu dobrym pomysłem jest przeprowadzenie smoke testów na środowisku użytkowników końcowych.

Pomoc w tworzeniu wymagań biznesowych

Zdarza się też, że QA Engineer pomaga w tworzeniu wymagań biznesowych. W końcu obycie z aplikacją czy wiedza o ryzykownych obszarach są niezwykle ważne przy ustalaniu, jak oprogramowanie powinno działać. Współpraca z osobą odpowiedzialną za projekt rozwija umiejętnoście miękkie i pozwala spojrzeć na aplikację od biznesowej strony.

Dbanie o "buglog"

Z powyższym punktem łączy się też dbanie o "buglog", czyli listę zgłoszonych błędów. Stworzenie raportu błędu to jeszcze nie wszystko - trzeba też określić jego priorytet. QA Engineer często podpowiada, którymi błędami warto zająć się natychmiast, a które można zostawić na później.

Kontakt z klientem

Czasami QA Engineer musi też skontaktować się z klientem, by np. doprecyzować zgłoszone przez użytkowników problemy. A nawiazując do mojego doświadczenia - niejednokrotnie miałem też okazję pokazywać klientom działanie nowych funkcjonalności.

Obowiązki QA Engineera - podsumowanie

Jak widzicie, obowiązki QA Engineera wychodzą daleko poza testowanie oprogramowania - choć oczywiście klasyczne klikanie również jest częścią pracy. Na koniec zostawiam Was z listą podsumowującą możliwe zadania QA Engineera:

  • Udział w doskonaleniu procesu utrzymania jakości; proponowanie zmian i ulepszeń.

  • Weryfikacja wymagań i dokumentacji.

  • Szacowanie ryzyka powstania błędów na każdym etapie tworzenia oprogramowania.

  • Udział w ustalaniu strategii testowania.

  • Planowanie testów i pisanie scenariuszy testowych.

  • Automatyzacja testów.

  • Analiza wyników testów.

  • Nadzorowanie wdrożeń.

  • Pomoc w tworzeniu wymagań biznesowych.

  • Dbanie o listę zgłoszonych błędów; ustalanie priorytetów.

  • Kontakt z klientem.

Chcesz być na bieżąco? Zapisz się do newslettera!

W każdy czwartek o 10:00 wyślę Ci wiadomość o moich nowych wpisach. Oprócz tego, dorzucę ciekawe artykuły, filmy czy inne materiały ze świata IT - oczywiście, związane głównie z testowaniem oprogramowania. To świetny sposób na naukę i ciągłe zdobywanie wiedzy.

Co więcej, otrzymasz darmowego ebooka - checklisty dla testerów. W środku znajdziesz listy ułatwiające testy użyteczności, funkcjonalności czy zakłóceń w aplikacjach webowych i mobilnych.

Dziękuję, że czytasz mojego bloga!

Masz jakieś pytania? Z chęcią odpowiem :)

Radosław Wasik
Radosław Wasik