ГОСТ Р МЭК 60880—2010
Приложение Е
(справочное)
Верификация и тестирование программного обеспечения
Е.1 Деятельность по верификации и тестированию программного обеспечения
Настоящий раздел содержит руководство по верификации и тестированию программного обеспечения. В
зависимости от тестируемой программы используемые для этой цели различные методы являются более или
менее эффективными в обнаружении дефектов программы. Следующие основные методы верификации и тести
рования программного обеспечения взаимно дополняют друг друга: основанный на инструментальных програм
мах статический анализ кода (например, сравнение модификаций), проверка рабочей программы (визуальный
анализ) и динамическое выполнение (например, имитация реальной работы программного обеспечения). Боль
шинство из этих методов представляет собой рекомендуемые систематические подходы. Может применяться
ряд дополнительных подходов к тестированию, включая статистическое тестирование, которое может использо
ваться для поиска случаев, не охваченных систематическим подходом.
Обзор возможных методов приведен в таблице Е.4.1. В случав необходимости для различных частей про
граммы следует выбрать различные методы и различные критерии для подбора данных тестирования с тем.
чтобы определить, является ли рассматриваемая часть программы свободной от ошибок, или определить дове
рительный уровень. Выбор зависит от внутренней структуры части программы, требуемого уровня надежности,
запросов, поступающих на нее при эксплуатации станции, и имеющихся средств тестирования.
При тестировании программного обеспечения следует рассматривать различные уровни проекта программ
ного обеспечения (например, уровни модуля, подсистемы и системы).
Е.2 Системный подход
Каждый модуль следует систематически верифицировать и тестировать на основе системного подхода в
соответствии с их предназначением и связанными с ними критериями охвата. В дополнение к неавтоматизиро
ванным верификации и тестированию следует как можно шире применять автоматизированные средства вери
фикации и тестирования. Результаты следует сверять с ожидаемыми результатами, полученными из специфика
ции на программный модуль. С входными и выходными данными следует обращаться также как и в системе
безопасности.
Таблица Е.4.2 является контрольным списком, который может интерпретироваться согласно требованиям
для каждого отдельного случая. Из-за большого разнообразия случаев, встречающихся на практике, невозможно
рекомендовать какую-либо комбинацию тестов в качестве нормативной для определенного класса применений.
Однако в таблице отмечено, какие тесты следует проводить в любых условиях. С другой стороны, очевидно, чтодля
конкретного приложения не могут быть выполнены все комбинации всех тестов, также как и все тесты в отдель
ности.
На уровне подсистемы программное обеспечение частично интегрируется в систему. Тестирования на уровне
подсистемы подтверждают должную интеграцию программных модулей. Необходимо разграничивать случаи,
когда существует зависимость по потоку данных между модулями программного обеспечения, а также случай,
когда такой зависимости не существует. Для достижения уверенности в правильности следования всем независи
мым ветвлениям в подсистеме необходимо провести тестирование. Следует также использовать контрольные
тесты на границах входных областей и на пределах рабочей области модуля.
Следует использовать тот же набор тестовых данных, что и на уровне модулей. Результаты следует сверять
с предварительно рассчитанными значениями. Параметры должны быть входными и выходными по отношению
к подсистеме точно так же. как и в системе безопасности. В тех случаях, когда это практически возможно, испыта
ние на уровне подсистемы следует проводить с использованием конфигурации технического обеспечения, иден
тичного целевому техническому обеспечению.
На уровне системы программное обеспечение полностью интегрируется аппаратными средствами. Тест на
уровне системы подтверждает должную интеграцию подсистем. Тестирование следует проводить прогоном про
грамм с использованием реалистической модели или реалистической версии системы, контролируемой или уп
равляемой системами класса 1.
Настоящее тестирование всей системы необходимо проводить в соответствии с положениями об эксплуа
тационных характеристиках, приведенных в спецификации требований к программному обеспечению. Помимо
описанной выше деятельности по тестированию следует проводить системный временнйй анализ и проверку.
Е.З Статистические методы
Статистические методы могут применяться в дополнение к системным методам.
65