МЕТОДЫ ВЕРИФИКАЦИИ И ТЕСТИРОВАНИЯ ПРОГРАММ И СИСТЕМ
В фундаментальную концепцию проектирования ПС входят базовые положения, стратегии, методы, которые применяются на процессах ЖЦ и обеспечивают верификацию, проверку правильности путем доказательства и тестирование на множестве тестовых наборов данных. К методам проектирования ПС относятся структурные, объектно–ориентированные и др. Их основу составляют теоретические, инструментальные и прикладные средства, применяемые на процессах тестирования.
Теоретические средства определяют процесс программирования и тестирования программного продукта. Это методы верификации и доказательства правильности составленной спецификации программ, метрики (Холстеда, цикломатичная сложность Маккейба и др.) измерения отдельных характеристик, и выступают они в роли формализованных элементов теории определения правильности и гарантии свойств конечного ПО. Например, концепция «чистая комната» базируется на некоторых формализмах доказательства и изучения свойств процессов кодирования и тестирования программ. Что касается тестирования, то это проверка спецификации нотаций программ, используемых при описании тестов и покрытия соответствующих критериев программ [1–7].
Инструментальные средства – это такие способы поддержки кодирования и тестирования (компиляторы, генераторы программ, отладчики и др.), а также организационные средства планирования и отбора тестов для программ, которые обеспечивают обработку текста на ЯП и подготовку для них соответствующих тестов.
Для проверки правильности программ и систем используются следующие основные направления обеспечения правильности ПС.
1. Формальное доказательство
корректности программ осуществляется с помощью теоретических методов, основанные на задании формальных систем правил и утверждений, используемых при доказательстве правильности операторов программы и результатов их выполнения в режиме интерпретации [5, 8–11]. К средствам формальной проверки правильности относятся верификация и валидация ПС, которые вошли в состав регламентированных процессов ЖЦ стандарта ISO/IEC 12207.
2. Тестирование – это системный метод обнаружения ошибок в ПО путем исполнения выходного кода ПС на тестовых данных, сбор рабочих характеристик в динамике выполнения ПС в конкретной операционной среде [1–7]. Методы тестирования позволяют выявить в процессе выполнения ПС различные ошибки, дефекты и изъяны, вызванные аномальными ситуациями, сбоями оборудования и аварийным прекращением работы ПО.
3. Организационные аспекты проверки правильности.
Далее излагаются последовательно эти направления.