ul. Strzegomska 2-4
53-611 Wrocław
NIP 8992786490
KRS 0000608120
REGON 363987723
Global4Net Sp. z o. o.
+48 71 358 41 00
© 2009 – Global4Net. All Rights Reserved.
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?
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.
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, 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.
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.
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.
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.
Napisz do nas