Роль тестирования в сертификации ПО систем с высокими требованиями к надежности и безопасности Алексей Николаев. ООО НПП «ЭКРА»
Системы с высокими требованиями к надежности и безопасности Это системы, в которых сбой или крах могут: • Привести к смерти либо серьезному ущербу для здоровья людей; • Привести к разрушению либо серьезным повреждениям дорогостоящего оборудования; • Нанести ущерб окружающей среде.
Особенность систем с высокими требованиями к надежности и безопасности Отличительная особенность таких систем: • Известный заказчик • Относительно узкая сфера применения • Присутствует управление планами поставки • Ограничения в сроках поставки готовых испытанных продуктов заказчику • Изменения в коде, как правило, выполняются с санкции заказчика • Производство таких систем с соблюдением определенных стандартов и правил • Оформление на них достаточно полной технологической документации
Надежность – одна из характеристик качества ПО согласно ГОСТ Р ИСО/МЭК 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