Testy funkcjonalne

Testy funkcjonalne, in. testy czarnej skrzynki – rodzaj testów w inżynierii oprogramowania, w których osoba testująca nie zna budowy programu poddanego testom. Najczęściej wykonują je osoby spoza zespołu autorów programu, często – osoby nieposiadające wiedzy z zakresu programowania, np. zwykli potencjalni użytkownicy. Głównym przedmiotem testu nie jest budowa wewnętrzna programu, lecz jego założenia funkcjonalne i zewnętrzne interfejsy[1].

Testy funkcjonalne mają wykrywać błędy implementacji funkcjonalności zawartych w specyfikacji wymagań. Zakres badanych wartości jest zwykle inny niż w przypadku testów strukturalnych.

Testy czarnej skrzynki mają większą szansę wykrycia błędów, ale jednocześnie nie dostarczają precyzyjnej informacji na temat przyczyny wystąpienia błędu w programie. Ze względu na szeroki zakres funkcji podlegających testom w zaawansowanych systemach informacyjnych często ogranicza się dane testowe na podstawie podobieństwa danych (klas podobnych lub równoważnych). Dzięki temu możliwe jest przetestowanie większego zakresu danych przy jednoczesnym zmniejszeniu liczby testów o bardzo zbliżonych przejściach przez program[2].

Procedura testu

Dokładna znajomość kodu programu, struktury wewnętrznej i ogólnej wiedzy programistycznej nie jest wymagana. Osoba testująca jest świadoma tego, co oprogramowanie powinno robić, ale nie wie, jak to się odbywa. Zdaje sobie sprawę, że dane wejściowe zwracają pewne dane wyjściowe, ale nie skupia się na tym, w jaki sposób oprogramowanie generuje dane wyjściowe, ponieważ to nie jest przedmiotem jej testów[3].

Przypadki testowe

Przypadki testowe oparte są na specyfikacjach i wymaganiach, tzn. na tym co program ma robić. Zazwyczaj pochodzą one z zewnętrznych opisów oprogramowania, specyfikacji wymagań lub ustaleń projektowych. Tester wybiera zarówno poprawne, jak i nieprawidłowe dane wejściowe i ocenia dane wyjściowe, zazwyczaj na podstawie wyniku, o którym wiadomo że jest poprawny[4].

Scenariusze testowe

Można się spotkać z określeniem scenariusz testowy. Jest to nic innego jak kilka przypadków testowych wykonywanych w celu sprawdzenia danej funkcjonalności[5].

Przypisy

  1. Mohammed Ehmer Khan: Different Forms of Software Testing Techniques for Finding Errors. 2010.
  2. Srinivas Nidhra, Jagruthi Dondeti: Black Box and White Box Testing Techniques – A Literature Review. 2012.
  3. Milind G. Limaye: Software Testing. Tata McGraw-Hill Education, 2009. ISBN 978-0-07-013990-9.
  4. Jerry Gao, H.-S.J. Tsao, Ye Wu: Testing and Quality Assurance for Component-based Software. Artech House, 2003. ISBN 978-1-58053-735-3.
  5. Scenariusz testowy - przykład, testerzy.pl [dostęp 2021-11-07] (pol.).

Linki zewnętrzne