При тестировании методом белого ящика (структурное тестирование) мы покрываем следующие аспекты:
- Покрытие операторов (Statement Coverage): Выполнение каждого исполняемого оператора в коде.
- Покрытие ветвей (Branch Coverage) / Покрытие решений (Decision Coverage): Выполнение каждого возможного пути из условных операторов (
if, else, switch, циклы) хотя бы один раз.
- Покрытие путей (Path Coverage): Выполнение каждого возможного пути через код. Это наиболее полное, но часто непрактично из-за большого количества путей.
- Покрытие условий (Condition Coverage): Проверка каждого составного условия в условном операторе на
true и false независимо от других частей условия.
- Покрытие множественных условий (Multiple Condition Coverage): Проверка всех возможных комбинаций значений для каждого условия в условном операторе.
- Покрытие циклов (Loop Coverage): Тестирование выполнения циклов (ноль итераций, одна итерация, несколько итераций, максимум итераций).
- Покрытие потока управления (Control Flow Testing): Анализ и тестирование выполнения программы через граф потока управления.
- Покрытие потока данных (Data Flow Testing): Тестирование определения и использования переменных в программе.