Книга: Синицын С. В., Налютин Н. Ю. «Верификация программного обеспечения»

Верификация программного обеспечения

Серия: "Основы информационных технологий"

Курс знакомит слушателей с современными технологиями верификации программного обеспечения, применяемыми при промышленной разработке сложных и отказоустойчивых программных систем.
Курс рассчитан на читателей, заинтересованных в изучении основных подходов и путей решения проблем, связанных с современными технологиями верификации программного обеспечения.
Курс основан на методиках тестирования промышленных программных систем. Он охватывает вопросы построения тестового окружения, планирования системы тестов, анализа и обнаружения дефектов программного кода тестируемой системы, интеграционного и системного тестирования, общих аспектов тестирования пользовательских интерфейсов. В программу курса входит рассмотрение процессов верификации проектной документации, а также процессов формальной инспекции кода и документации. Детально рассматриваются различные виды документов, сопровождающих процесс верификации, и процессы разработки, в которых эти документы участвуют. В завершение курса дается обзор методов разработки устойчивого программного обеспечения, позволяющих уменьшить продолжительность фазы тестирования без снижения его качества. Основным инструментальным средством, используемым при обучении, является Microsoft Visual Studio Team Edition for Software Testers.
По завершении курса студент овладевает всеми основными навыками, необходимыми для участия в верификации сложных промышленных систем.

Содержание:

О проекте...... 3 Об авторах...... 4 Лекции...... 5 Предисловие...... 14 Лекция 1. Место верификации среди процессов разработки программного обеспечения...... 16 1. 1. Понятие верификации...... 16 1. 2. Жизненный цикл разработки программного обеспечения...... 17 1. 3. Модели жизненного цикла...... 17 1. 3. 1. Каскадный жизненный цикл...... 18 1. 3. 2. V-образный жизненный цикл...... 19 1. 3. 3. Спиральный жизненный цикл...... 19 1. 3. 4. Экстремальное программирование...... 20 1. 3. 5. Сравнение различных типов жизненного цикла и вспомогательные процессы...... 21 1. 4. Современные технологии разработки программного обеспечения...... 24 1. 4. 1. Microsoft Solutions Framework...... 24 1. 4. 2. Rational Unified Process...... 26 1. 4. 3. eXtreme Programming...... 28 1. 4. 4. Сравнение технологий MSF, RUP и XP...... 29 1. 5. Ролевой состав коллектива разработчиков, взаимодействие между ролями в различных технологических процессах...... 30 1. 6. Задачи и цели процесса верификации...... 33 1. 7. Тестирование, верификация и валидация — различия в понятиях...... 35 1. 8. Документация, создаваемая на различных этапах жизненного цикла...... 36 1. 9. Типы процессов тестирования и верификации и их место в различных моделях жизненного цикла...... 39 1. 9. 1. Модульное тестирование...... 39 1. 9. 2. Интеграционное тестирование...... 39 1. 9. 3. Системное тестирование...... 39 1. 9. 4. Нагрузочное тестирование...... 40 1. 9. 5. Формальные инспекции...... 40 1. 10. Верификация сертифицируемого программного обеспечения...... 40 Лекция 2. Тестирование программного кода...... 43 2. 1. Задачи и цели тестирования программного кода...... 43 2. 2. Методы тестирования...... 45 2. 2. 1. «Черный ящик»...... 45 2. 2. 2. «Стеклянный (белый) ящик»...... 46 2. 2. 3. Тестирование моделей...... 48 2. 2. 4. Анализ программного кода (инспекции)...... 47 2. 3. Тестовое окружение...... 48 2. 3. 1. Драйверы и заглушки...... 49 2. 3. 2. Тестовые классы...... 52 2. 3. 3. Генераторы сигналов (событийно-управляемый код)...... 54 Лекция 3. Тестирование программного кода (продолжение)...... 57 3. 1. Тестовые примеры...... 57 3. 1. 1. Тест-требования как основной источник информации для создания тестовых примеров...... 57 3. 1. 2. Типы тестовых примеров...... 60 3. 1. 3. Проверка робастности (выхода за границы диапазона)...... 67 3. 1. 4. Классы эквивалентности...... 68 3. 1. 5. Тестирование операций сравнения чисел...... 70 Лекция 4. Тестирование программного кода (окончание)...... 73 4. 1. Тест-планы...... 73 4. 1. 1. Типовая структура тест-плана...... 74 4. 2. Оценка качества тестируемого кода — статистика выполнения тестов...... 76 4. 3. Покрытие программного кода...... 79 4. 3. 1. Понятие покрытия...... 79 4. 3. 2. Уровни покрытия...... 80 4. 3. 4. Метод MC/DC для уменьшения количества тестовых примеров при 3-м уровне покрытия кода...... 84 4. 3. 5. Анализ покрытия...... 84 Лекция 5. Повторяемость тестирования...... 87 5. 1. Задачи и цели обеспечения повторяемости тестирования при промышленной разработке программного обеспечения...... 87 5. 2. Предусловия для выполнения теста, настройка тестового окружения, оптимизация последовательностей тестовых примеров...... 89 5. 3. Зависимость между тестовыми примерами, настройки по умолчанию для тестовых примеров и их групп...... 93 Лекции 6-8. Документация, сопровождающая процесс верификации и тестирования...... 96 6. 1. Технологические процессы верификации и роли в проекте, документация, создаваемая в ходе жизненного цикла проекта, ее назначение...... 96 6. 2. Стратегия и планы верификации...... 99 6. 3. Тест-требования...... 101 6. 3. 1. Технологические цепочки и роли участников проекта, использующих тест-требования. Связь тест-требований с другими типами проектной документации...... 101 6. 3. 2. Свойства тест-требований...... 102 7. 1. Тест-планы...... 105 7. 1. 1. Технологические цепочки и роли участников проекта, использующих тест-планы. Связь тест-планов с другими типами проектной документации...... 105 7. 1. 2. Возможные формы подготовки тест-планов...... 106 7. 1. 3. Сценарии...... 107 7. 1. 4. Таблицы...... 110 7. 1. 5. Конечные автоматы...... 112 7. 1. 6. Генераторы тестов...... 115 7. 2. Отчеты о прохождении тестов...... 116 7. 2. 1. Технологические цепочки и роли участников проекта, использующих отчеты о прохождении тестов. Связь отчетов о прохождении тестов с другими типами проектной документации...... 116 7. 2. 2. Возможные формы представления отчетов о прохождении тестов...... 117 7. 2. 3. Автоматическое и ручное тестирование...... 123 8. 1. Отчеты о покрытии программного кода...... 125 8. 1. 1. Технологические цепочки и роли участников проекта, использующих отчеты о покрытии. Связь отчетов о покрытии с другими типами проектной документации...... 125 8. 1. 2. Возможные формы отчетов о покрытии...... 126 8. 1. 3. Покрытие на уровне исходных текстов и на уровне машинных кодов...... 133 8. 2. Отчеты о проблемах...... 135 8. 2. 1. Технологические цепочки и роли участников проекта, использующих отчеты о проблемах. Связь отчетов о проблемах с другими типами проектной документации...... 135 8. 2. 2. Структура отчетов о проблемах, их трассировка на программный код и документацию...... 136 8. 3. Трассировочные таблицы...... 138 8. 3. 1. Технологические цепочки и роли участников проекта, использующих трассировочные таблицы. Связь трассировочных таблиц с другими типами проектной документации...... 138 8. 3. 2. Возможные формы трассировочных таблиц...... 139 Лекция 9. Формальные инспекции...... 142 9. 1. Задачи и цели проведения формальных инспекций...... 142 9. 2. Этапы формальной инспекции и роли ее участников...... 144 9. 2. 1. Инициализация...... 144 9. 2. 2. Планирование...... 145 9. 2. 3. Подготовка...... 146 9. 2. 4. Обсуждение...... 147 9. 2. 5. Завершение...... 149 Лекция 10. Формальные инспекции (окончание)...... 150 10. 1. Документирование процесса формальной инспекции...... 150 10. 1. 1. Бланк инспекции...... 151 10. 1. 2. Жизненный цикл инспектируемого документа...... 153 10. 2. Формальные инспекции программного кода...... 154 10. 2. 1. Особенности этапа просмотра инспектируемого кода...... 155 10. 2. 2. Особенности этапа проведения собрания...... 156 10. 2. 3. Особенности этапа завершения и повторной инспекции...... 156 10. 3. Формальные инспекции проектной документации...... 156 10. 3. 1. Особенности этапа просмотра документации...... 157 10. 3. 2. Особенности этапа завершения...... 158 Лекция 11. Модульное тестирование...... 159 11. 1. Уровни процесса верификации...... 159 11. 2. Задачи и цели модульного тестирования...... 159 11. 3. Понятие модуля и его границ. Тестирование классов...... 161 11. 4. Подходы к проектированию тестового окружения...... 164 11. 5. Организация модульного тестирования...... 165 Лекция 12. Интеграционное тестирование...... 170 12. 1. Задачи и цели интеграционного тестирования...... 170 12. 2. Организация интеграционного тестирования...... 171 12. 2. 1. Структурная классификация методов интеграционного тестирования...... 171 12. 2. 2. Временная классификация методов интеграционного тестирования...... 175 12. 2. 3. Планирование интеграционного тестирования...... 177 Лекция 13. Системное тестирование...... 178 13. 1. Задачи и цели системного тестирования...... 178 13. 2. Виды системного тестирования...... 179 13. 3. Системное тестирование, приемо-сдаточные и сертификационные испытания при разработке сертифицируемого программного обеспечения...... 184 Лекция 14. Тестирование пользовательского интерфейса...... 191 14. 1. Задачи и цели тестирования пользовательского интерфейса...... 191 14. 2. Функциональное тестирование пользовательских интерфейсов...... 192 14. 2. 1. Проверка требований к пользовательскому интерфейсу...... 193 14. 2. 2. Полнота покрытия пользовательского интерфейса...... 196 14. 2. 3. Методы проведения тестирования пользовательского интерфейса, повторяемость тестирования пользовательского интерфейса...... 197 14. 3. Тестирование удобства использования пользовательских интерфейсов...... 200 Лекция 15. Методы разработки устойчивого кода...... 204 15. 1. Классификация проблем, возникающих при работе программных систем...... 204 15. 1. 1. Сбои...... 205 15. 1. 2. Отказы и аварии...... 207 15. 2. Методы разработки устойчивого кода...... 209 15. 2. 1. Критические точки и допущения (assertions)...... 210 15. 2. 2. Обработка исключений...... 212 15. 2. 3. Сбор и обработка информации о сбоях и отказах...... 214 Лекция 16. Поддержка процесса тестирования при промышленной разработке программного обеспечения...... 215 16. 1. Управление качеством...... 215 16. 1. 1. Задачи и цели управления качеством...... 215 16. 1. 2. Система менеджмента качества по ISO 9000...... 217 16. 1. 3. Аудит процессов разработки и верификации...... 219 16. 1. 4. Корректирующие действия и коррекция процессов...... 220 16. 2. Конфигурационное управление...... 221 16. 2. 1. Задачи процесса конфигурационного управления...... 223 16. 2. 2. Процедуры процесса конфигурационного управления...... 224 16. 2. 3. Уровни управления данными...... 229 16. 3. Управление качеством и конфигурационное управление при разработке сертифицируемого программного обеспечения...... 230 Литература...... 233 Семинар 1. Введение...... 235 1. 1. Введение...... 235 1. 2. Система «Калькулятор»...... 235 1. 2. 1. Общее описание...... 235 1. 2. 2. Требования к системе...... 236 1. 2. 3. Архитектура...... 236 1. 2. 4. Программный код...... 236 1. 3. Тестирование системы...... 237 1. 3. 1. Общее описание...... 237 1. 3. 2. Проверка программного кода...... 237 1. 3. 3. Проверка архитектуры...... 239 1. 3. 4. Проверка требований...... 239 1. 4. Приложение. Спецификация на программу «Калькулятор. Базовая версия» (с комментариями для преподавателя)...... 240 1. 5. Домашнее задание...... 248 Семинар 2. Тестовые примеры. классы эквивалентности. ручное тестирование в MVSTE...... 249 2. 1. Проверка домашнего задания...... 249 2. 2. Тестовые примеры...... 249 2. 2. 1. Разработка тестовых примеров...... 249 2. 2. 2. Классы эквивалентности...... 254 2. 3. Возможности MVSTE по ручному тестированию и описанию тестовых примеров (Manual Testing)...... 258 2. 4. Раздаточный материал...... 261 2. 4. 1. Программа...... 261 2. 4. 2. Шаблон отчета о проблеме...... 261 2. 5. Домашнее задание...... 261 Семинар 3. Тестовое окружение...... 263 3. 1. Тест...... 263 3. 2. Проверка домашнего задания...... 264 3. 3. Тестовое окружение...... 264 3. 3. 1. Теоретическое вступление...... 264 3. 3. 2. На примере «Калькулятора»...... 267 3. 4. Раздаточный материал...... 272 3. 4. 1. Программа...... 272 3. 5. Домашнее задание...... 272 Семинар 4. Модульное тестирование...... 274 4. 1. Проверка домашнего задания...... 274 4. 2. Модульное тестирование...... 274 4. 2. 1. Теоретическое вступление...... 274 4. 3. Раздаточный материал...... 282 4. 3. 1. Программа...... 282 4. 4. Домашнее задание...... 282 Семинар 5. Автоматизация модульного тестирования...... 284 5. 1. Тест...... 284 5. 2. Проверка домашнего задания...... 285 5. 3. Возможности MVSTE по автоматизации модульного тестирования...... 285 5. 3. 1. Начало работы...... 286 5. 3. 2. Создание тестов...... 286 5. 3. 3. Создание тестов...... 390 5. 3. 4. Обработка исключений...... 391 5. 4. Раздаточный материал...... 294 5. 4. 1. Программа...... 294 5. 5. Домашнее задание...... 294 Семинар 6. Контрольная работа...... 295 Семинар 7. Формальные инспекции...... 296 7. 1. Введение...... 296 7. 2. Этапы формальной инспекции и роли ее участников...... 298 7. 2. 1. Инициализация...... 298 7. 2. 2. Планирование...... 298 7. 2. 3. Подготовка...... 298 7. 2. 4. Обсуждение...... 299 7. 2. 5. Завершение...... 301 Семинар 8. Покрытие программного кода...... 302 8. 1. Проверка домашнего задания...... 302 8. 2. Понятие покрытия...... 302 8. 2. 1. Покрытие программного кода...... 302 8. 2. 2. Уровни покрытия...... 303 8. 2. 3. Анализ покрытия...... 311 8. 2. 4. Отчеты о покрытии программного кода...... 313 8. 3. Возможности MVSTE по построению покрытия кода...... 315 8. 4. Раздаточный материал...... 319 8. 4. 1. Программа...... 319 8. 5. Домашнее задание...... 319 Семинар 9. Повторяемость тестирования, зависимости тестовых примеров...... 320 9. 1. Тест...... 320 9. 2. Повторяемость тестирования...... 321 9. 2. 1. Теоретическое вступление...... 321 9. 3. Упорядоченные тесты (ordered tests) в MVSTE...... 334 9. 4. Раздаточный материал...... 339 9. 4. 1. Программа...... 339 9. 5. Домашнее задание...... 339 Семинар 10. Интеграционное тестирование...... 340 10. 1. Проверка домашнего задания...... 340 10. 2. Интеграционное тестирование...... 340 10. 2. 1. Задачи и цели интеграционного тестирования...... 340 10. 2. 2. Задачи и цели интеграционного тестирования...... 341 10. 2. 3. На примере «Калькулятора»...... 344 10. 3. Раздаточный материал...... 350 10. 3. 1. Программа...... 350 10. 4. Домашнее задание...... 350 Семинар 11. Тестирование в Microsoft Solutions Framework...... 351 11. 1. Тест...... 351 11. 2. Проверка домашнего задания...... 352 11. 3. Роль тестировщика в команде разработчиков ПО...... 352 11. 3. 1. Введение...... 352 11. 3. 1. Microsoft Solutions Framework...... 353 11. 3. 2. Тестировщик в MSF for Agile Software Development...... 356

Издательство: "Интернет-Университет Информационных Технологий" (2007)

ISBN: 9785955600925

Другие книги схожей тематики:

АвторКнигаОписаниеГодЦенаТип книги
Сергей ЗыльПроектирование, разработка и анализ программного обеспечения систем реального времени (+ CD-ROM)От издателя:Рассмотрены фундаментальные теоретические концепции систем реального времени, функциональная… — (формат: 60x90/16 (145х217 мм), 336стр. (таблицы) стр.) Подробнее...2010
160бумажная книга

См. также в других словарях:

  • Тестирование программного обеспечения — Разработка программного обеспечения Процесс разработки ПО Шаги процесса Анализ • Проектирование • Программирование • Докумен …   Википедия

  • Цикл разработки программного обеспечения — Эта статья предлагается к удалению. Пояснение причин и соответствующее обсуждение вы можете найти на странице Википедия:К удалению/30 июля 2012. Пока процесс обсуждения …   Википедия

  • Верификация — Позитивизм …   Википедия

  • верификация (с точки зрения электробезопасности) — …   Справочник технического переводчика

  • верификация — 02.02.03 верификация (символ) [verification]: Техническая процедура проверки, посредством которой производят измерения символа для определения его соответствия требованиям спецификации к этому символу. Источник …   Словарь-справочник терминов нормативно-технической документации

  • Формальная верификация — формальное доказательство соответствия или несоответствия формального предмета верификации его формальному описанию. Предметом выступают алгоритмы, программы и другие доказательства. Из за рутинности даже простой формальной верификации и… …   Википедия

Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»