- •Надежность программного обеспечения
- •Общие сведения Сведения об эумк
- •Методические рекомендации по изучению дисциплины
- •Изучение теоретической темы.
- •Рабочая учебная программа
- •Учреждение образования
- •«Белорусский государственный университет
- •Информатики и радиоэлектроники»
- •1. Содержание дисциплины
- •1. Индивидуальные практические работы, их характеристика
- •2. Контрольные работы, их характеристика
- •3. Курсовая работа, ее характеристика
- •4. Литература
- •4.1.Основная
- •4.2. Дополнительная
- •5. Перечень компьютерных программ, наглядных и других пособий, методических указаний и материалов и технических средств обучения
- •Теоретический раздел Введение
- •1. Основные понятия и определения в области надёжности аппаратного обеспечения компьютерных систем
- •2. Показатели надежности компьютерных систем
- •2.1. Общие сведения
- •2.2. Показатели надежности невосстанавливаемых объектов
- •2.2.1. Вероятность безотказной работы
- •2.2.2. Вероятность отказа
- •2.2.3. Плотность распределения наработки до отказа
- •2.2.4. Интенсивность отказов
- •2.2.5. Средняя наработка до отказа
- •2.3. Показатели надежности восстанавливаемых объектов
- •2.3.1. Коэффициент готовности
- •2.3.2. Стационарный коэффициент готовности
- •2.4. Основные модели, используемые в теории надежности
- •3. Основные понятия и определения в области надежности программного обеспечения компьютерных систем
- •3.1. Проблема надежности программного обеспечения и её актуальность
- •3.2. Понятие свойств, функций и требований к программному обеспечению. Критерии качества требований
- •Корректность (правильность) требований
- •Недвусмысленность требований
- •Полнота набора требований
- •Непротиворечивость требований
- •Упорядоченность по важности и/или стабильности
- •Проверяемость требований (верифицируемость)
- •Целостность
- •Модифицируемость
- •Трассируемость
- •3.3. Понятие ошибки и отказа программного обеспечения
- •3.4. Понятие надежности программного обеспечения
- •3.5. Особенности программ по сравнению с аппаратурой
- •4. Анализ причин появления ошибок в программном обеспечении
- •4.1. Процесс разработки программного обеспечения в соответствии со стандартом стб исо/мэк 12207-2003
- •4.2. Причины появления ошибок в программном обеспечении
- •5. Модели надежности программного обеспечения
- •5.1. Общие сведения
- •5.2. Модель Джелинского–Моранды
- •5.3. Модель Шика–Волвертона
- •5.4. Геометрическая модель
- •5.5. Статистическая модель Миллса
- •5.6. Модель Нельсона
- •5.7. Статистическое моделирование надёжности программ
- •6. Стандартизация оценки надежности программных средств в Республике Беларусь
- •6.1. Общие сведения о стандартах в области оценки качества программных средств
- •6.2. Оценка надежности программных средств по гост 28195–99
- •6.3. Оценка надежности программных средств по стб исо/мэк 9126–2003
- •1. Определение требований к надежности
- •2. Подготовка к оцениванию
- •3. Процедура оценивания
- •7. Оценка надежности программных средств в соответствии с международными стандартами iso/iec 9126-1-3:2001-2003 и iso/iec 14598-1:1999
- •7.1. Общие сведения о сериях стандартов iso/iec 9126-1-4:2001-2004 и iso/iec 14598-1-6:1998-2001
- •7.2. Модель надежности программных средств по стандарту iso/iec 9126-1:2001
- •7.3. Внутренние метрики надежности программных средств по стандарту iso/iec 9126-3:2003
- •7.4. Внешние метрики надежности программных средств по стандарту iso/iec 9126-2:2003
- •7.5. Метод оценки надежности программных средств по стандарту iso/iec 14598–1:1999
- •1. Установка требований к оценке надежности
- •1.1. Установка цели оценки
- •1.2. Идентификация типов продуктов
- •1.3. Определение модели надежности
- •2. Определение оценки надежности
- •2.1. Выбор метрик надежности
- •2.2. Установка уровней ранжирования метрик
- •2.3. Установка критериев для оценки
- •8. Тестирование программного обеспечения
- •8.1. Введение в тестирование по
- •8.2. Определение тестирования по
- •8.3. Объекты тестирования
- •8.4. Направления тестирования по
- •8.5. Принципы разработки тестов
- •8.6. Информационные потоки процесса тестирования
- •8.7. Принципы организации тестирования
- •8.8. Методы тестирования по
- •8.8.1. Общие сведения
- •8.8.2. Структурное тестирование
- •8.8.2.1. Понятие потокового графа, пути, цикломатической сложности
- •8.8.2.2. Тестирование по критерию путей
- •8.8.2.3. Тестирование по критерию ветвей
- •8.8.2.4. Метод тестирования базисных путей
- •8.8.2.5. Тестирование циклов
- •8.8.3. Функциональное тестирование программного обеспечения
- •8.8.3.1. Общие сведения
- •8.8.3.2. Пример иллюстрации сложности задачи разработки тестов
- •8.8.3.3. Метод эквивалентного разбиения
- •8.8.3.4. Метод анализа граничных условий
- •8.9. Документирование тестов
- •8.10. Методика тестирования программных средств
- •8.10.1. Общие сведения
- •8.10.2. Тестирование модулей
- •8.10.3. Тестирование сборки
- •8.10.3.1. Восходящее тестирование сборки
- •8.10.3.2. Нисходящее тестирование сборки
- •8.10.4. Тестирование правильности
- •8.10.5. Системное тестирование
- •8.11. Пример тестирования программы
- •1) Подготовка процесса
- •4) Анализ требований к программному средству
- •5) Проектирование программной архитектуры
- •6) Техническое проектирование программного средства
- •7) Программирование и тестирование модулей
- •Компонент пользовательского интерфейса:
- •Компонент математического расчёта:
- •8) Сборка программного средства
- •9) Квалификационные испытания программного средства
- •12) Ввод в действие программного средства
- •13) Обеспечение приёмки программного средства
- •8.12. Регрессионное тестирование
- •8.13. Документирование программных ошибок
- •8.14. Мутационное тестирование
- •8.15. Проектирование тестов, основанных на случайных наборах исходных данных
- •8.15.1. Анализ случайных векторов исходных данных
- •8.15.2. Генерация случайных векторов исходных данных
- •8.16. Оценка правильности результатов выполнения программы
- •9. Верификация программного обеспечения
- •9.1. Элементы математической логики Исчисление высказываний
- •Операции над высказываниями
- •(Если a, то b)
- •Исчисление предикатов
- •Операции над высказывательными формами
- •9.2. Метод индуктивных утверждений
- •9.2.1. Общие сведения
- •9.2.2. Последовательность шагов по доказательству корректности схем алгоритмов программ
- •9.3. Основные проблемы доказательства корректности программ
- •Экзаменационные вопросы по дисциплине «Надежность программного обеспечения»
- •1.2. Числовые константы и переменные
- •1.3. Операторы
- •1.4. Функции встроенные и задаваемые пользователем
- •1.5. Математические выражения
- •1.6. Присваивание переменным значений
- •1.7. Ранжированные переменные и таблицы вывода
- •1.8. Понятие о массивах и матрицах
- •1.8.1. Функции, определяемые пользователем, и массивы
- •1.8.2. Индексация элементов массивов
- •1.8.3. Матрицы
- •1.8.4. Нижние индексы и верхние индексы
- •1.8.5. Нижние индексы и элементы вектора
- •1.8.6. Нижние индексы и элементы матрицы
- •1.8.7. Верхние индексы и столбцы матрицы
- •1.8.8. Изменение значения системной переменной origin
- •2. Редактирование
- •2.1. Формульный редактор
- •2.1.1. Наборные панели и шаблоны
- •2.2. Текстовый редактор
- •3. Арифметические и логические операторы
- •3.1. Арифметические операторы
- •3.1.1. Расширенные арифметические операторы
- •3.2. Операторы отношения (логические операторы)
- •3.3. Функция условных выражений if
- •3.4. Задание функций пользователя
- •3.5. Типовые статистические функции
- •4. Решение уравнений
- •4.1. Решение одного уравнения
- •4.2. Решение уравнений с параметром
- •4.3. Системы уравнений
- •4.4. Многократное решение уравнений
- •4.5. Приближенные решения
- •5. Символьная математика
- •5.1. Настройка символьного знака равенства
- •6. Файлы данных
- •6.1. Функции доступа к файлам
- •6.2. Аргументы функций доступа к файлам
- •7. Графики
- •7.1. Создание графика
- •7.2. Вывод функции на график
- •7.3. Построение декартова графика
- •7.4. Графическое представление вектора
- •7.5. Графическое представление файлов данных
- •7.6. Размещение нескольких графиков на чертеже
- •7.7. Форматирование осей
- •7.8. Свойства графиков
- •7.9. Оформление графика
- •7.10. Заголовки графиков
- •7.11. Изменение представления графика
- •7.12. Изменение масштаба на графике
- •7.13. Считывание координат точек графика
- •Приложение 1. Основные законы распределения нсв
- •Приложение 2. Пример выполнения задания
- •Приложение 3. Математические функции
- •Приложение 4. Статистические функции
- •Литература
- •Автоматизация тестирования программного обеспечения. Работа в среде silktest. Теоретические и практические сведения к выполнению индивидуальных практических работ
- •Введение
- •1. Тестирование программного обеспечения
- •1.1. Задача и цели тестирования программного обеспечения
- •1.2. Классификация видов тестирования по
- •1.3. Этапы процесса тестирования по
- •1.4. Разработка тест-кейсов
- •1.5. Контрольные вопросы
- •2. Автоматизация тестирования по
- •2.1. Эффективность автоматизации тестирования
- •2.2. Технология Record&Playback
- •2.3. Язык скриптов
- •2.4. Структура автоматизации тестирования
- •2.5. Требования к автоматизированному тесту
- •2.6. Инструментальные средства автоматизации тестирования
- •2.7. Контрольные вопросы
- •3. Работа в среде SilkTest 8.0
- •3.1. Начало работы
- •3.1.3. Создание тест-кейсов
- •3.2. Реализация технологии Record/PlayBack в среде SilkTest
- •3.2.1. Создание библиотеки объектов
- •3.2.2. Создание тестового скрипта
- •3.2.3. Среда запуска скриптов
- •3.2.4. Средство распознавания объектов
- •3.3. Recovery-система
- •3.4. Создание тестплана (TestPlan)
- •3.4.1. Добавление тесткейса в тестплан
- •3.4.2. Подключение файлов в тестплане
- •3.4.3. Запуск тестплана (полный, выборочный)
- •3.5. Использование внешних данных (Data Driven Test)
- •3.6. Просмотр результатов исполнения тестовых сценариев
- •3.7. Пример разработки теста
- •3.7.1. Задание для тестирования
- •3.7.2. Создание фрейма приложения
- •3.7.3. Настройка Recovery System
- •3.7.4. Запись и воспроизведение скрипта
- •3.7.5. Создание Testcase с использованием Data Driven Test
- •3.7.6. Создание ТестПлана
- •3.8. Задания для лабораторных работ
- •Литература
- •Приложение 1. Описание языка 4test п1.1. Типы данных
- •П1.1.1. Синтаксис определения переменной
- •П1.1.2. Синтаксис определения константы
- •П1.1.3. Примеры определения и инициализации переменных
- •П1.1.4. Массивы данных
- •П1.2. Операторы языка 4Test п1.2.1. Арифметические операторы
- •П1.2.2. Логические операторы
- •П1.2.3. Операторы сравнения
- •П1.2.4. Условные операторы
- •П1.2.5. Операторы цикла
- •П1.2.6. Функции приведения типа
- •П1.2.7. Функции работы с массивами
- •П1.2.8. Функции работы со строками
- •П2.2.2. Функции для Menu (меню)
- •П2.2.3. Функции для ListBox/ComboBox (Раскрывающийся список/ Поле со списком)
- •П2.2.4. Функции для Button (кнопка)
- •П2.2.5. Функции для CheckBox/RadioButton (Флажок/Переключатель)
- •П2.2.6. Функции для EditBox (Поле ввода)
- •П2.2.7. Функция для Тab (Вкладка)
- •П2.3. Функции имитации клавиатурного ввода
- •П2.4. Функции имитации действий, выполняемых мышью
- •П2.5. Функции работы с системой
- •П2.6. Функции оповещения о результатах
- •П2.7. Функции синхронизации
- •П2.8. Функции проверки существования обьекта
- •П2.9. Функции работы с файлами
- •П2.10. Функции пользователя
- •Контрольные работы Контрольная работа № 1 Тема задания
- •Методические указания к выполнению контрольной работы № 1
- •Содержание отчета по контрольной работе № 1
- •Контрольная работа № 2 Тема задания
- •Методические указания к выполнению контрольной работы №2
- •Содержание отчета по контрольной работе № 2
- •Правила оформления отчетов по контрольным работам
- •Образец титульного листа
- •Содержание отчета по индивидуальной практической работе № 1
- •Правила оформления отчетов по индивидуальным практическим работам
- •Образец титульного листа
5.7. Статистическое моделирование надёжности программ
В соответствии с общей схемой испытаний ПО на надежность программа рассматривается как "черный ящик", на входе которого моделируются исходные данные, адекватные условиям эксплуатации. В процессе тестовых испытаний исходные данные выбираются случайным образом, и по результатам испытаний осуществляется анализ правильности результатов. Данная схема испытаний, т.е. в случае сравнения каждого результата с некоторым эталоном, соответствует биноминальной модели распределения числа правильных выполнений программы, и вероятность безотказной работы в этом случае оценивается частотой её правильного выполнения:
,
где n – общее число выполнений программы,
m – число выполнений без отказов.
Оценим доверительный интервал [Pн,
Pв],
внутри которого с доверительной
вероятностью
будет находиться искомая оценка
.
По уравнениям Клоппера-Пирсона:
(5.4)
где: Pн, Pв – соответственно нижняя и верхняя границы доверительного интервала;
–
вероятность попадания оценки
левее и правее вычисленного доверительного
интервала;
-
число сочетаний из n
по k:
В случае, когда m = n, т.е. когда в результате тестовых испытаний не произошло ни одного отказа программы из нижнего уравнения системы (5.4) можно получить:
Задаваясь значением вероятности безотказной работы Pн и некоторым значением , можно определить необходимое число тестов для достижения заданного уровня надежности. Например, для
6. Стандартизация оценки надежности программных средств в Республике Беларусь
6.1. Общие сведения о стандартах в области оценки качества программных средств
Надежность программных средств является одной из основных характеристик их качества. С учетом этого в данном разделе рассматриваются предлагаемые действующими стандартами методы и модели оценки качества ПС в применении к оценке надежности ПС.
В настоящее время в области оценки качества ПС действуют следующие основные стандарты:
межгосударственный стандарт стран СНГ ГОСТ 28195–99. Оценка качества программных средств. Общие положения;
национальный стандарт Беларуси СТБ ИСО/МЭК 9126–2003. Информационные технологии. Оценка программной продукции. Характеристики качества и руководства по их применению;
международная серия стандартов ISO/IEC 9126–1–4:2001-2004. Программная инженерия – Качество продукта;
международная серия стандартов ISO/IEC 14598–1-6:1998-2001. Информационная технология – Оценка программного продукта.
Стандарт СТБ ИСО/МЭК 9126–2003 представляет собой аутентичный перевод международного стандарта ISO/IEC 9126:1991. Данный стандарт под обозначением ГОСТ Р ИСО/МЭК 9126–93 действует на территории России с 1994 года.
6.2. Оценка надежности программных средств по гост 28195–99
ГОСТ 28195–99 определяет оценку качества программного средства как совокупность операций, включающих выбор номенклатуры показателей качества оцениваемого программного средства, определение значений этих показателей и сравнение их с базовыми значениями. В соответствии с данным стандартом оценка качества должна проводиться применительно ко всем работам жизненного цикла ПС при планировании показателей качества ПС, контроле качества в процессе разработки, проверке эффективности модификации ПС в процессе сопровождения.
Стандартом ГОСТ 28195–99 рекомендован метод интегральной оценки качества ПС, основанный на иерархической модели качества.
Надежность является одной из шести основных характеристик качества ПС. С учетом этого рассмотрим данный метод оценки в применении к надежности ПС.
В соответствии с данным методом выбор номенклатуры показателей надежности для конкретного программного средства осуществляется с учетом его назначения и требований области применения в зависимости от принадлежности ПС к тому или иному подклассу, определяемому общесоюзным классификатором продукции (ОКП). В стандарте ГОСТ 28195–99 приведена классификация ПС на подклассы в соответствии с ОКП.
Оценка надежности ПС производится с учетом фазы жизненного цикла (ЖЦ). Фазы жизненного цикла представляют собой совокупности процессов или работ стандарта СТБ ИСО/МЭК 12207-2003.
Оценка надежности ПС заключается в выборе номенклатуры показателей, их оценке и сопоставлении с базовыми значениями.
Под показателем качества продукции в ГОСТ 28195–99 подразумевается количественная характеристика одного или нескольких свойств продукции, составляющих ее качество, рассматриваемая применительно к определенным условиям ее создания и эксплуатации или потребления.
Обеспечение и оценка качества ПС должны выполняться в течение жизненного цикла программных средств.
Основу описываемого метода оценки надежности составляет четырехуровневая иерархическая модель надежности. ГОСТ 28195–99 предлагает следующую терминологию для показателей качества (в том числе и надежности) каждого уровня:
факторы качества (в терминологии, принятой в международных стандартах, соответствуют характеристикам качества, в данном случае это относится к надежности));
критерии качества (в международной терминологии – подхарактеристики качества, в данном случае надежности);
метрики (соответствует международной терминологии);
оценочные элементы или единичные показатели (данный уровень в международных стандартах отсутствует).
Для фактора надежности составляется четырехуровневая иерархическая модель, отражающая ее взаимосвязь с критериями, метриками и оценочными элементами. Вид данной модели зависит от фазы жизненного цикла ПС.
В качестве примера на рис. 6.1 – 6.3 приведены три верхних уровня иерархической модели фактора надежности для различных фаз жизненного цикла. Номера на данных рисунках соответствуют номерам метрик данного фактора.
Выбор оценочных элементов в метрике зависит от функционального назначения ПС и формируется с учётом данных, ранее полученных при проведении испытаний ПС и эксплуатации аналогичных программ. Для выбора оценочных элементов ГОСТ 28195-99 предлагает перечень таблиц, содержащих наименование элемента, метод оценки и применяемость элемента для различных подклассов ПС.
Таблица 6.1 содержит перечень оценочных элементов для фактора надёжности. В данной таблице код оценочного элемента состоит из пяти символов. Первый символ (буква) указывает на принадлежность элемента фактору (Н - Надёжность). Два следующих символа – номер метрики, которой принадлежит оценочный элемент (для надёжности номера метрик обозначены на рис. 6.1 – 6.3). Четвёртый и пятый символы – порядковый номер данного оценочного элемента в метрике.
Таблица 6.1 Оценочные элементы фактора надёжности
Код элемента |
Наименование |
Метод оценки |
Оценка |
Н0101 |
Наличие требований к программе по устойчивости функционирования при наличии ошибок во входных данных |
Экспертный |
0 – 1 |
Н0102 |
Возможность обработки ошибочных ситуаций |
– " – |
0 – 1 |
Н0103 |
Полнота обработки ошибочных ситуаций |
– " – |
0 – 1 |
Н0104 |
Наличие тестов для проверки допустимых значений входных данных |
– " – |
0 – 1 |
Н0105 |
Наличие системы контроля полноты входных данных |
– " – |
0 – 1 |
Н0106 |
Наличие средств контроля корректности входных данных |
– " – |
0 – 1 |
Н0107 |
Наличие средств контроля непротиворечивости входных данных |
– " – |
0 – 1 |
Н0108 |
Наличие проверки параметров и адресов по диапазону их значений |
– " – |
0 – 1 |
Н0109 |
Наличие обработки граничных результатов |
– " – |
0 – 1 |
Н0110 |
Наличие обработки неопределенностей |
– " – |
0 – 1 |
Н0201 |
Наличие требований к программе по восстановлению процесса выполнения в случае сбоя операционной системы, процессора, внешних устройств |
– " – |
0 – 1 |
Н0202 |
Наличие требований к программе по восстановлению результатов при отказах процессора, операционной системы |
– " – |
0 – 1 |
Н0203 |
Наличие средств восстановления процесса в случае сбоев оборудования |
– " – |
0 – 1 |
Н0204 |
Наличие возможности разделения по времени выполнения отдельных функций программ |
– " – |
0 – 1 |
Н0205 |
Наличие возможности повторного старта с точки останова |
– " – |
0 – 1 |
Н0301 |
Наличие централизованного управления процессами, конкурирующими из-за ресурсов |
– " – |
0 – 1 |
Н0302 |
Наличие возможности автоматически обходить ошибочные ситуации в процессе вычисления |
– " – |
0 – 1 |
Н0303 |
Наличие средств, обеспечивающих завершение процесса решения в случаях помех |
– " – |
0 – 1 |
Н0304 |
Наличие средств, обеспечивающих выполнение программы в сокращенном объеме в случае ошибок или помех |
– " – |
0 – 1 |
Н0305 |
Показатель устойчивости
к искажающим воздействиям
|
Регистрационный + Расчетный |
|
Н0401 |
Вероятность безотказной работы Р |
Регистрационный + Расчетный |
|
Н0501 |
Оценка по среднему времени восстановления Q |
Измерительный + Расчетный |
где:
|
Н0502 |
Оценка по продолжительности преобразования i-го входного набора данных в выходной |
Измерительный + Расчетный |
|
Оценка надежности программного средства проводится в следующей последовательности:
На фазе анализа проводится выбор показателей и их базовых значений.
Для показателей надежности на всех уровнях принимается единая шкала оценки (от 0 до 1).
В процессе оценки надежности на каждом уровне (кроме уровня оценочных элементов) проводится вычисление двух величин:
где j – порядковый номер показателя данного уровня для i-го показателя вышестоящего уровня.
Относительный
показатель
является функцией
показателя
и его базового значения
и
определяется по формуле
ГОСТ 28195–99 содержит таблицу, содержащую базовые значения для показателей надежности второго уровня (критериев). Данные значения определяются подклассом ПС.
Базовые значения для надежности и ее показателей 3-го уровня формируются методом экспертного опроса с учетом назначения ПС или на основании показателей существующих аналогов или расчетного эталонного ПС. Значения базовых показателей ПС должны соответствовать значениям показателей, отражающих современный уровень качества и прогнозируемый мировой уровень.
Каждый показатель надежности второго и третьего уровней характеризуется двумя параметрами:
количественным значением;
весовым коэффициентом
.
Сумма весовых коэффициентов всех показателей некоторого уровня, относящихся к показателю вышестоящего уровня, постоянна и равна 1:
где: J – общее количество всех показателей j-го уровня, относящихся к i-му показателю вышестоящего уровня, определенных в стандарте.
ГОСТ 28195–99 содержит таблицы, содержащие перечни весовых коэффициентов для показателей второго и третьего уровней (критериев и метрик). Количественные величины весовых коэффициентов зависят от фазы жизненного цикла ПС и подкласса ПС.
Определение усредненной оценки
оценочного элемента по нескольким его
значениям (измерениям)
осуществляется по следующей формуле
(формула для вычисления
значений показателей надежности 4-го
уровня):
где: k – порядковый номер метрики; q – порядковый номер оценочного элемента; T – число значений (измерений) оценочного элемента; t – номер значения оценочного элемента.
Итоговая оценка k-ой метрики j-го критерия определяется по формуле (формула для вычисления значений показателей надежности 3-го уровня):
где:
–
признак метрики; Q
– число оценочных элементов, реально
используемых при оценке k-й
метрики.
Абсолютные показатели j-го критерия надежности
вычисляются по формуле (формула
для вычисления значений показателей
надежности 2-го уровня):
где: n
– число метрик, относящихся к j-му
критерию, реально используемых при
оценке;
– признак критерия.
Относительные значения
j-го
критерия надежности
по отношению к базовому значению
определяются по формуле
Абсолютные и относительные значения надежности определяются по формулам:
где:
–
признак фактора; N
– число критериев надежности, реально
используемых при оценке.

N
– число восстановлений;
где: