Тест-кейс — самый маленький документ в тестировании и при этом самый массовый: в библиотеке среднего проекта их сотни. Ошибка в одном кейсе стоит недорого, но ошибка в способе их писать повторяется сотни раз — и библиотека превращается в набор текстов, по которым может пройти только их автор.
Эта статья — о том, как писать кейсы, по которым может пройти кто угодно и результат которых не требует толкования. Мы разберём структуру по полям, покажем пример с шагами, сравним кейс с чек-листом и сценарием и перечислим ошибки, которые встречаем чаще всего при ревью чужих библиотек и импорте из других систем. Примеры взяты из пакетов Каталога QA Деск — они написаны по тем же правилам.
Определения
Тест-кейс — описание одной проверки: что должно быть подготовлено, что сделать по шагам и что должно получиться на каждом шаге. Результат прогона кейса — «прошёл» или «упал», третьего не дано; если тестировщик не может выбрать между ними, кейс написан плохо.
Чек-лист — список того, что нужно проверить, без шагов и ожидаемых результатов: «оплата картой», «промокод», «отмена заказа». Чек-лист короче, пишется быстрее и годится для человека, который знает продукт. Для новичка и для спора с разработчиком он бесполезен — «оплата картой не работает» не воспроизводится.
Тестовый сценарий — сквозная последовательность действий пользователя через несколько функций: «зарегистрироваться, положить товар в корзину, оплатить, получить письмо». Сценарий обычно раскладывается на несколько кейсов, либо оформляется как один длинный кейс, если функции проверяются только вместе.
Тест-план — набор кейсов, отобранных для конкретного прогона: релиз, обновление, конфигурация среды. О планах — отдельная статья.
Граница между кейсом и чек-листом проходит по вопросу «кто будет прогонять». Если всегда автор — достаточно чек-листа. Если коллега, подрядчик, новый сотрудник или вы сами через полгода — нужен кейс.
Структура тест-кейса
| Поле | Что содержит | Пример |
|---|---|---|
| Название | Что проверяется и в каких условиях, одним предложением | Сброс пароля по ссылке из письма |
| Папка | Место в библиотеке: модуль, функция | Авторизация → Восстановление пароля |
| Приоритет | Насколько важна проверка: критичный, высокий, средний, низкий | Критичный |
| Теги | Признаки для отбора в план: смоук, регресс, платформа, релиз | авторизация, регресс |
| Предусловия | Состояние системы и данных до первого шага | Зарегистрирован пользователь с подтверждённой почтой; доступ к его почтовому ящику |
| Шаги | Действие → данные → ожидаемый результат, по строкам | см. пример ниже |
| Статус | Черновик, актуален, архив | Актуален |
| Связи | Дефекты, найденные по кейсу; версия кейса | ключ дефекта, например WEB-41 |
Из восьми полей два делают кейс кейсом — предусловия и шаги с ожидаемым результатом. Остальное — навигация и отбор.
Название
Название читают чаще, чем сам кейс: в дереве библиотеки, в списке плана, в отчёте прогона. Оно должно отвечать на вопрос «что проверяем» без открытия кейса. «Проверка формы» — не название. «Форма заказа не отправляется с пустым телефоном» — название: понятно, что за форма, какое условие и какой результат ожидается.
Правило формулировки: объект + условие + ожидание, без слова «проверка» в начале — оно ничего не добавляет, а в списке из ста кейсов все начинаются одинаково.
Предусловия
Здесь описывается всё, что должно быть до первого шага: учётная запись и её права, тестовые данные, состояние системы, окружение. Предусловия — не шаги: «войти под администратором» — это шаг, «пользователь с ролью администратора существует» — предусловие.
Частая ошибка — пропустить предусловия, потому что «и так понятно». Через полгода кейс прогоняет новый сотрудник, у которого нет учётки с нужной ролью, и кейс падает на первом шаге — не потому, что система сломана, а потому, что кейс неполон.
Шаги
Каждый шаг — три части: действие, данные (если есть) и ожидаемый результат. Действие — одно на шаг: «нажать», «ввести», «открыть». Данные — конкретные: не «ввести e-mail», а user@example.com. Ожидаемый результат — то, что можно наблюдать: текст сообщения, состояние кнопки, запись в базе, письмо в ящике.
Ожидаемый результат должен быть на каждом шаге, где система что-то делает в ответ. Если у трёх шагов подряд нет ожидания, а на четвёртом — «всё работает», кейс не найдёт дефект на втором шаге: тестировщик не знает, что там должно было произойти.
Приоритет и теги
Приоритет отвечает на вопрос «если времени мало, прогонять ли этот кейс». Критичный — без этой функции продуктом нельзя пользоваться; высокий — основной сценарий модуля; средний — вариант основного сценария; низкий — редкий случай или косметика. По приоритету из большой библиотеки собирается короткий смоук.
Теги — второе измерение отбора: по платформе, по релизу, по типу проверки. Тегов не должно быть много: если у кейса восемь тегов, ни по одному из них его никто не найдёт.
Пример тест-кейса
За основу взят кейс «Сброс пароля по ссылке из письма» из пакета «Регистрация и авторизация веб-приложения». В пакете он записан в четыре шага — для опытного тестировщика этого достаточно. Здесь он развёрнут до восьми, чтобы показать каждое поле в работе.
Название: Сброс пароля по ссылке из письма
Папка: Восстановление пароля · Приоритет: критичный · Теги: авторизация, регресс
Предусловия: зарегистрирован пользователь user@example.com с подтверждённой почтой и известным паролем; у тестировщика есть доступ к этому почтовому ящику; пользователь не авторизован.
| № | Действие | Данные | Ожидаемый результат |
|---|---|---|---|
| 1 | Открыть страницу входа, нажать «Забыли пароль?» | — | Открыта форма восстановления с полем e-mail |
| 2 | Ввести e-mail, отправить форму | user@example.com | Сообщение «Письмо со ссылкой отправлено»; форма не раскрывает, существует ли адрес |
| 3 | Открыть почтовый ящик | — | Письмо получено в течение минуты, содержит одну ссылку восстановления |
| 4 | Перейти по ссылке | — | Открыта форма нового пароля; e-mail в форме не редактируется |
| 5 | Ввести новый пароль и подтверждение, сохранить | NewPass-2026! | Сообщение об успешной смене; пользователь перенаправлен на вход |
| 6 | Войти со старым паролем | старый пароль | Ошибка «Неверный логин или пароль» |
| 7 | Войти с новым паролем | NewPass-2026! | Вход выполнен, открыта главная страница |
| 8 | Повторно перейти по ссылке из письма | — | Сообщение, что ссылка уже использована; форма нового пароля не открывается |
Обратите внимание на шаги 6 и 8: они проверяют не то, что функция работает, а то, что она не работает там, где не должна. Старый пароль не подходит, ссылка одноразовая. Кейсы, в которых есть только «счастливый путь», находят вдвое меньше дефектов, чем кейсы с проверкой границ.
Типовые ошибки
| Ошибка | Как выглядит | Как исправить |
|---|---|---|
| Нет ожидаемого результата | «Нажать „Сохранить“» — и всё | На каждом шаге, где система отвечает, — что именно она должна показать |
| Ожидание не наблюдаемо | «Данные корректно сохранены» | Что именно видно: запись в списке с такими-то полями, сообщение с таким-то текстом |
| Несколько действий в шаге | «Заполнить форму, сохранить, открыть список, найти запись» | Один шаг — одно действие; при падении понятно, где |
| Данные не конкретны | «Ввести валидный e-mail» | Конкретное значение: user@example.com |
| Предусловия в шагах | Шаг 1: «Создать пользователя с ролью…» | Вынести в предусловия; шаги начинаются с проверяемого действия |
| Кейс на всё сразу | 40 шагов через три модуля | Разбить по функциям; сквозной сценарий — отдельным кейсом поверх |
| Только счастливый путь | Проверяется, что работает; не проверяется, что не работает где не надо | Добавить шаги на границы: пустое поле, повтор, чужие права |
| Название «Проверка …» | «Проверка корзины», «Проверка оплаты» | Объект + условие + ожидание: «Промокод с истёкшим сроком не применяется» |
| Зависимость от другого кейса | «Выполнить после кейса № 12» | Нужное состояние — в предусловия; кейс прогоняется сам по себе |
| Кейс не обновляется | Форма изменилась, кейс описывает старую | Версии кейса; при изменении функции — новая версия, старая остаётся в истории прогонов |
Последняя ошибка — самая дорогая и самая незаметная. Кейс, который расходится с продуктом, не просто бесполезен: тестировщик отмечает «прошёл» по старому описанию, и библиотека начинает врать. Единственная защита — считать кейс живым документом с версиями и пересматривать его при каждом изменении функции.
Сколько кейсов нужно и какими они должны быть
Правило, которое работает лучше любых нормативов: кейс должен находить дефект или доказывать его отсутствие. Если кейс за десять прогонов ни разу не упал и функция за это время не менялась, он кандидат в архив или в автотест. Если кейс падает каждый прогон и каждый раз это «не баг» — он проверяет не то, и его надо переписать.
Объём кейса — от 3 до 12 шагов. Меньше трёх — это, скорее, пункт чек-листа; больше двенадцати — два кейса или сценарий. Время прогона одного кейса вручную — от одной до десяти минут; если дольше, стоит посмотреть, нельзя ли часть подготовки вынести в предусловия или тестовые данные.
Чек-лист хорош там, где прогоняет автор и цена ошибки невелика. Кейс — там, где прогоняют другие, где результат нужно доказать и где по упавшему шагу заводится дефект. Большинство библиотек живут в обоих форматах: смоук — кейсами с критичным приоритетом, редкие проверки — чек-листом в описании функции.
Чек-лист: перед сохранением кейса
- Название отвечает на вопрос «что проверяем» без открытия кейса
- Предусловия описывают всё, что нужно до первого шага: учётка, данные, состояние
- В каждом шаге одно действие
- Данные конкретные, не «валидный e-mail»
- На каждом шаге, где система отвечает, есть наблюдаемый ожидаемый результат
- Есть хотя бы один шаг на границу: пустое поле, повтор, недостаток прав
- Кейс не зависит от других кейсов
- От 3 до 12 шагов; иначе — разбить или укрупнить
- Приоритет выставлен осознанно, тегов не больше трёх
- Кейс прогнан автором один раз до статуса «актуален»
Как это устроено в QA Деск
Библиотека тест-кейсов в QA Деск построена вокруг тех же полей: дерево папок, предусловия, шаги с действием, данными и ожидаемым результатом, приоритет, теги. Кейс имеет статус — черновик, актуален, архив — и версии: каждая правка сохраняется, а прогон ссылается на ту версию, которая была на момент старта, поэтому история прогонов не переписывается задним числом. Дефект заводится из упавшего шага и связывается с кейсом автоматически.
Если библиотека уже есть в таблице или в другой системе, её не нужно перебивать руками: импорт из CSV с построчным отчётом об ошибках и перенос из Test IT (XLSX/CSV) описаны в документации. А если библиотеки нет — в Каталоге восемь готовых пакетов для Битрикс24, 1С, интернет-магазина и веб-авторизации, написанных по правилам из этой статьи: их удобно взять как образец и переписать под свой продукт.
Прогоните это в QA Деск
Библиотека тест-кейсов с версиями, тест-планы и прогоны с дефектом из упавшего шага, приём отчётов автотестов из CI. Бесплатный тариф без карты.
Создать проектЧитайте также
Тест-план: пример, шаблон и чем он отличается от тест-стратегии
Что такое тест-план и зачем он нужен, разделы плана по шаблону, пример плана на релиз доработки CRM, чем план отличается от стратегии и прогона, типовые ошибки и чек-лист готовности.
8 сентября 2026 · 8 мин Тестирование платформРегламент тестирования обновления 1С: порядок, роли, чек-листы
Пошаговый регламент обновления 1С с регрессом на копии базы: подготовка, обработчики, расширения, чек-лист, приёмка, обновление рабочей базы. Пакеты для Бухгалтерии, ЗУП и ERP.
8 сентября 2026 · 9 мин Тестирование платформКак тестировать обновление Битрикс24: что ломается чаще всего
Что проверять после обновления Битрикс24 в облаке и коробке: типичные поломки по модулям, порядок прогона, чек-лист на 40 минут и готовый пакет из 36 тест-кейсов.
8 сентября 2026 · 9 мин