Разница между структурными и функциональными критериями тестирования заключается в том, как они описывают тестируемую программу и её особенности.
Структурные критерии используют информацию о структуре программы (модель «белого ящика»). 13 При таком подходе известен исходный текст программы или её спецификация в виде потокового графа управления. 14 Структурные критерии позволяют сформировать тестовые наборы, которые определяют ошибки некорректной реализации. 2
Функциональные критерии формулируются в описании требований к программному изделию (модель «чёрного ящика»). 13 При таком подходе неизвестна структура программы и недоступны исходные коды, но известна спецификация программного продукта. 2 Функциональные критерии проверяют соответствие тестируемого элемента программной системы и его спецификации. 2
Таким образом, структурные критерии фокусируются на коде программы и её реализации, а функциональные критерии — на описании требований к продукту и его взаимодействии с окружением.