Предисловие ..................................................................................................................... 9
Введение .......................................................................................................................... 11
Глава 1. Аgilе-разработка программного обеспечения .......................................... 15
Аgilе-манифест ............ .. ...................... ......... .................................................................................. 16
Идеи Аgilе-манифеста ........................................................................................................... 16
Люди и взаимодействие важнее процессов и инструментов ...... .. ............................ 16
Работающий продукт важнее исчерпывающей документации ................................. 18
Сотрудничество с заказчиком важнее согласования условий ко нтракта ................. 20
Готовность к изменениям важнее следования первоначальному плану ....... .. .. ....... 20
Основополагающие принципы Аgilе-манифеста ................................................................ 21
Суть Аgilе-разработки ................................................................................................................... 23
Адаптивность, а не планирование ........................................................................................ 24
Ориентированность на людей, а не на процесс ................................................................... 25
Концепции Agile .................................................................................................................... 25
Уровни Agile ....... .. ............ .. ...................... .. ... .. .. .. ......................... .. ..... .. .. .......... .. .................. 26
Модели разработки программного обеспечения ........................................................................ 28
Традиционное/классическое проектирование ........................................... .. ................................ 29
Каскадная модель .. ..................................................................................... .. ..... ..................... 29
V-модель .. ................................................................................................... .. .............. .. .... ...... 31
W-модель ..................................... ....................... .................................. .. ....... ......................... 32
Спиральная модель ................................................................................................................ 33
Инкрементальная модель ........... .............. .. ... .. ...................................................................... 33
Итеративная модель .......................................................................................... ..................... 34
Ведущие методологии Аgilе-разработки ..................................................................................... 36
Scrum ....................................................................................................................................... 37
Scrum-poли ............................................................. ....................................................... 38
Sсrum-встречи ............................................. .................................................................. 40
Sсrum-артефакты ................................... .. ....... .. .. .................................. ................. ........ 41
Спринт ........................................................................................................................... 44
Kanban .................... ............................................. .................................. .. ................................ 45
Принцыпы управления изменениями ......................................................................... .45
Принципы предоставления услуг ................................................................................ 46
Практические шаги Kanban ...................... .. .................................. ................................ 47
Дополнительные Аgilе-фреймворки .................................................................................... .48
Экстремальное nр ограммированле ............................................................................ .49
Разработка , управляемая функuиональностью .......................................................... 50
Адаmивная разработка ................................................................................................. 50
Crystal ........................................ .. ............. ..... ................................................................. 51
Масштабирование Аgilе ................................................................................................................ 51
МасштабироваНllый Scrllm .................................................................................................... 51
Текучая технология масштабирования ............ .. ... .. ...................... ..... .. ........................ .. ...... 52
Развернутый Аgilе-фреймворк .............................................................................................. 53
Тестирование в Аgilе-разработках ............................................................................................... 54
Глава 2. Бизнес-кейс: финансовая биржа ................................................................. 56
Архитектура программного обеспечения биржи .... ........................... .. .............. ..... .. .................. 56
Организаuия тестирования ........................................................................................................... 62
Тестовые системы и данные ................................................................................................. 62
Организаuия Аgilе-команд ................................ .. ........................... ............ .. ................... ...... 62
Глава 3. Организация ................................................................................................... 65
Структуры управления .................................................................................................................. 65
Линейно-функuионалъная структура управления .................. .. .................................. .. ....... 66
Матричная структура управления ........................................................................................ 66
Встраивание Agile в структуру управления ................................................................................. 67
Глава 4. Процессы ......................................................................................................... 69
Адаптация Agile-npoцeccoв .......................................................................................................... 69
Проuесс обучения и освоения: Shu-Ha-Rj (сю-ха-ри) ................................................................. 70
Проuесс непрерывного улучшения: Kaizen (кайдзен) ................................................................ 71
Работа в спринте ................................. .............. .. .................................. .. ....................................... 72
Управление релизами .................................................................................... ................................ 73
Поддержка тестового обеспечения .................................................................. ............................ 74
Проблемы и опасности ................................. .. ....... .. .. .. .................................................................. 75
Глава 5. Структура тестирования ............................................................................. 78
Объекты или уровни тестирования .............................................................................................. 78
Модульное тестирование .................................... .................................................................. 79
Компонентное тестирование ................. .. ........ .. .. .................................. ................................ 80
Интеграционное тестирование ............................................................................................. 81
Системное тестирование ........................................ .. ............................................................. 81
Сквозное тестирование .. ................................ .. .. ........................... .. .............. ..... .. .. ................ 82
Полъзователъское тестирование: программный продукт и пользовательские
интерфейсы ............................................................................................................................. 83
Категории тестирования ............................................ .................................................................... 83
Функuионалъное тестирование ............................................................................................. 84
Тестирование функциональности ................................................................................ 85
Атгестаuионное тестирование ..................................................................................... 85
Нефункuиональное тестирование ..................... .. .................................................................. 85
Тестирование производительности ............................................................................. 86
Тестирование безопасности ......................................................................................... 87
Дополнительные аспекты нефункционального тестировавия .................................. 88
Регрессионное тестирование ................................................................................................ 89
Приемоч ное тестирование .................................................................................................... 90
Дымовое тестирование ................................................................................................. 91
Проверочное тестирование .......................................................................................... 91
Виды приемочного тестирования ................................................................................ 91
Техники тестирования ................................................................ .. .......................................... ....... 91
Структурные аспекты тестирования .................................................................................... 91
Метод черного ящика ................................................................................................... 91
Метод белого я щика .............................................................................................. ....... 92
Метод серого ящика ..................................................................................................... 92
Разработка через тестирование ............................................................................................. 92
Разработка через поведение .................................................................................................. 93
Тестирование на основе моделирования ............................................................................. 94
Тестирование на основе данных ........................................................................................... 95
Техники формирования тест-кейсов и тестовых данных ................................................... 96
Автоматизированное тестирование ...................................................................................... 97
Встраивание автоматизированных тестов в разработку продукта ......................... .. 98
Некоторые аспекты автоматизированного тестирования ......................................... 99
Техники тестирования, основанные на опыте ................................................................... ] 02
Эксплораторное тестирование ........................ ........................................................... 102
Тестирование на основе сессий ................................................................................. 104
Специальное тестирование ................................... ............. .. ...................................... 104
Внесение ошибок .. ..... ......... ................................................................................................. 105
Мутационное тестирование .. ........................ .. ........................................................... 106
Модульная интеграция ........................................................................................................ 106
Тестирование при интеграции на основе «большого взрыва» ................................ 1 Об
Инкрементальное тестирование ................................................................................ 107
Инструменты тестирования ...................................................................................... ..... ..... 107
Глава 6. Инфраструктура .......................................................................................... 109
Тестовая среда ...................................................... ....................................................................... 109
Тестовые данные .......................................................................................................................... 11 О
Глава 7. Аgilе-тестирование ...................................................................................... 112
Тест- квадранты ............................................................................................................................ 113
Квадрант КТ. Технические тесты, поддерживающие разработчиков ............................. 113
Тестирование модулей ......................... .. .................................................................... 114
Компонентное тестирование ...................................................................................... 1 15
Квадрант КБ. Тесты, поддер живающие разработчиков и ориентированные
на бизнес .. .. .............................................................. .. .. ......................................................... J 16
Интеграционное тестирование ......................... .................... ..................................... 118
Приемочные тесты для компонентов .... ....... .. ...................... ..... .. .............. .. .............. 1 19
Функциональное тестирование системы ................................................................ .. 119
Квадрант ПБ. Тесты, ориентированные на бизнес, nоддерживающие продукт ............. 120
Тестирование пользовательских. сценариев ............................................................. 121
Тестирование пригодности и удобства ........................................................... .......... 121
Пользовательское тестирование ................................................................................ 122
Квадрант ПТ. Технические тесты, поддерживаюшие продукт ........................................ 123
Унаследованные системы ......................................... .............................................................. .. .. 124
Глава 8. Тестировщик ................................................................................................ 127
Принципы успешной работы тестировщиков ........................................................................... 128
Постоянная обратная связь ................................................................... ..... .. ....................... ] 28
Стремление принести пользу заказчику ............................................................................ 129
Непосредственное личное общение ................................................................................... 129
Смелость ............................................................................................................................... 129
Сохранение вещей простыми ............................ .. ... .. ........................................... .......... ...... 130
Постоянное усовершенствование ....................................................................................... 130
Восприятие изменений ........................................................................................................ 13]
Самоорганизация ................................................................................................................. 131
Фокус на людях ........ .... .. ............. ........... ..................................... .. .. ..... .. .......................... .. .. 132
Радость от работы ................................................................................................................ 132
Глава 9. Тестовое обеспечение .. ................................................................................. 133
Планирование тестирования ......................... .. ... ... .. .. .. ....................... .. .. ..... .. .............................. 134
Эпики .................................................................................................................................... 134
Истории ................................................................................................................................. 134
Стратегия тестирования ...................................................................................................... 135
План тестирования .................. .. .. ................................................................... .. .. .. ................ 13 8
Тест-спецификации и тест-кейсы ....................................................................................... 139
Пакеты тестов .............................................................................................................................. J 41
Метрики ..................................... .. ...................... .. ... .. ...................... .. .......................... .. ................ 142
Контроль над дефектами ............................................................................................................. 145
Управление исходным кодом ..................................................................................................... 146
Интегрированная среда разработки .. ................... .. .................................... .. ............ .. ................ 147
Глава 10. Качество тестовых данных ...................................................................... 148
Традиционный подход к оценке качества данных .................................................................... 148
Внутренняя категория ......................................................................... .. .... .. ........................ 150
Контекстная категория ........................................................................................................ 151
Категория представления данных ............................................. .. .. ..................................... 152
Категория доступа ................................. .. ...................................................................... ...... 153
Пригодность к использованию как обобщенный показатель качества тестовых данных ......... 153
Требования к метрике качества данных ............................................................................ 154
Обобщенный детерминант качества тестовых да нных .................................................... 156
Коэффициент покрытия тест-кейса ........................................................................... 157
Вес тест-кейса .................................. .. ......................................... .. ... .. ......................... 157
Глава 11. Психология Аgilе-тестирования ............................................................. 160
Психологические вызовы работы в Agile .................................................................................. 162
Психологические вызовы Agilе-разработки ......... .. ............ .. .................. .. ......................... 163
Психологические вызовы тестировщика ........................................................................... 163
Роль психологической безопасности ................................... .. ............................................ 165
Аgilе-команда ............................................................................................................................... 166
Согласованность и координация в команде .. ....... .. ............................. .............................. 167
Развитие команды ............................ .................................................... .. .............. ................ 167
Постоянное совершенствован.ие команды ......................................................................... ] 69
Психологические стили коллег и как с ними обходиться ................................................ 169
Нарциссический стиль ................................................................................................ 171
Добросовестный стиль ............................................................................................... 173
Психопатический стиль .............................................................................................. ] 73
Манипулятивный стиль .............................................................................................. 17 4
Драматический стиль .............................. ..................................... .............................. 175
Лживый стиль ............................................................. .. ............................................... 175
Бдительный стиль ....................................................................................................... 176
Кверулянтный стиль ................................................................................................... 177
Структурный стиль ..................................................................................................... 177
Пассивно-агрессивный стиль ..................................................................................... 177
Активно-агрессивный стиль .................................................................................. .... 178
Доминантный стиль .................................................................................................... 178
Привязчивый стиль ............................................................................... .. .................... 179
Глава 12. Выживание в «плохих» Agile-пpoeктax ................................................. 180
Причины проблематичных Аgilе-проектов ............................................................................... 180
Слишком формальное следование Аgilе-процессам ......................................................... 180
Нереалистическое планирование в проекте ............................................ .. ........................ 182
Плохие рабочие отношения в команде .............................................................................. 183
Проект не подходит для Аgilе-разработки ......................................................................... 183
Имитация Аgilе-подхода ......................................................... ............................................ 184
Позиционирование в «плохом» проекте .................................................................................... 184
Простые правила тестировщика .............................. ........................................................... 185
Поддерживать тестовое обеспечение ........................................................................ 185
Тщательно документировать результаты и протоколы тестирования ................... 185
Уделять большое внимание подробной коммуникации со всеми коллегами ........... 1 86
Всегда открывать баг-репорт и фиксировать потенциальную проблему ............... 186
Автоматизировать все, что возможно ....................................................................... 187
Не воспринимать происходящее лично .................................................................... 187
Заключение ................................................................................................................... 189
Термины и определения ............................................................................................. 191
Библиография .............................................................................................................. 203
Предметный указатель .............................................................................................. 206
Книга посвящена тестированию программного обеспечения в рамках технологии Agile. Рассматриваются основные аспекты Agile-тестирования: методология, организация, процессы, категории и техники тестирования, инфраструктура, тестовое обеспечение, контроль качества данных. Отдельные главы посвящены психологии Agile-тестирования и особенностям работы тестировщика в Agile-команде.
Для тестировщиков ПО, руководителей проектов
КНИГА ОХВАТЫВАЕТ ВСЕ ОСНОВНЫЕ АСПЕКТЫ AGILE-ТЕСТИРОВАНИЯ
Тестирование — важнейшая часть разработки программного обеспечения, в том числе и с использованием Agile-технологии.
Книга охватывает все основные аспекты Agile-тестирования: методологию, организацию, процессы, категории и техники тестирования, инфраструктуру, тестовое обеспечение, контроль качества данных, а также психологические аспекты работы тестировщика в Agile-команде.
Обычно Agile-разработка не вызывает сложностей, если речь идет об относительно небольшом проекте. Однако картина меняется, когда разрабатываемая система состоит из многих компонентов, объединенных сложной системой связей, когда над ней трудится несколько независимых команд. Именно на таких проектах и сделан основной акцент в книге. На ее страницах подробно рассматриваются как теоретические, так и практические аспекты Agile-тестирования. Книга предназначена в первую очередь для профессионалов – тестировщиков и руководителей проектов, однако она будет полезна и начинающим специалистам.