2.4 Критерии полноты тестирования
Критерии полноты тестирования должны выбираться на основе рисков проекта и того, какие ошибки в тестируемом ПО наиболее важны. На практике используют критерии следующих типов.
Критерии покрытия структурных элементов тестируемой системы, которые выполняются или задействуются в ходе тестов. Такие критерии называются структурными критериями и используются, если код тестируемой системы доступен для анализа.
Структурные критерии покрытия позволяют отслеживать, были ли отдельные элементы кода хотя бы раз выполнены в ходе тестирования, однако не могут ничем помочь в обнаружении нереализованных требований.
На уровне отдельных операций используют критерии покрытия кода, основанные на элементах графа потока управления или графа потоков данных.
К первому типу относятся критерий покрытия инструкций или ветвлений в коде, критерий покрытия комбинаций элементарных условий, используемых в ветвлениях.
Критерии покрытия элементов требований. Они называются функциональными критериями и устроены подобно структурным критериям покрытия, только в качестве покрываемых элементов рассматриваются не сценарии взаимодействия компонентов, участки их кода или комбинации условий ветвлений, а сценарии использования, отдельные правила и ограничения в требованиях и комбинации условий, при которых задействуются эти правила и ограничения.
Такие критерии полноты позволяют отслеживать, что тестирование проверяет все ограничения, указанные в требованиях, однако они не позволяют целенаправленно обнаружить дополнительные функции или закладки в коде, что можно сделать, используя структурные критерии.