Cechy dobrego testera header

Nauczyciel testowanie ma we krwi! Cechy dobrego testera.

           Dziś w końcu przejdę do tematu dlaczego uważam, że nauczyciel może być dobrym testerem oprogramowania. Podkreślam: MOŻE być. Nie uważam, że każdy może zostać testerem. Nie uważam, że każdy do tego się nadaje i przede wszystkim nie uważam, że każdemu się to spodoba. Ale na podstawie własnych obserwacji stwierdzam, że dobry nauczyciel jest kandydatem na dobrego testera oprogramowania. I mam nadzieję, że mój przypadek testowy to potwierdza 😉

Oczywista oczywistość: aby zostać testerem potrzebna jest branżowa wiedza teoretyczna. Wiedzę można zdobyć na studiach kierunkowych i wtedy znajdujemy się w najlepszej sytuacji, ale można równie dobrze uczyć się samemu. Dostępnych jest mnóstwo źródeł w internecie, tych darmowych i tych płatnych. Można też wziąć udział w różnych kursach przygotowujących do zawodu testera oprogramowania. Więc jeśli ktoś jest odpowiednio zmotywowany to argument o braku studiów kierunkowych jest po prostu wymówką. Potrzebną wiedzę a przynajmniej tą podstawową można więc przy odrobinie wysiłku nabyć. Jednak tester oprogramowania poza wiedzą potrzebuje szeregu innych cech, które nie zawsze można w sobie tak łatwo wykształcić, a które często cechują dobrych nauczycieli. Jakie są te umiejętności i cechy dobrego testera?

tablica z napisem test

1. Nauczyciel – testowanie ma we krwi

Kto inny układa testy tak dobrze jak nauczyciel?
Oczywiście to trochę z przymrużeniem oka, ale dla nauczyciela testowanie nie jest takie zupełnie obce. Co prawda przedmiot testu jest zupełnie inny niż oprogramowanie, bo jest nim sprawdzenie poziomu wiedzy ucznia, ale jednak jakiś wspólny punkt jest. Tester musi zastanowić się jak dobrze napisać test, aby sprawdzić czy oprogramowanie działa, czy zachowuje się tak, jak tego oczekujemy. Tester sprawdza również skrajne przypadki lub odporność oprogramowania na nietypowe zachowania. Nauczyciel również musi tak ułożyć pytania, żeby odpowiedź ucznia dała mu odpowiednią informację zwrotną: uczeń się nauczył lub nie. Sprawdzamy według naszych kryteriów czy możemy przyjąć taką odpowiedź, czy może jest poniżej naszych wytycznych i uczeń będzie musiał przejść przez test jeszcze raz.

2. ‘Soft skills’ czyli szereg umiejętności miękkich

Jak już wspomniałam w poście Tester oprogramowania: co to i na co to komu?, wbrew pozorom umiejętności miękkie są bardzo potrzebne w tym zawodzie. Pracujemy z innymi ludźmi, którzy tworzą oprogramowanie a następnie oddają je w nasze ręce z oczekiwaniem na werdykt – działa czy nie działa, można to wydać czy jednak do poprawki? Programista oczywiście powie ‘no u mnie działa’, ale nawet jeśli, to nie zawsze spełnia wszystkie kryteria. Czasem musimy odrzucić zadanie programisty ze względu na niezgodność dotyczącą części wizualnej a czasami aplikacja zwraca zachowanie niepożądane przy nietypowej akcji użytkownika. Bywa i tak, że to samo zadanie musimy odrzucić po raz kolejny i kolejny. I wtedy bardzo ważna jest umiejętność efektywnej komunikacji oraz empatia. Z jednej strony musimy zrozumieć, że to oprogramowanie to takie ‘dziecko’ programisty. Dla niego jest idealne i poświęcił mu bardzo dużo czasu i uwagi. Z drugiej strony musimy trzymać się wymagań i obiektywnym okiem ocenić sytuację. Jeśli dana funkcjonalność nie działa i odbiega od wymagań to nie ma zmiłuj – odrzucamy i do poprawy. Dobór odpowiednich słów jest tutaj bardzo ważny. Trzeba uważać, żeby nasze komentarze nie zostały odebrane jako krytyka a ocena zadania. Ważne jest też, aby nasz komentarz był treściwy i absolutnie nie był ad personam. Ma to być rzetelna i obiektywna ocena zadania a nie programisty.

3. Umiejętność oceny na podstawie danych kryteriów

Myślę, że z tym zadaniem nauczyciele nie mają problemów. Cały czas muszą oceniać uczniów i porównywać ich stan wiedzy z kryteriami i wymaganiami. To samo musi umieć tester oprogramowania – musi ocenić czy produkt jest zgodny z wymaganiami.

4. Asertywność

W pracy testera szczególnie dużo się mówi na temat asertywności. Jest to jedna z najważniejszych, jak nie najważniejsza (zaraz po dociekliwości) cecha dobrego testera.
Zdarza się tak, że programista przekonuje, że tam wcale nie ma błędu, wszystko jest tak jak powinno i w ogóle to zupełnie niepotrzebnie się czepiamy, jak zawsze. To jest to słynne, wspomniane wcześniej hasło ‘u mnie działa’ sugerujące, że to tester ma problem a nie programista 😉 . Oczywiście tester też jest omylny dlatego najpierw należy się upewnić, sprawdzić jeszcze raz dokumentację a może kogoś dopytać o wymagania, ale jeśli jesteśmy przekonani o niepoprawnym działaniu systemu to musimy postawić na swoim i asertywnie powiedzieć ‘a u mnie nie’. Do tego czasami dochodzi presja zespołu i zbliżający się termin wydania produktu ale tester powinien mieć w sobie tyle asertywności, żeby umieć przekonać zespół do swoich (uzasadnionych) racji. 

5. Cierpliwość i odporność na wykonywanie powtarzalnych czynności

Kiedy pracowałam jako nauczyciel cierpliwość to było moje drugie imię. Jest ona niezbędna, ponieważ często trzeba powtarzać jedno i to samo kilkanaście razy, do skutku. Odporność na monotonię wykształciła się gdy trzeba było przerabiać dokładnie ten sam materiał kilkukrotnie. W pracy testera oprogramowania też zdarzają się te bardziej monotonne zadania. Oprogramowanie często jest tworzone na różne platformy więc trzeba je przetestować dokładnie na różnych urządzeniach i różnych przeglądarkach. Jednak największym wyzwaniem w kontekście odporności na monotonię jest regresja, czas kiedy testujemy wszystko od początku, żeby upewnić się, że wprowadzane zmiany nie popsuły aplikacji w innych miejscach. I właśnie wtedy ważne jest aby umieć utrzymać skupienie na takim samym poziomie jak wtedy, gdy testujemy jakąś nową funkcjonalność. Trzeba być na tyle skupionym na tym zadaniu aby móc dostrzec odstępstwa od oczekiwanego zachowania oprogramowania. Z racji tego, że testy regresji są monotonne są dobrym kandydatem do ich zautomatyzowania. Niestety nie zawsze jest na to czas i finanse, więc wtedy tester oprogramowania musi wykazać się cierpliwością i odpornością na odtwarzanie powtarzalnych czynności.

otwarta głowa z znakami zapytania

6. Ciekawość i dociekliwość

Właściwie to powinnam zacząć od tych właśnie cech, bo jak dla mnie są to najważniejsze cechy dobrego testera oprogramowania. Tester zawsze powinien sobie zadawać pytanie ‘a co by było gdyby…’ żeby tworzyć też te mniej oczywiste scenariusze. W testowaniu oprogramowania nie chodzi tylko o to, żeby sprawdzić czy działa tak jak powinno, ale żeby się upewnić, że nie zepsuje się w innych warunkach. Tester powinien cały czas szukać, drążyć, dociekać, pytać, zastanawiać się. Tester oprogramowania musi być osobą, która jest po prostu ciekawa świata i nie da się zbyć póki nie usłyszy wyczerpującej odpowiedzi na nurtujące ją pytania. Czy tym cechuje się nauczyciel? To już chyba zależy od osoby, ale ja zawsze kojarzyłam grupy zawodowe związane z edukacją jako właśnie te ciekawe świata i bardzo dociekliwe.

7. Dokładność, skrupulatność, uważność i dbałość o detale

Dość oczywisty punkt. Te cechy przydają się w każdym zawodzie ale w zawodzie testera oprogramowania są szczególnie ważne, gdyż to my jesteśmy odpowiedzialni za wyłapanie wszystkich błędów. Dlatego musimy być zawsze dokładni i uważni aby żaden błąd nam nie umknął.

8. Chęć nauki i rozwoju

Kolejny bardzo ważny punkt, szczególnie na początku kariery. Łatwo zaobserwować, że technologie zmieniają się w mgnieniu oka. Wystarczy sięgnąć pamięcią wstecz do naszego pierwszego telefonu komórkowego, albo w ogóle jakiegokolwiek telefonu. Tester oprogramowania to osoba, która nie może stać w miejscu, musi chcieć się uczyć i nadążać za rozwojem technologii. Praca testera zależnie od projektu wymaga od niego różnej wiedzy i często zmieniając projekt musimy na szybko doszkolić się z jakiegoś narzędzia albo technologii. Tak samo nie wyobrażam sobie nauczyciela, który nie chce się rozwijać. Oczywiście takich przypadków jest mnóstwo, ale porównuję tu cechy dobrego nauczyciela z cechami dobrego testera. Osoba, która uczy innych powinna sama nieustannie się rozwijać, by móc dawać przykład innym.

Zegar z napisem Test

9. Organizacja czasu i pracy

Tak jak nauczyciel z początkiem roku szkolnego musi rozplanować rozkład materiału na semestr, miesiąc, tydzień i dzień, tak też tester oprogramowania musi organizować swój czas pracy. Musi oszacować ile czasu potrzebuje na testy, na pisanie przypadków testowych, na regresję, itp. żeby wykonać wszystkie zadania w odpowiednim czasie. Projekty często mają narzucony deadline i trzeba umieć się zorganizować w tym czasie. W mniejszych projektach nikt nie mówi testerowi co ma robić danego dnia i ile czasu musi poświęcić na konkretne zadanie. Zespół ufa, że tester sam potrafi to ocenić i wykonać.

wymiana zdań w IT

10. Umiejętność pracy z klientem

Czasem jest to najbardziej wymagające zadanie. Przydaje się tutaj efektywna komunikacja, czasem asertywność i z pewnością odporność na stres. Nigdy nie wiadomo na jakiego klienta trafimy i jak będzie nam się układała współpraca, ale w każdym przypadku musimy być profesjonalni. W zależności od firmy i projektu, tester oprogramowania ma styczność z klientem w różnym stopniu. Czasami kontaktu nie ma prawie w ogóle a czasami musimy ściśle pracować z klientem, bo na przykład klient jest zaangażowany w proces tworzenia produktu i to on decyduje o zmianach i wymaganiach. Może to będzie trochę abstrakcyjny przykład, ale myślę, że kontakt z rodzicami uczniów można czasami porównać do pracy z klientem, szczególnie jeśli pracujemy w szkołach prywatnych czy językowych. Wtedy uczeń jest klientem – płaci i wymaga a sama współpraca też różnie może się układać. 

11. Wystąpienia publiczne


Może nie jest to umiejętność, którą od razu byśmy przypisali jako cechę dobrego testera oprogramowania i pewnie rzadko jest to podkreślane, ale w moim przypadku okazało się to niezbędne. Z racji tego, że uczenie to trochę takie występowanie przed małą publicznością, która zawsze może nas ocenić i skrytykować, wystąpienia publiczne nie powinny być dla nauczycieli aż tak straszne. Z pewnością nauczyciel, który nie boi się przemawiać nie będzie miał problemu w sytuacji kiedy będzie musiał przedstawić prezentację przed klientem, tzw. demo. Czasami klient życzy sobie abyśmy systematycznie pokazywali mu postępy w pracy. Bardzo często osobą, która prezentuje progres w tworzeniu produktu jest właśnie tester oprogramowania, gdyż to on zna aplikację najlepiej. Czasami grono odbiorców jest duże i ma równie dużo pytań, na które nie zawsze znamy odpowiedź. Jedno jest pewne: chcemy aby prezentacja naszego produktu była jak najlepsza, żeby klient nie miał wątpliwości i zastrzeżeń do naszej pracy.

12. Zaangażowanie

Kolejna oczywistość. Zaangażowanie potrzebne jest w każdym zawodzie. Bez zaangażowania trudno jest wykonywać swoją pracę dobrze. Ale jeśli lubimy to, co robimy to trudno jest nie być w to zaangażowanym.

13. Team work, czyli praca w zespole

Jest to jedno z najczęściej spotykanych wymagań w ofertach pracy. Co tu dużo mówić – praca nad oprogramowaniem to codzienna praca w zespole z programistami, testerami, managerami, analitykami, designerami i wieloma innymi osobami. Podczas gdy każdy może mieć odmienne zdanie na dany temat, ważne jest, aby wyciągnąć z tego jak najwięcej i umieć dojść do porozumienia, bo cały zespół ma przecież wspólny cel: stworzyć jak najlepszy produkt.

kolorowy mózg z równaniami matematycznymi

14. Kreatywność

Z jednej strony tester oprogramowania musi zmagać się z monotonnymi aspektami swojej pracy, ale równocześnie zawód ten wymaga kreatywności. Tester powinien być na tyle kreatywny by wymyślać testy, które odpowiednio sprawdzą oprogramowanie. Jeśli używamy tych samych testów to możemy dopuścić do paradoksu pestycydów (więcej o paradoksie pestycydów pojawi się w poście na temat 7 zasad testowania). Kreatywne podejście do zawodu z pewnością zwiększa wartość testowania. Tak jak w zawodzie nauczyciela – kreatywne podejście do nauczania skutkuje większym zainteresowaniem uczniów i lepszymi rezultatami.

15. Analityczne myślenie

Nie można zapominać o analitycznym myśleniu. Na tym również opiera się praca testera: na myśleniu i analizowaniu sytuacji. Myślenie analityczne można ćwiczyć i rozwijać ale bez niego ciężko być dobrym testerem.

angielski

16. Znajomość języka obcego

Dużo firm jest obecnie zorientowanych na rynek zagraniczny i tym samym w pracy używamy języka obcego, którym najczęściej jest język angielski. Jeśli klient jest zagraniczny a zespół międzynarodowy, to musimy liczyć się z tym, że cała komunikacja w firmie będzie odbywać się w języku obcym. W przypadku kontaktu z klientem ważne jest, żeby język był na dobrym poziomie. Właściwie to cała branża IT jest ściśle związana z językiem angielskim i wiele pojęć nie ma nawet dokładnych odpowiedników w języku polskim. A nawet jeśli ma, to dla uproszczenia używa się tych zagranicznych nazw. W firmach, które poszukują klientów na rynku polskim często również sporządza się dokumentację w języku angielskim, ale wtedy wymagany jest poziom umożliwiający pisanie i czytanie dokumentacji technicznej. Jeśli znamy język na bardzo dobrym poziomie z pewnością będzie to duży atut przy rekrutacji na stanowisko w branży IT.

17. Optymizm

Banał i oczywistość, ale warto o tym wspomnieć. Wszyscy wolimy pracować z osobą, która optymistycznie podchodzi do zadań i napotkanych trudności zamiast marudzić, że znowu ma tyle do zrobienia. Optymistyczne nastawienie do pracy i zespołu pomaga budować lepsze relacje.

Wymagania na stanowisko testera oprogramowania mogą się różnić, w zależności od firmy, projektu i technologii, które są tam wykorzystywane. Powyższy zestaw cech jest częścią wspólną wszystkich ogłoszeń o pracę i może być pierwszym etapem weryfikacji pytania czy nadaję się do IT?

Jeśli spodobał Ci się wpis i chcesz być z nami na bieżąco
zapisz się na nasz darmowy newsletter!

Z pozdrowieniami,
Nauczyciel w IT
Logo nauczyciel w IT