- •Надежность программного обеспечения
- •Общие сведения Сведения об эумк
- •Методические рекомендации по изучению дисциплины
- •Изучение теоретической темы.
- •Рабочая учебная программа
- •Учреждение образования
- •«Белорусский государственный университет
- •Информатики и радиоэлектроники»
- •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
- •Правила оформления отчетов по индивидуальным практическим работам
- •Образец титульного листа
7.4. Внешние метрики надежности программных средств по стандарту iso/iec 9126-2:2003
Внешние метрики надежности должны измерять свойства, связанные с поведением системы, содержащей ПС, во время тестирования, чтобы показать степень надежности ПС в этой системе в процессе эксплуатации.
Внешние метрики завершенности должны позволять измерять такие атрибуты, как отсутствие отказов в ПС, вызываемых ошибками, существующими в самом ПС.
Внешние метрики устойчивости к ошибке должны быть связаны со способностью ПС поддерживать заданный уровень качества функционирования в случаях ошибок выполнения или нарушения заданного интерфейса.
Внешние метрики восстанавливаемости должны позволять измерять такие атрибуты, как способность ПС в системе восстанавливать соответствующий уровень качества функционирования и данные, поврежденные в случае отказа.
Внешние метрики соответствия надежности должны позволять измерять такие атрибуты, как количество функций или случаев с проблемами соответствия, вызывающими неудовлетворение требований стандартов, соглашений или нормативов, связанных с надежностью.
Таблица 7.2 содержит внешние метрики подхарактеристик надежности, рекомендуемые стандартом ISO/IEC TR 9126–2:2003.
Таблица 7.2.
Внешние метрики надежности программных средств
Название метрики |
Формула для оценки метрики |
Исходные данные для вычисления метрики по соответствующей формуле |
Источники данных для измерения |
Завершенность |
|||
Оценочная плотность скрытых ошибок |
Х = (Abs(A1 – А2))/B |
А1 – общее количество прогнозируемых скрытых ошибок в программном продукте; А2 – общее количество реально обнаруженных в течение определенного испытательного срока ошибок; В – размер продукта |
А1: модель предсказания роста надежности; А2: отчет о тестировании, отчет об эксплуатации, отчет о проблеме |
Плотность отказов по тестовым вариантам |
Х=А/В |
А – количество обнаруженных в течение определенного испытательного срока отказов; В – количество выполненных тестовых вариантов |
А, В: отчет о тестировании, отчет об эксплуатации, отчет о проблеме |
Устранение отказов |
Х=А/В |
А – количество устраненных в течение определенного испытательного срока отказов; В – общее количество реально обнаруженных отказов |
А, В: отчет о тестировании, отчет об эксплуатации |
Плотность ошибок |
Х=А/В |
А – количество ошибок, обнаруженных в течение определенного испытательного срока; В – размер продукта |
А: отчет о тестировании, отчет об эксплуатации, отчет о проблеме |
Устранение ошибок |
Х=А/В или Y=А/С |
А – количество исправленных ошибок; В – общее количество реально обнаруженных при тестировании ошибок; С – общее количество прогнозируемых скрытых ошибок в программном продукте |
А, В: отчет о тестировании; С: база данных организации |
Среднее время между отказами |
Х=Т1/А или Х=Т2/А |
Т1 – время эксплуатации; Т2 – сумма интервалов времени между последовательными случаями наступления отказов; А – общее количество реально обнаруженных отказов в течение определенного периода эксплуатации |
Т1, Т2, А: отчет о тестировании, отчет об эксплуатации |
Тестовое покрытие |
Х=А/В |
А – количество реально выполненных тестовых вариантов, представляющих сценарий эксплуатации во время тестирования; В – количество тестовых вариантов, которые должны быть выполнены, чтобы покрыть требования |
А: отчет о тестировании, отчет об эксплуатации; В: спецификация требований, спецификация тестирования или руководство пользователя |
Тестовая завершенность |
Х=А/В |
А – количество прогонявшихся тестовых вариантов во время тестирования или эксплуатации; В – количество тестовых вариантов, которые должны быть выполнены, чтобы покрыть требования |
А: отчет о тестировании, отчет об эксплуатации; В: спецификация требований, спецификация тестов или руководство пользователя |
Устойчивость к ошибке |
|||
Предотвращение аварийных отказов |
Х=1 – А/В |
А – количество аварийных отказов; В – общее количество отказов |
А, В: отчет о тестировании, отчет об эксплуатации |
Предотвращение отказов |
Х=А/В |
А – количество случаев предотвращения типичных и серьезных отказов во время выполнения тестовых вариантов, направленных на проверку типичных ошибок, которые могут привести к отказу; В – количество выполненных тестовых вариантов, направленных на проверку типичных ошибок, которые могут привести к отказу |
А, В: отчет о тестировании, отчет об эксплуатации |
Предотвращение некорректных действий |
Х=А/В |
А – количество случаев предотвращения критических и серьезных отказов; В – количество выполненных при тестировании тестовых вариантов, направленных на проверку типовых некорректных действий, которые могут привести к отказу |
А, В: отчет о тестировании, отчет об эксплуатации |
Восстанавливаемость |
|||
Готовность |
Х = ТЭ/(ТЭ+ТВ) или У=А/В |
ТЭ – время эксплуатации; ТВ – время восстановления; А – общее число случаев успешного использования программного средства пользователем; В – общее число попыток использования ПС пользователем за время наблюдения |
ТЭ, ТВ, А, В: отчет о тестировании, отчет об эксплуатации |
Среднее время простоя |
Х=Т/В |
Т – общее время простоя; В – количество отмеченных аварийных отказов |
Т, В: отчет о тестировании, отчет об эксплуатации |
Среднее время восстановления |
Х = Sum(T)/B |
Т – время восстановления неработающей системы программного обеспечения в каждом соответствующем случае; В – количество случаев, когда наблюдаемая система программного обеспечения восстановлена |
Т, В: отчет о тестировании, отчет об эксплуатации |
Способность к повторному запуску |
Х=А/В |
А – число повторных запусков, удовлетворяющих требуемому времени, во время тестирования или поддержки пользовательской эксплуатации; В – общее число повторных запусков во время тестирования или поддержки пользовательской эксплуатации |
А, В: отчет о тестировании, отчет об эксплуатации |
Способность к восстановлению |
Х=А/В |
А – количество случаев успешного восстановления; В – количество случаев восстановления, протестированных согласно требованиям |
А: отчет о тестировании, отчет об эксплуатации; В: спецификация требований, спецификация тестов или руководство пользователя |
Эффективность восстановления |
Х=А/В |
А – количество случаев успешного восстановления, удовлетворяющих заданному времени восстановления; В – количество выполненных случаев восстановления, в которых должно быть удовлетворено заданное время восстановления |
А, В: отчет о тестировании, отчет об эксплуатации |
Соответствие надежности |
|||
Соответствие надежности |
Х=1 – А/В |
А – количество заданных элементов соответствия надежности, которые не были выполнены при тестировании; В – общее количество заданных элементов соответствия надежности |
А: отчет о тестировании; В: описание соответствия продукта (руководства пользователя или спецификации), связанные стандарты, соглашения или нормативы, спецификация тестов |
