ГОСТРМЭК 62279—2016
- повторная проверка только измененных программных модулей:
- повторная проверка всех подвергнувшихся воздействию программных модулей:
- повторная проверка всей системы.
D.33 Ограничение доступа/инкапсуляция информации
Цель. Увеличение устойчивости и пригодности для обслуживания программного обеспечения.
Описание. Общедоступные для всех программных компонентов данные могут быть случайно или некоррек
тно модифицированы любым из этих компонентов.
Л
юбые изменения этих структур данных могут потребовать
подробной проверки программного кода и серьезных исправлений.
Ограничение доступа представляет собой общий метод для минимизации указанных выше проблем. Ключе
вые структуры данных «скрыты», и с ними можно работать только через конкретный набор процедур доступа. Это
позволяет модифицировать внутренние структуры данных или добавлять новые процедуры и при этом не оказы
вать влияния на функциональное поведение остальных программных средств. Например, имя директории могут
иметь процедуры доступа «вставить», «удалить» и «найти». Процедуры доступа и структуры внутренних данных
могут быть изменены (например, при использовании различных методов просмотра или запоминании имен на
жестком диске), не оказывая влияния на логическое поведение остальных программных средств,
использующих эти процедуры.
Эта концепция абстрактных типов данных непосредственно поддерживается в ряде языков программирова
ния. но основной принцип может быть применен для любого используемого языка программирования.
D.34 Тестирование интерфейса
Цель. Продемонстрировать, что интерфейсы подпрограмм не содержат ошибок или любых ошибок, которые
приводят к отказам в определенном приложении программного обеспечения, или обнаружить все ошибки, которые
могут быть в интерфейсах подпрограмм.
Описание. Возможны несколько уровней детализации или полноты тестирования. К наиболее важным уров
ням относится тестирование:
- всех переменных интерфейса с их предельными значениями;
- всех переменных интерфейса по отдельности с их предельными значениями с переменными других интер
фейсов с их нормальными значениями:
- всех значений предметной области каждой переменной интерфейса с другими переменными интерфейса
с их нормальными значениями;
- всех значений всех переменных в разных комбинациях (возможно только для небольших интерфейсов);
- при заданных условиях тестирования, относящихся к каждому вызову каждой подпрограммы.
Эти тесты особенно важны, если интерфейсы не содержат операторов, обнаруживающих неправильные зна
чения параметров. Такие тестирования также важны при генерации новых конфигураций ранее существовавших
подпрограмм.
D.35 Подмножество языка
Цель. Снижение вероятности внесения программных ошибок и повышение вероятности обнаружения любых
оставшихся ошибок.
Описание. Язык исследуется для определения программных конструкций, подверженных ошибкам либо
сложных для анализа, например, используя методы статического анализа. После этого определяется языковое
подмножество, которое исключает такие конструкции.
D.36 Сохранение информации о выполнении программы
Цель. Безопасное прекращение работы программы в случае, если она попытается выполнить неразрешен
ное действие.
Описание. Все соответствующие подробные сведения о хаждом разрешенном выполнении программы до
кументируются. Во время нормального режима работы каждое выполнение программы сравнивается с набором
разрешенных выполнений. Если появляется расхождение, то предпринимаются действия по безопасности.
Документация о выполненных операциях может содержать последовательность индивидуальных шагов «от
решения к решению» (DDpaths) или последовательность отдельных обращений к массивам, записям или томам,
либо к тому и другому.
Возможны различные методы хранения сведений о последовательностях шагов выполнения программы.
Чтобы отобразить последовательность выполнения на отдельное большое число или на последовательность чи
сел. могут использоваться методы хэш-кодирования. При нормальном режиме работы перед выполнением выход ной
операции значения чисел, отображающих последовательности шагов выполнения программы, должны быть
сопоставлены со значениями, сохраненными в памяти.
Учитывая, что число возможных комбинаций таких последовательностей шагов от решения к решению у
одной программы очень велико, полная интерпретация программы может оказаться невыполнимой. В этом случае
данный метод может быть применен на уровне компонентов.
82