Organizacja pracy testera

Organizacja pracy testera

Regresja, retesty, środowiska testowe, urządzenia do testów, mockupy, grafiki, dokumentacja, wymagania biznesowe, przypadki testowe, projekty, testowany system, fixy, bazy danych oraz oczywiście… błędy. Na testera oprogramowania każdego dnia czeka mnóstwo zmiennych do ogarnięcia. Przypomina to pewnego rodzaju chaos, który musi on skutecznie okiełznać, poskromić. Organizacja pracy testera to kluczowy element dobrze prowadzonego procesu testowania. Przyznam, że dla mnie osobiście jest to zawsze nowe, pociągające wyzwanie, które niezmiennie wywołuje przyjemną adrenalinę.

Wiedza to potęgi klucz

Parafrazując sentencję łacińską ignorantia iuris nocet, można stwierdzić, że nieznajomość aplikacji szkodzi. W jaki sposób weryfikować jakość oprogramowania, jeśli nie wiadomo, jak powinno działać czy wyglądać? Ile to razy się o tym przekonałem, zgłaszając bug, który w istocie nim nie był. A wystarczyłoby dogłębnie przeanalizować źródła. Nie zawsze jednak rzeczywistość wygląda tak różowo. Często informacje nie są kompletne, więc QA Engineer musi je uzupełniać, zasięgając języka u innych testujących, u programistów, designera, architekta systemowego czy analityka biznesowego. W końcu tester sam staje się chodzącą dokumentacją.

Brak znajomości aplikacji skutkuje utratą cennego czasu, popełnianiem niepotrzebnych błędów, poza tym może być uciążliwe dla zespołu projektowego ze względu na powtarzające się pytania odnośnie działania oprogramowania. Im większa wiedza o testowanym systemie, tym łatwiejsze i szybsze będzie poruszanie się po nim, a tym samym efektywniejsze wyłapywanie usterek. Przez dogłębne poznanie aplikacji zwiększa się poczucie kontroli oraz poczucie bezpieczeństwa podczas testowania. Do tego dochodzi jeszcze znajomość urządzeń do przeprowadzania testów oraz systemów operacyjnych, z których się korzysta.

Istnieje wiele sposobów na zarządzanie informacjami. Przydatne będą dokumenty tekstowe, arkusze kalkulacyjne, żółte karteczki na monitorze, mapy myśli, schematy, rysunki czy zwykła kartka i długopis. Ogólnie wszystko, co pomoże opanować informatyczny chaos.

Proszę o uwagę!

Jednostkami pracy, którymi tester musi sprawnie zarządzać są wszystkie wykonywane przez niego zadania. Taką pojedynczą czynnością może być np. testowanie user story, subtaska, wykonanie retestu, stworzenie przypadku testowego, napisanie dokumentacji technicznej i tak dalej. Na takie zadanie będzie się składało wiele przypadków testowych bądź innych operacji.

Jeszcze niedawno modnym pojęciem był multitaskinkg, czyli robienie wielu rzeczy jednocześnie. Sam często to praktykowałem, gdy mając otwartych kilkanaście okienek w JIRA, wykonywałem równocześnie zbyt dużo testów. Nietrudno w takich warunkach o pomyłkę, np. zamknięcie niewłaściwego buga, wpisanie błędnego e-maila czy testowanie na złym środowisku. Wielozadaniowość jest de facto wrogiem produktywności, ponieważ umysł koncentruje się na wielu szczegółach na raz, przez co zwykle niczego nie doprowadza się do końca. Tak naprawdę nie ma stuprocentowej podzielności uwagi, jeśli chodzi o wysoko wyspecjalizowane czynności. Skupienie przenosi się wtedy z jednego zadania na drugie, a każde z nich jest wykonywane dużo gorzej i dłużej. Powoduje to również większe zmęczenie.

Naukowcy z londyńskiego uniwersytetu King’s College dowiedli, że osoby zajmujące się wieloma sprawami jednocześnie doświadczają większej przepustowości mózgu niż palący regularnie marihuanę, poza tym ich poziom IQ może spaść nawet o 10 punktów. Wiele osób narzuca sobie realizację zbyt wielu rzeczy w krótkim czasie. Wbrew pozorom często próba pracowania jak najszybciej nie przynosi pozytywnych rezultatów, gdyż pośpiech jest złym doradcą. Jak mówi znane powiedzenie: śpiesz się powoli, czyli pracuj swoim własnym, optymalnym tempem. W końcu jesteś w pracy, a nie na wyścigach. Nie da się zrobić wszystkiego, zwłaszcza w testowaniu, które jest nieskończone.

Trzeba jeszcze wspomnieć o tzw. efekcie piły. Jego istotę streszczają słowa: Jeśli oderwiesz się choćby na moment od realizowanej czynności, to potrzebujesz czasu, by na nowo wdrożyć się do tematu i na nim skupić. Wydajność spada wtedy nawet o 30%. Aby zminimalizować ten efekt, należy zorganizować swoją pracę tak, by jak najmniej spraw przeszkadzało i odrywało od tego, co w tej chwili jest najważniejsze.

Multitasking oraz monotasking

Ostatnio odkrywam ogromny potencjał monotaskingu, kiedy staram się skupić uwagę na jednym celu. Wtedy realizuję zadania do końca jedno po drugim, w przeciwieństwie do iluzji zamykania np. pięciu jednocześnie. Na powyższym poglądowym wykresie można zobaczyć różnice w wydajności pracy pomiędzy dwoma wspomnianymi modelami. Jeśli pole pod krzywą odzwierciedla efektywność, to wyraźnie widać, że jednozadaniowość jest bardziej produktywna. Techniką, która świetnie wpiera to podejście jest Pomodoro. Stoper odmierza 25 minut, w ciągu których musimy skupić swoją uwagę na pracy i starać się nie rozpraszać. Następnie mamy 5 minut pauzy. W ciągu dnia, zbieramy pomidory, które symbolizują konstruktywną aktywność. Nawyk koncentracji jest dla testera kluczowy. Nie ma mowy, by efektywnie szukać błędów bez niego.

Wróćmy jeszcze do przerw, ponieważ to nieodzowna część dobrej organizacji. Człowiek nie jest komputerem, który działa bez przerwy wiele godzin. Trzeba znaleźć czas na posiłek, napoje, relaks – zwłaszcza dla mięśni, które wykonują wzmożoną pracę (mięśnie oczu, szyi, pleców czy… mózg). Na koncentrację i efektywność wpływa także muzyka – zarówno pozytywnie, jak i negatywnie. Niemal zawsze wywołuje ona jakieś emocje, dlatego zaburza naszą percepcję niczym podmuchy wiatru na spokojnym morzu. Praca z nieodpowiednią muzyką w tle, jak wskazują badania, może obniżać naszą efektywność, podobnie jak rozpraszające dźwięki otoczenia, np. na open space. Rozwiązaniem tego problemu mogą być słuchawki z aktywnym tłumieniem hałasu (system ANC), które stworzą nam swoistego rodzaju prywatną ciszę. Bardzo dobrą muzyką pomagającą w skupieniu jest ta klasyczna, ambient czy tzw. biały szum – generalnie nieposiadająca tekstu, na którym można byłoby skupiać uwagę. Nasz mózg może pracować wtedy na częstotliwościach alfa (7-14 Hz), które towarzyszą np. medytacji. Wytwarza się swego rodzaju flow, taka koncentracja uwagi, podczas której zapominamy o otaczającym nas świecie, a produktywność wzrasta.

Mniejszym systemem łatwiej zarządzać

Co w sytuacji, gdy zmagamy się z zadaniem, które okazuje się nazbyt wymagające i skomplikowane? Wtedy należy podzielić je na mniejsze fragmenty, uprościć. Dla przykładu historyjka zakłada testowanie funkcjonalności pod kątem backendu oraz frontendu – na desktopie i urządzeniach mobilnych. Może się składać np. z 15 rozbudowanych podpunktów, które z początku przyprawią o gęsią skórkę. Mózg broni się przed dużym wysiłkiem intelektualnym i reaguje ucieczką. Cóż, z natury jesteśmy leniwi i wolimy iść na łatwiznę. Nie bez kozery mówi się , że myślenie boli. Nasz mózg zużywa ogromne ilości energii i tlenu, jest swego rodzaju chmurą naładowaną ładunkami elektrycznymi. Tester jednak musi zmierzyć się ze wspomnianą wyżej historyjką, w końcu za to mu płacą.

Przydatne w takiej sytuacji mogą być checklisty, na których będzie zaznaczał postępy w wykonywaniu kolejnych części zadania. Taką technikę można uznać za formę grywalizacji, czyli przeniesienia elementów gier do jakiejś rzeczywistości, w tym przypadku pracy. Odhaczanie kolejnej wykonanej sprawy wywołuje wrażenie, że idziemy do przodu, uczestniczymy w jakieś rywalizacji. Poza tym do zrobienia małego subtaska nie trzeba tyle wysiłku i czasu, jak do złożonej historyjki. Łatwiej złamać gałązkę niż cały pęk gałęzi.

Kolejną ważną rzeczą jest planowanie, spojrzenie jakby z lotu ptaka na czekające obowiązki. Zanim przystąpisz do kolejnej sprawy, daj sobie czas na przemyślenie planu działania. Jak chcesz to zrobić? Co jest Ci do tego potrzebne? Od czego zaczniesz? Znając proces pracy nad danym projektem, możesz z łatwością rozpocząć. Jeżeli masz już plan działania, szanse na to, że się pogubisz lub spanikujesz będą o wiele mniejsze. Dobrze jest przyjrzeć się wszystkim czynnościom na dany dzień i pogrupować je, np. wg testowanej funkcjonalności lub urządzenia – rozpisując, rysując schematy (np. w w aplikacji Gliffy) czy mapy myśli. Dzięki temu nie będziemy logować się po 10 razy na telefonie, sprawdzając różne moduły, ale przetestujemy kilka powiązanych rzeczy w trakcie jednego logowania. Zaplanowanie testów przyspieszy i zoptymalizuje pracę.

Cechą dobrego zarządzania jest także ekonomiczne wykorzystanie potencjału zespołu projektowego. Mam na myśli tutaj delegowanie zadań. Możemy być obłożeni obowiązkami w 120%, a tymczasem kolega czy koleżanka z teamu – w 90%. Mamy wtedy wręcz obowiązek prosić o wsparcie. Od tego są inni członkowie zespołu, żeby sobie pomagać, na tym m.in. polega samoorganizacja. Ciekawym sposobem na zarządzenie sprawami jest wykorzystanie tablicy Einsenhovera, na której zadania są podzielone wg ważności oraz pilności. Dzięki temu ustalimy priorytety, rozpoznamy które działania są istotne, a które nie. Będziemy wiedzieć czymś zająć się, gdy znajdziemy chwilę wolnego. Dzięki matrycy łatwo lokalizujemy złodziei czasu – tj. rzeczy nieważne i niepilne.

Automatyzacja pracy testera

Asynchroniczność jest w pewnym stopniu możliwa podczas wykonywania czynności, z których jedna nie wymaga dużego zaangażowania intelektu, na przykład kiedy prasujemy i oglądamy Netflixa. Kto nie robił czegoś w tle w trakcie zdalnego spotkania zespołu projektowego, niech pierwszy rzuci kamieniem. Dobry tester dąży do automatyzacji wykonywanych testów oraz do automatyzacji swojej pracy. Pomocne w tym mogą być: uruchamianie programów ze startem systemu, automatyczne aktualizacje programów, autouzupełnianie haseł, odpowiednie wtyczki do przeglądarek (notatki, zarządzanie hasłami, generatory danych testowych, np. ze strony testerzy.pl). Umiejętnością, która przyspieszy pracę jest bezwzrokowe pisanie na klawiaturze. Istnieją specjalne aplikacje, dzięki którym nauczymy się pisać nawet z szybkością 200 znaków na minutę, co poprawi komfort pisania.

Jeśli chodzi o klienta pocztowego, warto wykorzystać możliwość tworzenia katalogów, tagów, priorytetów, używania kolorów czy automatycznego filtrowania. Dobrze jest także sprawdzać pocztę tylko w wyznaczonych godzinach zamiast mieć uruchomionego klienta przez cały dzień. Z pewnością uchroni to przed ciągłym rozpraszaniem przez wyskakujące powiadomienia. W temacie automatyzacji pracy pamiętam jedną sytuację ze swojego doświadczenia zawodowego, kiedy miałem przetestować 4 wersje językowe w konkretnym module aplikacji. Do tej pory było to wykonywane ręcznie poprzez wielokrotne przełączanie się między oknami. Opracowałem metodę, która to przyspieszała. Skopiowałem wszystkie przetłumaczone etykiety oraz teksty z dokumentacji do narzędzia porównującego tekst. Po odpowiedniej obróbce danych, aplikacja natychmiast pokazywała na czerwono, które linie różnią się w obu zbiorach.

Warto się zastanowić, jakie procesy możemy zautomatyzować? Czynność, którą wykonujemy być może każdego dnia lub bardzo często. Może będzie to dodanie skryptu w Chromie, który utworzy nam za każdym razem schemat buga przy nowym zgłoszeniu w JIRA? Organizacji pracy sprzyja także rutyna, ustalanie większych przerw o tych samych godzinach, schematy czynności, powtarzalność testów, kolejność zadań, rytuały.

Przyjazne środowisko

Optymalne warunki na stanowisku roboczym sprawią, że praca będzie efektywniejsza i przyjemniejsza. Warto się zastanowić czy np. 3 monitory, myszka gamingowa z dodatkowymi przyciskami bądź mała poręczna klawiatura zwiększą komfort testowania. Warto wybrać wygodniejszy typ urządzenia: komputer stacjonarny, laptop lub Macbook, z odpowiednim systemem operacyjnym. Oprócz tego najlepiej używać software’u, który lubimy i znamy, jeśli istnieje taka możliwość. Aplikacje wykorzystywane w firmie, np. narzędzie do zarządzania projektami, docelowe przeglądarki internetowe, określony pakiet biurowy, aplikacje w chmurze – są zwykle z góry narzucone. Natomiast takie programy jak choćby do tworzenia notatek, diagramów, map myśli, do pomiaru czasu, screen recordery, do przeglądania lub edycji różnego rodzaju plików itd. mogą być wybrane wg uznania. Dalej, warto dostosować je do swoich preferencji, np. wybierając motyw ciemny systemu Windows, pakietu Office czy pluginy Chroma rozszerzające go o gesty myszy, skróty klawiaturowe czy rozbudowane ekrany startowe.

Kolejnym elementem, który przyczynia się do komfortu pracy jest obraz prezentowany przez wyświetlacz. Nieodzowne okazuje się w tym przypadku oprogramowanie zmieniające temperaturę barwową emitowanego światła, co wpływa na mniejsze zmęczenie wzroku. Najlepszym wg mnie jest program f.lux, który posiada wiele ciekawych opcji, przede wszystkim automatyczne dopasowywanie temperatury światła do pory dnia czy wyświetlanie w odcieniach szarości, co pozwala na większe skupienie uwagi. Jeśli zadbamy o przyjazną przestrzeń roboczą, wtedy pracuje się przyjemniej, wydajniej, doświadczamy pozytywnych emocji. Kolejną fundamentalną cechą dobrej organizacji jest porządek – zaczynając od ładu na biurku i najbliższym otoczeniu. Im więcej przedmiotów znajduje się wokół, tym bardziej odciągają uwagę od pracy. Od przybytku głowa boli. Im mniejsza liczba zmiennych, tym mniej okazji do popełnienia przez testera błędów. Z pewnością sterta rozrzuconych kartek, 3 kubki, z których ostatnio pił kawę czy stos długopisów nie pomogą w koncentracji.

Następną ważną rzeczą jest uporządkowanie pulpitu, folderów, plików i używanych programów. Zatem warto stworzyć dokument, gdzie trzymamy testowe adresy e-mail, zamiast mieć je rozpisane na przyklejonych do monitora karteczkach. Im większą ilością testaliów zarządzamy, tym trudniej znaleźć screenshot czy dokument tekstowy, którego w danej chwili poszukujemy.

Stopień ogarnięcia jako parametr w CV

Dobra organizacja ma ogromne znaczenie w pracy testera. Umiejętność testowania REST API czy znajomość SQL-a nie robi już na rekruterach większego wrażenia w oceanie kandydatów o podobnych kompetencjach. Taki nowicjusz może przecież nauczyć się od zera obsługi HP ALM czy TestLink, pracując już w projekcie. I tak trzeba zawsze wdrożyć się do systemu pracy w danej firmie, wdrożyć do konkretnego projektu. A zatem dla pracodawcy ważniejsze może się okazać czy aspirujący na ofertę jest człowiekiem ogarniętym niż to, że umie się poruszać w JIRA, tak jak 100 pozostałych kandydatów na to stanowisko. W ostatecznym rozrachunku chodzi przecież o pieniądze. Im więcej wysiłku trzeba poświęcić na szkolenie, wdrażanie i utrzymanie nowego QA engineera w zespole, tym mniej czasu pozostaje na bardziej dochodowe zajęcia. Każdy lider pragnie mieć na pokładzie osobę, która nie będzie sprawiała kłopotów, nie będzie zawracała głowy wszystkim dokoła. Tester powinien znajdować problemy, a nie jest stwarzać. Najlepiej, gdyby bez zadawania zbędnych pytań wykonywał efektywnie swoje obowiązki. Bilans musi być dodatni, tzn. że wniesie do zespołu wartość dodaną. Liczy się samodzielność oraz umiejętność stawiania czoła nowym wyzwaniom i zadaniom.

Czy kandydat poradzi sobie z lawiną tasków, które zrzucą na niego programiści? Czy nie pogubi się wśród dokumentacji i funkcjonalności tworzonego oprogramowania? Czy zatrzyma rzekę płynących e-maili lub powiadomień? Jak sobie poradzi z mnogością urządzeń mobilnych, systemów operacyjnych czy przeglądarek internetowych? Myślę, że umieszczenie takiej charakterystyki w życiorysie bez wątpienia usprawniłoby pracę działu HR podczas selekcji nadesłanych aplikacji. Gdyby przyjąć jakąś skalę procentową dla stopnia zorganizowania, to można by było stworzyć algorytm, który odrzuci wszystkie CV poniżej jakiejś określonej wartości. Brutalne, choć prawdziwe. W każdym razie, rekruterzy są raczej skazani na testowanie manualne nadesłanych na ofertę zgłoszeń. Jak z morza beznamiętnych liter i cyfr wyłowić informację, że mamy do czynienia z rozgarniętym człowiekiem?

Ogarnięcie w życiu prywatnym i zawodowym

Podsumowując, dobry tester to zorganizowany tester. Na produktywne zarządzanie pracą składa się wiele elementów, takich jak: znajomość testowanego systemu systemu, ustalanie priorytetów, skupienie na zadaniu, utrzymywanie koncentracji, przyjazne środowisko, planowanie, automatyzacja pracy czy utrzymywanie porządku. Można to wszystko określić jako tzw. „umiejętności miękkie”, które okazują się nierzadko decydujące, gdy chodzi o wyróżnienie się na tle innych kandydatów. Nie sposób tutaj nie wspomnieć o bardzo ważnym komponencie organizacji, czyli zarządzaniu sobą w czasie. Poza składowymi, które opisałem wcześniej, warto wymienić: ustalanie deadline’u dla każdej ważnej sprawy, korzystanie z kalendarzy, powiadomień, stosowanie time-boxów, eliminację rozpraszaczy, notowanie wszystkich swoich aktywności, by zlokalizować momenty marnowania czasu. Poprzestanę tylko na wypunktowaniu tych elementów, gdyż jest to szeroki temat na osobny artykuł.

To samo można powiedzieć o zagadnieniu prokrastynacji (odkładania rzeczy na potem), która mocno wiąże się z obszarem zarządzania obowiązkami. Wspomnę tutaj tylko o zasadzie 2 minut, która zachęca do wykonania zadania od razu, jeśli zajmie to 120 sekund. Tester oprogramowania musi być elastyczny, musi dopasowywać się do zmieniających warunków projektowych. Produkowane aplikacje to żywe organizmy, które dojrzewają każdego dnia, każdej godziny, dlatego bardzo ważne jest monitorowanie wszelkich fixów, aktualizacji oraz zmieniających się wymagań biznesowych. Myślę, że dobra organizacja to cecha, którą można ćwiczyć niemal na każdym kroku w życiu codziennym – począwszy od wybrania się do sklepu z listą zakupów, przez rozsądne planowanie wydatków czy skupienie się na rozmówcy podczas rozmowy towarzyskiej.

Zatem, by stawać się coraz lepszym testerem, zacznij na początek od ogarnięcia bałaganu w swoim pokoju, a później zabierz się za złożone systemy informatyczne.

Spodobał Ci się artykuł?

Masz pytania? Zacznijmy rozmowę! 🙂

Klikając wyślij, zgadzasz się na wykorzystanie Twojego adresu email oraz imienia do kontaktu elektronicznego, a także do przesyłania wiadomości marketingowych. Administratorem Twoich danych osobowych jest Graphicbox Sp. z o. o. ul. Lwowska 6/201, Rzeszów. Więcej w polityce prywatności.

Form Men

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *