Nawyki skutecznego testera

Jednymi z podstawowych obowiązków testera oprogramowania to przeprowadzanie testów na różnych poziomach testów oraz weryfikowanie czy oprogramowanie zostało stworzone zgodnie z opracowanymi wymaganiami. Tak naprawdę celów jakie możemy postawić testerowi oprogramowania jest wiele natomiast mówimy tutaj o tych podstawowych. Tester często jest pierwszą osobą która ma styczność z pierwszą wersją zbudowanego systemu i ważne aby spoglądał na niego oczami klienta. Ubrał tzw. buty klienta i korzystał z systemu tak jak będzie to robić klient. Artykuł  ten skupiać się będzie na najważniejszych nawykach oraz umiejętnościach testera które powinny być rozwijane oraz pielęgnowane które spowodują że nie tylko będziesz lepszym testerem ale również lepszym pracownikiem nie zależnie od tego czym będziesz się w życiu zajmował. Niestety, jeszcze w wielu firmach widuje się obrazek gdzie tester spychany jest na dalszy plan (mało ważną rolę w ramach całego procesu wytwórczego) – powodów tego stanu rzeczy jest wiele. Część wynika z kultury pracy w organizacji a część……od samego testera, jest to jednak materiał na kolejny artykuł. Dalecy jesteśmy od tworzenia wizerunku że tester jest najważniejszą personą przy tworzeniu systemu ale napewno jest on częścią całej układanki której rezultatem ma być dobry / funkcjonalne użyteczny produkt z punktu widzenia klienta/użytkownika. Brak osoby testującej oprogramowania oraz weryfikowania pod względem wymagań często może doprowadzić do katastrofy produktu.
Dlatego ważne jest aby zrozumieć że osoby weryfikujące oprogramowanie są potrzebne oraz drugie że wszystkie osoby powinny mieć jeden główny cel  jakim jest stworzenie wartościowego produktu z którego będzie zadowolony klient/użytkownicy a jednocześnie zarobimy na Tym / nasza firma pieniądze. Aby to osiągnąć musimy współpracować ze sobą w innym wypadku sami sobie podcinamy gałąź na której siedzimy. To tyle tytułem wstępu teraz skupimy się już tylko i wyłącznie na nawykach/umiejętnościach testera które powinny być rozwijane w trakcie trwania jego kariery.

Dyscyplina, dokładność, skupienie

Praca testera wielokrotnie polega na wykonywaniu tych samych czynności. Należy pamiętać że nie wszystkie prace do wykonania jesteśmy w stanie zautomatyzować i część musimy wykonywać ręcznie.  A wtedy przychodzi znużenie, zmęczenie i brak chęci wykonywania kolejny raz tych samych czynności (np. testów). Jednak praca testera, dobrego testera często tego wymaga i nie można sobie pozwolić na pomijanie czynności testerskich które mogą mieć wpływ na jakość produkowanego systemu. Na co najczęściej powinniśmy zwracać uwagę:
  • Testy Regresyjne – jedna z najbardziej nużących czynności testera, powielanie wykonywania kolejny raz tych samych testów (to co się da można oczywiście zautomatyzować, natomiast nie wszystko jesteśmy w stanie zautomatyzować) Warto wyrobić sobie nawyk aby przeprowadzać zawsze pełne zaplanowane testy regresyjne (oczywiście uwzględniając ryzyko) i nie pomijać wykonywania pewnych testów – mimo że we wcześniejszych wersjach zazwyczaj działało
  • Retesty – kolejną częstą czynnością testera jest przeprowadzanie retestów już poprawionych defektów. Należy pamiętać że każdy rozwiązany defekt należy zweryfikować w nowej wersji czy aby napewno został on rozwiązany. Nie można zamykać zgłoszeń na słowo honoru.
  • Bądź dokładny – jedną z kolejnych cech dobrego testera nad którą trzeba pracować to dokładność. Nie rób testów na łapu-capu, zastanów się nad przypadkiem testowym, przeanalizuj test, zastanów się nad danymi testowymi, zweryfikuj swoje zgłoszenie defektu itp. Takie myślenie pozwala na wykrywanie defektów w wielu obszarach których na początku nie brało się pod uwagę oraz tworzenie wartościowych defektów.
  • Pracuj w skupieniu – Większość osób aby wykonywać dobrze swoją pracę potrzebuje skupienia (są też tacy którzy potrafią pracować tylko przy głośnej muzyce :))  i odpowiedniego środowiska pracy. W takcie testów warto zastosować zasadę – zero rozpraszaczy. Można wyłączyć (ewentualnie wyciszyć telefon) wyłączyć klienta pocztowego, komunikator……facebooka, filmiki z kotami itp. i skupić się na przeprowadzaniu testów. W naszym wypadku działa to bardzo dobrze i stosujemy tzw. okienka czasu w których nikt nie przeszkadza osobą przeprowadzającym testy (no chyba że jest pożar…). Taki tester podczas 1,5 godzinnej pracy w skupieniu jest często w stanie zrobić zdecydowanie więcej, z lepszą jakością niż w sytuacji gdy jest rozpraszany w trakcie 8h czasu pracy.

 Rozwijaj swoje kompetencje Testerskie

Produktywny tester to taki który rozwija swoje kompetencje zarówno miękkie jak i techniki testerskie. Zdarzają się okresy w pracy kiedy jest trochę luźniej, i warto wygospodarować czas na swój rozwój. Jak to powiedział Goethe „Kto nie idzie do przodu, ten się cofa” – i w dynamicznym świecie IT ma to olbrzymie znaczenie. .Ważne w rozwoju aby robić to systematycznie – więc znajdź już dzisiaj 30 min czasu i zdecyduj w jakich elementach będziesz się rozwijał. Wyznacz sobie cele i dąż do ich osiągnięcia:
Istnieje wiele sposobów na rozwinięcie swoich kompetencji np.
  • Udział w Meetupach
Praktycznie w każdym większym mieście odbywają się regularne spotkania społeczności testerskiej. Warto w niej brać udział, i czerpać wiedzę. Oprócz tego że na takich spotkaniach jesteśmy w stanie pozyskać nową wiedzę, mamy również możliwość poznania wiele osób i wymienić się z nimi doświadczeniami. Warto jednak nie ograniczać się do meetupów tylko dla testerów – warto brać udział w spotkaniach na których będą poruszane kwestie wymagań czy procesu tworzenia oprogramowania.
  • Czytanie książek z obszaru testowania, publikacji, artykułów
Mimo że książek poruszających aspekt testowania jest ciągle mało warto poznać te które istnieją na rynku. Pozwoli to na poszerzenie wiedzy z obszaru testowania oprogramowania. Dodatkowo warto na bieżąco czytać artykuły z obszaru testowania.
  • Udział w Szkoleniach
Kolejnym sposobem na zdobycie wiedzy testerskiej jest udział w płatnych szkoleniach z interesującego nas obszaru. Tutaj oczywiście pojawia się problem finansów, ale raz na jakiś czas pracodawca powinien nam umożliwić udział w takim szkoleniu. Warto aby szkolenie było prowadzone przez praktyków. Z naszej strony zapraszamy do zapoznania się z naszą ofertą szkoleniową – może znajdziesz coś interesującego dla Ciebie
  • Poznawanie narzędzi
Stosowanie narzędzi w procesie testowania oprogramowania często pozwala zaoszczędzić sporo czasu poprzez zautomatyzowanie pewnych czynności. Warto tutaj być na bieżąco z najnowszymi trendami i możliwościami narzędzi które wykorzystujemy w codziennej pracy. Napewno warto poznać narzędzia do zarządzania testami oraz raportowania zgłoszeń. Nie warto tutaj zatrzymywać się tylko na zasadach obsługi jako użytkownik ale warto wejść w administrację narzędzia. Może uda Ci się usprawnić działanie procesu testowego / wytwórczego w którym uczestniczysz. Narzędzia do poznania i nauczenia musisz znaleźć sam – my udostępnimy Ci podstawową listę narzędzi natomiast Ty musisz zdecydować co jest dla Ciebie odpowiednie i czego warto się nauczyć.
  • Kompetencje Miękkie
Oprócz znajomości teorii i praktyki testowania oprogramowania warto również rozwijać się w obszarze kompetencji miękkich które są często bardzo potrzebne w codziennej pracy testera oprogramowania. Podstawowe które warto abyś poznał to asertywność, umiejętność pracy w zespole, zarządzanie czasem, komunikatywność czy dynamizm działania.

Planowanie Zadań

Aktywność testera jak i każdej innej osoby wymaga planowania. Nawet w sytuacji gdy otrzymujesz listę zadań do wykonania od przełożonego warto samodzielnie zaplanować naszą pracę. W naszym wypadku najlepiej sprawdza się planowanie do przodu – tzn. Na koniec dnia, planujemy aktywności testerskie na cały dzień kolejny. Rozpisujemy sobie co będziemy testować, co musimy zweryfikować i w jaki sposób. Wiemy że im lepiej zaplanujemy sobie nasze zadania testerskie tym lepiej wykonamy naszą pracę. Korzystamy albo z narzędzia JIRA lub indywidualnie każdy z Nas np. z narzędzia NOZBE w którym organizujemy sobie zadania do wykonania (ogólnie) – szczegóły w narzędziu JIRA. Dodatkowo polecamy grupować sobie nasze aktywności w paczki – jeśli np. wiemy że musimy wykonać w trakcie dnia kilka telefonów np. do programistów rozsianych w różnych lokalizacjach warto zrobić to pod rząd.

Skuteczna komunikacja

Skuteczna komunikacja to jedna z pierwszych umiejętności nad którą powinien pracować tester oprogramowania. Tester ma obowiązek na przekazywaniu klarownych raportów z wynikami testów z różnym stopniem szczegółowości w zależności od adresatów. Inną formę raportu będzie miał materiał przekazywany do np. lidera zespołu programistów a inny do zarządu. Komunikacja taka może odbywać się na wiele sposobów – od wysłania maila, zaraportowania defektu po przedstawienie wyniku testów na spotkaniu zarządu który zdecyduje o uruchomieniu sprzedaży systemu. Jednak praktycznie wszystkie techniki komunikacji mają cechy wspólne którymi tester powinien się kierować:
  • Przekazuj precyzyjne informacje
Przekazując informacje na temat prowadzonych testów należy być bardzo precyzyjnym. Przekazanie informacji np. że system został przetestowany, praktycznie nic nie wnosi. Musi być klarowna informacja, jaki zakres systemu został zweryfikowany, jakie rodzaje defektów zostały pozgłaszane, w jakim statusie są defekty i o jakim priorytecie. To oczywiście przykład, natomiast musisz być bardzo dokładny przy przekazywaniu informacji na temat testowanego produktu gdyż na podstawie tych informacji interesariusze często podejmują decyzję
  • Dostosowanie informacji do odbiorców
Przy przekazywaniu informacji należy zawsze brać pod uwagę do kogo ona jest przeznaczona. Innych informacji na temat testowanego produktu potrzebuje szef programistów a innych szef całej organizacji. Musisz odpowiednio dostosowywać informacje do swoich odbiorców.
  • Informuj bez uprzedzeń
Jeśli informacja dotyczy testowanego produktu, nie możesz sobie pozwolić na personalne wycieczki co do osób tworzących oprogramowanie. Sytuacja w stylu …”Bo ja wiedziałem że Kamil spie…tą funkcjonalność.”. Takie zachowanie spowoduje bardzo szybko że testerzy jak i programiści będą grali od razu w innych drużynach co może spowodować duże kłopoty ze współpracą. Jeśli informujesz o błędach, nieprawidłowościach staraj się robić to bezosobowo bez wskazywania winnych.
  • Prawda
Nie ma nic gorszego niż kłamstwo w trakcie przekazywania informacji na temat testowanego systemu. Często osoby decyzyjne w oparciu o nasze informacje podejmują decyzję dotyczące tworzonego produktu. Nie może zdarzyć się sytuacja że w jakiejś części dotyczącej naszej pracy skłamiemy – przykład „tak wykonaliśmy 100% zaplanowanych testów regresyjnych – a rzeczywistości wykonaliśmy tylko  75%.

Bądź proaktywny

Tak jak już wspominaliśmy jednym z zadań testera oprogramowania jest sprawienie aby oprogramowanie udostępnione klientowi było jak najlepszej jakości. Oczywiście zdarzały się i będą się zdarzać sytuacje że dostarczane oprogramowanie jest dalekie od ideału czy nawet nie powiodło się wdrożenie u klienta. Po niepowodzeniu,  często widywać wtedy „załamanie” po stronie testerów oprogramowania. Zaczyna się tzw. narzekanie że wymagania były kiepskiej jakości, że defekty nie były rozwiązywane na czas czy generalnie mało czasu było na testy. Warto abyśmy my jako testerzy nie wpadli w pułapkę narzekania, warto tutaj zastanowić się co myśmy zrobili źle w tym projekcie i co musimy usprawnić po naszej stronie.  Poniżej kilka naszych pomysłów dotyczących kwestii pro aktywności w trakcie testowania oprogramowania – oczywiście do zastosowania nie tylko wtedy kiedy projekt nie zakończył się sukcesem.
  • Bądź odpowiedzialny za tworzone wymagania
Weź odpowiedzialność za jakość tworzonych wymagań, jeśli są one nie pełne należy prosić o ich doprecyzowanie. Warto tutaj być wytrwałym i nie zrażać się po pierwszych porażkach. Nie warto od razu wytaczać grubych dział i od razu kierowanie się do przełożonego że wymagania są do bani.  W pierwszej kolejności rozmawiaj z osobami odpowiedzialnymi za wymagania i wskazuj gdzie są luki dotyczące wymagań. Może warto wprowadzić regularny przegląd wymagąń w którym to będziesz uczestniczyć. Od dobrych wymagań, wiele zależy dlatego warto zainwestować w nie czas
  • Szczegółowe raportowanie defektów
Jednym z bardziej dołujących rzeczy dla testera oprogramowania jest to że jego defekty leżą i nic z nimi się nie dzieje – brak reakcji. Nie warto obrażać się na programistów i strzelać focha w stylu no to ja nie będę nic zgłaszać tylko zastanowić się dlaczego pojawił się taki stan rzeczy. Warto tutaj zrobić spotkanie z zespołem programistów i ustalić standard pracy nad zgłoszeniami. Zróbmy refaktoryzację naszych zgłoszeń – może były nieprecyzyjne, może nie dotyczyły ważnych elementów systemu itp. Raportowanie zgłoszeń sa jedną z podstawowych czynności testera, są sposobem komunikowania wykrytych defektów i musi on być precyzyjny. Może warto robić przegląd zgłoszeń razem z programistami/analitykami ? przez to nauczymy się czego tak naprawdę oni oczekują.
  • Przegląd przypadków/scenariuszy testowych 
Co jakiś czas warto przeglądnąć istniejące przypadki testowe oraz je zaktualizować. Dorobić nowe, zmienić istniejące czy zaktualizować dane testowe. Często o Tym zapominamy a jest to jedną z 7 podstawowych zasad testowania że przypadki testowe się dezaktualizują i trzeba je regularnie aktualizować
  • Przegląd listy defektów
W sytuacji gdy testowany system jest projektem długofalowym i jesteśmy już po którejś wersji wdrożonej u klienta. Warto co jakiś czas robić przegląd istniejących defektów – (nawet tych które nie są oznaczone jako rozwiązane). Warto zweryfikować czy napewno występuje w najnowszej wersji oprogramowania, zaktualizować nr wersji, czy dodać jakiś zrzut ekranu . Jednak wielokrotnie spotkasz się też z sytuacją że defekt został rozwiązany (może przy okazji innych) i można go zwyczajowo zamknąć. Pozwala to na utrzymanie względnego porządku w naszym narzędziu zarządzania defektami.

Share This Post!