Nawyki skutecznego testera

Marcin Kubecki
Ikona kalendarza
7 listopada 2023

Jednymi z podstawowych obowiązków testera oprogramowania jest przeprowadzanie testów na różnych poziomach oraz weryfikowanie, czy oprogramowanie zostało stworzone zgodnie z opracowanymi wymaganiami (tak naprawdę celów, jakie możemy postawić testerowi oprogramowania, jest wiele więcej, natomiast mówimy tutaj o tych podstawowych). Materiał ten skupi się na najważniejszych nawykach oraz umiejętnościach testera, które powinny być rozwijane oraz pielęgnowane, i które spowodują, że będziesz nie tylko lepszym testerem, ale również lepszym pracownikiem, niezależnie od tego czym będziesz się w życiu zajmować.

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 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 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 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 ż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 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ć, że nie wszystkie prace do wykonania jesteśmy w stanie zautomatyzować i część musimy wykonywać ręcznie. 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 ż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, ż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 ż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 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 odbywają się regularne spotkania społeczności testerskiej. Warto w nich 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 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 że 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 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. 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 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ł/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. 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 kolejny dzień. 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 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ś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 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. że 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, że Kamil spie...tę funkcjonalność". Takie zachowanie powoduje 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 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, że 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 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 można zauważyć "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 było mało czasu na 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 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ń, a jeśli 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, że “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 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ń 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, ż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 na pewno występuje w najnowszej wersji oprogramowania, zaktualizować nr wersji, czy dodać jakiś screenshot. 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.

Jeżeli zainteresował Cię temat testowania i ten artykuł, sprawdź kurs stworzony przez autora tekstu: Akademia Tester PRO

Przeczytaj także

Ikona kalendarza

29 marzec

To be or not to be a multi cloud company? Przewodnik dla kadry kierowniczej, doradców ds. chmury i architektów IT. (część 2)

Po przeczytaniu pierwszej części poradnika zauważymy, że strategie organizacji są różne. Część firm oparło swój biznes wyłącznie na j...

Ikona kalendarza

27 wrzesień

Sages wdraża system Omega-PSIR oraz System Oceny Pracowniczej w SGH

Wdrożenie Omega-PSIR i Systemu Oceny Pracowniczej w SGH. Sprawdź, jak nasze rozwiązania wspierają zarządzanie uczelnią i potencjałem ...

Ikona kalendarza

12 wrzesień

Playwright vs Cypress vs Selenium - czy warto postawić na nowe?

Playwright, Selenium czy Cypress? Odkryj kluczowe różnice i zalety każdego z tych narzędzi do automatyzacji testów aplikacji internet...