Курс лекций москва 2006 Цели курса 5 Для кого предназначен этот курс? 5 Необходимые предварительные знания 5 - umotnas.ru o_O
Главная
Поиск по ключевым словам:
Похожие работы
Название работы Кол-во страниц Размер
Курс лекций Красноярск, 2007 Сенашов, В. И 3 992.09kb.
Программа курса пояснительная записка курс «Организационная психология» 1 333.67kb.
Центр переподготовки и повышения квалификации преподавателей 1 101.96kb.
И в любом техническом вузе). Курс состоит из следующих глав (разделов) 1 35.6kb.
Курс лекций по дисциплине Общая энергетика для специальностей 6 2868.2kb.
Программа курса пояснительная записка курс «Социальная психология... 1 124.95kb.
Курс лекций Лектор: доцент кафедры теоретической кибернетики Мубаракзянов Р. 3 342.08kb.
Курс лекций для специальностей: 1-25. 01. 08 «Бухгалтерский учет... 7 2542.66kb.
Курс лекций Минск 2007 (075. 8) Ббк 65. 01 37 4487.72kb.
Рабочая программа дисциплины гендерные исследования для направления... 1 83.98kb.
Курс лекций часть III москва-2006 5 1597.02kb.
Методические рекомендации по выполнению дипломной работы по специальности... 1 350.61kb.
Викторина для любознательных: «Занимательная биология» 1 9.92kb.

Курс лекций москва 2006 Цели курса 5 Для кого предназначен этот курс? 5 Необходимые - страница №1/25



МОСКОВСКИЙ ИНЖЕНЕРНО-ФИЗИЧЕСКИЙ ИНСТИТУТ (ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ)

С.В. Синицын, Н.Ю. Налютин

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

МОСКВА 2006



Цели курса 5

Для кого предназначен этот курс? 5

Необходимые предварительные знания 5

Благодарности 5

ТЕМА 1. Введение. Место верификации среди процессов разработки программного обеспечения (лекция 1) 6

1.1. Жизненный цикл разработки программного обеспечения 6

1.2. Модели жизненного цикла 7

1.2.1. Каскадный жизненный цикл 7

1.2.2. V-образный жизненный цикл 8

1.2.3. Спиральный жизненный цикл 8

1.2.4. Экстремальное программирование 9

1.2.5. Сравнение различных типов жизненного цикла и вспомогательные процессы 9

1.3. Современные технологии разработки программного обеспечения: 11

1.3.1. Microsoft Solutions Framework 11

1.3.2. Rational Unified Process 14

1.3.3. eXtreme Programming 15

1.3.4. Сравнение технологий MSF, RUP и XP 15

1.4. Ролевой состав коллектива разработчиков, взаимодействие между ролями в различных технологических процессах 16

1.5. Задачи и цели процесса верификации 18

1.6. Тестирование, верификация и валидация – различия в понятиях 19

1.7. Документация, создаваемая на различных этапах жизненного цикла 20

1.8. Типы процессов тестирования и верификации и их место в различных моделях жизненного цикла 22

1.8.1. Модульное тестирование 22

1.8.2. Интеграционное тестирование 22

1.8.3. Системное тестирование 23

1.8.4. Нагрузочное тестирование 23

1.8.5. Формальные инспекции 23

1.9. Верификация сертифицируемого программного обеспечения 23

ТЕМА 2. Тестирование программного кода (лекции 2-5) 26

2.1. Задачи и цели тестирования программного кода 26

2.2. Методы тестирования 27

2.2.1. Черный ящик 27

2.2.2. Стеклянный (белый) ящик 28

2.2.3. Тестирование моделей 28

2.2.4. Анализ программного кода (инспекции) 29

2.3. Тестовое окружение 29

2.3.1. Драйверы и заглушки 30

2.3.2. Тестовые классы 32

2.3.3. Генераторы сигналов (событийно-управляемый код) 33

2.4. Тестовые примеры 35

2.4.1. Тест-требования как основной источник информации для создания тестовых примеров 35

2.4.2. Типы тестовых примеров 38

2.4.2.1. Граничные условия 42

2.4.3. Проверка робастности (выхода за границы диапазона) 42

2.4.4. Классы эквивалентности 43

2.4.5. Тестирование операций сравнения чисел 45

2.5. Тест-планы 47

2.5.1. Типовая структура тест-плана 48

2.6. Оценка качества тестируемого кода – статистика выполнения тестов 49

2.7. Покрытие программного кода 51

2.7.1. Понятие покрытия 51

2.7.2. Уровни покрытия 52

2.7.3. По строкам программного кода (Statement Coverage) 52

2.7.3.1. По веткам условных операторов (Decision Coverage) 53

2.7.3.2. По компонентам логических условий 53

2.7.3.3. Покрытие по условиям (Condition Coverage) 53

2.7.3.4. Покрытие по веткам/условиям (Condition/Decision Coverage) 54

2.7.3.5. Покрытие по всем условиям (Multiple Condition Coverage) 54

2.7.4. Метод MC/DC для уменьшения количества тестовых примеров при 3-м уровне покрытия кода 55

2.7.5. Анализ покрытия 56

ТЕМА 3. Повторяемость тестирования (лекция 6) 57

3.1. Задачи и цели обеспечения повторяемости тестирования при промышленной разработке программного обеспечения 57

3.2. Предусловия для выполнения теста, настройка тестового окружения, оптимизация последовательностей тестовых примеров 59

3.3. Зависимость между тестовыми примерами, настройки по умолчанию для тестовых примеров и их групп 62

ТЕМА 4. Документация, сопровождающая процесс верификации и тестирования (лекции 6-8) 63

4.1. Технологические процессы верификации и роли в проекте, документация, создаваемая в ходе жизненного цикла проекта, ее назначение 63

4.2. Стратегия и планы верификации 66

4.3. Тест-требования 68

4.3.1. Технологические цепочки и роли участников проекта, использующих тест-требования. Связь тест-требований с другими типами проектной документации. 68

4.3.2. Свойства тест-требований 68

4.4. Тест-планы 70

4.4.1. Технологические цепочки и роли участников проекта, использующих тест-планы. Связь тест-планов с другими типами проектной документации. 70

4.4.2. Возможные формы подготовки тест-планов 71

4.4.3. Сценарии 71

4.4.4. Таблицы 73

4.4.5. Конечные автоматы 75

4.4.6. Генераторы тестов 77

4.5. Отчеты о прохождении тестов 78

4.5.1. Технологические цепочки и роли участников проекта, использующих отчеты о прохождении тестов. Связь отчетов о прохождении тестов с другими типами проектной документации. 78

4.5.2. Возможные формы представления отчетов о прохождении тестов 78

4.5.3. Автоматическое и ручное тестирование 82

4.6. Отчеты о покрытии программного кода 83

4.6.1. Технологические цепочки и роли участников проекта, использующих отчеты о покрытии. Связь отчетов о покрытии с другими типами проектной документации. 83

4.6.2. Возможные формы отчетов о покрытии 84

4.6.3. Покрытие на уровне исходных текстов и на уровне машинных кодов 89

4.7. Отчеты о проблемах 90

4.7.1. Технологические цепочки и роли участников проекта, использующих отчеты о проблемах. Связь отчетов о проблемах с другими типами проектной документации. 90

4.7.2. Структура отчетов о проблемах, их трассировка на программный код и документацию 91

4.8. Трассировочные таблицы 92

4.8.1. Технологические цепочки и роли участников проекта, использующих трассировочные таблицы. Связь трассировочных таблиц с другими типами проектной документации. 92

4.8.2. Возможные формы трассировочных таблиц 93

ТЕМА 5. Формальные инспекции (лекции 9-10) 95

5.1. Задачи и цели проведения формальных инспекций 95

5.2. Этапы формальной инспекции и роли ее участников 96

5.2.1. Инициализация 96

5.2.2. Планирование 97

5.2.3. Подготовка 98

5.2.4. Обсуждение 98

5.2.5. Завершение 100

5.3. Документирование процесса формальной инспекции 100

5.3.1. Бланк инспекции 101

5.3.1.1. Титульный лист 101

5.3.1.2. Список контрольных вопросов 102

5.3.1.3. Список несоответствий 102

5.3.1.4. Колонтитул 102

5.3.2. Жизненный цикл инспектируемого документа 103

5.4. Формальные инспекции программного кода 104

5.4.1. Особенности этапа просмотра инспектируемого кода 104

5.4.2. Особенности этапа проведения собрания 105

5.4.3. Особенности этапа завершения и повторной инспекции 105

5.5. Формальные инспекции проектной документации 105

5.5.1. Особенности этапа просмотра документации 105

5.5.2. Особенности этапа завершения 106

ТЕМА 6. Модульное тестирование (лекция 11) 106

6.1. Задачи и цели модульного тестирования 107

6.2. Понятие модуля и его границ. Тестирование классов. 108

6.3. Подходы к проектированию тестового окружения 110

6.4. Организация модульного тестирования 111

ТЕМА 7. Интеграционное тестирование (лекция 12) 114

7.1. Задачи и цели интеграционного тестирования 114

7.2. Организация интеграционного тестирования 115

7.2.1. Структурная классификация методов интеграционного тестирования 115

7.2.2. Временная классификация методов интеграционного тестирования 118

7.2.3. Планирование интеграционного тестирования 119

ТЕМА 8. Системное тестирование (лекция 13) 120

8.1. Задачи и цели системного тестирования 120

8.2. Виды системного тестирования 120

8.3. Системное тестирование, приемо-сдаточные и сертификационные испытания при разработке сертифицируемого программного обеспечения 124

ТЕМА 9. Тестирование пользовательского интерфейса (лекция 14) 128

9.1. Задачи и цели тестирования пользовательского интерфейса 128

9.2. Функциональное тестирование пользовательских интерфейсов 129

9.2.1. Проверка требований к пользовательскому интерфейсу 130

9.2.1.1. Типы требований к пользовательскому интерфейсу 130

9.2.1.2. Тестопригодность требований к пользовательскому интерфейсу 132

9.2.2. Полнота покрытия пользовательского интерфейса 132

9.2.3. Методы проведения тестирования пользовательского интерфейса, повторяемость тестирования пользовательского интерфейса 133

9.2.3.1. Ручное тестирование 133

9.2.3.2. Сценарии на формальных языках 134

9.3. Тестирование удобства использования пользовательских интерфейсов 135

ТЕМА 10. Методы разработки устойчивого кода (лекция 15) 138

10.1. Классификация проблем, возникающих при работе программных систем 138

10.1.1. Сбои 138

10.1.2. Отказы и аварии 139

10.2. Методы разработки устойчивого кода 141

10.2.1. Критические точки и допущения (assertions) 142

10.2.2. Обработка исключений 143

10.2.3. Сбор и обработка информации о сбоях и отказах 144

ТЕМА 11. Поддержка процесса тестирования при промышленной разработке программного обеспечения (лекция 16) 145

11.1. Управление качеством 145

11.1.1. Задачи и цели управления качеством 145

11.1.2. Система менеджмента качества по ISO 9000 146

11.1.3. Аудит процессов разработки и верификации 148

11.1.4. Корректирующие действия и коррекция процессов 148

11.2. Конфигурационное управление 149

11.2.1. Задачи процесса конфигурационного управления 150

11.2.2. Процедуры процесса конфигурационного управления 152

11.2.2.1. Идентификация конфигураций 152

11.2.2.2. Базовые конфигурации и прослеживаемость 153

11.2.2.3. Управление изменениями 153

11.2.2.4. Вычисление статуса конфигурации 154

11.2.2.5. Архивирование, аудиты и обзоры конфигураций 154

11.2.2.6. Управление инструментальными средствами 155

11.2.3. Уровни управления данными 155

11.3. Управление качеством и конфигурационное управление при разработке сертифицируемого программного обеспечения. 156

Библиографический список 158

Цели курса


Целью данного курса лекций является изложение комплексного взгляда на процесс верификации программного обеспечения. Предметом обсуждения являются различные подходы и методы, применяемые в области верификации и, в частности, тестирования программного обеспечения.

Предполагается, что разрабатываемое программное обеспечение является частью более общей системы. Подобная система включает аппаратные, информационные и организационные (человек-пользователь, человек-оператор и т.п.) компоненты, разрабатываемые, возможно, разными коллективами. Поэтому необходимы документы разработки, определяющие требования к различным компонентам системы и правила их взаимодействия.

Кроме того, предполагается, что отказы системы могут приводить к последствиям той или иной тяжести, поэтому при разработке программного обеспечения необходимы и оправданы усилия, потраченные на выявление скрытых дефектов. В первую очередь, это касается средств и процедур верификации программного обеспечения.

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


Для кого предназначен этот курс?


Настоящий курс ориентирован на студентов и специалистов – разработчиков программного обеспечения, изучающих вопросы технологии создания программных систем с повышенными требованиями к критичности. То есть таких систем, отказы которых могут привести к катастрофическим последствиям или значительным материальным потерям.

Основная ориентация курса на персонал, который непосредственно вовлечен в процесс верификации программного обеспечения системы. Материал курса будет полезен для руководителей проектов, разработчиков требований и архитектуры системы, так как от них зависит организация работ и качество проектной документации.

В курсе затронуты вопросы конфигурационного управления и управления качеством, которые могут быть интересны всем участникам программного проекта.
следующая страница >>