Урок 13. Тест-кейсы
Подробное описание проверок
Темы урока
Структура тест-кейса (предусловия/шаги/ожидаемый результат/постусловия), позитивные/негативные, traceability к требованиям
Видео урока
Конспект урока
Урок 13. Тест-кейсы: подробное описание проверок
Тест-кейс vs чек-лист
Тест-кейс — это не «нажал кнопку и посмотрел». Это воспроизводимый сценарий с точными данными, конкретными шагами и проверяемым ожидаемым результатом.
| Чек-лист | Тест-кейс | |
|---|---|---|
| Отвечает на | «Что проверить» — список зон | «Как проверить» — пошаговый сценарий |
| Детализация | Средняя: тезисы и пункты | Высокая: предусловие + шаги + ОР |
| Когда подходит | Быстрый проход, нестабильные требования | Регресс, воспроизведение бага, онбординг |
| Когда писать тест-кейс | Формальная приёмка, передача знаний в команде | Любой сценарий, где важно повторить результат |
Структура тест-кейса: 6 ключевых полей
ID + Название → Предусловие → Шаги → Ожидаемый результат → Постусловие → Приоритет
| # | Поле | Назначение |
|---|---|---|
| 1 | ID и название | Уникальный идентификатор и короткое описание сценария |
| 2 | Предусловие | Состояние системы и данные перед первым шагом |
| 3 | Шаги | Последовательность атомарных действий |
| 4 | Ожидаемый результат | Что должно произойти после каждого шага или в конце |
| 5 | Постусловие | Состояние системы после завершения (если нужно сбросить) |
| 6 | Приоритет и статус | Зависят от TMS и договорённостей в команде |
Предусловие: без него тест не воспроизводится
Предусловие описывает стартовое состояние, которое должно быть выполнено до первого шага.
Плохо: «Открыт сайт»
Хорошо: «Авторизован пользователь test@qa.ru, корзина пустая, открыт каталог Пиццаеда»
Размытое предусловие — главная причина, почему разработчик говорит «у меня работает», а тест «не воспроизводится». Конкретное предусловие снимает 90% споров.
Шаги: пиши так, чтобы выполнил кто угодно
Правила атомарности:
- Один шаг — одно действие
- Плохо: «Открыть сайт и нажать кнопку» — два разных шага
- Хорошо: «Шаг 1: Открыть каталог Пиццаеда» / «Шаг 2: Нажать "В корзину" у пиццы "Маргарита"»
Правила конкретности:
- Указывай точные данные: «Ввести промокод QA60», не «ввести какой-нибудь промокод»
- Указывай конкретный элемент: «Нажать кнопку "Оформить заказ" в нижней части корзины»
Ожидаемый результат: конкретика вместо «всё работает»
| Пример | |
|---|---|
| Плохо | «Товар добавляется в корзину» |
| Хорошо | «Счётчик в хедере изменился с 0 на 1; в корзине появился товар "Маргарита" 1 шт. 599₽, итого 599₽ + доставка 199₽» |
Ожидаемый результат можно указывать для каждого шага, а не только для последнего — особенно если шаг критичен.
Позитивные и негативные тест-кейсы
Позитивные — happy path и расширенные сценарии:
- Happy path: самый типичный сценарий («добавить пиццу и оформить заказ успешно»)
- Расширенные: граничные значения в пределах допустимого («добавить 99 единиц товара»)
- Выполняются при каждом регрессе — основа покрытия
Негативные — где прячутся реальные баги:
- Проверяют поведение при неверных данных или выходе за пределы допустимого
- Примеры: ввести 0 товаров, применить промокод с пробелом, отправить пустую форму
- 70% реальных багов находят именно в негативных сценариях
Traceability: зачем связывать тест с требованием
Traceability — это связь «этот тест-кейс проверяет вот это требование / задачу / user story».
Зачем нужно:
- Можно ответить: «У нас 200 тест-кейсов — все ли требования покрыты?»
- При изменении требования сразу понятно, какие тест-кейсы нужно обновить
Как реализуется:
- В TMS: поле «Linked Issue» или «Requirements»
- В таблице: столбец «ID требования»
Демо: тест-кейсы для корзины «Пиццаеда»
Позитивный: «Добавить товар в корзину»
Предусловие: авторизован пользователь test@qa.ru, корзина пустая, открыт каталог Пиццаеда
Шаг 1: Нажать «В корзину» у пиццы «Маргарита»
ОР: Счётчик корзины в хедере = 1
Шаг 2: Открыть корзину
ОР: Товар «Маргарита» 1 шт. 599₽, итого 599₽ + доставка 199₽
Негативный: «Промокод на пустую корзину»
Предусловие: авторизован пользователь, корзина пустая
Шаг 1: Ввести QA60 в поле «Промокод» и нажать «Применить»
ОР: Скидка не применяется, появляется сообщение об ошибке (или промокод не активируется)
Шаг 2: Проверить итоговую сумму
ОР: Сумма не изменилась, промокод не активирован
Типичные ошибки при написании тест-кейсов
«Шаги без данных»
- Плохо: «Ввести email»
- Хорошо: «Ввести test@qa.ru в поле Email»
«Ожидаемый результат — не результат»
- Плохо: «Нажать ОК»
- Хорошо: «Открылась страница подтверждения заказа с номером»
«Мега-тест-кейс»
- 50 шагов в одном кейсе — значит, проверяет несколько разных сценариев
- Правило: разбей на 3–5 атомарных кейсов — так проще локализовать упавший шаг
Уровень детализации
Детализацию выбирают под задачу:
| Ситуация | Уровень |
|---|---|
| Формальный регресс, передача знаний | Полный (предусловие + шаги + ОР на каждый шаг) |
| Опытная команда, устоявшийся продукт | Можно сокращать шаги, но предусловие и ОР — всегда |
| Воспроизведение сложного бага | Максимальная детализация |
Правило проверки: тест-кейс написан правильно, если коллега выполнит его без дополнительных вопросов.
Как писать названия тест-кейсов: формула «Где? Что? Как?»
Чёткое название — ключ к быстрому пониманию и навигации в TMS.
| Часть | Вопрос | Примеры |
|---|---|---|
| Где? | Модуль, страница, функция | «Корзина», «Личный кабинет», «Форма оформления» |
| Что? | Что проверяем, какая операция | «Добавление товара», «Применение промокода», «Изменение количества» |
| Как? | Специфика сценария, данные | «с валидными данными», «с невалидным промокодом», «при пустой корзине» |
Формула итогового названия:
[Где] — [Что] — [Как]
Примеры:
Корзина — Добавление товара — позитивный сценарийКорзина — Применение промокода — с невалидным кодомФорма заказа — Отправка — с пустым полем телефонаЛичный кабинет — Изменение email — на уже существующий
Название должно читаться как самостоятельное утверждение: взглянув на него в списке, сразу понятно что и где проверяется — без открытия самого кейса.
Чек-лист качества тест-кейса
Перед тем как сохранить тест-кейс, пройдись по этим критериям:
| Критерий | Что проверить |
|---|---|
| Ясность | Простой язык без двусмысленностей — любой член команды выполнит без дополнительных вопросов |
| Конкретность | Точные шаги («Нажать "Войти"» вместо «Авторизоваться»), точные данные и ожидаемые сообщения |
| Атомарность | Один тест-кейс — одна проверка; не объединять несколько сценариев в один кейс |
| Независимость | Тест выполняется отдельно, без жёсткой зависимости от других тест-кейсов |
| Повторяемость | При одинаковых условиях результат всегда одинаков |
| Полнота | Покрывает соответствующее требование |
| Эффективность | Баланс между детализацией и простотой — не слишком длинный и не слишком общий |
| Актуальность | Регулярно обновляется при изменениях в ПО |
Ключевые выводы урока
- Тест-кейс = воспроизводимый сценарий: точное предусловие + конкретные шаги + проверяемый ожидаемый результат
- Негативные тест-кейсы — не опционально: 70% реальных багов живут именно там
- Шаги — атомарные: одно действие = один шаг; конкретные данные вместо «что-нибудь»
- Traceability связывает тест с требованием — позволяет контролировать покрытие
- Тест-кейс написан правильно, если выполнить его может кто угодно без подсказок
Домашнее задание
Написать 10 тест-кейсов для корзины «Пиццаеда» (aiqa.ru/base/shop):
- Минимум 5 позитивных и 5 негативных сценариев
- Каждый кейс: ID, название, предусловие, шаги с ожидаемыми результатами, постусловие (если нужно)
Сдавать в чат марафона.