Дилемма Исследовательского Тестирования
Исследовательское тестирование мощно—оно использует человеческую креативность и знание домена для нахождения багов, которые пропускают скриптованные тесты. Тем не менее оно сталкивается с критикой за то, что оно неструктурировано, сложно управляемо и невозможно измерить. Как отследить прогресс, когда нет предопределенного списка тест-кейсов? Как узнать, когда вы закончили? Как оправдать потраченное время?
Session-Based Test Management (SBTM), пионером которого стали Джон Бах и Джеймс Бах, решает это, привнося структуру в исследование без жертвования преимуществами исследовательского тестирования. Он предоставляет фреймворк, который делает исследовательское тестирование отслеживаемым, управляемым и измеримым.
Что Такое Session-Based Test Management?
SBTM организует исследовательское тестирование в сессии с ограничением по времени, направляемые тестовыми чартерами. Каждая сессия фокусируется на конкретной миссии, типично длящейся 60-120 минут (90 минут стандарт). После каждой сессии тестировщики документируют находки через структурированный дебрифинг.
Основные Компоненты
1. Тестовый Чартер: Заявление миссии, определяющее что исследовать 2. Сессия: Тестовая активность с ограничением по времени (типично 90 минут) 3. Лист Сессии: Шаблон документации, захватывающий тестовые активности 4. Дебрифинг: Пост-сессионный обзор и сбор метрик 5. Метрики: Инсайты на основе данных о прогрессе и покрытии тестирования
Тестовые Чартеры: Определение Миссии
Тестовый чартер специфицирует что тестировать и почему, предоставляя фокус без жестких скриптов. Формат чартера типично следует этой структуре:
Charter: Исследовать [цель]
С [ресурсами]
Чтобы обнаружить [информацию]
Примеры Хорошо Составленных Чартеров
Пример 1: E-Commerce Checkout
Charter: Исследовать рабочий процесс checkout
С различными методами оплаты (кредитная карта, PayPal, Apple Pay)
Чтобы обнаружить как система обрабатывает сбои платежей и повторы
Пример 2: Производительность Мобильного Приложения
Charter: Исследовать функцию загрузки фото
С разными условиями сети (3G, 4G, WiFi, оффлайн)
Чтобы обнаружить деградацию производительности и обработку ошибок
Пример 3: Интеграция API
Charter: Исследовать API аутентификации пользователя
С невалидными токенами, истекшими сессиями и конкурентными запросами
Чтобы обнаружить уязвимости безопасности и обработку граничных случаев
Пример 4: Миграция Данных
Charter: Исследовать импорт данных легаси-системы
С поврежденными CSV файлами, неожиданными типами данных и большими датасетами
Чтобы обнаружить сбои валидации данных и узкие места производительности
Руководства по Скоупу Чартера
Хорошие Чартеры:
- Достаточно сфокусированы для 90-минутной сессии
- Четкая цель и задачи
- Тестируемы и действенны
- Выровнены с текущими проектными рисками
Избегать:
- Слишком широко: “Протестировать всё приложение”
- Слишком узко: “Проверить что кнопка логина синяя”
- Расплывчато: “Поиграть с системой”
- Дублирование: Повторение уже покрытых областей без причины
Структура SBTM Сессии
Типичная 90-минутная сессия разбивается на:
Настройка (5-10 минут):
- Обзор чартера
- Подготовка тестовых данных, инструментов, окружения
- Установка целей сессии
Тестирование (70-80 минут):
- Выполнение исследовательского тестирования, направляемого чартером
- Документирование находок в реальном времени
- Следование интересным путям
- Заметки о багах, вопросах, рисках
Завершение (5-10 минут):
- Резюмирование находок
- Завершение листа сессии
- Идентификация областей для последующих действий
Управление Временем Сессии
SBTM сессии непрерываемы. Если прервана, остановите часы сессии. Это обеспечивает точное отслеживание времени и сохраняет состояние потока.
Типы Сессий:
- Нормальная Сессия: Полное время тестирования посвящено чартеру
- Короткая Сессия: < 60 минут (когда время ограничено)
- Длинная Сессия: > 120 минут (для сложных интеграций; разбейте на несколько сессий если возможно)
Шаблон Листа Сессии
Лист сессии — центральный артефакт SBTM. Он захватывает что было протестировано, что было найдено и распределение времени.
Стандартный Формат Листа Сессии
## Информация о Сессии
Charter: [Текст чартера]
Тестировщик: [Имя]
Дата: [Дата]
Время Старта: [Время]
Длительность: [X минут]
Разбивка Задач: [Test%, Bug%, Setup%]
## Протестированные Области
- Поток логина с SSO интеграцией
- Функциональность сброса пароля
- Поведение таймаута сессии
- Многофакторная аутентификация
## Заметки о Тестах
- Протестировано с SSO провайдерами Google, Microsoft и Okta
- Проверен механизм обновления токена
- Исследован граничный случай: истекшая SSO сессия во время использования приложения
- Проверено поведение с отключенным MFA против включенного MFA
## Найденные Баги
BUG-1234: SSO логин падает молча когда Okta возвращает ошибку 503
BUG-1235: Промпт таймаута сессии появляется за модальным окном, делая его недостижимым
BUG-1236: MFA код принимает 5 цифр вместо требуемых 6
## Вопросы/Риски
В: Что происходит если пользователь меняет пароль пока сессия активна?
В: Есть ли лимитирование скорости на запросы сброса пароля?
РИСК: Нет логирования для провалившихся SSO попыток, сложно диагностировать проблемы пользователей
## Проблемы/Блокеры
- Тестовое окружение Okta было недоступно 20 минут
- Не удалось протестировать Microsoft SSO из-за отсутствия тестового тенанта
## Файлы Данных
- test_users.csv (100 пользовательских аккаунтов с различными состояниями)
- sso_tokens_invalid.json (истекшие и некорректно сформированные токены)
## Метрики
Длительность Сессии: 90 минут
Чартер vs Возможность: 70% чартер, 30% возможность
Test vs Bug vs Setup: 75% тест, 15% исследование бага, 10% настройка
Разбивка Задач: Соотношение TBS
SBTM отслеживает распределение времени по трем категориям:
Test: Время, потраченное на активное тестирование Bug: Время, потраченное на исследование и отчетность о багах Setup: Время, потраченное на подготовку окружения, данных, инструментов
Типичные Соотношения:
- Здоровое: 70% Test, 20% Bug, 10% Setup
- Тревожное: 40% Test, 10% Bug, 50% Setup (проблемы окружения)
- Тяжелое по Bug: 50% Test, 45% Bug, 5% Setup (нестабильный билд)
Чартер vs. Возможность
Не все тестирование следует чартеру. Тестировщики могут обнаружить интересные тангенты, которые стоит исследовать.
Время Чартера: Тестирование, выровненное с чартером сессии Время Возможности: Тестирование тангенциальных интересных находок
Пример: Чартер фокусируется на обработке платежей, но тестировщик замечает подозрительные CORS ошибки в консоли. Потратить 20 минут на исследование CORS проблемы — это “возможное” тестирование.
Идеальный Баланс: 70-80% чартер, 20-30% возможность. Слишком много возможности предполагает плохо ограниченные чартеры или высоко нестабильное ПО.
Процесс Дебрифинга
После каждой сессии тестировщик и тест-менеджер проводят краткий дебриф (5-15 минут). Это служит нескольким целям:
Цели Дебрифа
- Валидация Находок: Воспроизводимы ли баги? Ясно ли описание?
- Идентификация Последующих Действий: Нужны ли дополнительные сессии для этой области?
- Обмен Знаниями: Что мы узнали? Какие паттерны появились?
- Корректировка Стратегии: Должны ли мы переприоритизировать чартеры на основе находок?
Вопросы Дебрифа
Для Тестировщика:
- Что вы нашли наиболее интересным?
- Что вас удивило?
- Что бы вы тестировали иначе в следующий раз?
- Какие риски вы идентифицировали?
Для Менеджера:
- Чартер все еще релевантен?
- Должны ли мы инвестировать больше/меньше в эту область?
- Есть ли зависимости, блокирующие прогресс?
- Какая поддержка нужна тестировщику?
Выводы Дебрифа
- Обновления Чартеров: Уточнить или убрать чартеры на основе обучения
- Новые Чартеры: Породить последующие миссии из находок
- Приоритизация Багов: Сортировка серьезности и назначение разработчикам
- Отслеживание Покрытия: Обновление карт покрытия тестирования
Метрики и Отчетность SBTM
В отличие от скриптованного тестирования, SBTM метрики фокусируются на покрытии и обучении, а не на подсчетах пройдено/провалено.
Ключевые Метрики
1. Количество Сессий: Число завершенных сессий на область/фичу 2. Покрытие: Какие области получили внимание тестирования 3. Скорость Обнаружения Багов: Баги найденные за час сессии 4. Распределение Сессий: Распределение времени по разным чартерам 5. % Возможности: Сколько тестирования отклонилось от чартеров
Карта Покрытия Сессий
Визуализируйте где были инвестированы тестовые усилия:
Область Фичи | Сессии | Всего Часов | Найдено Багов | Последнее Тестирование |
---|---|---|---|---|
Аутент. Пользователя | 8 | 12ч | 14 | 2025-10-05 |
Платеж | 12 | 18ч | 23 | 2025-10-06 |
Доставка | 4 | 6ч | 5 | 2025-10-03 |
Админ Панель | 2 | 3ч | 7 | 2025-10-01 |
Отчетность | 0 | 0ч | 0 | Никогда |
Инсайты:
- Обработка платежей получила больше всего внимания (высокорискованная область)
- Админ панель показывает высокую плотность багов (7 багов за 2 сессии)
- Область отчетности не протестирована (запланировать сессии)
Тренды Обнаружения Багов
Отслеживать баги найденные за час сессии со временем:
- Неделя 1: 3.2 бага/час (много низко висящих фруктов)
- Неделя 2: 2.1 бага/час (найдены крупные проблемы)
- Неделя 3: 0.8 бага/час (убывающая отдача)
- Неделя 4: 0.5 бага/час (приближение к стабильности)
Точка Решения: На неделе 4 сместить фокус тестирования на неисследованные области или фичи.
Метрики Производительности
Эффективность Сессии:
- Средняя длительность сессии: 87 минут (цель: 90)
- Время настройки %: 12% (цель: < 15%)
- Сессии отменены из-за блокеров: 8% (исследовать стабильность окружения)
Реальная Реализация SBTM
Кейс-Стади: Запуск Fintech Мобильного Приложения
Контекст: 6-недельное окно тестирования перед запуском, сложное приложение с обработкой платежей, биометрической аутентификацией и торговлей акциями в реальном времени.
SBTM Подход:
Неделя 1: Генерация Чартеров Создано 45 чартеров, организованных по риску:
- Высокий Риск (15 чартеров): Обработка платежей, безопасность, целостность данных
- Средний Риск (20 чартеров): UI рабочие процессы, производительность, интеграция
- Низкий Риск (10 чартеров): Настройки, экраны помощи, анимации
Неделя 2-4: Фаза Выполнения
- 2 тестировщика, 6 сессий/день каждый
- Всего: 252 сессии завершено
- Найдено 127 багов (0.5 багов/сессия в среднем)
Распределение Сессий:
- 60% высокорискованные области
- 30% средне-рискованные области
- 10% низко-рискованные области
Неделя 5: Целенаправленные Глубокие Погружения На основе ранних находок созданы сфокусированные чартеры:
- “Исследовать условия гонки в конкурентной торговле” (порождено после периодического краша)
- “Исследовать сценарии реверса платежа” (порождено после бага возврата)
- “Исследовать пути отката биометрии” (порождено после граничного случая аутентификации)
Неделя 6: Регрессия + Финальная Проверка
- Переиспытаны высокорискованные области со свежими чартерами
- Проверены все критичные баги исправленными
- Исследованы ранее низкоприоритетные области
Результаты:
- Запущено по расписанию с 96% критичных багов решенными
- Скорость дефектов после запуска: 0.3 бага/1000 пользователей (средний по индустрии: 2.5)
- Покрытие тестирования четко документировано для аудиторского следа
- Видимость менеджмента в прогресс тестирования на протяжении всего
Ключевые Факторы Успеха:
- Четкие чартеры, приоритизированные по бизнес-риску
- Ежедневные дебрифы держали команду выровненной
- Метрики показали когда сдвинуть фокус
- Гибкость для преследования тангентов высокой ценности
Rapid Software Testing и SBTM
Rapid Software Testing (RST), разработанный Джеймсом Бахом и Майклом Болтоном, это методология, которая сильно включает принципы SBTM.
Основные Принципы RST
- Тестирование — это обучение: Фокус на открытии, а не только верификации
- Квалифицированные люди необходимы: Инструменты поддерживают, но не заменяют мышление
- Быстрая обратная связь: Сокращение циклов между тестированием и разработкой
- Управляемое эвристикой: Использование правил большого пальца, а не жестких процессов
- Управляемое контекстом: Адаптация подхода к нуждам проекта
SBTM во Фреймворке RST
RST использует SBTM как основной механизм для организации исследовательской работы:
Тестовая Стратегия: Определена темами чартеров Выполнение Тестов: Организовано в сессии Отчетность о Тестах: Захвачено через листы сессий и дебрифы Управление Тестами: Отслеживается через метрики сессий
RST Эвристики для Создания Чартеров
SFDPOT (San Francisco Depot) - Измерения для исследования:
- Structure: Код, архитектура, структуры данных
- Function: Что делает продукт
- Data: Входы, выходы, состояние
- Platform: OS, браузер, оборудование
- Operations: Как взаимодействуют пользователи
- Time: Конкурентность, последовательности, тайминг
Пример Чартера Используя SFDPOT:
Charter: Исследовать корзину покупок (Function)
С быстрыми операциями добавления/удаления (Time)
На мобильном Safari (Platform)
Чтобы обнаружить баги управления состоянием
Инструменты, Поддерживающие SBTM
SessionTester
Опенсорс инструмент для управления SBTM сессиями:
- Управление библиотекой чартеров
- Таймер сессии с паузой/возобновлением
- Интегрированное ведение заметок
- Автоматический расчет метрик
- Командный дашборд
RapidReporter
Легковесный инструмент ведения заметок сессии:
- Простой текстовый интерфейс
- Автоматическая отметка времени
- Экспорт в Markdown
- Минимальные накладные расходы
Отслеживание на Основе Электронных Таблиц
Многие команды используют простые электронные таблицы:
Колонки:
- ID Сессии
- Дата
- Тестировщик
- Чартер
- Длительность
- Протестированные Области
- Найденные Баги
- Заметки
- Test%/Bug%/Setup%
Интеграция с Системами Управления Тестами
Экспортировать данные сессий в:
- Jira (создавать тикеты из листов сессий)
- TestRail (связывать сессии с тест-планами)
- Confluence (поддерживать wiki чартеров)
Лучшие Практики для Успеха SBTM
1. Начинать с Четких Чартеров
Инвестировать время в качество чартеров:
- Обзор чартеров как команда
- Приоритизация на основе риска
- Обновление чартеров по мере эволюции ПО
- Убирать нерелевантные чартеры
2. Держать Сессии С Ограничением Времени
Уважать 90-минутный лимит:
- Предотвращает усталость
- Поддерживает фокус
- Включает точное отслеживание
- Форсирует приоритизацию
3. Дебриф Консистентно
Никогда не пропускать дебрифы:
- Валидирует находки немедленно
- Передает знания
- Корректирует стратегию в реальном времени
- Поддерживает выравнивание команды
4. Использовать Метрики для Направления, Не Судейства
Метрики информируют решения, а не оценки производительности:
- Низкий подсчет багов может означать стабильное ПО, а не плохое тестирование
- Высокий % настройки может указывать на проблемы окружения, а не неэффективность тестировщика
- Вариация % возможности ожидается и ценна
5. Балансировать Чартер и Возможность
Принимать разделение 70/30:
- Чартер обеспечивает покрытие
- Возможность включает открытие
- Слишком много чартера = пропуск важных тангентов
- Слишком много возможности = несфокусированное тестирование
6. Документировать Достаточно, Не Всё
Листы сессий должны быть:
- Достаточно детальны для воспроизводимости
- Достаточно кратки для быстрого обзора
- Сфокусированы на находках, а не игре по шагам
7. Итерировать на Чартерах
Чартеры не статичны:
- Порождать новые чартеры из находок
- Комбинировать избыточные чартеры
- Разделять чрезмерно широкие чартеры
- Убирать завершенные чартеры
Комбинирование SBTM с Другими Подходами
SBTM дополняет, а не заменяет другие методологии тестирования:
SBTM + Скриптованное Тестирование
- Использовать скриптованные тесты для регрессии и соответствия
- Использовать SBTM для новых фич и рискованных областей
- Позволить находкам SBTM информировать новые автоматизированные тесты
SBTM + Автоматизация Тестов
- Автоматизировать стабильные, повторяемые рабочие процессы
- Использовать SBTM для исследовательского расследования
- SBTM идентифицирует граничные случаи для автоматизации
SBTM + BDD/Specification by Example
- Использовать BDD для документированных требований
- Использовать SBTM для сценариев за пределами спецификаций
- SBTM обнаруживает пропущенные спецификации
Заключение: Структура Включает Свободу
Парадокс SBTM в том, что структура улучшает, а не ограничивает исследовательское тестирование. Организуя работу в сфокусированные сессии, систематически документируя находки и консистентно отслеживая метрики, SBTM делает исследовательское тестирование:
Управляемым: Четкая видимость того, что тестируется Измеримым: Инсайты на основе данных в покрытие и эффективность Ценным: Документированные находки оправдывают инвестиции Устойчивым: Предотвращает выгорание тестировщика через ограничение времени
Когда стейкхолдеры спрашивают “Что вы протестировали?”, SBTM предоставляет четкие ответы. Когда менеджеры спрашивают “Мы закончили?”, метрики показывают покрытие и тренды обнаружения багов. Когда тестировщики спрашивают “Где мне фокусироваться?”, чартеры предоставляют направление.
SBTM доказывает, что исследовательское тестирование может быть одновременно строгим и креативным, структурированным и адаптивным, измеримым и исследовательским. Это не скриптованное тестирование под прикрытием—это исследовательское тестирование, выполненное профессионально.
Начните с простых чартеров, проводите сфокусированные сессии, дебрифьтесь честно и позволяйте метрикам направлять вашу стратегию. Результат — исследовательское тестирование, которое зарабатывает уважение через результаты, а не риторику.