
- •Основные понятия надежности. Классификация отказов. Составляющие надежности Основные понятия
- •Классификация и характеристики отказов
- •Составляющие надежности
- •Основные показатели надежности
- •Количественные показатели безотказности: общие понятия. Основные сведения из теории вероятностей Общие понятия
- •Показатели безотказности: вероятность безотказной работы, плотность распределения отказов, интенсивность отказов
- •3. Интенсивность отказов (ио)
- •Уравнение связи показателей надежности числовые характеристики безотказности
- •Математические модели теории надежности. Статистическая обработка результатов испытаний
- •Нормальный закон распределения наработки до отказа
- •Законы распределения наработки до отказа: экспоненциальный, логнормальный и гамма-распределение
- •Надежность систем. Общие понятия и определения
- •Надежность основной системы
- •Надежность систем с нагруженным резервированием
- •Надежность системы с ненагруженным резервированием
- •Надежность систем с облегченным и со скользящим резервом
- •1. Надежность систем с облегченным резервом
- •2. Скользящее резервирование
- •Надежность восстанавливаемых объектов и систем
- •1. Постановка задачи. Общая расчетная модель
- •2. Показатели надежности восстанавливаемых систем
- •3. Связь логической схемы надежности с графом состояний
- •Надежность объектов при постепенных отказах. Основные расчетные модели
- •1. Постановка задачи. Основные понятия и определения
- •2. Анализ случайных процессов изменения оп объектов
- •3. Модели процессов приближения объекта к отказам
- •3.1. Основные классы моделей
- •3.2. Основные типы моделей
- •Надежность объектов при постепенных отказах. Определение времени сохранения работоспособности
- •1. Состав рассчитываемых показателей
- •2. Общие модели расчета плотности распределения наработки до отказа
- •3. Определение времени сохранения работоспособности
- •4. Частные вопросы оценки параметрической надежности объектов
- •4.1. Оценка надежности объектов при разрегулировании
- •Качество асоиу Стандарты качества программных средств
- •Показатели качества при использовании
- •Модель характеристик качества
- •Характеристики качества
- •Основы эргономики
- •Оптимальные задачи эргономики
- •Место оператора пэвм в эргономической системе
- •Этапы операторской деятельности
- •Эргономическое обеспечение
- •Эргономическая экспертиза
- •Тестирование, верификация и валидация Место верификации среди процессов разработки программного обеспечения
- •Жизненный цикл разработки программного обеспечения
- •Модели жизненного цикла
- •Каскадный жизненный цикл
- •Спиральный жизненный цикл
- •Экстремальное программирование
- •Сравнение различных типов жизненного цикла и вспомогательные процессы
- •Современные технологии разработки программного обеспечения:
- •Сравнение технологий msf, rup и xp
- •Ролевой состав коллектива разработчиков, взаимодействие между ролями в различных технологических процессах
- •Задачи и цели процесса верификации
- •Тестирование, верификация и валидация – различия в понятиях
- •Документация, создаваемая на различных этапах жизненного цикла
- •Типы процессов тестирования и верификации и их место в различных моделях жизненного цикла Модульное тестирование
- •Интеграционное тестирование
- •Системное тестирование
- •Нагрузочное тестирование
- •Формальные инспекции
- •Верификация сертифицируемого программного обеспечения
- •Задачи и цели тестирования программного кода
- •Методы тестирования Черный ящик
- •Стеклянный (белый) ящик
- •Тестирование моделей
- •Анализ программного кода (инспекции)
- •Тестовое окружение
- •Тестирование удобства использования пользовательских интерфейсов
Тестирование моделей
Тестирование моделей находится несколько в стороне от классических методов верификации программного обеспечения. Прежде всего это связано с тем, что объект тестирования – не сама система, а ее модель, спроектированная формальными средствами. Если оставить в стороне вопросы проверки корректности и применимости самой модели (считается, что ее корректность и соответствие исходной системе может быть доказана формальными средствами), то тестировщик получает в свое распоряжение достаточно мощный инструмент анализа общей целостности системы. Работая с моделью можно создать такие ситуации, которые невозможно создать в тестовой лаборатории для реальной системы. Работая с моделью программного кода системы можно анализировать его свойства и такие параметры системы, как оптимальность алгоритмов или ее устойчивость.
Однако тестирование моделей не получило широкого распространения именно ввиду трудностей, возникающих при разработке формального описания поведения системы. Одно из немногих исключений – системы связи, алгоритмический и математический аппарат которых достаточно хорошо проработан.
Анализ программного кода (инспекции)
Во многих ситуациях тестирование поведения системы в целом невозможно – отдельные участки программного кода могут никогда не выполняться, при этом они будут покрыты требованиями. Примером таких участков кода могут служить обработчики исключительных ситуаций. Если, например, два модуля передают друг другу числовые значения, и функции проверки корректности значений работают в обоих модулях, то функция проверки модуля-приемника никогда не будет активизирована, т.к. все ошибочные значения будут отсечены еще в передатчике.
В этом случае выполняется ручной анализ программного кода на корректность, называемый также просмотрами или инспекциями кода. Если в результате инспекции выявляются проблемные участки, то информация об этом передается разработчикам для исправления наравне с результатами обычных тестов.
Тестовое окружение
Основной объем тестирования практически любой сложной системы обычно выполняется в автоматическом режиме. Кроме того, тестируемая система обычно разбивается на отдельные модули, каждый из которых тестируется вначале отдельно от других, затем в комплексе.
Это означает, что для выполнения тестирования необходимо создать некоторую среду, которая обеспечит запуск и выполнение тестируемого модуля, передаст ему входные данные, соберет реальные выходные данные, полученные в результате работы системы на заданных входных данных. После этого среда должна сравнить реальные выходные данные с ожидаемыми и на основании данного сравнения сделать вывод о соответствии поведения модуля заданному (Рис. 9).
Рис. 9 Обобщенная схема среды тестирования
Тестовое окружение также может использоваться для отчуждения отдельных модулей системы от всей системы. Разделение модулей системы на ранних этапах тестирования позволяет более точно локализовать проблемы, возникающие в их программном коде. Для поддержки работы модуля в отрыве от системы тестовое окружение должно моделировать поведение всех модулей, к функциям или данным которых обращается тестируемый модуль.
Поскольку тестовое окружение само является программой (причем, часто не на том языке программирования, на котором написана система), оно само должно быть протестировано. Целью тестирования тестового окружения является доказательство того, что тестовое окружение никаким образом не искажает выполнение тестируемого модуля и адекватно моделирует поведение системы.