Структурные критерии используют модель программы в виде "белого ящика", что предполагает знание исходного текста программы или спецификации программы в виде потокового графа управления. Структурная информация понятна и доступна разработчикам подсистем и модулей приложения, поэтому данный класс критериев часто используется на этапах модульного и интеграционного тестирования (Unit testing, Integration testing).
Структурные критерии базируются на основных элементах УГП, операторах, ветвях и путях.
На пример 3.1 приведен пример простой программы. Рассмотрим условия ее тестирования в соответствии со структурными критериями.
1 public void Method (ref int x) { 2 if (x>17) 3 x = 17-x; 4 if (x==-13) 5 x = 0; 6 } Пример 3.1. Пример простой программы, для тестирования по структурным критериям 1 void Method (int *x) { 2 if (*x>17) 3 *x = 17-*x; 4 if (*x==-13) 5 *x = 0; 6 } Пример 3.1.1. Пример простой программы, для тестирования по структурным критериямТестовый набор из одного теста, удовлетворяет критерию команд (C0):
(X,Y)={(xвх=30, xвых=0)} покрывает все операторы трассы 1-2-3-4-5-6