Вступительное слово....15
Предисловие....17
Благодарности....18
О книге....20
Для кого эта книга....20
Новичкам в построении стратегии тестирования API....21
Улучшение существующей стратегии тестирования API....21
Реализация определенных методов тестирования....21
Структура книги....21
Часть 1. Разработка стратегии тестирования....21
Часть 2. Введение тестов в нашу стратегию....22
Часть 3. Расширение стратегии тестирования....22
Предварительные требования....22
HTTP....22
Java....23
О коде в книге....24
Restful-booker-platform....24
Источники, используемые в книге....24
Форум LiveBook....25
Об авторе....26
Иллюстрация на обложке....27
От издательства....28
Часть 1. Значение тестирования веб-API....29
Глава 1. Для чего и как мы тестируем веб-API....30
1.1. Что происходит в ваших веб-API....31
1.1.1. Собственная сложность веб-API....31
1.1.2. Сложность взаимодействия многих веб-API....33
1.2. Как тестирование помогает нам....33
1.2.1. Представление....34
1.2.2. Реализация....35
1.2.3. Значение тестирования....36
1.2.4. Стратегический подход к тестированию API....37
Итоги....39
Глава 2. Начинаем наш путь тестирования....41
2.1. Знакомство с продуктом....42
2.1.1. Знакомство с нашей API-песочницей....42
2.2. Знакомство с платформой restful-booker....43
2.2.1. Изучение продукта....44
2.2.2. Исследования за пределами продукта....51
2.3. Фиксация нашего понимания....54
2.3.1. Сила моделей....54
2.3.2. Построение собственных моделей....56
2.4. Поздравляю, вы уже тестируете!....58
Итоги....59
Глава 3. Качество и риски....60
3.1. Что такое качество....61
3.1.1. Характеристики качества....62
3.1.2. Знакомство с пользователями....64
3.1.3. Качество и определение целей для нашей стратегии....65
3.2. Выявление рисков для качества....67
3.2.1. Обучение выявлению рисков....68
3.2.2. Игра «Газетный заголовок»....68
3.2.3. Обходное тестирование....69
3.2.4. Техника RiskStorming....70
3.3. Первые шаги в реализации стратегии....74
3.3.1. Выбор правильного подхода к тестированию риска....75
Итоги....76
Часть 2. Разработка стратегии тестирования....77
Глава 4. Тестирование дизайна API....78
4.1. Как мы тестируем дизайн API....81
4.1.1. Инструменты для опроса....81
4.1.2. Расширение методов и инструментов тестирования дизайна API....87
4.2. Использование инструментов документирования API для тестирования дизайна....91
4.2.1. Документирование API с помощью Swagger / OpenAPI 3....92
4.2.2. Помимо документации....99
4.3. Стимулирование команды к тестированию дизайна API....100
4.3.1. Как получить возможность тестирования дизайна API....101
4.3.2. Использование регулярных встреч....101
4.3.3. Организация специальных встреч....102
4.4. Тестирование дизайна API как элемент стратегии....103
Итоги....104
Глава 5. Исследовательское тестирование API....106
5.1. Значение исследовательского тестирования....107
5.1.1. Цикл тестирования в исследовательском тестировании....107
5.2. Планирование исследования....109
5.2.1. Создание уставов....109
5.2.2. Уставы и сеансы исследовательского тестирования....112
5.2.3. Проведение исследовательского тестирования....112
5.3. Исследовательское тестирование: пример....114
5.3.1. Начало сеанса....114
5.3.2. Как понять, когда что-то не так....117
5.3.3. Придумывание идей для тестирования....119
5.3.4. Использование инструментов....122
5.3.5. Ведение записей....126
5.3.6. Уметь остановиться....128
5.3.7. Проведение собственного сеанса исследовательского тестирования....130
5.4. Делитесь своими находками....131
5.5. Исследовательское тестирование как часть стратегии....132
Итоги....134
Глава 6. Автоматизация тестирования веб-интерфейса API....135
6.1. Получение пользы от автоматизации....136
6.1.1. Иллюзии автоматизации....136
6.1.2. Автоматизация для выявления изменений....139
6.1.3. Пусть риск будет нашим проводником....140
6.2. Настройка инструмента автоматизации Web API....141
6.2.1. Зависимости....142
6.2.2. Структурирование фреймворка....143
6.3. Создание автоматизированных проверок API....145
6.3.1. Автоматическая проверка 1: GET-запрос....145
6.3.2. Автоматическая проверка 2: POST-запрос....147
6.3.3. Автоматизированная проверка 3: объединение запросов....153
6.3.4. Запуск автоматизированных тестов в качестве интеграционных....160
6.4. Использование автоматизации в стратегии тестирования....161
Итоги....162
Глава 7. Разработка и внедрение стратегии тестирования....164
7.1. Определение стратегии для конкретного контекста....165
7.1.1. Определение приоритетных задач....166
7.1.2. Разные стратегии для различных контекстов....169
7.2. Превращение стратегии тестирования в план тестирования....170
7.2.1. Понимание тестируемости контекста....171
7.2.2. Организация и документирование плана....175
7.2.3. Выполнение плана и его осмысление....177
7.2.4. Развитие стратегии....179
Итоги....179
Часть 3. Расширяем нашу стратегию тестирования....181
Глава 8. Продвинутая автоматизация веб-API....182
8.1. Разработка через приемочное тестирование....183
8.1.1. Настройка автоматизированного фреймворка для приемочного тестирования....184
8.1.2. Создание заведомо провальной автоматической проверки....186
8.1.3. Добиваемся прохождения автоматической проверки....190
8.1.4. Остерегайтесь ловушек....191
8.2. Моделирование (mocking) веб-API....192
8.2.1. Подготовка к работе....194
8.2.2. Построение смоделированной проверки....195
8.3. Выполнение в составе пайплайна....198
8.3.1. Автоматизация интегрирована с кодовой базой....198
8.3.2. Автоматизация в отдельном проекте....201
Итоги....203
Глава 9. Тестирование контрактов....204
9.1. Что такое тестирование контрактов и как оно помогает в работе....205
9.2. Настройка системы тестирования контрактов....207
9.2.1. Введение в Pact....208
9.3. Создание теста контракта потребителя....209
9.3.1. Добавление Pact к нашему классу....209
9.3.2. Создание проверки потребителя....210
9.3.3. Настройка и размещение информации в Pact Broker....213
9.4. Создание теста контракта поставщика....216
9.4.1. Реализация теста контракта поставщика....216
9.4.2. Тестирование изменений....218
9.5. Тестирование контрактов как часть стратегии тестирования....219
Итоги....220
Глава 10. Тестирование производительности....221
10.1. Планирование теста производительности....222
10.1.1. Типы тестов производительности....222
10.1.2. Виды показателей при проведении тестов производительности....224
10.1.3. Определение целей тестирования производительности и ключевых показателей эффективности (KPI)....225
10.1.4. Создание пользовательского потока (user flow)....228
10.2. Выполнение теста производительности....233
10.2.1. Настройка инструментов для тестирования производительности....233
10.2.2. Создание сценария тестирования производительности....235
10.3. Выполнение и оценка теста производительности....246
10.3.1. Подготовка и проведение теста производительности....246
10.3.2. Анализ результатов....249
10.4. Ожидания от тестирования производительности....252
Итоги....253
Глава 11. Тестирование безопасности....254
11.1. Работа с моделями угроз....255
11.1.1. Создание модели....256
11.1.2. Обнаружение угроз с помощью STRIDE....258
11.1.3. Создание деревьев угроз....262
11.1.4. Минимизация угроз....265
11.2. Использование философии безопасности при тестировании....267
11.2.1. Тестирование безопасности на этапе проектирования API....267
11.2.2. Исследовательское тестирование безопасности....268
11.2.3. Автоматизация и тестирование безопасности....273
11.3. Тестирование безопасности как часть стратегии....276
Итоги....277
Глава 12. Тестирование в продакшене ....279
12.1. Планирование тестирования в продакшене....280
12.1.1. Что отслеживать....281
12.1.2. Цели уровня обслуживания....282
12.1.3. Соглашения об уровне обслуживания....283
12.1.4. Показатели уровня обслуживания....284
12.1.5. Что сохранять....286
12.2. Настройка инструментов для проведения тестирования в продакшене....288
12.2.1. Настройка учетной записи Honeycomb....288
12.2.2. Добавление Honeycomb в API....289
12.2.3. Расширенные запросы....291
12.2.4. Создание триггеров SLO....294
12.3. Дальнейшее тестирование в продакшене....295
12.3.1. Тестирование с применением синтетических пользователей....295
12.3.2. Тестирование гипотез....297
12.4. Расширение стратегии за счет тестирования в продакшене....299
Итоги....300
Приложение. Установка платформы API-песочницы....302
Настройка платформы restful-booker....302
Веб-интерфейсы — лицо приложения, и они должны быть совершенными. Внедрение программы автоматизированного тестирования — лучший способ убедиться, что ваши API готовы к работе.«Тестирование веб-API» — это уникальное практическое руководство, включающее в себя описание всех этапов: от начального проектирования набора тестов до методов документирования, реализации и предоставления высококачественных API. Вы познакомитесь с обширным набором методов тестирования — от исследовательского до тестирования продакшен-кода, а также узнаете, как сэкономить время за счет автоматизации с использованием стандартных инструментов. Книга поможет избежать многих трудностей при тестировании API.