Testy strukturalne

Testy strukturalne (ang. white-box testing, testy białej skrzynki, in. szklanej skrzynki) – rodzaj testów w inżynierii oprogramowania, polegających na testowaniu programu poprzez podawanie na wejściu takich danych, aby program przeszedł przez każdą zaimplementowaną ścieżkę. Zasady te są definiowane przez kryteria pokrycia wszystkich pętli oraz wszystkich warunków. Testy białej skrzynki nie są w stanie wykazać braku implementacji funkcji, którą powinien posiadać system docelowy. Sprawdzają jednak dokładnie operacje wykonywane w zaimplementowanych metodach[1].

Nierzadko w trakcie testowania programu techniką szklanej skrzynki wprowadzane są do wnętrza programu sztuczne, specjalnie spreparowane dane w celu dokładniejszego przetestowania reakcji. Ten sposób jest nazywany metodą „Słonia w Kairze”.

Przedmiot badania

Testy strukturalne to metoda testowania programu na poziomie kodu źródłowego. Wykorzystują techniki takie jak testowanie przepływu danych, testowanie rozgałęzień i testowanie ścieżek, jako wytyczne do stworzenia środowiska wolnego od błędów. Ważnym elementem testów strukturalnych jest to, aby wiadomo było, która linijka programu jest obecnie wykonywana i jakie powinno być jej prawidłowe wyjście[2].

Zalety

Według przeglądu Nidthry i Dondetiego, testy strukturalne to jedna z dwóch największych stosowanych obecnie metod testowania. Jej główne zalety to:

  1. Dokładność wynikająca z bezpośredniego przełożenia na strukturę kodu źródłowego.
  2. Łatwość optymalizacji owego kodu, dzięki jasnej identyfikacji wąskich gardeł.
  3. Łatwość zautomatyzowania.
  4. Inżynieryjna klarowność procedury: jej postępu i zakończenia[3].

Wady

Pomimo tego, że testy strukturalne mają wiele istotnych zalet, nie są jednak idealne i posiadają pewne wady:

  1. Zespół testowy musi posiadać głęboką, profesjonalną wiedzę o strukturze kodu źródłowego.
  2. W niektórych przypadkach niemożliwe jest przetestowanie każdego potencjalnego stanu programu.
  3. Testy koncentrują się na istniejących aspektach kodu; problemy braków funkcjonalności mogą nie zostać wykryte[4].

Przypisy

  1. Mohammed Ehmer Khan: Different Forms of Software Testing Techniques for Finding Errors. 2010.
  2. Laurie Williams: White-Box Testing. 2006, s. 60–61.
  3. Srinivas Nidhra, Jagruthi Dondeti: Black Box and White Box Testing Techniques – A Literature Review. 2012.
  4. Shivani Acharya, Vidhi Pandya, Bridge between Black Box and White Box – Gray Box Testing Technique, International Journal of Electronics and Computer Science Engineering, 2012, ISSN 2277-1956.

Linki zewnętrzne