- •Ю.М. Бородянский
- •Содержание
- •1. Верификация информационных систем
- •1.1. Концепция тестирования
- •1.2. Основная терминология
- •1.3. Организация тестирования
- •1.3.1. Три фазы тестирования
- •1.4. Требования к идеальному критерию тестирования
- •1.5. Классы критериев
- •1.5.1. Структурные критерии (класс I).
- •1.5.2. Функциональные критерии (класс II)
- •1.5.3. Стохастические критерии (класс III)
- •1.5.4. Мутационный критерий (класс IV)
- •1.6. Оценка Покрытия Программы и Проекта
- •1.7. Типы процессов тестирования и верификации и их место в различных моделях жизненного цикла
- •1.7.1. Модульное тестирование
- •1.7.2. Интеграционное тестирование
- •1.7.3. Системное тестирование
- •1.7.4. Нагрузочное тестирование
- •1.7.5. Формальные инспекции
- •1.8. Системное тестирование
- •1.8.1. Задачи и цели системного тестирования
- •1.8.2. Виды системного тестирования
- •1.8.3. Системное тестирование, приемо-сдаточные и сертификационные испытания при разработке сертифицируемого программного обеспечения
- •1.9. Задачи и цели процесса верификации
- •1.10. Тестирование, верификация и валидация – различия в понятиях
- •1.11. Документация, создаваемая на различных этапах жизненного цикла
- •1.12. Документация, сопровождающая процесс верификации и тестирования
- •1.12.1. Технологические процессы верификации и роли в проекте, документация, создаваемая в ходе жизненного цикла проекта, ее назначение
- •1.12.3. Стратегия и планы верификации
- •1.13. Тест-требования
- •1.13.1. Технологические цепочки и роли участников проекта, использующих тест-требования. Связь тест-требований с другими типами проектной документации.
- •1.13.2. Свойства тест-требований
- •1.13.3. Тест-планы
- •1.13.3.1 Технологические цепочки и роли участников проекта, использующих тест-планы. Связь тест-планов с другими типами проектной документации.
- •1.13.4. Возможные формы подготовки тест-планов
- •1.13.5. Сценарии
- •1.14. Формальные инспекции
- •1.14.1. Задачи и цели проведения формальных инспекций
- •1.14.2. Этапы формальной инспекции и роли ее участников
- •1.14.2.1. Инициализация
- •1.14.2.2. Планирование
- •1.14.2.3. Подготовка
- •1.14.2.4. Обсуждение
- •1.14.2.5. Завершение
- •1.14.3. Документирование процесса формальной инспекции
- •1.14.3.1. Бланк инспекции
- •1.14.3.2. Титульный лист
- •1.14.3.3. Список контрольных вопросов
- •1.14.3.4. Список несоответствий
- •1.14.3.5. Колонтитул
- •1.14.4. Жизненный цикл инспектируемого документа
- •1.14.5. Формальные инспекции программного кода
- •1.14.5.1.. Особенности этапа просмотра инспектируемого кода
- •1.14.5.2. Особенности этапа проведения собрания
- •1.14.5.3. Особенности этапа завершения и повторной инспекции
- •1.14.6. Формальные инспекции проектной документации
- •1.14.6.1. Особенности этапа просмотра документации
- •1.14.6.2.. Особенности этапа завершения
- •2. Сопровождение информационных систем
- •2.1. Введение
- •2.2. Организация процесса сопровождения
- •2.3. Методы сопровождения
- •2.3.1. Анализ влияния факторов
- •2.3.2. Обратное проектирование
- •2.3.3. Реинжиниринг
- •2.3.4. Рефакторинг
- •2.3.5. Унаследованные приложения
- •2.3.6. Обновление документации
- •2.4. Стандарт ieee 1219-1992
- •5. Системное тестирование
- •2.5. Управление сопровождением
- •2.6. Качество сопровождения
- •2.6.1. Метрики сопровождения
- •2.6.2. Применение метрик сопровождения
- •2.6.3. Удобство сопровождения
- •2.7. Подведение итогов
2.5. Управление сопровождением
План сопровождения (maintenance plan) регламентирует поток запросов на сопровождение внутри организации. Типичный план сопровождения приведен на рис. 10.13. Жирной линией на нем отмечена номинальная последовательность обработки запросов. В этом плане отдел сопровождения принимает от пользователей (заказчиков) жалобы и предложения. Они оформляются как запросы на сопровождение. Специальное подразделение, которое может быть как одним человеком, так и целым комитетом, принимает решение о реализации запросов и присваивает им приоритеты. Такой комитет иногда называется Советом по контролю изменений (ССВ). После этого запросы обслуживаются техническим персоналом службы сопровождения. Тонкими линиями показаны другие последовательности появления и исчезновения запросов. Оптимальная организация работ по сопровождению зависит от масштабов приложения: процесс реализации запросов может быть достаточно растянутым.
С реализацией запросов связаны две проблемы. Первая – доставка подготовленного кода пользователям. Вторая – борьба с дефектами в целом. Дефект может повлиять на длительность тестирования, подготовка которого может недопустимо затянуться. Исключительным примером является военное приложение, в работах над которым довелось принять участие автору. Между определением задачи и полной реализацией запроса в этом проекте проходило до 9 месяцев! В таких ситуациях прибегают к выпуску исправлений или заплат (patch). Исправления – это изменения кода, которые либо устраняют дефект, либо позволяют обойти его. Исправления считаются временными. Часто они выпускаются в виде набора файлов, заменяющих уже написанный объектный код. Возможный вариант работы с исправлениями в организации, занимающейся разработкой, иллюстрирует рис. 10.14. Преимущества и недостатки исправлений рассматриваются в табл. 2.5.
Рис. 2.8. Типичная последовательность работ по сопровождению
Таблица 2.5. Преимущества и недостатки исправлений
Преимущества |
Недостатки |
Быстрая удовлетворенность заказчиков |
Дублирование работ: требуется реализация как временного, так и постоянного исправления |
Возможность непрерывной работы и тестирования без широкого распространения дефектов |
Иногда исправление остается навсегда, а нормальная версия так и не выходит |
Исключает скрытие других дефектов |
Затрудняется выпуск постоянного исправления, предназначенного для устранения временного |
Позволяет тестировать исправление |
Затрудняется процесс документирования |
Под скрытием дефектов подразумевается то, что наличие неустраненного дефекта затрудняет обнаружение других дефектов, которые проявились бы, если бы первый дефект был устранен.
Рис. 2.9. Сопровождение и исправление
Опросы организаций, занимающихся сопровождением программ, показали, что эти организации ранжируют причины своих затруднений в следующем порядке [22].
-
Изменение приоритетов.
-
Методы тестирования.
-
Измерение производительности.
-
Неполная системная документация или ее отсутствие.
-
Адаптация к изменяющимся требованиям бизнеса.
-
Количество незавершенных задач.
-
Измерение вклада.
-
Низкий уровень самосознания из-за отсутствия признания или уважения.
-
Недостаток персонала, в особенности квалифицированного.
-
Недостаточный уровень методологии, стандартов, средств и процедур сопровождения.
Видно, что наибольшие трудности вызываются частым изменением приоритетов задач, стоящих перед службой сопровождения. В качестве примера рассмотрим нашу игру Встреча. Приведенная ниже последовательность изменения основных приоритетов типична для любой организации-разработчика:
-
в момент выпуска – в игре должно быть меньше ошибок, чем у конкурентов:
-
решение: устранить максимальное количество дефектов;
-
через два месяца после выпуска – у игры должно быть больше достоинств, чем у ее основного конкурента;
-
решение: быстрое выполнение усовершенствований;
-
через шесть месяцев после выпуска – нужно снизить постоянно возрастающую стоимость сопровождения;
-
решение: устранение только самых серьезных дефектов.
Второй и третий по масштабу источники проблем связаны с методами тестирования и измерения производительности. Как мы уже видели, список возможных тестов достаточно широк, а время их выполнения весьма продолжительно. Измерять эффективность предприятия, занимающегося сопровождением, тоже можно множеством способов. Сопровождение часто оказывается одной из важных статей расходов, но при этом недооценивается. Еще один источник проблем – задержка выполнения запросов, которые накапливаются с опасной быстротой. Наконец, сопровождение и тестирование часто считаются менее престижными и эффектными профессиями, чем проектирование.