Kim jest Quality Assurance Engineer?
Quality Assurance (QA) to osoba, która ma zadanie testowania, planowanie testów, ocenianie ryzyka, a także opracowanie procesów, tak, aby finalnie uzyskać najwyższą jakość oprogramowania. Prościej mówiąc to ktoś, kto myśli o oprogramowaniu/aplikacji jak o kompletnym produkcie, który ma określony konkretny efekt końcowy.
15 Stycznia 1990 roku prawie pięćdziesiąt procent sieci AT&T w Stanach zjednoczonych przestało działać, w ciągu godziny ponad 75 milionów połączeń nie zostało zrealizowanych. Wydawać by się mogło, że to wina hakera, ale prawda jest taka, że błąd czaił się w aktualizacji oprogramowania, gdzie jedna linijka spowodowała katastrofalny efekt domina.
Patrząc z perspektywy czasu na taki błąd, AT&T straciło sporo pieniędzy oraz wizerunek. Jeżeli więc wydarzyło się to u tak wielkiej firmy, to może również spotkać i Ciebie. Ale nie martw się, przedstawimy Cię naszym Strażnikom - poznaj Quality Assurance Engineers.
To znaczy, że programista nie testuje swojego kodu?
Developerzy często na etapie analizy zadania, implementacji oraz code review, sprawdzają czy ich rozwiązanie działa prawidłowo, i nie zawiera błędów. Programiści są przywiązani do swojego kodu i nie zawsze mogą być w stanie wyłapać własne pomyłki dlatego, w świecie It, każdy kod jest sprawdzany kilkukrotnie na każdym etapie. Najpierw developerzy piszą testy sprawdzające kod, później wysyłają go do Code Review, gdzie kod sprawdzany jest przez resztę zespołu, a na samym końcu przeprowadzane są testy przez osoby specjalizujące się w znajdowaniu defektów oraz przeprowadzających audyty zgodności z dokumentacją i standardami.
Dlaczego potrzebujesz QA w Twoim projekcie?
Zadaniem Inżyniera Testów jest zapewnienie jak najlepszej jakości oprogramowania dostarczanego klientowi. Oznacza to nic innego jak upewnienie się, że wykonana aplikacja działa wedle specyfikacji, że nie zawiera błędów, które uniemożliwiałyby korzystanie z aplikacji, jak również takich które mogą uprzykrzać życie użytkownikowi pod względem nawigacji (UX). Ich głównym zadaniem jest upewnianie się, że wszystko to co w aplikacji miało być tam się znalazło, i działa tak jak powinno.
Mówiąc krótko, jest to najbardziej upierdliwy użytkownik aplikacji, który ciągle mówi: “Zupa była za słona!”, etc.
Współpracuje on w projekcie z osobami na stanowiskach takich jak:
- Analityk/Product Owner
Osoba, która przekazuje QA wiedzę na temat działania testowanego oprogramowania/aplikacji.
- Test Manager
Decyduje, jakie testy wykonać, kiedy i gdzie je raportować.
- Developer
QA testuje to, co developer wcześniej zaimplementował, więc ścisła komunikacja między nimi powinna być naturalną rzeczą.
źródło: QA vs Devs
Quality Assurance w ramach outsourcingu
Outsourcing usług IT wiąże się nie tylko z zatrudnieniem zespołu programistów. Jeśli potrzebujesz rozszerzyć zespół o Specjalistę/Inżyniera QA, również możesz skorzystać w tym wypadku z outsourcingu. Jest to przede wszystkim mniej kosztowne, a po drugie skuteczniejsze rozwiązanie niż wdrożenie osoby bądź teamu odpowiedzialnego za QA w ramach danej organizacji.
Każdy popełnia błędy. Jesteśmy tylko ludźmi, dlatego testujemy aplikację, aby dostarczyć oprogramowanie o jak najlepszej jakości.
Quality Assurance to również proces
Oczywiście QA to nie tylko osoba, ale również cały proces, który rozpoczyna się już na etapie analizy projektu, i jest tak naprawdę obecny przez etapy projektowania, implementacji, testów i wdrożenia. To między innymi:
- Analiza zagadnienia “co zrobić, aby polepszyć jakość?
- Propagowanie roli jakości
- Odpowiedni dobór narzędzi
- Podejmowanie decyzji i ustalanie standardów w projekcie
Znalezienie i naprawienie błędu oprogramowania po jego wdrożeniu jest często 100 razy droższe niż znalezienie i naprawienie go podczas analizy wymagań i fazy projektowania.
Źródło: Software Defect Reduction Top 10 List, Software Management Jan 2001, Barry Boehm, Victor R. Basil
Im więcej czasu poświęcimy na analizę i dobrze przemyślimy jego projekt, tym mniej tak naprawdę będzie kosztowało nas jego naprawienie. My, jako Qarbon IT, już na etapie projektowania staramy się wyłapywać nieścisłości logiczne. Nasi developerzy wprowadzają procesy testowania swojego własnego kodu, a następnie ostatnia linia obrony w postaci QA przeprowadza testy funkcjonalne oraz pisze testy automatyczne, tak aby ilość defektów, która pojawia się w fazie akceptacji była jak najmniejsza.
Nie masz QA w swoim zespole? Zmień to!
Jeśli wciąż nie posiadasz w swoim zespole Quality Assurance Engineer, po przeczytaniu tego artykułu najwyższy czas to zmienić! To trzon projektu, który sprawi, że Twój gotowy produkt wypuszczony na rynek nie będzie posiadał błędów. Dzięki niemu zaoszczędzisz czas, pieniądze i ewentualne nerwy.