- •Ю.М. Бородянский
- •Содержание
- •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.7. Подведение итогов
Сопровождение обычно поглощает значительную долю бюджета, выделяемого на разработку программ. В свою очередь, большую долю работ по сопровождению составляет усовершенствование приложения, а не устранение неполадок. Основные идеи главы приведены ниже.
-
Сопровождение программы – это то, что следует за поставкой.
-
Самое важное – это анализ влияния вносимых в приложение изменений.
-
Стандарт IEEE описывает этот процесс:
-
определение, входные данные, процесс, контроль, выходные данные, качество, метрика;
-
порядок стадий тот же, что и при разработке.
-
Сложности, возникающие при управлении:
-
управление потоком запросов;
-
создание мотивации у персонала;
-
обеспечение актуальности всей документации.
-
Метрика: построение графиков для исправлений и усовершенствований.
Многими идеями и ссылками автор обязан Беннетту [8] и Пигоски [89]. Рекомендуем читателю также обратиться к полезному труду Омана [84].
Упражнения.
Ответы и подсказки для упражнений, помеченных символами «о» или «п», приводятся в конце этой главы.
Вопросы для проверки.
П10.1о. Дайте определение понятия «сопровождение программ» одним предложением.
П10.2о. Сопровождение бывает четырех видов, которые могут быть отнесены к двум категориям. Назовите их.
П10.3о. Приведите типичную последовательность обработки запросов на сопровождение.
П10.4о. Предлагается изменить длину массива, используемого в некотором приложении, чтобы оно стало отвечать новым требованиям. Какие действия необходимо выполнить перед внесением изменений в код?
П10.5о. Определите обратное проектирование одним абзацем.
П10.6о. Приведите два или три способа использования унаследованных приложений в новых программах.
П10.7о. Что подразумевается под реинжинирингом приложения? Почему в этом может возникнуть необходимость?
П10.8о. Перечислите пять-десять возможных проблем, связанных с сопровождением (см. раздел 10.5).
Общие упражнения.
О10.1. Предлагается реализовать приведенное ниже требование к игре Встреча, которое ранее считалась необязательным.
Требование к персонажу игрока: [желателъно] («Внешний вид персонажа игрока») Игрок получает возможность выбирать изображение своего персонажа из четырех или более файлов формата GIF.
-
К какому типу может быть отнесен этот запрос на сопровождение?
-
Выполните оценку влияния выполнения этого запроса.
О10.2. Приведите примеры возможных корректирующих, адаптивных и упреждающих изменений для игры Встреча.
О10.3. В каких случаях из перечисленных далее может потребоваться реинжиниринг? Объясните.
-
Преобразование модели банковских операций в автоматизированную систему безопасности банка.
-
Расширение модели банковских операций с учетом перемещений персонала службы безопасности.
-
Изменение электронной сетевой системы обучения таким образом, чтобы она могла в любое время обрабатывать тесты с вариантами выбора, использование которых позволяло бы студентам оценить понимание изучаемого материала.
Упражнения в команде.
К10.1 (Сопровождение.)
-
Получить спецификации от двух других команд того же класса. Предложить по крайней мере одно изменение каждого типа: исправление, адаптация, усовершенствование и упреждение.
-
Другая команда должна выдвинуть аналогичные предложения к вашему проекту. Выполните оценку, влияния предложенных изменений на ваш проект.
-
Обсудите предложенные изменения с выдвинувшей их командой на предмет доступных ресурсов. Реализуйте изменения.
-
Реализуйте, протестируйте и оцените свои изменения.
Критерии оценки.
-
Соответствие предложенных изменений указанному типу («Отлично» – точное соответствие).
-
Полнота оценки влияния («Отлично» – раскрыты все возможные аспекты влияния).
-
Качество тестирования изменений («Отлично» – все изменения тщательно протестированы).
Ответы.
П10.1. Сопровождение программы – это ее обслуживание после поставки заказчику.
П10.2. Исправление (коррекция и адаптация) и усовершенствование (улучшение и упреждение).
П10.4. Оценка влияния – выявление артефактов, которые будут затронуты предлагаемым изменением.
П10.6. Одна из возможностей – изменение унаследованного приложения и добавление нового кода. Вторая возможность – вызов унаследованного приложения напрямую из нового. Третья возможность – создание обертки для унаследованного приложения (снабжение его адекватным интерфейсом) и использование его функциональности в новом приложении через этот интерфейс.
П10.7. Реинжиниринг существующего приложения – это его перепроектирование, масштаб которого превосходит мелкие изменения, но не достигает уровня.