Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тестирование ПО (лекции).doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.27 Mб
Скачать

Московский инженерно-физический институт (государственный университет)

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

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

Курс лекций

МОСКВА 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. Тестирование операций сравнения чисел 44

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