Структурное тестирование, несмотря на высокую степень формализации, никогда не сможет полностью заменить функциональное, так как в процессе проектирования программы некоторые входные условия могут быть упущены.
Функциональное тестирование – это тестирование, проводимое для проверки соответствия программной системы или программного модуля специфицированным функциональным требованиям.
При функциональном тестировании игнорируются внутренние механизмы работы программы или программной системы; все внимание фокусируется только на выходных значениях, генерируемых в ответ на выбранные входные значения и условия выполнения.
При функциональном тестировании графовые модели используются весьма редко, а если и используются, то не отражают внутреннюю логику работы программы.
Рассмотрим наиболее широко применяемые методы функционального тестирования, или тестирования по принципу "черного ящика".