От издательства....23
Благодарности....21
Предисловие....15
Введение....17
Почему я написала эту книгу....17
Кому адресована эта книга....18
Структура книги....19
Условные обозначения....20
Глава 1....24
Введение в full-stack-тестирование....24
Full-stack-тестирование для достижения высокого качества....26
Смещение тестирования влево....28
Десять навыков full-stack-тестирования....32
Ключевые выводы....36
Глава 2....37
Ручное исследовательское тестирование....37
Строительные блоки....39
Подходы к исследовательскому тестированию....39
Изучение функциональности....48
Стратегия ручного исследовательского тестирования....52
Изучение приложения....53
Исследование по частям....55
Поэтапное повторение исследовательского тестирования....56
Упражнения....57
Тестирование API....58
Тестирование веб-интерфейса....65
Перспективы: гигиена тестовой среды....71
Ключевые выводы....73
Глава 3....74
Автоматизированное функциональное тестирование....74
Строительные блоки....76
Введение в типы микро- и макротестов....76
Стратегия автоматизированного функционального тестирования....82
Упражнения....84
Функциональные тесты пользовательского интерфейса....85
Тесты сервисов....103
Модульные тесты....107
Дополнительные инструменты тестирования....111
Pact....111
Karate....116
Инструменты ИИ/МО в автоматизированном функциональном тестировании....116
Перспективы....119
Антипаттерны, которых нужно сторониться....119
Стопроцентный охват кода автоматизированными тестами!....121
Ключевые выводы....122
Глава 4....124
Непрерывное тестирование....124
Строительные блоки....125
Введение в непрерывную интеграцию....125
Процесс CI/CT/CD....126
Принципы и правила....131
Стратегия непрерывного тестирования....133
Преимущества....139
Упражнение....140
Git....140
Jenkins....144
Четыре ключевых показателя....148
Ключевые выводы....150
Глава 5....151
Тестирование данных....151
Строительные блоки....152
Базы данных....154
Кэши....159
Системы пакетной обработки....160
Потоки событий....162
Стратегия тестирования данных....164
Упражнения....166
SQL....166
JDBC....172
Apache Kafka и Zerocode....174
Дополнительные инструменты тестирования....183
Тестовые контейнеры....183
Deequ....184
Ключевые выводы....186
Глава 6....187
Визуальное тестирование....187
Строительные блоки....188
Введение в визуальное тестирование....188
Критически важные для проекта/бизнеса варианты применения....190
Стратегия тестирования пользовательского интерфейса....192
Модульные тесты....194
Интеграционные/компонентные тесты....194
Тесты моментальных снимков....195
Функциональные сквозные тесты....196
Визуальные тесты....197
Тестирование совместимости с браузерами....197
Тестирование производительности пользовательского интерфейса....199
Тестирование доступности....200
Упражнения....200
BackstopJS....200
Cypress....205
Дополнительные инструменты тестирования....208
Applitools Eyes, инструмент на базе искусственного интеллекта....208
Storybook....210
Перспективы: проблемы визуального тестирования....211
Ключевые выводы....212
Глава 7....213
Тестирование защищенности....213
Строительные блоки....215
Распространенные кибератаки....216
Модель угроз STRIDE....220
Уязвимости приложений....222
Моделирование угроз....225
Стратегия тестирования защищенности....233
Упражнения....237
OWASP Dependency-Check....237
OWASP ZAP....238
Дополнительные инструменты тестирования....245
Плагин Snyk IDE....245
Talisman, обработка события фиксации....246
Chrome DevTools и Postman....247
Перспективы: защита должна стать привычкой....248
Ключевые выводы....248
Глава 8....250
Тестирование производительности....250
Строительные блоки тестирования производительности серверной части....251
Производительность, продажи и выходные взаимосвязаны!....251
Простые цели производительности....252
Факторы, влияющие на производительность приложений....253
Ключевые показатели производительности....255
Типы тестов производительности....256
Типы режимов нагрузки....258
Этапы тестирования производительности....260
Упражнения....264
Шаг 1. Определение целевых показателей эффективности....264
Шаг 2. Описание тестовых примеров....265
Шаги 3–5. Подготовка данных, среды и инструментов....266
Шаг 6. Написание тестовых сценариев и их запуск с помощью JMeter....267
Дополнительные инструменты тестирования....275
Gatling....275
Apache Benchmark....276
Строительные блоки тестирования производительности пользовательского интерфейса....277
Факторы, влияющие на производительность внешнего интерфейса....279
Модель RAIL....280
Показатели производительности пользовательского интерфейса....281
Упражнения....283
WebPageTest....284
Lighthouse....287
Дополнительные инструменты тестирования....289
PageSpeed Insights....290
Chrome DevTools....291
Стратегия тестирования производительности....292
Ключевые выводы....294
Глава 9....295
Тестирование доступности....295
Строительные блоки....296
Персонажи пользователей с ограниченными возможностями....297
Экосистема доступности....298
Пример. Программы чтения с экрана....299
WCAG 2.0: руководящие принципы и уровни....301
Стандарты соответствия уровню А....301
Фреймворки с поддержкой специальных возможностей....305
Стратегия тестирования доступности....305
Контрольный список доступности в пользовательских историях....306
Инструменты автоматического тестирования доступности....307
Ручное тестирование....308
Упражнения....309
WAVE....310
Lighthouse....313
Модуль Lighthouse для Node....314
Дополнительные инструменты тестирования....316
Модуль Pa11y CI для Node....316
axe-core....316
Перспективы: доступность как культура....317
Ключевые выводы....317
Глава 10....319
Тестирование межфункциональных требований....319
Строительные блоки....320
Стратегия тестирования CFR....323
Функциональность....325
Удобство использования....326
Надежность....327
Производительность....328
Поддерживаемость....328
Другие методы тестирования CFR....329
Хаос-инжиниринг....330
Тестирование архитектуры....334
Тестирование инфраструктуры....336
Тестирование соответствия....339
Перспективы — эволюционное развитие и испытание временем!....342
Ключевые выводы....343
Глава 11....345
Тестирование мобильных приложений....345
Строительные блоки....346
Введение в мобильный ландшафт....346
Архитектура мобильного приложения....352
Стратегия тестирования мобильных приложений....353
Ручное исследовательское тестирование....356
Автоматизированное функциональное тестирование....356
Тестирование данных....357
Визуальное тестирование....358
Тестирование защищенности....358
Тестирование производительности....359
Тестирование доступности....360
Тестирование межфункциональных требований....361
Упражнения....363
Appium....363
Плагин Appium для визуального тестирования....370
Дополнительные инструменты тестирования....373
Database Inspector в Android Studio....374
Инструменты тестирования производительности....375
Инструменты тестирования защищенности....377
Accessibility Scanner....379
Перспективы — пирамида тестирования мобильных приложений....380
Ключевые выводы....381
Глава 12....382
За рамками тестирования....382
Основные принципы тестирования....382
Предотвращение дефектов вместо обнаружения....382
Эмпатическое тестирование....384
Тестирование на микро- и макроуровне....385
Быстрая обратная связь....385
Постоянная обратная связь....386
Измерение показателей качества....387
Общение и сотрудничество: ключ к высокому качеству....389
Навыки межличностного общения помогают формировать мышление, ориентированное на качество....390
Заключение....392
Глава 13....393
Введение в тестирование новых технологий....393
Интеллект и машинное обучение....394
Введение в машинное обучение....394
Тестирование приложений МО....396
Блокчейн....398
Введение в концепции блокчейна....399
Тестирование блокчейн-приложений....402
Интернет вещей....403
Введение в пятиуровневую архитектуру Интернета вещей....404
Тестирование приложений Интернета вещей....406
Дополненная и виртуальная реальность....408
Тестирование приложений ДР/ВР....409
Об авторе....411
Иллюстрация на обложке....412
Тестирование — важнейшая задача для создания высококачественного программного обеспечения. Разработчики и инженеры по качеству найдут в книге всеобъемлющий материал по тестированию в десяти различных категориях. Познакомьтесь с соответствующими стратегиями и понятиями и получите практические знания, применимые как при разработке, так и при тестировании мобильных и веб-приложений.
Автор предлагает примеры использования более чем 40 инструментов, которые вы сможете немедленно опробовать. Профессионалы и новички получат навыки тестирования производительности, защищенности и доступности, а также поближе познакомятся с особенностями исследовательского, межфункционального тестирования, тестирования данных и мобильных приложений, автоматизации тестирования, и многими другими вопросами, связанными с тестированием. Руководство поможет вам справиться со сложной задачей поддержания качества программного обеспечения в процессе его разработки.