ГОСТ Р МЭК 62279—2016
К сожалению, эксперименты и аналитические исследования показывают, что lV-вариангное программирова
ние не всегда столь эффективно, как хотелось бы. Даже если используются различные алгоритмы, то разнообраз
ные версии программного обеспечения слишком часто перестают работать на одинаковых входах.
Двумя альтернативами W-вариантному программированию является разнообразие проекта и функциональ
ное разнообразие. Разнообразив проекта включает использование множества компонентов, каждый из которых
разработан отличным от других способом, но реализует ту же функцию. Функциональное разнообразие включает
решение одной и той же проблемы функционально различными способами. Независимо от подхода в настоящее
время нет эффективного метода, оценивающего уровень разнообразия.
D.17 Динамическая реконфигурация
Цель. Обеспечение функциональности системы, несмотря на внутренний сбой.
Описание.
Л
огическая архитектура системы должна быть такой, чтобы она могла быть отображена на под
множестве доступных средств системы.
Л
огическая архитектура должна быть способна к обнаружению отказа в
физических средствах и дальнейшей повторной реализации логической архитектуры на другом подмножестве
доступных средств, остающихся функционирующими. Несмотря на то. что данный метод в основном традиционно
ограничен только восстановлением отказавших модулей аппаратных средств, он применим также к ошибкам в про
граммных средствах при наличии достаточной «избыточности времени прогона» для повторного выполнения про
граммы или при наличиидостаточных избыточныхданных, которые обеспечат незначительное влияние отдельного и
изолированного отказа.
Несмотря на го. что данный метод традиционно применялся к аппаратным средствам, он разрабатывается
для применения к программному обеспечению и. таким образом, к полной системе. Данный метод должен рассма
триваться на первом этапе проектирования системы.
D.18 Классы эквивалентности и тестирование разбиением входных данных
Цель. Адекватное тестирование программных средств с использованием минимума тестируемых данных.
Тестируемые данные образуются путем выбора разбиений входных данных предметной области, требующихся
для анализа программных средств.
Описание. Данный метод тестирования основывается на отношении эквивалентности входныхданных, опре
деляющем разбиение входных данных предметной области.
Тестовые примеры выбираются с целью охвата всех предварительно специфицированных разбиений. Из
каждого класса эквивалентности выбирается, по меньшей мере, один тестовый пример.
Существуют следующие основные возможности разбиения входных данных:
- классы эквивалентности, образованные из спецификации. Интерпретация спецификации гложет быть ори
ентирована либо на входные значения, например, выбранные значения считаются одинаковыми, либо ориентиро
вана на выходные значения, например набор значений приводит к одному и тому же функциональному результату;
- классы эквивалентности, образованные в соответствии с внутренней структурой программы. Результаты
класса эквивалентности определяются из статического анализа программ, например набор значений обрабатыва
ется одним и тем же способом.
D.19 Коды обнаружения и исправления ошибок
Цель. Обнаружение и исправление ошибок в чувствительной к ним информации.
Описание. Для информации, состоящей из
п
битов, генерируется закодированный блок из
к
битов, который
позволяет обнаруживать и исправлять г ошибок. Примерами кодов могут быть;
- коды Хэмминга;
- циклические коды;
- полиномиальные коды;
- хэш-коды;
- криптографические коды.
D.20 Предположение ошибок
Цель. Исключение ошибки программирования.
Описание. Опыт тестирования и интуиция в сочетании со сведениями и заинтересованностью относительно
тестируемой системы могут добавить некоторые неклассифицированные тестовые примеры к набору заданных те
стовых примеров. Специальные значения или комбинации значений могут быть подвержены ошибкам. Некоторые
вызывающие интерес тестовые примеры могут быть получены из анализа контрольных списков. Следует также
рассмотреть, является ли система достаточно устойчивой. Например, следует ли нажимать клавиши на передней
панели слишком быстро или слишком часто. Что произойдет, если две клавиши нажать одновременно.
D.21 Введение ошибок
Цель. Подтверждение адекватности набора тестовых примеров.
Описание. Некоторые известные типы ошибок вводятся (подсеиваются) в программу, и программа выпол
няется с тестовыми примерами в режиме тестирования. При обнаружении только некоторых подсеянных ошибок
тестовый пример становится неадекватным. Отношение числа найденных подсеянных ошибок к общему числу
75