Исследовательское тестирование процветает на структурированной свободе — балансируя направленное исследование с творческим решением проблем. 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 трансформируют исследовательское тестирование из неструктурированного исследования в дисциплинированную, документируемую практику. Предоставляя четкие миссии, используя эвристики тестирования, поддерживая детальные журналы сессий и производя всесторонние отчеты о дебрифинге, команды получают преимущества как исследовательской свободы, так и структурированного управления тестированием.

Ключ — баланс: чартеры должны направлять не ограничивая, документировать без бюрократии и позволять творческое исследование, обеспечивая подотчетность и передачу знаний.