inhire.ioBlogPraca w ITJak testowanie wpływa na jakość oprogramowania?

Jak testowanie wpływa na jakość oprogramowania?

Praca w IT
25/04/2023

Jak ważne jest testowanie oprogramowania w trakcie jego wytwarzania? Jak wygląda codzienna praca testera i jakim wyzwaniom musi on stawić czoła? Czy testerem może zostać każdy? Na te i wiele innych pytań odpowiada Renata Szymonek, która od wielu lat pracuje w ABB jako Test Manager. 

Od 2017 pracujesz w ABB jako Test Manager. Na czym polega Twoja rola?

Przede wszystkim na mnie, jako Test Managerze, spoczywa odpowiedzialność za jakość dostarczanego produktu. Mam znaczący wpływ na to, czy ujrzy on światło dzienne już w danym momencie, czy też jeszcze będzie musiał przejść kilka poprawek. 

Na co dzień zajmuję się także koordynowaniem pracy zespołu ds. jakości oprogramowania. Zespół liczy kilkanaście osób i składa się ze specjalistów z dziedziny zarówno testów manualnych, jak i automatycznych. Moja rola polega na wsparciu zespołu w zakresie wyboru sposobu wykonania zadań, narzędzi do tego potrzebnych, oszacowania potrzebnego na to czasu oraz rozdzielania zadań pomiędzy członków zespołu. 

Do moich zadań należy także raportowanie postępów i wyników pracy zespołu. Przez długi czas częścią moich obowiązków było również samo testowanie. Z czasem, gdy zespół się rozrósł, z tej części zajęć musiałam zrezygnować.

Jak ważne jest testowanie jakości oprogramowania w trakcie jego wytwarzania i dlaczego?

Celem testowania oprogramowania jest wykrywanie błędów. Im wcześniej błąd zostanie wykryty, tym koszty jego naprawy będą niższe. Dlatego też testy zaczynać należy na jak najwcześniejszym etapie rozwoju oprogramowania. Pozwala to dostarczyć produkt stabilniejszy, bezpieczniejszy i bardziej wydajny przy równoczesnym obniżeniu kosztów jego wytworzenia.

Testowanie oprogramowania to także sprawdzanie, czy to oprogramowanie działa zgodnie z ustalonymi wymaganiami postawionymi przez klienta. Jeżeli dostarczymy produkt niezgodny z oczekiwaniami, narazimy się na koszty związane z wprowadzaniem poprawek.

Opowiedz proszę, jak wygląda codzienna praca testera. Jakie są główne zadania, z którymi musi się zmierzyć?

Praca testera polega na wyszukiwaniu błędów. I nie ma tu znaczenia, w jaki sposób tester przygotowuje swoje testy – czy są to testy automatyczne, czy manualne – ich celem jest znalezienie jak największej liczby błędów i nieścisłości. Każdy taki błąd musi być dobrze opisany i zgłoszony do zespołu programistów, w celu jego naprawy. Na koniec oczywiście taką poprawkę trzeba sprawdzić, czy rzeczywiście błąd naprawiła i czy przypadkiem nie spowodowała pojawienia się innych błędów.

Bardzo ważna jest tutaj bliska współpraca w zespole, nie tylko z programistami, ale także z osobami decydującymi, jak aplikacja ma działać.

Praca testera oprogramowania nie należy do najłatwiejszych. Jakie są najczęstsze wyzwania, którym trzeba stawić czoła?

To prawda, nie jest to lekki kawałek chleba. Żarty z powiedzenia „u mnie działa” nie wzięły się znikąd. Dobre opisanie błędu, tak aby był klarowny dla każdego i możliwy do odtworzenia, to prawdziwa sztuka. Nie zawsze autor oprogramowania jest chętny do współpracy, zdarzają się rozbieżności w interpretacji wymagań między testerem a programistą. Do tego często dochodzi presja czasu – nie jest tajemnicą, że w procesie wytwarzania oprogramowania bardzo często pojawiają się opóźnienia, a brak czasu kompensowany jest redukcją testów. To frustruje, bo daje poczucie, że wykonywana praca nie jest ważna.

Niestety dość często też testerzy postrzegani są, a może raczej byli postrzegani, jako hamulcowi projektu – zwłaszcza w sytuacjach wykrycia poważnych błędów. Na szczęście ten trend się zmienia, coraz większą wagę przywiązuje się do jakości dostarczanych produktów. To cieszy, nasza praca zyskuje na wartości. 

I jest też aspekt taki czysto ludzki – ciągłe szukanie błędów, niedociągnięć, skupianie się na tym, co może nie działać, może być wyczerpujące i deprymujące. Do tego dochodzi poczucie, że tam po drugiej stronie jest człowiek, który to wszystko stworzył, a nasza praca polega niejako na wytykaniu jego błędów. Na szczęście w przeciwwadze stoi przeświadczenie, że jesteśmy jednym zespołem i wszystkim jednakowo zależy na wysokiej jakości dostarczanego produktu, a tester swoją pracą wspiera programistę, aby ten cel osiągnąć.

Jakie możliwości rozwoju daje praca na takim stanowisku? 

Oczywiście pierwszym, co się nasuwa to ścieżka rozwoju od testera manualnego do automatyzującego. I jest to chyba najbardziej naturalny kierunek rozwoju w zawodzie. Testowanie oprogramowania jednak to nie tylko testy funkcjonalne. Jest bardzo wiele innych rodzajów testów, poczynając od testów wydajnościowych, przez testy stabilności, na testach bezpieczeństwa kończąc.

W każdej z tych gałęzi potrzebna jest spora wiedza, pole do nauki i rozwoju jest więc ogromne. Do tego technologia wciąż idzie naprzód, co rusz pojawiają się nowe narzędzia, nowe pomysły, rozwiązania, coraz częściej w testach zaczyna pojawiać się sztuczna inteligencja, to też obszar do eksploracji.

Czy jest to praca dla każdego? Jakie umiejętności są istotne, aby zostać dobrym testerem?

Ja zawsze się śmieję, że tester powinien być trochę wredny. W końcu taka cecha jest nieoceniona u kogoś, kto całe dnie spędza na szukaniu błędów. 😉 

A tak na poważnie, to moim zdaniem cechami dominującymi u testera powinny być skrupulatność, dokładność i dociekliwość. Trzeba zwracać uwagę na najdrobniejsze szczegóły, potrafić zrozumieć potrzeby potencjalnego użytkownika i zdołać przewidzieć, co dziwnego może wymyślić tenże użytkownik. A do tego nieoceniona jest bujna wyobraźnia 😊, ale także wiedza domenowa produktu, nad którym się pracuje. Trzeba mieć więc świadomość, że poszerzanie wiedzy to element codzienności każdego testera.

Dobry tester powinien też być bardzo asertywny i pewny siebie – to konieczne, by projekt zakończył się jakościowym sukcesem.

Czy jest to więc praca dla każdego – myślę, że trzeba to ocenić samemu. 😉

Jak ABB podchodzi do aspektu jakości oprogramowania?

W ABB zostałam zatrudniona, aby zbudować zespół testerów do nowego projektu. Pierwotnie inżynierów jakości miało być trzech, a zakres prac ograniczony do testów funkcjonalnych. Z biegiem czasu i rozbudową całego projektu, rozrósł się także zespół testerski, teraz liczy już osiemnaście osób i wykonuje testy nie tylko aplikacji webowej, ale także testy niskopoziomowe, wydajnościowe i rozwiązań chmurowych. Myślę, że zarówno to, jak i fakt, że słucha się tu zdania specjalistów, świadczy o odpowiedzialnym podejściu firmy do zagadnień jakości jej produktów. 

ABB zawsze przywiązywało dużą wagę do tego aspektu swoich projektów. I to się nie zmienia, a nawet powiedziałabym, że nacisk na jakość jest coraz większy. Mnie osobiście, jako osobę całe życie zawodowe związaną z jakością oprogramowania, trend ten bardzo cieszy. To przyjemność pracować w tak świadomym środowisku. 

Chcesz dowiedzieć się jak wygląda praca w ABB na innych stanowiskach? Przeczytaj wywiad z Beatą Gąsiorek, która opowiada o pracy Product Owner’a oraz z Renatą Porębską, która z kolei wyjaśnia na czym polega rola Senior Scientist.