Исследовательское тестирование процветает на структурированной свободе — балансируя направленное исследование с творческим решением проблем. Test charters (чартеры тестирования) обеспечивают эту структуру, определяя область, миссию и зоны фокуса для исследовательских сессий, оставляя место для суждений тестировщика и случайных открытий. Хорошо написанные чартеры трансформируют ситуативное тестирование в дисциплинированную, повторяемую практику, которая генерирует ценные инсайты и всестороннюю документацию сессий.
Что такое Test Charter?
Test charter — это краткий документ (обычно 1-2 абзаца), который описывает:
- Миссия: Что вы пытаетесь узнать или достичь
- Область: Какие части системы исследовать
- Ресурсы: Необходимые инструменты, данные, документация
- Время: Рекомендуемая продолжительность (обычно 60-90 минут)
В отличие от скриптовых тест-кейсов с предопределенными шагами, чартеры обеспечивают направление, не ограничивая исследование.
Анатомия Эффективного Test Charter
Базовый Шаблон
Исследовать: [ОБЛАСТЬ/ФУНКЦИЮ]
С помощью: [РЕСУРСЫ/ИНСТРУМЕНТЫ/ДАННЫЕ]
Чтобы обнаружить: [РИСКИ/ИНФОРМАЦИЮ/БАГИ]
Пример 1: E-commerce Оформление Заказа
Исследовать: Поток обработки платежей
С помощью: Множественных методов оплаты (кредитная карта, PayPal, Apple Pay), различных типов карт (Visa, MasterCard, Amex), экстремальных сумм ($0.01, $999,999.99), просроченных карт
Чтобы обнаружить: Сбои валидации, проблемы обработки ошибок, состояния гонки в подтверждении платежа, уязвимости безопасности в передаче данных карты
Пример 2: Производительность Мобильного Приложения
Исследовать: Поведение приложения при нестабильности сети
С помощью: Network Link Conditioner (симуляция 3G, Edge, 100% потери пакетов), Charles Proxy для инспекции трафика, заряд батареи устройства <20%
Чтобы обнаружить: Обработку таймаутов, функциональность офлайн режима, проблемы синхронизации данных, избыточный разряд батареи, сценарии краша
Расширенный Формат Charter
## Charter: Стресс-Тестирование Функциональности Поиска
**Миссия**: Оценить производительность и устойчивость поискового движка под высокой нагрузкой и в крайних случаях
**Область**:
- Поиск продуктов (каталог 50,000+ товаров)
- Расширенные фильтры (диапазон цен, категория, бренд, рейтинги)
- Поисковые подсказки и автозаполнение
- История поиска и сохраненные поиски
**Идеи для Тестирования**:
- Чрезвычайно длинные поисковые запросы (>500 символов)
- Специальные символы и попытки SQL инъекции
- Unicode и эмодзи в поисковых терминах
- Одновременные поиски из одной пользовательской сессии
- Быстрая печать в автозаполнении
- Фильтры применяются в различных комбинациях
**Ресурсы**:
- JMeter скрипт для генерации нагрузки
- Тестовый датасет с разнообразными названиями продуктов
- OWASP ZAP для тестирования безопасности
- DevTools браузера для профилирования производительности
**Длительность**: 90 минут
**Риски для Исследования**:
- Уязвимости SQL инъекции или XSS
- Плохая производительность с сложными запросами
- Состояния гонки в автозаполнении
- Утечки памяти при повторяющихся поисках
- Непоследовательные результаты с одним запросом
Эвристики и Триггеры Тестирования
Эффективные чартеры включают эвристики тестирования — общие принципы, которые направляют исследование.
Эвристика SFDPOT (James Bach)
Structure (Структура): Тестировать архитектуру и отношения
- API эндпоинты и их интеграции
- Схема базы данных и ограничения внешних ключей
Function (Функция): Тестировать что делает система
- Функциональность характеристик согласно требованиям
- Бизнес-логика и вычисления
Data (Данные): Тестировать с различными входными данными
- Граничные значения (мин, макс, чуть внутри/снаружи границ)
- Некорректные/искаженные данные
Platform (Платформа): Тестировать на разных средах
- Операционные системы (Windows, macOS, Linux)
- Браузеры (Chrome, Firefox, Safari, Edge)
Operations (Операции): Тестировать рабочие процессы пользователя
- Распространенные пользовательские пути
- Многошаговые процессы
Time (Время): Тестировать поведение, связанное со временем
- Таймауты и задержки
- Запланированные задачи и cron задачи
Эвристика CAN I USE THIS?
- Capability (Способность): Делает ли то, что заявлено?
- Availability (Доступность): Доступно ли когда необходимо?
- Reliability (Надежность): Работает ли последовательно?
- Compatibility (Совместимость): Работает ли с другими системами?
- Usability (Удобство): Могут ли пользователи легко выполнять задачи?
- Performance (Производительность): Достаточно ли быстро?
- Security (Безопасность): Защищены ли данные?
Ведение Заметок Во Время Сессий
# Журнал Исследовательской Сессии
**Charter**: Поток обработки платежей
**Тестировщик**: John Doe
**Дата**: 2024-10-06
**Время Начала**: 10:00
**Длительность**: 90 минут
## Настройка
- Среда: Staging (v2.3.5)
- Тестовые данные: 10 тестовых кредитных карт, 5 sandbox аккаунтов PayPal
- Инструменты: Charles Proxy, Browser DevTools
## Таймлайн
### 10:05 - Валидация Кредитной Карты
- Протестировано Visa, MasterCard, Amex с валидными номерами
- ✅ Все приняты корректно
- ❌ BUG-1234: Валидация CVV Amex принимает 3 цифры (должна требовать 4)
### 10:20 - Обработка Просроченной Карты
- Протестированы карты просроченные 1 месяц назад, 1 год назад, точно текущий месяц
- ✅ Отображается четкое сообщение об ошибке
- ⚠️ ВОПРОС: Должны ли приниматься карты, истекающие в текущем месяце?
### 10:35 - Крайние Случаи Сумм
- $0.01: ✅ Обработано успешно
- $999,999.99: ❌ BUG-1235: Таймаут сервера после 30 секунд
- $0.00: ✅ Корректно отклонено с ошибкой "Некорректная сумма"
## Найденные Баги
1. **BUG-1234**: Некорректная валидация CVV Amex (Высокий приоритет)
2. **BUG-1235**: Таймаут на очень больших суммах (Средний)
3. **BUG-1236**: Нет таймаута при сбое сети (Высокий)
4. **BUG-1237**: Возможны дублирующиеся списания (Критический)
## Покрытие Тестирования
- ✅ Правила валидации карт
- ✅ Обработка просроченной карты
- ✅ Крайние случаи сумм
- ✅ Сценарии сбоя сети
- ❌ Обработка возвратов (вне области)
Отчет о Дебрифинге Сессии
# Отчет о Дебрифинге Исследовательского Тестирования
**Charter**: Стресс-тестирование функциональности поиска
**ID Сессии**: ET-2024-106-01
**Тестировщик**: Jane Smith
**Дата**: 2024-10-06
**Длительность**: 90 минут
---
## Резюме для Руководства
Проведено исследовательское тестирование функциональности поиска с фокусом на производительность и безопасность в стрессовых условиях. **Найдено 3 бага высокой серьезности**, связанных с уязвимостью SQL инъекции, состояниями гонки в автозаполнении и утечками памяти.
**Общая Оценка Риска**: 🔴 **ВЫСОКАЯ** - Уязвимость SQL инъекции блокирует релиз
---
## Находки
### 🔴 Критические Проблемы
**BUG-2301: Уязвимость SQL Инъекции в Поиске**
- **Серьезность**: Критическая
- **Описание**: Параметр поискового запроса не санитизирован. Ввод `' OR '1'='1` возвращает весь каталог продуктов
- **Влияние**: Полное раскрытие базы данных, потенциальная утечка данных
- **Рекомендация**: **ЗАБЛОКИРОВАТЬ РЕЛИЗ** до исправления
### 🟠 Проблемы Высокого Приоритета
**BUG-2302: Состояние Гонки в Автозаполнении**
- **Серьезность**: Высокая
- **Описание**: Быстрая печать вызывает возврат запросов автозаполнения в неправильном порядке
- **Влияние**: Запутывающий пользовательский опыт
**BUG-2303: Утечка Памяти в Результатах Поиска**
- **Серьезность**: Высокая
- **Описание**: Повторяющиеся поиски вызывают бесконечный рост памяти браузера
- **Влияние**: Замедление браузера, возможный краш на мобильных устройствах
---
## Положительные Наблюдения
✅ Поиск корректно обработал Unicode и эмодзи
✅ Сообщения об ошибках были ясными и полезными
✅ Элегантная деградация при медленном бэкенде
---
## Рекомендации
1. **Немедленно**: Исправить SQL инъекцию (BUG-2301) перед любым релизом
2. **Высокий Приоритет**: Устранить состояние гонки и утечку памяти
3. **Будущее Улучшение**: Реализовать кэширование результатов запросов
---
**Утверждение**: Требуется Проверка QA Менеджера
**Распространение**: Инженерная Команда, Product Owner, Release Manager
Лучшие Практики
1. Быть Конкретным но Гибким
Плохой Charter:
Исследовать: Приложение
Чтобы обнаружить: Баги
Хороший Charter:
Исследовать: Логику расчета корзины покупок с промокодами, скидками за количество и налоговыми правилами
С помощью: Комбинаций крайних случаев (множественные промокоды, просроченные коды, международные налоговые правила)
Чтобы обнаружить: Ошибки расчета, проблемы округления, уязвимости стекирования купонов
2. Ограничивать Сессии по Времени
Ограничивать сессии до 60-120 минут. Более длинные сессии теряют фокус.
3. Использовать Персоны и Сценарии
Charter: Удобство мобильного приложения для пожилых пользователей
Персона: Маргарита, 68 лет, ограниченный опыт с технологиями, использует очки для чтения
Сценарии:
- Первоначальная настройка приложения и регистрация
- Поиск и покупка продукта
4. Документировать Что Вы Не Тестировали
Явно отмечать области вне области применения. Это предотвращает предположения о покрытии.
Заключение
Хорошо составленные test charters трансформируют исследовательское тестирование из неструктурированного исследования в дисциплинированную, документируемую практику. Предоставляя четкие миссии, используя эвристики тестирования, поддерживая детальные журналы сессий и производя всесторонние отчеты о дебрифинге, команды получают преимущества как исследовательской свободы, так и структурированного управления тестированием.
Ключ — баланс: чартеры должны направлять не ограничивая, документировать без бюрократии и позволять творческое исследование, обеспечивая подотчетность и передачу знаний.