blog.testowka.pl

QA vs Tester

opublikowany przez 17, Lut, 2011, w kategoriach Praca, Testowanie, Zarządzanie

Przeglądając ostatnio oferty pracy zauważyłem, że większość firm szuka QAów a nie testerów. Co jest grane? Czyżby nagle wszyscy zaczęli zapewniać jakość zamiast testować oprogramowanie? Było by cudownie… Niestety, jak przyglądam się bliżej tym ogłoszeniom, to jasne staje się, że owe firmy nie szukają Quality Asurance Engineer’ów tylko zwykłych testerów, w najlepszym wypadku inżynierów testów. Nadużywanie tytułu Quality Assurance Engineer albo Specialist prawdopodobnie wynika, z tego iż mało kto tak naprawdę wie co się pod tą nazwą kryje, jednocześnie wszyscy chcą być trendy i przyciągnąć większą uwagę potencjalnych kandydatów. Wcale się nie dziwię – samemu mi było trudno znaleźć wartościowe informacje na temat QA. Często te informacje są sprzeczne lub niekompletne.

Problematyczne może być także przetłumaczenie tego terminu z języka angielskiego na polski – próby typu „Inżynier Jakości”, „Inżynier Zapewniania Jakości” nie brzmią zbyt dobrze, dlatego osobiście wolę pozostać przy QA.

W takim razie czym jest Quality Assurance? Na pewno Quality Assurance nie jest tożsame z testowaniem oprogramowania. W najlepszym wypadku proces testowy może być zaliczany jako część procesu Quality Assurance. Głównym celem QA jest zapobieganie powstawaniu błędów, w przeciwieństwie do testowania oprogramowania, którego głównym zadaniem jest detekcja błędów – weryfikowanie jakości. QA wykorzystuje wiele narzędzi w celach prewencyjnych, między innymi zajmuje się organizacją i kontrolą procesu wytwarzania oprogramowania, buduje środowiska oraz narzędzia wspierające testowanie i kontrole jakości, poszukuje i wprowadza „dobre praktyki” by zwiększać efektywność i poprawiać jakość i dopiero jako jeden z wielu elementów pojawia się weryfikacja jakości produktu, która może zostać przeprowadzona poprzez testowanie oprogramowania.

Z pojęciem Quality Assurance związanych jest bardzo wiele innych niezmiernie istotnych terminów takich jak CMMI czy normy ISO. To właśnie zapewnienie osiągnięcia wspomnianych norm jest dosyć często głównym celem procesu QA.  Quality Assurance to także praca z ludźmi, zarządzanie wiedzą, organizacja pracy, doskonalenie umiejętności pracowników etc.

Powyżej starałem się wyjaśnić podstawowe różnice pomiędzy QA a testerami – jest to tylko moja własna interpretacja tego co znajduje się w encyklopediach, poradnikach, normach itp. niemniej jednak czytając różne artykuły, blogi etc. powyższa interpretacja coraz bardziej się weryfikuje i klaruje także postanowiłem się nią podzielić.

Jeśli ktoś ma inne zdanie na temat QA to zapraszam do dyskusji.


8 Comments for this entry

  • Katarzyna Firkowska

    Tak naprawdę zakres obowiązków QA zależy od ich zdefiniowania przez firmę – mówię oczywiście o sytuacji, kiedy poprawnie oddziela się testera od QA. Potwierdzić mogę słowa autora wpisu, że mylone są te dwa pojęcia, co jest szczególnie irytujące w przypadku namolnych headhunterów, uparcie szukających testerów 😉

    Co do QA – pracuję na tym stanowisku od kilku lat i w moim przypadku pozycja ta nie jest związana z tworzeniem narzędzi i rozwijaniem środowisk testerskich, lecz opiera się na procesie zdefiniowanym w firmie i jego jakościowej weryfikacji w procesie tworzenia oprogramowania. Z tego też, co się orientuję, firmy szukające „prawdziwych” QA mają tę rolę podobnie zdefiniowaną. Oczekuje się więc, że na każdym etapie tworzony produkt spełniać będzie określone wymagania (dokumentacja, traceability, review, testy, CM, etc) i niezależne sprawdzenie, czy faktycznie ma to miejsce, należy właśnie do QA. Oprócz tego, rola ta obejmuje także opiekę procesową nad projektem, wsparcie w tym zakresie, doskonalenie metod – wszystko jednak w oparciu o proces jakościowy firmy.

  • Alek

    Cześć Wiktor,
    cieszę się, że poruszyłeś temat QA/Tester na tym blogu. Zgadzam się z opinią że wiele osób nie wie co pod tą nazwą się kryje, a nawet jeśli już wie, to nie do końca rozumie tego określenia.
    Czy będąc QA’em :
    – mamy możliwość zapewniania jakości?
    – jesteśmy w stanie zwolnić programistę który notorycznie dostarcza kod bardzo niskiej jakości?
    – jesteśmy wyłącznie odpowiedzialny za jakość?
    – mamy możliwość wyboru technologii i sposobu tworzenia oprogramowania?
    – mamy wpływ na to które błędy będą naprawione lub nie?

    Jeśli na żadne z powższych nie mamy wpływu to lepiej żebyśmy zbytnio nie wierzyli w etykietkę „QA”. A nawet jeśli obligatoryjnie dostajemy taki tytuł w firmie to chyba dobrze wyjaśnić szczegółowo jaka jest nasza rola i dlaczego nie jest to tylko „tester” 🙂

  • Cibor

    Mysle, ze dyskusja na temat nazewnictwa jest akademicka.
    Szumny termin QA jest li tylko efektem inflacji tytulow typowej dla naszych czasow. Nie widze powodow dla ktorych „tester” nie mialby od czasu do czasu wplywac na proces produkcji oprogramowania, podobnie jak nie widac dlaczego „programista” nie mialby rowniez czasami oprogramowania testowac. I obaj dalej pozostaja testerem i programista.
    Ale wynajdywanie terminow Quality Assurance Engineer czy Software Engineer na okreslenie testera czy programisty to jest typowy przerost formy nad trescia. Jeszcze kilkadziesiat lat temu (lata 30-te) facet, ktory odpowiadal za finanse firmy (nawet bardzo duzej, obracajacej milionami) nosil tytul „glownego kasjera”, obecnie jest to „dyrektor finansowy”. Dyrektor byl kiedys w kazdej firmie jeden. Sekretarka nie majaca zadnych podwladnych nazywa sie obecnie „dyrektorem administracyjnym”, zaopatrzeniowcy i handlowcy to „specjalisci d/s wsparcia sprzedazy”, koles, ktory dzwoni i jezdzi do klientow i pyta czy nie skonczyly sie im flamastry to „dyrektor rozwijania kontaktow z klientami”, recepjonista to „specjalista d/s wsparcia kancelarii” (wszystko przyklady autentyczne).
    Znajomy, pracujacy w banku opowiadal, ze jak zaczynal tam prace to byly takie stanowiska jak „mlodszy referent”, „referent” itd. obecnie najnizszy szczebel to „ekspert”. Jest cala masa osob z tytulem „manager”, ktore w sumie niczym nie „zarzadzaja” w tradycyjnym tego slowa znaczeniu, co najwyzej swoim biurkiem.
    Quality Assurance Specialist i Software Development Engineer maja dokladnie to samo zrodlo, wiec wg mnie, Wiktor, zdecydowanie za duzo sie doszukujesz w samych terminach. Oczywiscie sa rozni testerzy i rozni programisci, jedni lepsi (nawet wspaniali) drudzy gorsi, ale nie dajmy sie omamic tytulomanii. Faktem jest, ze jak moge zaobserwowac na wiekszosc ludzi to dziala, ale mnie to smieszy. Tester to tester, programista to programista, a sekretarka to sekretarka – QA Engineer, Software Develoment Specialist czy dyrektor administracyjny to jest tylko zaklinanie rzeczywistosci.

    PS

    Ale jak zostane dziadem smietnikowym, to kaze na siebie mowic „pan z recyclingu”. I nie bedzie zmiluj.

  • Wiking

    @Cibor: fajnie napisales i po czesci masz racje… o przeroscie formy nad trescia – niemniej wlasnie proba opisania czymze sie osoba taka zajmuje (lub zajmowac powinna) powinno rzucic wlasciwe swiatlo na temat. I dlatego podobal mi sie wpis Wiktora jak i komentarz Kasi.

    Tak ja napisales w PS – jesli ktos stworzy stanowisko „konserwator powierzchni plaskich” a do zakresu obowiazkow bedzie nalezalo mycie podlog, odkurzanie biurek. To wiadomo ze mamy doczynienia ze stanowiskiem okreslanym jako „sprzatacz/sprzataczka”.

  • streser

    Byłem ostatnio na konferencji ACE2011 gdzie w kuluarach miałem przyjemność porozmawiać na temat QA z Corey Haines’em.
    Odpowiedź Corey’a na pytanie co myśli o QA (w wolnym tłumaczeniu ;-)):
    „Uwielbiam QA – Ci ludzie są bardzo przydatni podczas programowania – mają szersze spojrzenie na aplikacje jako całość. Niecierpię natomiast Małp Testowych – klikaczy, którzy są bezwartościowi – klikanie mogę sobie zautomatyzować”

  • jlaska

    No tak juz jest z tymi terminami angielskimi ze wprowadzaja klopoty przy tlumaczeniu

    Niemniej jednak w celu rozroznienia wydaje mi sie ze odpowiednie byloby tutaj rozwazenie:

    – QA (Quality Assurance) / Quality Engineering (QE) czyli prawdziwa inzynieria zapewniania jakosci

    – QC (Quality Control) co zwane jest tutaj testowaniem a w tlumaczeniu to jest kontrola (a nie zapewnianie) jakosci jako jeden z ostatnich ogniw w lancuchu QA/QE ktora pozwala znalezc bledy na etapie koncowym produktu

    nie spotkalem sie z ofertami pracy mowiacymi jasno o QC niemniej czasami widzialem oferty dla „klikaczy” / testerow gier komputerowych 😉

  • Jumi

    hej,
    mam jeszcze pytanie o walidację i weryfikację – jak rozumiecie i gdzie umieścilibyście te terminy?
    dzięki 🙂

  • Gall Anonim

    @Jumi:
    W odpowiedzi na Twoje pytanie zacytuje definicje tych dwóch pojęć z wykładów dt. testowania oprogramowania na takiej jednej uczelni:

    walidacja (ang. validation) – ewaluacja
    oprogramowania w końcowej fazie procesu
    budowy, dokonywana w celu potwierdzenia
    zgodności z założonymi celami użycia
    – are we building the right thing?

    • weryfikacja (ang. verification) – ewaluacja we
    wczesnych fazach, sprawdzająca, czy produkt
    danej fazy spełnia wymagania ustalone podczas
    poprzedniej fazy
    – are we building the thing right?

    A tu definicja z wiki:
    http://pl.wikipedia.org/wiki/Weryfikacja_i_walidacja_%28oprogramowanie%29

    Jak sie zastanowiłem nad tymi definicjami (i z wykładów i z wiki), to są one ze sobą całkiem zgodne. Aczkolwiek sądzę, że bez większego trudu dałoby się znaleźć trochę inne definicje. 😉

Skomentuj