Testy szarej skrzynki

Czyli co wyjdzie z połączenia testów czarnej i białej skrzynki?

5/14/2024

Chyba już wspominałem, że w branży testowania można znaleźć sporo specyficznych określeń? Wcześniej testy dymne, a teraz jakieś skrzynki. Możliwe, że słyszeliście o popularnych testach czarnej i białej skrzynki, ale szara jest już zdecydowanie mniej znana (a na końcu tekstu opisałem też nieco testy czerwonej skrzyni). Zacznijmy jednak od początku.

Testy czarnej skrzynki

Testowanie czarnej skrzynki polega na testowaniu oprogramowania bez znajomości jego wewnętrznego działania. Oznacza to brak dostępu do kodu źródłowego oraz dokumentacji projektowej. Testerzy wprowadzają dane wejściowe i otrzymują dane wyjściowe - dokładnie tak jak potencjalni użytkownicy aplikacji. Celem takiego testowania jest naturalna interakcja z oprogramowaniem, bez wpływu wcześniej zdobytej wiedzy.

Przykładowo - testując aplikację bankową, nie interesuje nas jak zbudowana jest ona wewnętrznie. Schemat połączeń z API czy bazą danych nie jest tutaj istotny. Ważna jest próba symulacji działań użytkownika końcowego poprzez wykonanie odpowiednich scenariuszy testowych - logowanie do aplikacji, sprawdzenie salda konta czy przelew pieniędzy. To podejście pozwala na wykrycie wielu błędów, ale nie daje jednoznaczej odpowiedzi o ich przyczynie.

Testy białej skrzynki

Nie trudno się domyślić, że testy białej skrzynki są przeciwieństwem testów czarnoskrzynkowych. Testy białej skrzyni (lub inaczej testy strukturalne) odbywają się z pełną wiedzą o budowie oprogramowania. Tester ma pełen dostęp do wewnętrznych struktur i kodu źródłowego systemu. Niezbędna jest tu więc analiza logiki kodu - dlatego testy białej skrzynki są często wykonywane przez programistów.

Najbardziej powszechnym przykładem tego typu testów są testy jednostkowe sprawdzające działanie konkretnych funkcji bezpośrednio w kodzie aplikacji - nie ma tu miejsca na klikanie po interfejsie użytkownika. Dobrym przykładem jest też statyczna analiza kodu polegająca na sprawdzaniu struktury kodu bez jego uruchamiania.

Testy szarej skrzynki

rodzaj testów skrzyni
rodzaj testów skrzyni

Przechodzimy więc do testów szarej skrzynki, które oczywiście łączą w sobie cechy testów białej i czarnej skrzyni. W testach szarej skrzyni tester ma częściową wiedzę o wewnętrznych mechanizmach systemu, ale nie ma pełnego dostępu do kodu źródłowego. Ta metoda pozwala na bardziej wszechstronne i skuteczne testowanie, łącząc podejścia z dwóch różnych perspektyw. Z jednej strony skupiamy się na funkcjonalnościach widzianych oczami użytkownika końcowego, a z drugiej wykorzystujemy wiedzę techniczną do odnajdywania skrajnych czy specyficznych przypadków użycia.

Jest to właściwie standardowa praktyka dzisiejszych testerów oprogramowania. Znajomość (przynajmniej w podstawowym stopniu) budowy aplikacji pozwala na projektowanie skutecznych testów i uzyskiwania dokładnych wyników. Co więcej, tester z taką wiedzą może nawet pomóc w rozwiązaniu danego problemu.

Testy czerwonej skrzyni

Co ciekawe, w świecie IT znajdziemy też pojęcie testów czerwonej skrzyni. Na czym one polegają? Testy czerwonej skrzynki zawierają elementy testowania białej, czarnej i szarej skrzyni. Skupiają się one na perspektywie użytkownika końcowego, a co za tym idzie - kładą nacisk na użyteczność, dostępność i zgodność interfejsu ze standardami technicznymi. Konieczne jest tu zrozumienie potrzeb użytkowników, więc tester powinien wcielić się w rolę klienta.

Testy czerwonej skrzyni powinny sprawdzać nie tylko funkcjonalności, ale też odczucia z używania aplikacji. Należy zastanowić się tu, jakie cele i preferencje mają użytkownicy końcowi i przetestować czy dane oprogramowanie jest z nimi zgodne.

Chcesz być na bieżąco? Zapisz się do newslettera!

W każdy czwartek o 10:00 wyślę Ci wiadomość o moich nowych wpisach. Oprócz tego, dorzucę ciekawe artykuły, filmy czy inne materiały ze świata IT - oczywiście, związane głównie z testowaniem oprogramowania. To świetny sposób na naukę i ciągłe zdobywanie wiedzy.

Dziękuję, że czytasz mojego bloga!

Masz jakieś pytania? Z chęcią odpowiem :)

Radosław Wasik
Radosław Wasik