Cykl “Beze mnie nie byłoby projektu” zamyka rozmowa z Izabelą Adamską – Koordynatorem ds. Jakości w Grupie Unity. Iza to nie tylko specjalistka w swojej dziedzinie, ale też osobowość – kobieta w branży IT, która mimo, że nie pobłaża błędom, potrafi umiejętnie przekazać je programistom, znajdując w nich sojuszników w zapewnieniu jakości. Poznaje oprogramowanie od podszewki i dzięki swojej pracy zwiększa jego jakość, a często też użyteczność.
Kiedy mówimy o jakości, myślimy o pewnym stopniu doskonałości – o czymś co z założenia w oprogramowaniu nie istnieje. Co zatem wyznacza jakość oprogramowania?
Przyznam, że przez cały ten czas, kiedy zajmuję się testami, nie spotkałam się z doskonałością, stąd też nie kojarzę tych dwóch znaczeń ze sobą, nie współgrają dla mnie. Jakość można określać poprzez liczbę błędów, inni stwierdzą, że ważniejsza będzie liczba błędów przeszkadzających w funkcjonowaniu, można też myśleć o dostosowaniu do użytkownika, tudzież o tym, jak jest zrealizowana od środka. Z pewnością w większości przypadków wysoka jakość oprogramowania zostanie potwierdzona zadowoleniem klienta, choć oczywiście mogą się zdarzać sytuacje, gdy jakość będzie stosunkowo wysoka, a klient niezadowolony z wielu innych powodów.
Z mojego punktu widzenia jakość wyznaczana jest w największym stopniu przez programistę – oczywiście często zależy to również od dnia/pory dnia, w którym pracował lub okresie, zdarzają się dni gdzie produkuje produkt bardzo dobrej jakości, a innego dnia – słabej, jednak najlepsi programiści potrafią utrzymać poziom. W drugim rzędzie stoją testerzy, którzy muszą przypilnować jakości, ale jej bezpośrednio nie tworzą – mogą ukierunkowywać, nawracać…
Jaka jest rola testera w całym cyklu życia projektu? Za co odpowiadasz?
Za wszystko co wiąże się z testowaniem. Rozpoczynamy pracę w fazie implementacji. W założeniu chyba mieliśmy wcześniej, ale aktualnie nie zgłaszamy uwag przed implementacją. Projektujemy przypadki testowe przed rozpoczęciem testów. Opieramy się o dokumenty makiety, grafiki, wiedzę innych osób z projektu. Uczestniczymy w spotkaniach projektowych, statusach, zapoznajemy się z projektem wcześniej.
Z kim (z jakimi innymi rolami) współpracujesz w trakcie trwania projektu? Na czym polega Wasza współpraca?
Właściwie testerzy w swojej pracy są trochę niezależni, mniej zaangażowani w implementację, pracują w pewnym oderwaniu od zespołu, co oczywiście nie znaczy, że tej współpracy w ogóle nie ma.
Po stronie zespołu projektowego współpracuję przede wszystkim z programistami. Konsultuję zakres funkcjonalny, upewniam się co do mechanizmów działania, żeby mieć pewność, że błąd jest błędem. Zdarza mi się również konsultować działanie niektórych, zwłaszcza nowych dla nas funkcji, z analitykiem.
Współpracuję również z innymi testerami. Deleguję im zadania, dzielimy się wiedzą, wspieramy w testach i wyszukiwaniu przyczyn problemów, co nie zawsze jest łatwe, urządzamy burze mózgów, a także zastępujemy się podczas nieobecności.
Czasem zwracam się również do administratorów z prośbą o nadanie nam uprawnień, dostępów, w sprawach sprzętowych, kwestiach dotyczących monitoringu czy wsparcia w poszukiwaniu usterek.
Z project managerem czy team leaderem konsultuję się głównie w sprawach organizacyjnych: ustalam priorytety testów, harmonogram, zakres, sposób raportowania i zgłaszania błędów, organizację pracy zespołu podczas testów i poprawek.
W trakcie trwania testów ważny jest też bezpośredni kontakt z osobą techniczną po stronie klienta, kiedy potrzebne są konkretne dane wejściowe czy współpraca przy przejściu przez określony scenariusz testowy.
Praca testera wydaje się żmudna i mozolna, przede wszystkim z uwagi na powtarzalność błędów, a z drugiej strony często czasochłonne ich poszukiwanie. Jakie cechy i kompetencje są potrzebne na tym stanowisku?
W nawiązaniu do tego, o czym powiedziałaś – cierpliwość. A za nią skrupulatność, sumienność i dociekliwość. Praca testera to trochę takie czepianie się, drążenie, szukanie dziury w całym. Ważna jest też wyobraźnia, myślenie „out of the box” i spryt.
Niezbędna jest wiedza merytoryczna, rozumienie procesów biznesowych, a także tych, które „siedzą” w aplikacji, ponadto umiejętność weryfikacji oprogramowania pod kątem zgodności z wymaganiami zapisanymi w specyfikacji, a jeszcze wcześniej analiza tych wymagań – często już na poziomie definicji wymagań kryją się błędy.
Z uwagi na różne rodzaje testów, a także wykorzystywanych narzędzi, ważna jest umiejętność ich doboru, aby zapewnić najbardziej efektywny proces testów i jak najwyższą jakość. Piszemy scenariusze testowe, korzystamy z różnych aplikacji typu „bugtracker”, ja piszę również testy automatyczne, przy których wykorzystuję znajomość html, javy oraz sql.
Ważne również są kompetencje te, wynikające ze współpracy w zespole, czyli przede wszystkim komunikacja, wyrozumiałość, empatia, umiejętność pracy w grupie, a także sama organizacja pracy.
Doświadczenie i praktyka, również szalenie ważne, przychodzą z czasem. Ważna jest też dobra pamięć.
Gdyby Ciebie zabrakło…
Wyobraź sobie, że zamówiony przez Ciebie drogą elektroniczną towar trafia pod niewłaściwy adres lub w otrzymanym zamówieniu otrzymujesz zupełnie coś innego, niż zakupiłeś. Gdyby nie było testów, nawet tak paradoksalnie nieprawdopodobne scenariusze byłyby możliwe.
Mogłoby się zdarzyć również, że klient sklepu mógłby nic nie kupić z powodu błędów w komunikacji, błędów na stronie, w wyszukiwarce, w procesie zakupowym, tudzież właśnie w zapisie danych. Mógłby również zapłacić kilka razy mniej lub więcej za swoje zakupy. Pracujemy nad tym, aby wyeliminować zarówno te poważne, jak i te kosmetyczne błędy. Każdy ma swoją klasyfikację, jednak żadnych nie bagatelizujemy. Gdyby nas zabrakło w projekcie wiele istniejących problemów nie zostałoby zauważonych, klient dostałby aplikację w najlepszym wypadku niezgodną z wymaganiami, w najgorszym – pełną błędów.
Na koniec zapytam przekornie dlaczego programiści nie są w stanie poprawić swoich błędów bez udziału testera?
Zbieram informację z wielu źródeł, mam spojrzenie na całość projektu, testuję to, co łączy nieraz pracę kilku osób. Poza tym to trochę tak, jak z wypracowaniem z polskiego – sami nie dostrzegamy swoich literówek (śmiech). Często etap testów powoduje frustrację w już zmęczonym zespole. Staram się zrozumieć każdą stronę – zarówno programistów, jak i project managera, a kiedy trzeba też klienta i znaleźć wyjście z nieraz bardzo trudnych sytuacji, wspomóc zespół w realizacji projektu. My nie jesteśmy w opozycji do deweloperów, choć często nas tak traktują. Jesteśmy ich sprzymierzeńcami.
Chciałoby się życzyć: „Bezbłędnych projektów!”, choć wiem, że testy wcale nie mają udowodnić braku błędów. Życzę zatem zadowolonych z jakości klientów. Dziękuję za rozmowę :)
Izabela Adamska – z wykształcenia informatyk, absolwentka Politechniki Krakowskiej na Wydziale Mechanicznym. Od ponad 4 lat z sukcesami i skutecznie koordynuje i prowadzi testy oprogramowania, najpierw w Empathy Internet Software House, obecnie w Grupie Unity.
Prywatnie żona z 4-letnim stażem oraz szczęśliwa mama 2-letniej Amelki. Posiadaczka wielu pasji: książki (głównie fantasy), muzyka (rock, metal, jazz, klasyczna), filmy fantasy, gry mmorgp, RPG, karciane, planszowe, komputerowe, puzzle. Aktywna sportowo: siatkówka, żeglarstwo, wycieczki górskie, bieganie. Dba o zdrowie i kondycję, zdrowo gotując i odżywiając się. W czasie wolnym również gra na pianinie i zajmuje się wyrobem biżuterii.