Rola testera w projekcie IT – na czym polega?

Rola testera w projekcie IT
Share on facebook
Share on twitter
Share on linkedin
Share on email

Cichy obserwator, samotny wilk przeklikujący się przez aplikację w oddali czy dusza towarzystwa, która rozmawia z każdym członkiem projektu? Który wizerunek testera jest ci bliższy? A jaka jest ta realna rola? Odpowiedź może być dla wielu osób zaskakująca.

Często słyszy się opinię, że rola testera w projekcie IT jest niedoceniania lub marginalizowana. Że przez deweloperów jest on traktowany jako osoba, która na siłę próbuje skrytykować kod. Niektórzy project managerowie narzekają na opóźnienia związane z ilością czasu, jaką należy przeznaczyć na testowanie. W dużej mierze są to krzywdzące stereotypy, które pochodzą jeszcze z czasów, kiedy rola testera dopiero się kształtowała. Jak wygląda ona w dojrzałym zespole IT?

Rola testera oprogramowania projekcie IT

Sformułowanie „w projekcie” jest tutaj kluczowe. Tester nie jest bowiem samotną wyspą w najodleglejszej części biura. To osoba aktywnie uczestnicząca w spotkaniach całego zespołu, który tworzą deweloperzy, analitycy, project manager i product owner. W zależności od specyfiki pracy, w tej samej grupie może się jeszcze znaleźć grafik, ux designer i inne osoby, na których pracę jest zapotrzebowanie. Z tymi wszystkimi osobami tester ma kontakt i na bieżąco się z nimi komunikuje; bierze też udział w większości spotkań.

Wyjątkiem jest tzw. tester niezależny, wynajmowany do przetestowania stworzonej już aplikacji. Jego specjalnie „chroni się” przed kontaktem z zespołem biznesowym, aby uzyskać świeże spojrzenie i uwagi dotyczące działania produktu od osoby, która nie zna wymagań, jakie towarzyszyły jego tworzeniu. Zdarza się, że do pracy przy aplikacji są wynajmowane całe zespoły testerów niezależnych. W tym artykule skupimy się jednak na tym, jaka jest rola testera, zatrudnionego w firmie wytwarzającej oprogramowanie, który towarzyszy jego powstawaniu od samego początku. W takim przypadku bardzo duże znaczenie dla sposobu pracy testera ma metodyka pracy w danym zespole IT.

Rola testera w scrumie

Scrum, czyli tzw. zwinne podejście do zarządzania projektami, jest obecnie jedną z najpopularniejszych i najczęściej stosowanych metodyk w nowoczesnych zespołach IT. Jego przeciwieństwem jest tzw. waterfall, czyli model kaskadowy. W dużym uproszczeniu, polega on na takim zaplanowaniu pracy zespołu IT (której zwieńczeniem jest gotowy, oddany klientowi produkt), aby już na początku wszystkie jej etapy zostały jasno określone, bez możliwości wprowadzania większych zmian. W efekcie tester dostaje do sprawdzenia gotowy produkt już po fazie implementacji.

Scrum w podejściu Agile’owym zakłada, że praca w projekcie jest podzielona na mniejsze etapy (tzw. sprinty), dzięki czemu produkt jest oddawany „partiami”. Umożliwia to m.in. modyfikację założeń sformułowanych na początku pracy nad produktem i szybką reakcję na błędy, które zostały zidentyfikowane już w jej trakcie. Najbardziej oczywistą dla testera konsekwencją stosowania tej metodyki jest fakt, że otrzymuje on do „sprawdzenia” nie cały produkt, ale jego część – np. określoną funkcjonalność, którą oddali w sprincie deweloperzy.

Rola testera w projekcie IT

Obowiązki testera w projekcie IT

Jakie są konkretnie zadania, które wykonuje tester? Do podstawowych należą:

  • pisanie scenariuszy testowych (o tym jak ważne jest sprawne testowanie, szczególnie w sytuacjach kryzysowych napisaliśmy więcej w tekście o branży IT i koronawirusie)
  • przeprowadzanie testów według wcześniej określonych scenariuszy
  • tworzenie raportu błędów (w tym zamieszczanie ich w backlogu)
  • tworzenie dokumentacji testowej
  • w przypadku testerów automatycznych – pisanie testów automatycznych.

Z pozoru mogłoby się wydawać, że te zadania spokojnie można byłoby wykonywać w odosobnieniu, i że stwierdzenie na temat tego, jak istotna jest dla testera praca zespołowa, było mocno na wyrost. Nic bardziej mylnego. Oczywiście – co firma, to inny obyczaj i w różnych miejscach różnie podchodzi się do organizacji pracy testerów. Jednak z naszego wieloletniego doświadczenia wynika, że im bardziej testerzy są uwzględniani w pracy całego zespołu, tym większa korzyść dla wytwarzanego produktu.

W scrumie testerzy zapoznają się z dokumentacją produktu i ściśle współpracują z analitykami, którzy zbierają wymagania dotyczące tworzonej aplikacji od klienta i przedstawiają, w jaki sposób powinna ona działać. Już na tym etapie zdarza się, że tester wychwytuje nieścisłość lub błędy w zastosowanych w dokumentacji sformułowaniach, które mogłyby później rzutować na sposób wykonania produktu.

Tester w projekcie – człowiek renesansu?

Trochę tak! Dobry tester nie tylko dokładnie przestudiuje dokumentację techniczną, lecz także zrobi dokładny research rynku. O ile już nie jest specjalistą w swojej branży. Dzięki temu ma szeroką wiedzę na temat najnowocześniejszych rozwiązań i może zasugerować odpowiednie zmiany czy to w zakresie projektowania danej funkcjonalności, czy też dotyczące szeroko pojętego UI/UX design.

Okazją do tego są nie tylko bezpośrednie rozmowy z deweloperami czy UX-owcami, lecz także codzienne, charakterystyczne dla scrumu 15-minutowe spotkania całego zespołu, podczas których każdy jego członek przestawia status swojej pracy.

Tester na podstawie posiadanej wiedzy albo zidentyfikowanych już na danym etapie błędów, może zainspirować do działania zarówno product ownera, jak i programistę. Wbrew panującym stereotypom, projektanci IT często cenią sobie uwagi testerów, bo pomagają one obiektywnie spojrzeć na wykonaną dotąd pracę i często przyjąć nową perspektywę rozwiązywania jakiegoś problemu. Są one czymś innym niż standardowy przegląd kodu (code review), który skupia się bardziej na kwestiach technicznych i jest wykonywany przez innego programistę. Podejście „jak to ma działać” i „w tej części ta funkcjonalność może działać lepiej, bo później generuje błąd x”, jakie oferuje tester, jest też w pracy programisty bardzo ważne.

Takie proaktywne, nastawione na poszukiwanie nowych rozwiązań nastawienie, jest wręcz wymagane w projektach scrumowych.

Testy eksploracyjne, testy regresji i testy akceptacyjne – rodzaje testów oprogramowania

W podejściu Agile’owym modne jest powiedzenie „Fail quickly. Fail often. Fail cheap”. Zwinne podejście do projektów zakłada szybką identyfikację błędów, co w dłuższej perspektywie czasowej umożliwia dostarczenie produktu wysokiej klasy, którego utrzymanie nie będzie generowało nadmiernych kosztów (bo wszystkie potencjalnie zagrażające „wpadki” zostały zidentyfikowane już na etapie jego tworzenia). To dlatego rola testera w projekcie IT realizowanym w podejściu Agile’owym jest tak istotna. Najczęściej stosowane przez niego w pracy rodzaje testów to:

testy eksploracyjne

Czyli testowanie „na żywym organizmie”, bez wystarczającej dokumentacji. Na tym etapie zapoznajesz się z aplikacją w środowisku testowym. Jest to raczej punkt wyjścia do tworzenia właściwych scenariuszy, w którym dużą rolę gra wiedza i doświadczenie – z tego powodu do takich testów nie angażuje się raczej nowicjuszy. Niewątpliwą zaletą testów eksploracyjnych jest fakt, że dają duże pole do wykrycia błędów, które pominięto na etapie tworzenia wymagań dla produktu, a także nowych user stories.

testy regresji

Są one wykonywane po każdym wdrożeniu i służą sprawdzeniu, czy po dodaniu nowej funkcjonalności cała aplikacja (w tym wcześniej wprowadzone rozwiązania) działa jak należy. Do tej grupy testów należy smoke testing (ocena, czy główne funkcjonalności aplikacji działają bez zarzutu po wdrożeniu) oraz sanity testing (testy po usunięciu błędu z aplikacji). Ten rodzaj testów ma bardzo duży potencjał do marnowania czasu testerów, dlatego świetnie sprawdzą się tu testy automatyczne. Dzięki nim testerzy mogą skupić się na tworzeniu nowych user stories i jeszcze niewykrytych błędów, a nie męczącym przeklikiwaniu się przez „stare” fragmenty kodu. Sprawdź pierwsze polskie narzędzie do testów automatycznych

– testy akceptacyjne (system acceptance tests, SAT)

To taka “wisienka na torcie” w pracy testera. Celem tego rodzaju testów nie jest wykrycie błędów, lecz potwierdzenie, że stworzony produkt działa bez zarzutu i zgodnie z wymaganiami klienta.

Obowiązki testera oprogramowania – podsumowanie

Jak widać, w mądrze zaplanowanej pracy projektowej nie może zabraknąć testera. Rola testera w projekcie IT jest bardzo istotna – nie bez powodu w scrumie przyjmuje się, że wszyscy członkowie zespołu są deweloperami. Oznacza to, że na wszystkich w równym stopniu ciąży odpowiedzialność za dostarczenie dostosowanego do założeń produktu. A bez testera w tej kwestii ani rusz!

Podobne wpisy

BugBug vs Selenium IDE

Testy aplikacji, czyli BugBug vs Selenium IDE

Selenium IDE jako narzędzie służące do nagrywania i uruchamiania testów aplikacji internetowych powstało z inicjatywy Shinya Kasatani już w 2006 roku (sic!). Narzędzie to opiera się