Specjalizacje w testowaniu Część II

Tagi: 1 komentarz do Specjalizacje w testowaniu Część II

Tydzień temu opublikowaliśmy pierwszą część wpisu na temat wyodrębniania specjalizacji w dziedzinie testowania oprogramowania. Kiedy należy to robić, a w jakich okolicznościach warto sobie odpuścić? Pokrótce opisaliśmy też sytuację specjalistów od testowania na rynku pracy. W drugiej części zajmiemy się wyodrębnieniem i opisaniem w paru słowach najpopularniejszych specjalizacji wśród testerów, zahaczymy o obszary niszowe w testowaniu oprogramowania, a na koniec przedstawimy alternatywny podział specjalizacji. Warto pamiętać, że w tak dynamicznym środowisku zaproponowany podział nie zawsze oznacza jedyny słuszny
i  obowiązujący.

Najpopularniejsze specjalizacje wśród testerów

Analityk testów

Odpowiedzialny za tworzenie koncepcji produktu na podstawie ustaleń zawartych z klientem. Tworzy mapy i funkcje, rozważa potrzebę testowania dokumentacji. Ściśle współpracuje z PM (często jest to jedna osoba, łącząca obie te funkcje), ponieważ cele projektu są wspólne dla obu specjalizacji. Analityk określa np. jak wykonać plan testów, czy rozbić całość zadania na mniejsze moduły, czy testować interfejs API, etc. Jego rolą jest odpowiedź na wszystkie pytania dotyczące warstwy koncepcyjnej produktu.

Darmowy ebook

Projektant testów

Osoba zajmująca się tworzeniem gotowych scenariuszy testowych lub list kontrolnych, które umożliwiają efektywną pracę testerom. Często funkcja ta łączona jest z analitykiem testów, a nawet z managerem testów, jak czytamy na QA-Courses. Dobrze jest zastanowić się nad zasadnością wyodrębnienia tej funkcji w następujących przypadkach:

  • Gdy produkt jest wyjątkowo złożony i wymaga kompleksowej znajomości faktycznych strategii i zadań użytkownika
  • Gdy w firmie pracuje duża liczba testerów automatycznych, którym potrzebne są gotowe scenariusze testowe
  • Koordynator projektu / PM znajduje się w innym kraju, mówi w innym języku lub odmawia kontaktu z więcej niż jednym pracownikiem – wówczas przydałby się przedstawiciel zespołu, który skupiłby się na analizie testów
  • Firma regularnie zatrudnia juniorów (np. na stażach), którzy zwykle nie posiadają kompetencji w pisaniu jakościowych scenariuszy testowych

Zestaw do projektowania.

Tester użyteczności (Usability testing)

To jedna z bardziej specyficznych dziedzin, odgrywająca znaczącą rolę w kontekście rozumienia potrzeb klienta oraz jego/jej zarówno jawnych, jak i ukrytych pragnień. Tester użyteczności sprawdza i pomaga zrozumieć czy produkt spełnia pragnienia i wymagania klienta. Weryfikuje, jak często użytkownik popełnia błędy podczas wykonywania scenariuszy, czy potrafi zrozumieć, w jaki sposób należy je przeprowadzić i czy uzasadnione będzie odmówienie korzystania z produktu spowodowane zbyt dużą trudnością w obsłudze.

Rzadko spotyka się specjalistów tego typu, ponieważ zapewnienie im stałego zatrudnienie w ramach jednego projektu czy firmy jest trudne. Jednocześnie wykonywane przez nich zadania mocno wykraczają poza „typowe” IT – polegają np. na przeprowadzaniu wywiadu zogniskowanego grupowego i przeanalizowanie jego wyników. Najczęściej firmy decydują się na outsourcing.

Tester branżowy

Obserwując rosnącą złożoność sektora IT, nietrudno wyobrazić sobie, iż w innych branżach sytuacja może wyglądać podobnie. Istnieją więc dyscypliny, w których testowanie bez dodatkowej wiedzy z danego zakresu, mija się z celem. Czasem wystarczy ogólne rozeznanie w temacie, czasem należy go zgłębić. Chociażby w przypadku gier MMORPG – ciężko je testować bez znajomości mechanizmów walki z bossem czy w przypadku projektów naukowych, gdzie tester powinien znać np. podstawowe zasady replikacji DNA.

Czy konieczne jest więc zatrudnianie ekspertów z branży do testowania? Zwykle nie, choć zdarzają się stanowiska, gdzie doświadczenie w danej dziedzinie (np. bankowość) jest dobrze widziane. Jeśli jednak w zespole jest analityk lub projektant testów, to powinien wykazywać się znaczną wiedzą w danej dziedzinie tak, by znajomość tematu nie była konieczna do przeprowadzania analizy przez testerów.

Doskonale widać, że nie ma najmniejszego sensu tracić czasu «drogiego» specjalisty na zadania, które może wykonać inny pracownik «taniej». Jednocześnie nie warto mieć nadziei i na to, że pracownik, opanowawszy daną umiejętność, nie zauważy faktu, że rynek proponuje za nią wyższe wynagrodzenie.

QA-courses, Czy potrzebne są specjalizacje wewnątrz jednego zespołu testerskiego?

Tester wydajności (Performance testing)

Odpowiedzialny za wykonywanie testów w celu ustalenia, w jaki sposób system działa przy określonych obciążeniach, bez względu na to, czy jest stabilny i responsywny. Tester określa wąskie gardła w projekcie i proponuje techniki dostosowania.

Czasem też wyróżnia się specjalistę do spraw testów obciążeniowych (Load testing), które zadania zbliżone są do testera wydajności.

Testowanie obciążenia

Tester manualny (Manual testing)

W trakcie przeprowadzania testów manualnych (ręcznych) tester naśladuje rzeczywiste zachowania użytkownika, wywołując wszystkie funkcje programu i namierzając usterki. Nie korzysta z dodatkowych narzędzi podczas takiej analizy. Zwykle ma już opracowany plan (często bazujący na doświadczeniu), zgodnie z którym przeprowadza takie testy. Przeważnie specjalizacja ta występuje domyślenie (naturalnie) w zespole. Można natomiast mówić o jej specjalnym wydzieleniu w przypadku projektów, w których większość testerów to testerzy automatyzujący. Wówczas pojawia się oddzielnie tester w celu przeprowadzenia wszystkich tych testów, których nie da się lub zwyczajnie nie opłaca się automatyzować (zwykle chodzi o trudne do zreprodukowania błędy UI, captcha, analizy dźwięku, rozpoznawalne obrazy, jednorazowe testy, etc.)

Tester automatyzujący (Automation testing)

Ta specjalizacja wymaga umiejętności pisania skryptów, czyli znajomości przynajmniej jednego języka programowania. Dobre testy automatyczne zmniejszają ilość pracy ręcznej i pozwalają zaoszczędzić wiele czasu.

Jeśli chcecie się dowiedzieć które testy warto automatyzować, a które lepiej odpuścić, to zajrzyjcie do naszego wpisu tutaj

Kontrolowanie bezpieczeństwa

Obszary niszowe

Tester bezpieczeństwa (Security testing, Pentesting)

Jeżeli produkt, który tworzy firma, nie jest związany z dużymi pieniędzmi, tajnymi danymi czy kwestiami bezpieczeństwa państwowego, to specjalista od bezpieczeństwa nie będzie konieczny. Wyszkolenie testera na skutecznego pentestera lub security testera trwa zwykle latami i wiąże się z ogromnym poświęceniem czasu, dlatego testerzy bezpieczeństwa zwykle zajmują się tylko tą dziedziną. Warto zastanowić się jednak nad rozwiązaniem outsourcingowym, w którym dokonana zostanie jednorazowa ocena bezpieczeństwa produktu.

Eksperci są zdania, że obszary niszowe zyskują na znaczeniu w przestrzeni testowej. Pojawiają się nowe narzędzia dedykowane dla tych specjalizacji. Jako profesjonaliści zajmujący się testowaniem powinniśmy być świadomi tego, dokąd zmierza branża i na bieżąco aktualizować naszą wiedzę.

Inny podział specjalizacji wśród testerów

Specjalizacje testerów można oczywiście podzielić na wiele innych sposobów. Jednym z nich jest podział według rodzaju testowanego produktu. Możemy więc wyróżnić testowanie:

  • Produktów oprogramowania mobilnego
  • Oprogramowania sieciowego
  • Aplikacji dostosowanych do technologii bezprzewodowej
  • Programów dostosowanych do technologii VoIP
  • Oprogramowania bankowego
  • Produktów oprogramowania e-commerce

Każdy wymieniony wyżej typ ma swoją specyfikę pracy, charakterystyczne pułapki i ryzyka. Jeden tester nie może znać wszystkich typów w szczegółach.

Świat IT (bynajmniej nie jako jedyny) wymaga wysoko wykwalifikowanych specjalistów w konkretnej dziedzinie. Testowanie oprogramowania oferuje szeroką gamę specjalizacji, a bycie ekspertem w jednej z nich pomoże stać się naprawdę wartościowym pracownikiem. Dobrze jest dysponować przynajmniej podstawową wiedzą we wszystkich głównych typach testowania, ale głęboko specjalizować się w jednym.

DYSKUSJA

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

wypróbuj

Zarejestruj się i zacznij działać!