Роль тестирования в сертификации ПО систем с высокими требованиями к надежности и безопасности Алексей Николаев. ООО НПП «ЭКРА»
Системы с высокими требованиями к надежности и безопасности Это системы, в которых сбой или крах могут: Привести к смерти либо серьезному ущербу для здоровья людей; Привести к разрушению либо серьезным повреждениям дорогостоящего оборудования; Нанести ущерб окружающей среде.
Особенность систем с высокими требованиями к надежности и безопасности Отличительная особенность таких систем: Известный заказчик Относительно узкая сфера применения Присутствует управление планами поставки Ограничения в сроках поставки готовых испытанных продуктов заказчику Изменения в коде, как правило, выполняются с санкции заказчика Производство таких систем с соблюдением определенных стандартов и правил Оформление на них достаточно полной технологической документации
Надежность – одна из характеристик качества ПО согласно ГОСТ Р ИСО/МЭК 9126-93
Взаимосвязь характеристик качества ПО Источник: С. Макконнелл
Оценка надежности ПО Надежность функционирования программ – динамическое понятие, проявляющееся во времени и существенно отличающееся от понятия корректности программ. При оценке качества программ по показателям надежности регистрируются только такие искажения в процессе динамического тестирования с исполнением программ, которые приводят к потере работоспособности программ или их крупных компонентов .
Стандарты на жизненный цикл ПО в каждой из отрасли Стандарты в отраслях: Транспорт Автомобильный (ISO 26262) Авиационный (DO-178) Медицина (IEC 62304) Атомная энергетика (IEC 60880, IEC 62138) Космос (ECSS-E-ST-40C)
Общие черты для большинства стандартов жизненного цикла ПО Базовым стандартом для ПО такого класса является: IEC 61508 «Функциональная безопасность систем электрических, электронных, программируемых электронных, связанных с безопасностью» Если в какой-то отрасли еще не созданы специфические для нее стандарты, то используется IEC 61508.
Управление качеством разрабатываемого ПО Высокая функциональная безопасность и надежность ПО достигается и определяется преимущественно за счет технологий обеспечения качества на всех этапах жизненного цикла (ЖЦ) ПО . Во всех стандартах значительное внимание уделяется технологическим процессам и инструментальным системам обеспечения безопасности и качества ЖЦ ПО .
Взаимосвязь наиболее признанных и применяемых в мире стандартов в области разработки ПО
Совокупность нормативных документов и методических руководств для программных средств
Стандарты оценки качества и надежности ПО Определяют характеристики ПО (метрики), используемые для качественной и количественной оценки надежности: ISO/IEC 9126 IEEE 982 IEEE 1061 и др.
Как же достигается высокая надежность и безопасность ПО?
Основные причины ошибок в ПО Причина Частота появления, % Неполное или ошибочное техническое задание (ТЗ) 28 Отклонение от ТЗ 12 Ошибочная логика или последовательность операций 12 Пренебрежение правилами программирования 10 Ошибочная выборка данных 10 Ошибочные арифметические операции 9 Неточная запись 8 Нехватка времени на решение 4 Неправильная обработка прерываний 4 Неправильные данные 3
Типовая V-модель разработки ПО и этапы
Атомная энергетика
Иерархическая взаимосвязь между документами МАГАТЭ и МЭК Высший уровень : документы МАГАТЭ по безопасности; Первый уровень : стандарт МЭК 61513 «Общие требования к системам, важным для безопасности АЭС»; Второй уровень : детализация требований по общим вопросам (имеются ссылки в документе первого уровня); Третий уровень : требования к конкретному оборудованию, техническим методам или конкретной деятельности.
Атомная энергетика стандарты и требования к сертификации ПО МЭК 61513 следующим образом устанавливает классы систем, важных для безопасности Функции безопасности   Класс 1 Класс 2 Класс 3 Категория А +     Категория В + +   Категория С + + + Не классифицированные + + +
Функции безопасности и их соответствие ГОСТ  Функции безопасности ГОСТ Категория А ГОСТ Р МЭК 60880-2011 Категория В ГОСТ Р МЭК 62138-2010 Категория С ГОСТ Р МЭК 62138-2010
Международные стандарты (требования к ПО) Международные нормативные документы: ГОСТ Р МЭК 61226-2011. Атомные станции. Системы контроля и управления, важные для безопасности. Классификация функций контроля и управления ГОСТ Р МЭК 61513-2011. Атомные станции. Системы контроля и управления, важные для безопасности. Общие требования ГОСТ Р МЭК 60880-2011. Атомные электростанции. Системы контроля и управления, важные для безопасности. Программное обеспечение компьютерных систем, выполняющих функции категории А ГОСТ Р МЭК 62138-2010. Атомные электростанции. Системы контроля и управления, важные для безопасности. Программное обеспечение компьютерных систем, выполняющих функции категорий В и С IEEE 1012-1998. « Верификация и валидация программных средств »
Российские стандарты (требования к ПО) Российские нормативные документы: ГОСТ 28195-89. «Оценка качества программных средств. Общие положения» ГОСТ Р ИСО/МЭК 9126-93. «Оценка программной продукции. Характеристики качества и руководства по их применению» ГОСТ Р ИСО/МЭК 12207-2010. «Информационные технологии. Процессы жизненного цикла программных средств» РД-03-17-2001. «Положение об аттестации программных средств, применяемых при обосновании безопасности объектов использования атомной энергии» ГОСТ 34.ххх. «Стандарты информационной технологии» ГОСТ 19.ххх. «Единая система программной документации» (ЕСПД)
Требования к выходным документам ЖЦ ПО Стандартами рекомендуется подготовить и утвердить содержание следующих планов: Разработки и реализации всего ЖЦ ПО (модель ЖЦ ПО, компоненты, внешняя и технологическая среда проектирования) Верификации и тестирования (методы и средства устранения дефектов и достижения необходимых показателей качества) Реализации процессов интеграции компонентов Управления конфигурацией и сопровождения Тиражирования, адаптации и внедрения версий ПО, включая подготовку и обучение пользователей Документирования процессов и результатов ЖЦ ПО, включая создание и выпуск эксплуатационной документации Управления и обеспечения безопасности ПО (методы и средства гарантирования требуемой безопасности)
Циклы разработки ПО и выходные результаты каждого этапа Комплекс стандартов ГОСТ 34 можно считать более общим по сравнению со стандартом ЕСПД . Иерархия стандартов: комплекс стандартов ГОСТ 34 ГОСТ Р ИСО/МЭК 12207-2010 ГОСТ 19
Повышение надежности ПО Основные средства повышения надежности: Введение избыточности временной программной информационной Методы оперативного рестарта
Испытания надежности ПО Используется динамическая среда функционирования, максимально приближенная к реальной: Экспериментальные методы оценивания надежности ПО в штатном режиме Форсированные испытания полное искажение, предельные значения ключевых параметров тестов каждого типа внешней информации предельно малые и большие интенсивности суммарного потока и каждого типа внешней информации
Задачи перед группой тестирования Испытания надежности и функциональной безопасности ставят перед группой тестирования следующие задачи: Составление плана и программы проведения испытаний функциональной безопасности Разработка тестовых сценариев и динамических моделей внешней среды для генерации тестов Отладка тестовых сценариев и генераторов динамических тестов Верификация, проверка, выявление и исправление дефектов генераторов динамических тестов Определение качества тестов и степени реализации функций и характеристик безопасности Пересмотр и корректировка эксплуатационной документации
Заключение Сертификация один из способов обеспечения и повышения надежности ПО. Основные изменения в процессах разработки ПО: Создание комплекта документов на каждом этапе ЖЦ ПО Необходимость адаптации процессов ЖЦ ПО к выбранной методологии разработки Увеличение времени и стоимости разработки Увеличение ресурсов на тестирование
Спасибо за внимание! Вопросы? nl-79@mail.ru