Quality Assurance a Quality Control – jak zapewnić jakość w procesie testowania?

12.05.2020 Angelika Siczek
dłoń rozsypująca gwiazdki oznaczające wysoką jakość

Stworzenie dobrej i użytecznej aplikacji leży w interesie zarówno zespołu developerów, jak i interesariuszy. Nie ma jednego przepisu na sukces ani złotych zasad zapewniających pozytywne efekty. Jednak z pewnością można zrobić wszystko, co w mocy zespołu, aby dopracować projekt w najmniejszych szczegółach. Co do jednego można mieć pewność – testów nigdy za wiele. W końcu, jak inaczej aplikacja ma działać poprawnie, jeśli jej funkcjonowanie nie zostanie sprawdzone w realnych warunkach?

Quality Assurance and Quality Control - proces testowania

Różnica między Quality Control a Quality Assurance

Znasz różnicę pomiędzy Quality Control a Quality Assurance? Niestety coraz częściej w branży widać tendencję do mylenia tych pojęć. Istnieje jednak rozróżnienie między kontrolą jakości a zapewnianiem jakości. Nie można więc testerów oprogramowania nazwać częścią zespołu Quality Assurance w sensie bezpośrednim.

Quality Control

Przede wszystkim, jak wygląda różnica między Quality Control a Quality Assurance? To pierwsze skupia się na działaniu aplikacji i na błędach, które są w nich zawarte. Zespół pracujący przy kontroli jakości poszukuje nieprawidłowości w działaniu aplikacji przez ich testowanie. Korzystają przy tym z różnych narzędzi i metod, aby usprawnić cały proces. Testerzy zajmują się w pewnym sensie diagnostyką i sprawdzają, czy wszystko w aplikacji działa i czy jest na wystarczającym poziomie, aby zadowolić użytkownika. Testowanie jest częścią większego procesu, nazwanego zapewnianiem jakości.

Quality Assurance

Quality Assurance, czyli zapewnianie jakości, zawiera w sobie testowanie aplikacji w celu znalezienia błędów i generalnej poprawy jej jakości. Jednak w tym zbiorze znajduje się dużo więcej czynności. Jest tu również dopracowanie procesów w pracach projektowych. Zapewnianie jakości zajmuje się więc nie tylko samymi czynnościami twórczymi, ale również komunikacją z klientem, organizacją pracy w zespole – określeniem ról, komunikacją wewnętrzną, koordynacją pracy oraz narzucaniem pewnych wymogów. Quality Assurance dotyczy każdego, kto ma styczność z projektem w procesie produkcyjnym, a nie jedynie z samą aplikacją od strony technicznej.

Zapewnianie jakości nie tylko dba o procesy oraz o współpracę osób zaangażowanych, ale również pozwala samym pracownikom wpływać i dopracowywać definicję jakości. Wszystko jest oczywiście uzależnione od kontekstu projektu oraz od jego przeznaczenia. Quality Assurance zajmuje się przewidywaniem błędów w projekcie oraz w procesach wytwórczych i daje rozwiązania, oraz sposoby eliminacji niedoskonałości.

Przebieg Quality Assurance

Proces Quality Assurance ogarnia całą działalność przy produkcie, począwszy od planu, negocjacji warunków, przez jego wykonanie. Udział w zapewnianiu jakości  bierze wiele osób, niekoniecznie związanych zawodowo.

Role w Quality Assurance

W Quality Assurance można wyróżnić trzy główne role. Analityk biznesowy, czyli osoba związana z biznesem. Może być to np. Product Owner. Dalej jest programista, a za nim tester oprogramowania. Jest to tzw. trzech Amigos. Te osoby współpracują ze sobą, aby stworzyć Wymagania, czyli Story. Zaangażowani w projekt pracują wspólnie, aby ustalić funkcjonalność produktu, swoje wymagania do produktu oraz sposób, by wszystkie te wytyczne ze sobą nie kolidowały.

Dzięki temu można uniknąć wielu spięć i niepotrzebnych problemów w dalszej części projektu. Zamiast napotykać problemy w trakcie pracy developerów, lepiej omówić swoje oczekiwania jeszcze przed rozpoczęciem prac. Dzięki takiemu dialogowi wychodzą pewne rozbieżności w koncepcjach trzech Amigos i od razu istnieje doskonała sytuacja, aby wypracować kompromis lub zupełnie inne rozwiązanie. Działanie to pozwala uniknąć wielu ryzykownych sytuacji, które mogłyby mieć negatywny wpływ na płynność pracy, a w efekcie na budżet.

Developerzy i ich współpraca z testerami oprogramowania

Tester ma aktywny wkład w zapewnianie jakości, nie tylko przez swoją pracę przy samej aplikacji. Może on pozostać w komunikacji z klientem i spytać go o przeznaczenie nowej funkcjonalności. To ważne, bo konkretna funkcja zawsze ma sens w kontekście. Kolejną rzeczą, która może nurtować testera, jest to, jak nowe wymagania i wytyczne będą wpływać na inne komponenty. Taka komunikacja dotyczy naturalnie każdego w zespole, nie tylko testera. W ten sposób można pozbyć się niedomówień i lepiej dopracować produkt według wytycznych zleceniodawcy. Dzięki tym informacjom praca przy aplikacji będzie szła szybciej i w odpowiednim kierunku. Prowadzenie dialogu powinno pomóc w dojściu do konsensusu i ogólnego zrozumienia oraz do tego, aby obie zaangażowane w projekt strony miały poczucie bezpieczeństwa, że nie pracują po omacku.

Po rozeznaniu przychodzi praca. Jednoznaczna implementacja wymagań jest kluczowa. Na tym ważnym etapie korzysta się z wielu metod poprawiających jakość oprogramowania. Dobre praktyki to jedna z nich. Należy też pokryć testami jednostkowymi konkretną część kodu. Przegląda się również kod i robi testy integracyjne. Ogólnie sprawę ujmując, testerzy zajmują się weryfikacją i walidacją oprogramowania. Wymaga się więc od nich, aby nie tylko czynili to pod kątem technicznym, ale również w zakresie jakości aplikacji, co odnosi się do jej wydajność i bezpieczeństwa.

Widać teraz, że Quality Assurance to coś więcej, niż tylko testowanie aplikacji, a Quality Control zdecydowanie nie odbywa się za zamkniętymi drzwi. W całym procesie chodzi głównie o komunikację. Nie tylko wewnętrzną, pomiędzy zespołami pracującymi przy projekcie, ale również z klientem. Koniec końców gotowym produktem trzeba usatysfakcjonować zarówno użytkownika, jak i zleceniodawcę. To osoba, bez której aplikacja nigdy by nie powstała. Mimo że brzmi to, jak kolejna porcja obowiązków na biurku i tak zapracowanych developerów, to ze współpracy tej mogą wyjść tylko i wyłącznie pozytywy. W końcu nie samymi testami aplikacja żyje. Odpowiednio podtrzymywany dialog przyspieszy pracę, pomoże utrzymać stery w odpowiednim kierunku i zagwarantuje zadowolenie interesariuszy przy zamknięciu projektu.

Masz pytanie?

Napisz do nas

    PDF, DOC, DOCX, JPG lub PNG (max 5MB)

    *Wymagane







    Andrzej-kurs-programowania

    Andrzej Szylar

    Chief Executive Officer

    E-mail:

    andrzej.szylar@univio.com
    Aleksandra

    Aleksandra Bielawska-Clegg

    HR Business Partner

    E-mail:

    Michal

    Michał Duława

    New Business Developer

    E-mail:

    Katarzyna

    Katarzyna Zajchowska

    Marketing Partner

    E-mail: