Rodzaje testów – dla IT Rekruterów

Być może znacie to z autopsji 🙂 Przychodzi manager, ma nowe zlecenie od klienta. Szukamy testera! Testera! Na wczoraaaaj! Pronto, pronto, andale, andale! Masz krótki opis, ale i tak cieszysz się, że coś masz w ogóle. Tam jakieś ,,esy floresy” – JIRA, JMeter, Selenium, ISTQB, UAT, Black Box… Drapiesz się po głowie, myślisz, co kryje się za tymi hieroglifami, ale generalnie czasu nie ma na ,,rozkminki”, trzeba działać i jedziesz z tematem. W sumie tester to tester…

Nic bardziej mylnego 🙂 Aby dopełnić poprzednie tematy, dziś mowa o rodzajach testów będzie.

Kontaktując się z wybranym kandydatem, zapewne padnie pytanie, o jakie testy chodzi?O manualnych i automatycznych mowa była wcześniej, więc można ,,błysnąć” w temacie 🙂 Ale, czy ktoś będzie wykonywał testy funkcjonalne, czy niefunkcjonalne, a może regresywne też warto wiedzieć, aby móc zainteresowanej osobie dostarczyć więcej szczegółów. Albo odwrotnie. Analizując profil kandydata, lepiej ocenisz, czy jest to właściwy specjalista, którego szukasz.

Spójrzmy na opis poniższych obowiązków:

Można z niego wywnioskować, że osoba zajmuje się różnymi rodzajami testów, najprawdopodobniej metodą manualną – tu myślę o testach funkcjonalnych, ale również automatyczną, na co wskazuje doświadczenie w wykonywaniu testów wydajnościowych, które z założenia są testami automatycznymi. Zatem osoba testuje aplikację od strony funkcjonalnej, czyli sprawdza na ile owa aplikacja działa i jak działa oraz niefunkcjonalnej – ocenia cechy testowanego systemu – w tym przypadku, czy aplikacja jest wydajna.

No dobrze to teraz konkrety. Jakie mamy rodzaje testów?

TESTY FUNKCJONALE

Badają JAK i na ILE coś jest funkcjonalne. Inaczej – czy zaimplementowane funkcjonalności działają poprawnie, zgodnie z wymaganiami. Weźmy prosty przykład – kalkulator – w tym przypadku będzie to dodawanie i odejmowanie. Działa? Jest ok!

Tutaj jedną z najczęściej wykorzystywanych technik to:

Technika black-box testing (czarnej skrzynki).

Specjalista patrzy na aplikację tak, jakby z zewnątrz. Czy zadania, które powinny być realizowane, są faktycznie realizowane. Tester nie musi znać języka programowania. Nie potrzebna jest w tym przypadku wiedza ,,od środka”, czyli z obszaru kodowania. No dobrze, może czasem…, ale generalnie istotą jest to, że nie interesuje nas co dzieje się wewnątrz czarnej skrzynki (danego systemu) tylko wiemy, co do niej wchodzi – jakie dane i co powinno z niej wyjść – jaki rezultat. Nic ponadto.

Może posłużę się przykładem. Niech będzie blender. Wrzucamy owoce, warzywa, ustawiamy obroty, czas i uruchamiamy sprzęt (dane). Po wyznaczonym czasie, dajmy na to 30 sekundach otrzymujemy mus (rezultat). Tyle.

TESTY STRUKTURALNE

Koncentrują się na testowaniu kodu aplikacji. A więc tester powinien mieć wiedzę w zakresie architektury całego systemu no i oczywiście kodowania.

Z kolei tutaj wykorzystywana jest:

Technika White Box Testing (białej skrzynki)

W przeciwieństwie do testów czarnej skrzynki, gdzie patrzy się na coś z zewnątrz, w tym przypadku, zagląda się ,,do środka” programu, sprawdzany jest kod i błędy, które w nim zaistniały. Dobrze zatem, gdy tester zna język programowania.

A wracając do przykładu blendera. Zastanawiamy się nad tym, co dzieje się wewnątrz sprzętu. Znamy tutaj trybiki, który z którym wchodzi w interakcję i w jakiej kolejności.

TESTY NIEFUNKCJONALNE

Warto wiedzieć – niektórzy specjaliści używają nazwy – pozafunkcjonalne. Generalnie służą do oceny cech testowanego systemu, oprogramowania, aplikacji etc. A rodzajów ich jest wiele… Dla przykładu podaję kilka:

  • obciążeniowe
  • wydajnościowe
  • bezpieczeństwa
  • niezawodności
  • użyteczności

Załóżmy testujemy aplikację bankową. Obciążeniowe testy pozwolą nam zweryfikować, czy strona będzie działać (nie ,,zawiesi się”), jeżeli w tym samym momencie zaloguje się wiele osób. Wydajnościowe umożliwiają sprawdzenie, jak długo użytkownik musi czekać na ,,reakcję” strony, poszczególnych jej elementów (funkcji) w trakcie wykonywania kolejnych czynności. Np, zaloguje się w 3 sekundy, ale robiąc przelew, czeka 15 sekund no i czy taki stan rzeczy jest do przyjęcia. A może wszystko powinno szybciej działać? Bezpieczeństwa, jak sama nazwa wskazuje testowane są zabezpieczenia strony, aby nikt niepożądany nie miał dostępu do zasobów informacyjnych, poufnych danych. Użyteczności, po prostu. czy strona jest wygodna w obsłudze, czy coś nas nie denerwuje.

TESTY REGRESYWNE

Specjaliści testujący różne aplikacje, po wykryciu, że coś nie działa tak, jak powinno, raportują to – zgłaszają programiście. Programista naprawia ten błąd. Niestety zawsze istnieje prawdopodobieństwo, że naprawiając jedną rzecz… pojawiły się kolejne błędy. Dlatego należy sprawdzić główne funkcjonalności po takowej naprawie.

I tu wykorzystywane są testy regresywne (albo regresyjne, obydwie nazwy używane są w obiegu), aby to zweryfikować. Czy czasem podjęte działania, nie stały się przyczyną, pojawienia się nowych błędów, gdzieś w innych częściach aplikacji. Jak już zapewne domyślacie się, pracy przy tym jest co nie miara (trzeba powtarzać je wiele razy), zatem najczęściej są one zautomatyzowane.

**********

Powoli temat testowania dobiega końca. Czas podjąć kolejne wątki. Niemniej, aby dopełnić wszystko jak należy, warto wspomnieć o ,,esach floresach”, czyli narzędziach. Ponieważ pytacie o najbliższe spotkanie, odbędzie się ono niebawem (info na priv) i będziemy ,,rozkminiać” owe zagadnienie z pomocą kolegi Michała Dudziaka – fachowca, co zna się na rzeczy 🙂

See u,

Renata

One Comment, RSS

  1. Marcin

    Hej, ciekawy artykuł dla ludzi z małą wiedzą o IT, + dla Ciebie (dobry przykład z blenderem).
    Jednak można znaleźć trochę błędów, np. zamiast JMater powinno być JMeter.

    Również:
    „Można z niego wywnioskować, że osoba zajmuje się różnymi rodzajami testów, najprawdopodobniej metodą manualną – tu myślę o testach funkcjonalnych”

    Testy funkcjonalne nie oznaczają, że najprawdopodobniej są wykonywane manualnie. Jest to bardzo złe założenie 🙂

Your email address will not be published. Required fields are marked *

*