Опубликовано

Новинка: “Искусство Agile-тестирования”

Искусство Agile-тестирования

Книга посвящена тестированию программного обеспечения в рамках технологии Agile. Рассматриваются основные аспекты Agile-тестирования: методология, организация, процессы, категории и техники тестирования, инфраструктура, тестовое обеспечение, контроль качества данных. Отдельные главы посвящены психологии Agile-тестирования и особенностям работы тестировщика в Agile-команде.

Для тестировщиков ПО, руководителей проектов

КНИГА ОХВАТЫВАЕТ ВСЕ ОСНОВНЫЕ АСПЕКТЫ AGILE-ТЕСТИРОВАНИЯ

Тестирование — важнейшая часть разработки программного обеспечения, в том числе и с использованием Agile-технологии.

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

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

Книгу “Искусство Agile-тестирования” можно купить со скидкой в интернет-магазине издательства “БХВ“.

Предисловие…………………………………………………………………………………………….. 9

Введение………………………………………………………………………………………………… 11

Глава 1. Agile-разработка программного обеспечения……………………………. 15

Agile-манифест……………………………………………………………………………………………………………………………. 16

Идеи Agile-манифеста………………………………………………………………………………………………………… 16

Люди и взаимодействие важнее процессов и инструментов…………………………………. 16

Работающий продукт важнее исчерпывающей документации……………………………. 18

Сотрудничество с заказчиком важнее согласования условий контракта…………… 20

Готовность к изменениям важнее следования первоначальному плану……………… 20

Основополагающие принципы Agile-манифеста…………………………………………………………….. 21

Суть Agile-разработки……………………………………………………………………………………………………………….. 23

Адаптивность, а не планирование……………………………………………………………………………………. 24

Ориентированность на людей, а не на процесс………………………………………………………………. 25

Концепции Agile………………………………………………………………………………………………………………….. 25

Уровни Agile………………………………………………………………………………………………………………………… 26

Модели разработки программного обеспечения……………………………………………………………………. 28

Традиционное/классическое проектирование………………………………………………………………………… 29

Каскадная модель………………………………………………………………………………………………………………. 29

V-модель……………………………………………………………………………………………………………………………… 31

W-модель…………………………………………………………………………………………………………………………….. 32

Спиральная модель……………………………………………………………………………………………………………. 33

Инкрементальная модель………………………………………………………………………………………………….. 33

Итеративная модель…………………………………………………………………………………………………………… 34

Ведущие методологии Agile-разработки…………………………………………………………………………………. 36

Scrum…………………………………………………………………………………………………………………………………… 37

Scrum-роли………………………………………………………………………………………………………………… 38

Scrum-встречи……………………………………………………………………………………………………………. 40

Scrum-артефакты………………………………………………………………………………………………………. 41

Спринт……………………………………………………………………………………………………………………….. 44

Kanban………………………………………………………………………………………………………………………………… 45

Принципы управления изменениями……………………………………………………………………….. 45

Принципы предоставления услуг……………………………………………………………………………. 46

Практические шаги Kanban……………………………………………………………………………………… 47

Дополнительные Agile-фреймворки………………………………………………………………………………….. 48

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

Разработка, управляемая функциональностью……………………………………………………… 50

Адаптивная разработка……………………………………………………………………………………………. 50

Crystal…………………………………………………………………………………………………………………………. 51

Масштабирование Agile……………………………………………………………………………………………………………. 51

Масштабированный Scrum……………………………………………………………………………………………….. 51

Текучая технология масштабирования……………………………………………………………………………. 52

Развернутый Agile-фреймворк…………………………………………………………………………………………… 53

Тестирование в Agile-разработках…………………………………………………………………………………………… 54

Глава 2. Бизнес-кейс: финансовая биржа………………………………………………. 56

Архитектура программного обеспечения биржи……………………………………………………………………. 56

Организация тестирования……………………………………………………………………………………………………….. 62

Тестовые системы и данные……………………………………………………………………………………………… 62

Организация Agile-команд…………………………………………………………………………………………………. 62

Глава 3. Организация…………………………………………………………………………….. 65

Структуры управления……………………………………………………………………………………………………………… 65

Линейно-функциональная структура управления………………………………………………………….. 66

Матричная структура управления…………………………………………………………………………………… 66

Встраивание Agile в структуру управления…………………………………………………………………………….. 67

Глава 4. Процессы…………………………………………………………………………………. 69

Адаптация Agile-процессов……………………………………………………………………………………………………….. 69

Процесс обучения и освоения: Shu-Ha-Ri (сю-ха-ри)…………………………………………………………….. 70

Процесс непрерывного улучшения: Kaizen (кайдзен)…………………………………………………………….. 71

Работа в спринте………………………………………………………………………………………………………………………… 72

Управление релизами………………………………………………………………………………………………………………… 73

Поддержка тестового обеспечения………………………………………………………………………………………….. 74

Проблемы и опасности……………………………………………………………………………………………………………… 75

Глава 5. Структура тестирования…………………………………………………………… 78

Объекты или уровни тестирования………………………………………………………………………………………….. 78

Модульное тестирование………………………………………………………………………………………………….. 79

Компонентное тестирование…………………………………………………………………………………………….. 80

Интеграционное тестирование…………………………………………………………………………………………. 81

Системное тестирование…………………………………………………………………………………………………… 81

Сквозное тестирование……………………………………………………………………………………………………… 82

Пользовательское тестирование: программный продукт и пользовательские интерфейсы          83

Категории тестирования…………………………………………………………………………………………………………… 83

Функциональное тестирование………………………………………………………………………………………… 84

Тестирование функциональности……………………………………………………………………………. 85

Аттестационное тестирование………………………………………………………………………………… 85

Нефункциональное тестирование…………………………………………………………………………………….. 85

Тестирование производительности…………………………………………………………………………. 86

Тестирование безопасности…………………………………………………………………………………….. 87

Дополнительные аспекты нефункционального тестирования……………………………… 88

Регрессионное тестирование…………………………………………………………………………………………….. 89

Приемочное тестирование………………………………………………………………………………………………… 90

Дымовое тестирование…………………………………………………………………………………………….. 91

Проверочное тестирование……………………………………………………………………………………… 91

Виды приемочного тестирования……………………………………………………………………………. 91

Техники тестирования……………………………………………………………………………………………………………….. 91

Структурные аспекты тестирования………………………………………………………………………………… 91

Метод черного ящика……………………………………………………………………………………………….. 91

Метод белого ящика…………………………………………………………………………………………………. 92

Метод серого ящика…………………………………………………………………………………………………. 92

Разработка через тестирование………………………………………………………………………………………… 92

Разработка через поведение……………………………………………………………………………………………… 93

Тестирование на основе моделирования…………………………………………………………………………. 94

Тестирование на основе данных………………………………………………………………………………………. 95

Техники формирования тест-кейсов и тестовых данных……………………………………………….. 96

Автоматизированное тестирование…………………………………………………………………………………. 97

Встраивание автоматизированных тестов в разработку продукта…………………….. 98

Некоторые аспекты автоматизированного тестирования…………………………………….. 99

Техники тестирования, основанные на опыте………………………………………………………………. 102

Эксплораторное тестирование……………………………………………………………………………… 102

Тестирование на основе сессий…………………………………………………………………………….. 104

Специальное тестирование……………………………………………………………………………………. 104

Внесение ошибок……………………………………………………………………………………………………………… 105

Мутационное тестирование…………………………………………………………………………………… 106

Модульная интеграция……………………………………………………………………………………………………. 106

Тестирование при интеграции на основе «большого взрыва»……………………………. 106

Инкрементальное тестирование……………………………………………………………………………. 107

Инструменты тестирования…………………………………………………………………………………………….. 107

Глава 6. Инфраструктура……………………………………………………………………… 109

Тестовая среда…………………………………………………………………………………………………………………………. 109

Тестовые данные……………………………………………………………………………………………………………………… 110

Глава 7. Agile-тестирование………………………………………………………………….. 112

Тест-квадранты………………………………………………………………………………………………………………………… 113

Квадрант КТ. Технические тесты, поддерживающие разработчиков………………………… 113

Тестирование модулей…………………………………………………………………………………………… 114

Компонентное тестирование…………………………………………………………………………………. 115

Квадрант КБ. Тесты, поддерживающие разработчиков и ориентированные на бизнес 116

Интеграционное тестирование………………………………………………………………………………. 118

Приемочные тесты для компонентов…………………………………………………………………….. 119

Функциональное тестирование системы………………………………………………………………. 119

Квадрант ПБ. Тесты, ориентированные на бизнес, поддерживающие продукт………… 120

Тестирование пользовательских сценариев…………………………………………………………. 121

Тестирование пригодности и удобства………………………………………………………………… 121

Пользовательское тестирование……………………………………………………………………………. 122

Квадрант ПТ. Технические тесты, поддерживающие продукт……………………………………. 123

Унаследованные системы……………………………………………………………………………………………………….. 124

Глава 8. Тестировщик………………………………………………………………………….. 127

Принципы успешной работы тестировщиков……………………………………………………………………….. 128

Постоянная обратная связь…………………………………………………………………………………………….. 128

Стремление принести пользу заказчику………………………………………………………………………… 129

Непосредственное личное общение……………………………………………………………………………….. 129

Смелость…………………………………………………………………………………………………………………………… 129

Сохранение вещей простыми………………………………………………………………………………………….. 130

Постоянное усовершенствование…………………………………………………………………………………… 130

Восприятие изменений…………………………………………………………………………………………………….. 131

Самоорганизация…………………………………………………………………………………………………………….. 131

Фокус на людях………………………………………………………………………………………………………………… 132

Радость от работы……………………………………………………………………………………………………………. 132

Глава 9. Тестовое обеспечение……………………………………………………………… 133

Планирование тестирования………………………………………………………………………………………………….. 134

Эпики…………………………………………………………………………………………………………………………………. 134

Истории…………………………………………………………………………………………………………………………….. 134

Стратегия тестирования………………………………………………………………………………………………….. 135

План тестирования…………………………………………………………………………………………………………… 138

Тест-спецификации и тест-кейсы……………………………………………………………………………………. 139

Пакеты тестов…………………………………………………………………………………………………………………………… 141

Метрики……………………………………………………………………………………………………………………………………. 142

Контроль над дефектами………………………………………………………………………………………………………… 145

Управление исходным кодом…………………………………………………………………………………………………. 146

Интегрированная среда разработки………………………………………………………………………………………. 147

Глава 10. Качество тестовых данных…………………………………………………… 148

Традиционный подход к оценке качества данных……………………………………………………………….. 148

Внутренняя категория……………………………………………………………………………………………………… 150

Контекстная категория……………………………………………………………………………………………………. 151

Категория представления данных………………………………………………………………………………….. 152

Категория доступа…………………………………………………………………………………………………………… 153

Пригодность к использованию как обобщенный показатель качества тестовых данных.. 153

Требования к метрике качества данных………………………………………………………………………… 154

Обобщенный детерминант качества тестовых данных……………………………………………….. 156

Коэффициент покрытия тест-кейса……………………………………………………………………….. 157

Вес тест-кейса…………………………………………………………………………………………………………. 157

Глава 11. Психология Agile-тестирования……………………………………………. 160

Психологические вызовы работы в Agile……………………………………………………………………………….. 162

Психологические вызовы Agile-разработки…………………………………………………………………… 163

Психологические вызовы тестировщика……………………………………………………………………….. 163

Роль психологической безопасности……………………………………………………………………………… 165

Agile-команда……………………………………………………………………………………………………………………………. 166

Согласованность и координация в команде………………………………………………………………….. 167

Развитие команды…………………………………………………………………………………………………………….. 167

Постоянное совершенствование команды…………………………………………………………………….. 169

Психологические стили коллег и как с ними обходиться…………………………………………….. 169

Нарциссический стиль……………………………………………………………………………………………. 171

Добросовестный стиль…………………………………………………………………………………………… 173

Психопатический стиль………………………………………………………………………………………….. 173

Манипулятивный стиль………………………………………………………………………………………….. 174

Драматический стиль……………………………………………………………………………………………… 175

Лживый стиль………………………………………………………………………………………………………….. 175

Бдительный стиль…………………………………………………………………………………………………… 176

Кверулянтный стиль……………………………………………………………………………………………….. 177

Структурный стиль…………………………………………………………………………………………………. 177

Пассивно-агрессивный стиль…………………………………………………………………………………. 177

Активно-агрессивный стиль…………………………………………………………………………………… 178

Доминантный стиль………………………………………………………………………………………………… 178

Привязчивый стиль…………………………………………………………………………………………………. 179

Глава 12. Выживание в «плохих» Agile-проектах…………………………………. 180

Причины проблематичных Agile-проектов……………………………………………………………………………. 180

Слишком формальное следование Agile-процессам……………………………………………………… 180

Нереалистическое планирование в проекте………………………………………………………………….. 182

Плохие рабочие отношения в команде………………………………………………………………………….. 183

Проект не подходит для Agile-разработки…………………………………………………………………….. 183

Имитация Agile-подхода………………………………………………………………………………………………….. 184

Позиционирование в «плохом» проекте………………………………………………………………………………… 184

Простые правила тестировщика…………………………………………………………………………………….. 185

Поддерживать тестовое обеспечение……………………………………………………………………. 185

Тщательно документировать результаты и протоколы тестирования……………… 185

Уделять большое внимание подробной коммуникации со всеми коллегами……. 186

Всегда открывать баг-репорт и фиксировать потенциальную проблему…………. 186

Автоматизировать все, что возможно…………………………………………………………………… 187

Не воспринимать происходящее лично………………………………………………………………… 187

Заключение………………………………………………………………………………………….. 189

Термины и определения……………………………………………………………………….. 191

Библиография………………………………………………………………………………………. 203

Предметный указатель…………………………………………………………………………. 206

Чернов Юрий Георгиевич

Чернов Юрий Георгиевич — кандидат технически наук с более чем 40-летним опытом в области разработки и тестирования программного обеспечения. Преподавал в различных университетах в Москве, Цюрихе, Киеве в качестве приглашенного лектора, работал в московских компаниях и израильском хайтеке. Выступал на многочисленных научных конференциях и конгрессах. Последние годы работает в Швейцарии, из них около 20 лет — на Цюрихской финансовой бирже в качестве руководителя группы тестирования и тест-менеджера. В настоящее время руководит собственной консалтинговой фирмой по тестированию программного обеспечения и научному анализу данных.

Summary
Aggregate Rating
3 based on 1 votes
Добавить комментарий