Приведи пример описания тестового сценария
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Примеры описания тестовых сценариев
Тестовый сценарий (Test Case) — это подробное описание шагов для проверки функции системы. Это работает для руководства тестировщика: что проверять, как проверять, что ожидать.
Давайте рассмотрим несколько примеров разной сложности и уровня детализации.
Пример 1: Простая функция (Reset Password)
Test Case ID: TC-001 Название: Reset Password - Valid Email Функция: Восстановление пароля через email Приоритет: High Тип: Functional
Предусловия:
- Пользователь зарегистрирован в системе
- Email: test@example.com
- Password: oldPassword123
- Пользователь НЕ залогинен
Шаги выполнения:
| Шаг | Действие | Ожидаемый результат |
|---|---|---|
| 1 | Перейти на страницу логина | Страница загрузилась |
| 2 | Нажать на ссылку "Forgot Password?" | Открылась форма восстановления пароля |
| 3 | Ввести email test@example.com | Email отображается в поле |
| 4 | Нажать кнопку "Send Reset Link" | Показано сообщение "Check your email" |
| 5 | Открыть inbox email test@example.com | Письмо с ссылкой восстановления получено |
| 6 | Нажать на ссылку в письме | Открылась форма установки нового пароля |
| 7 | Ввести новый пароль: newPassword123 | Пароль отображается как точки |
| 8 | Ввести подтверждение: newPassword123 | Пароль подтверждения отображается как точки |
| 9 | Нажать "Reset Password" | Показано сообщение "Password reset successfully" |
| 10 | Залогиниться с новым паролем | Вход выполнен успешно |
Постусловия:
- Старый пароль больше не работает
- Ссылка восстановления истекла (не работает повторно)
- Email с подтверждением восстановления отправлен
Пример 2: Сложная функция (Оформление заказа)
Test Case ID: TC-045 Название: Checkout - Apply Discount Code and Process Payment Функция: Оформление заказа с кодом скидки и платежом Приоритет: Critical Тип: End-to-End (E2E)
Предусловия:
- Пользователь залогинен
- В корзине товары:
- Товар A: цена 1000 руб, количество 2
- Товар B: цена 500 руб, количество 1
- Итого до скидки: 2500 руб
- Активный код скидки: SAVE10 (дает 10% скидку)
- Платежная система настроена (Stripe/PayPal)
- Адрес доставки сохранен
Шаги выполнения:
| Шаг | Действие | Данные | Ожидаемый результат |
|---|---|---|---|
| 1 | Перейти в корзину | - | Корзина открыта, товары видны |
| 2 | Нажать "Proceed to Checkout" | - | Форма оформления заказа открыта |
| 3 | Выбрать способ доставки | "Express (24h)" | Доставка выбрана, стоимость добавлена (200 руб) |
| 4 | В поле "Discount Code" ввести код | "SAVE10" | Код появился в поле |
| 5 | Нажать "Apply" | - | Код применен, скидка 250 руб вычтена |
| 6 | Проверить итоговую сумму | - | Сумма = 2500 - 250 + 200 = 2450 руб |
| 7 | Выбрать способ оплаты | "Credit Card" | Форма платежа открыта |
| 8 | Заполнить данные карты | 4111-1111-1111-1111 | Данные введены |
| 9 | Ввести CVV | 123 | CVV введен |
| 10 | Нажать "Place Order" | - | Платеж обработан, заказ создан |
| 11 | Проверить подтверждение | - | Номер заказа отображен (ORD-12345) |
| 12 | Проверить email | test@example.com | Письмо с подтверждением заказа получено |
Ожидаемый результат:
- Заказ создан с правильной суммой (2450 руб)
- Скидка применена корректно
- Платеж прошел успешно
- Email подтверждение отправлено
- Заказ видит в личном кабинете
Постусловия:
- В БД создана запись заказа
- Скидка отмечена как использованная
- Инвентарь товаров уменьшился
- Платеж отражен в системе
Пример 3: Граничные случаи (Boundary Testing)
Test Case ID: TC-089 Название: Password Validation - Boundary Cases Функция: Валидация пароля при регистрации Приоритет: High Тип: Functional + Negative
Требование: Пароль должен быть:
- Минимум 8 символов
- Максимум 128 символов
- Содержать минимум 1 заглавную букву
- Содержать минимум 1 цифру
- Содержать минимум 1 спецсимвол (!@#$%)
Тестовые данные:
| Шаг | Пароль | Ожидаемый результат | Статус |
|---|---|---|---|
| 1 | "Pass1!" (7 символов) | Ошибка: "Minimum 8 characters" | Fail |
| 2 | "Pass1!" + 121 символов (128 total) | Пароль принят | Pass |
| 3 | "Pass1!" + 122 символов (129 total) | Ошибка: "Maximum 128 characters" | Fail |
| 4 | "password123!" (нет заглавных) | Ошибка: "Requires uppercase letter" | Fail |
| 5 | "Password!" (нет цифр) | Ошибка: "Requires digit" | Fail |
| 6 | "Password1" (нет спецсимвола) | Ошибка: "Requires special character" | Fail |
| 7 | "Password1!" (все требования) | Пароль принят | Pass |
| 8 | "PaSsWoRd1!" (все требования) | Пароль принят | Pass |
Пример 4: Тестирование при ошибках (Negative Testing)
Test Case ID: TC-112 Название: Login - Network Error Handling Функция: Обработка ошибок при входе при потере сети Приоритет: Medium Тип: Negative + Performance
Предусловия:
- Пользователь на странице логина
- Email и пароль введены корректно
- Сеть на момент нажатия кнопки отключена
Шаги выполнения:
| Шаг | Действие | Условия | Ожидаемый результат |
|---|---|---|---|
| 1 | Отключить интернет | - | Сеть отключена |
| 2 | Ввести email | test@example.com | Email введен |
| 3 | Ввести пароль | password123 | Пароль введен |
| 4 | Нажать "Login" | Network offline | Кнопка disabled на время запроса |
| 5 | Подождать 5 секунд | - | Показано сообщение "Network error. Please check your connection" |
| 6 | Кнопка остается активной | - | Можно попробовать снова |
| 7 | Включить интернет | - | Сеть восстановлена |
| 8 | Нажать "Login" снова | Network online | Вход выполнен успешно |
Ожидаемый результат:
- Ошибка сети обработана корректно
- Не загрузилась пустая страница
- Данные не потеряны
- Пользователь может повторить попытку
Пример 5: Тестирование производительности
Test Case ID: TC-234 Название: Search Products - Performance Функция: Поиск товаров с большим объемом данных Приоритет: Medium Тип: Performance
Предусловия:
- В системе 1,000,000 товаров
- Индексы БД настроены
Шаги выполнения:
| Шаг | Действие | Входные данные | Критерий | Результат |
|---|---|---|---|---|
| 1 | Перейти на страницу поиска | - | - | Страница загрузилась < 2сек |
| 2 | Ввести поисковый запрос | "laptop" | < 100мс | Автодополнение показано |
| 3 | Выполнить поиск | "laptop" | < 500мс | Результаты загружены |
| 4 | Результаты содержат 5000+ товаров | - | < 3сек | Первые 20 товаров показаны |
| 5 | Scroll вниз (pagination) | - | < 500мс | Следующие 20 товаров загружены |
| 6 | Фильтр по цене | min=100, max=500 | < 300мс | Результаты отфильтрованы |
| 7 | Сортировка | "price asc" | < 300мс | Результаты пересортированы |
Критерии приемки:
- Все операции < 500мс (исключая начальную загрузку)
- UI остается отзывчивым
- Нет lag при прокрутке
- Не потребляется > 50MB памяти
Как правильно описывать тест
ДА — Четко и конкретно:
Шаг 3: Ввести email "test@example.com" в поле "Email"
Ожидание: Email отображается в поле без ошибок
НЕТ — Размыто:
Шаг 3: Ввести данные
Ожидание: Всё работает
Структура хорошего Test Case
✅ ID — уникальный идентификатор ✅ Название — краткое описание что тестируем ✅ Приоритет — Critical/High/Medium/Low ✅ Тип — Functional/Non-functional/Regression ✅ Предусловия — что нужно перед тестом ✅ Шаги — конкретные действия с ожиданиями ✅ Постусловия — что проверить после ✅ Ожидаемый результат — чётко сформулирован ✅ Фактический результат — заполняется при выполнении ✅ Статус — Pass/Fail/Blocked
Вывод
Хороший Test Case — это не просто список действий. Это руководство, по которому любой тестировщик (даже новичок) сможет проверить функцию и получить одинаковый результат. Ясность и детальность тестовых сценариев напрямую влияют на качество продукта.