Tester często jest pierwszą osobą, która ma do czynienia z pierwszą wersją zbudowanego systemu i ważne, aby spoglądał na niego oczami klienta - “założył jego buty” i korzystał z systemu tak, jak klient to będzie robić. **Niestety, jeszcze w wielu firmach widuje się obrazek, na którym tester jest spychany na dalszy plan i odgrywa mało istotną 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, iż tester jest najważniejszą personą przy tworzeniu systemu, ale na pewno jest on częścią całej układanki, której rezultatem ma być dobry i funkcjonalnie użyteczny produkt z punktu widzenia klienta/użytkownika. **Brak osoby testującej systemu oraz weryfikowania pod względem wymagań często może doprowadzić do katastrofy produktu.**
Dlatego ważne jest, aby zrozumieć, iż osoby weryfikujące oprogramowanie są potrzebne oraz iż 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 my i/lub nasza firma. Aby to osiągnąć, musimy współpracować, w innym wypadku sami sobie podcinamy gałąź, na której siedzimy. To tyle tytułem wstępu, teraz skupimy się już tylko na nawykach/umiejętnościach testera, które powinny być rozwijane w trakcie trwania jego kariery.
## Dyscyplina, dokładność, skupienie
Praca testera często polega na wykonywaniu tych samych czynności. Należy pamiętać, iż nie wszystkie prace do wykonania jesteśmy w stanie zautomatyzować i część musimy wykonywać manualnie. 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 pominięcie 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 zawsze jest to możliwe). **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 iż we wcześniejszych wersjach zwykle działało.
### Retesty
Kolejną częstą czynnością testera jest przeprowadzanie retestów już poprawionych defektów. **Należy pamiętać, iż każdy rozwiązany defekt należy zweryfikować w nowej wersji, żeby sprawdzić, czy aby na pewno został on rozwiązany.** Nie można zamykać zgłoszeń na słowo honoru.
### Bądź dokładny/a
Jedną z kolejnych cech dobrego testera, nad którą trzeba pracować, jest 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 umieją pracować tylko przy głośnej muzyce :)) i odpowiedniego środowiska pracy. W trakcie 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 osobom przeprowadzającym testy (no, chyba iż 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 8 h czasu pracy.**
## Rozwijaj swoje kompetencje Testerskie
Produktywny tester to taki, który rozwija swoje kompetencje miękkie i techniki testerskie. **Zdarzają się okresy w pracy kiedy jest trochę luźniej i można wygospodarować czas na swój rozwój.** Jak to powiedział Goethe "Kto nie idzie do przodu, ten się cofa" - w dynamicznym świecie IT ma to olbrzymie znaczenie. Ważna w rozwoju jest systematyczność - znajdź już dzisiaj 30 minut 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 realizowane są regularne spotkania społeczności testerskiej. Warto w nich brać udział, i czerpać wiedzę.** Oprócz tego, iż na takich spotkaniach jesteśmy w stanie pozyskać nową wiedzę, mamy również możliwość poznania wiele osób i wymienienia się z nimi doświadczeniami. Jednak nie ograniczaj się tylko do meetupów dla testerów - warto brać udział w spotkaniach, na których będą poruszane kwestie wymagań czy procesu tworzenia oprogramowania.
- Czytanie publikacji, artykułów i książek z obszaru testowania
Mimo iż książek poruszających aspekt testowania jest ciągle mało, warto poznać te, które istnieją na rynku. 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ą - Akademia Tester PRO (zajęcia od podstaw).
- Poznawanie narzędzi
Stosowanie narzędzi w procesie testowania systemu 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. **Na pewno warto poznać narzędzia do zarządzania testami oraz raportowania zgłoszeń. Nie zatrzymuj się tylko na zasadach obsługi jako użytkownik - wejdź w administrację narzędzia.** Może uda Ci się usprawnić działanie procesu testowego / wytwórczego, w którym uczestniczysz.
- Kompetencje Miękkie
Oprócz znajomości teorii i praktyki testowania systemu 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ł/a 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. choćby 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 kolejny dzień. Rozpisujemy sobie, co będziemy testować, co musimy zweryfikować i w jaki sposób. Wiemy, iż im lepiej zaplanujemy sobie nasze zadania testerskie, tym
lepiej wykonamy naszą pracę. **Korzystamy z narzędzia JIRA lub indywidualnie każdy z nas np. z narzędzia NOZBE, w którym organizujemy sobie zadania do wykonania (bez szczegółów) - szczegóły możesz uwzględnić w narzędziu JIRA. Dodatkowo polecamy grupować sobie nasze aktywności w paczki - jeżeli np. wiemy, iż 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 przekazywania 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. iż system został przetestowany, praktycznie nic nie wnosi. Musi być klarowna informacja, jaki zakres systemu został zweryfikowany, jakie rodzaje defektów zostały zgłoszone, w jakim statusie są defekty i o jakim priorytecie.** To oczywiście przykład, natomiast musisz być bardzo dokładny/a 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, iż Kamil spie...tę funkcjonalność". Takie zachowanie powoduje bardzo szybko, iż 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 i 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 ma prawa zdarzyć się sytuacja, iż w jakiejś części dotyczącej naszej pracy skłamiemy, np. mówiąc "tak wykonaliśmy 100% zaplanowanych testów regresyjnych”, a w rzeczywistości wykonaliśmy tylko 75%.
## Bądź proaktywny
Tak jak już wspominaliśmy, jednym z zadań testera systemu jest sprawienie, aby oprogramowanie udostępnione klientowi było jak najlepszej jakości. Oczywiście zdarzały się i będą się zdarzać sytuacje, iż dostarczane oprogramowanie jest dalekie od ideału czy choćby nie powiodło się wdrożenie u klienta. Po niepowodzeniu często można zauważyć "załamanie" po stronie testerów oprogramowania. Zaczyna się tzw. narzekanie, iż wymagania były kiepskiej jakości, iż defekty nie były rozwiązywane na czas czy generalnie było mało czasu w testy. Warto, abyśmy my jako testerzy nie wpadli w pułapkę narzekania i warto 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 proaktywności w trakcie testowania systemu - 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ń, a jeżeli są one niepełne, należy prosić o ich doprecyzowanie.** Warto tutaj być wytrwałym i nie zrażać się po pierwszych porażkach (czytaj: olewania przez ich twórców). Nie warto od razu wytaczać grubych dział i kierować się do przełożonego, iż “wymagania są do d…”. 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 wymagań, 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 systemu jest to, iż 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ń są jedną z podstawowych czynności testera i stanowią sposób komunikowania wykrytych defektów, dlatego raport musi 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ądać 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, iż 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 na pewno występuje w najnowszej wersji oprogramowania, zaktualizować nr wersji, czy dodać jakiś screenshot. Jednak wielokrotnie spotkasz się też z sytuacją, iż 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.
#### o ile zainteresował Cię temat testowania i ten artykuł, sprawdź kurs stworzony przez autora tekstu: [Akademia Tester PRO](https://testerpro.kodolamacz.pl/)