October 20, 2025

Тестовая документация

🧾 Зачем вообще нужна тестовая документация

В работе тестировщика ≈ 25% времени уходит не на «тыкание» в интерфейсе, а на:

  • составление чек-листов 📝
  • написание тест-кейсов
  • оформление баг-репортов 🐞
  • участие в тест-планах и других документах

Это полезно:

  • на собесах (очень любят спрашивать),
  • в реальной работе (без документации команда быстро утонет в хаосе).

1. Чек-лист ✅

💡 Определение

Чек-лист — это упорядоченный список пунктов (проверок), которые нужно выполнить во время тестирования.

Он отвечает на вопрос:

«Что нужно проверить, чтобы ничего не забыть?»

Это не пошаговая инструкция, а список того, что должно быть проверено.


🎯 Зачем нужен чек-лист

  • помогает ничего не забыть;
  • снижает риск пропустить важный баг;
  • позволяет быстро пробежаться по основным функциям;
  • хорош как план тестирования на задачу/фичу.

✏️ Пример чек-листа для формы регистрации

  • Поля «Имя», «Email», «Пароль» — обязательные
  • Неверный email обрабатывается (показывается ошибка)
  • Проверка минимальной и максимальной длины пароля
  • Проверка поля «Подтверждение пароля»
  • Кнопка «Зарегистрироваться» активна с валидными данными
  • Ошибки при незаполненных полях отображаются
  • Успешная регистрация с валидными данными
  • Отправляется подтверждающее письмо на email

👀 Пример чек-листа из реального проекта (чуть упрощённо)

Отправленные SMS:

  1. На вкладке «Отправленные SMS» вообще есть такая вкладка
  2. Если есть отправленные SMS — они отображаются
  3. В блоке «Количество SMS» показывается количество, с разбивкой по статусам
  4. В блоке «Список отправленных SMS» есть детализация (кому, когда, статус и т.п.)
  5. Поиск работает корректно
  6. В поле поиска можно вставлять текст
  7. Сортировка по дате работает, граничные значения учитываются

Пользователи — Лимиты SMS:

  1. Отображаются номера, которые уперлись в лимит
  2. Для каждой записи видны: номер телефона, сервис, количество попыток, дата снятия ограничения, состояние «сброс»
  3. Кнопка «Сбросить лимит» работает корректно

🧪 Практика (твоё упражнение)

Задание:
Выбери любой предмет из своей комнаты (например: кружка, стул, телефон, лампа) и составь чек-лист из 7 проверок для этого предмета.
Можно использовать:функциональные проверки (что он делает),нефункциональные (удобно ли, красиво ли, устойчиво ли и т.д.).

2. Тест-кейс 🧩

💡 Простое определение

Тест-кейс — это подробный сценарий проверки какого-то одного конкретного кусочка функционала.

Он отвечает на вопросы:

  • что проверяем,
  • в каких условиях,
  • какими шагами,
  • что должно получиться.

Это уже не просто список пунктов, а пошаговая инструкция.


💡 Формальное определение (чуть серьёзнее)

Тест-кейс — набор:входных данных,предусловий,шагов выполнения,ожидаемых результатов и постусловий,
созданный для проверки определённого требования или сценария.

🧱 Обязательные атрибуты тест-кейса

То, без чего нормальный тест-кейс жить не может:

  1. 🆔 Уникальный идентификатор
    Номер тест-кейса (например, TC-REG-001).
  2. 🏷 Название
    Кратко и понятно:
    «Регистрация с валидными данными»
  3. ⚙️ Предусловия (Preconditions)
    Что должно быть выполнено до начала шагов, например:
    • «Пользователь не зарегистрирован»
    • «Открыта главная страница сайта»
  4. 👣 Шаги
    Последовательность действий. Каждый шаг — это действие, а не наблюдение:
    • Открыть страницу регистрации
    • Ввести в поле «Email» …
    • Нажать кнопку «Зарегистрироваться»
  5. 🎯 Ожидаемый результат
    Что именно мы должны увидеть после выполнения шагов:
    • Пользователь успешно зарегистрирован
    • Появилось сообщение «Проверьте почту»

Дополнительно (желательно, но не строго обязательно):

  • 📜 История изменений (кто, когда менял тест-кейс)
  • 📌 Ссылка на требование / макет / задачу

✅ Результаты выполнения тест-кейса

Когда мы выполнили тест-кейс, он может дать один из трёх статусов:

  1. Положительный (Passed)
    Фактический результат = ожидаемому. Всё хорошо.
  2. Отрицательный (Failed)
    Фактический ≠ ожидаемому. Нашли баг.
  3. Блокирован (Blocked)
    Невозможно продолжать, потому что что-то сломалось раньше (тоже баг, но блокирующий тест).

❌ Чего не должно быть в тест-кейсе

  1. Зависимостей от других тест-кейсов
    Тест должен быть максимально самодостаточным.
  2. Нечётких формулировок
    Типа: «проверить, что всё нормально».
    Надо конкретно: «отображается сообщение "Успешно сохранено"».
  3. Отсутствия важной информации
    Нельзя написать «проверить логин» и не указать логин и пароль (или ссылку на источник этих данных).
  4. Излишней детализации
    Не нужно писать «нажать цифру 1 на клавиатуре, затем 2» — достаточно «ввести значение 12».

🧪 Пример тест-кейса (упрощённый)

Название: Регистрация пользователя с валидными данными
Предусловия: Пользователь не зарегистрирован в системе

Шаги:

  1. Открыть страницу регистрации
  2. Ввести в поле «Имя» — Иван Иванов
  3. Ввести в поле «Email» — ivan.ivanov@example.com
  4. Ввести в поле «Пароль» — Password123
  5. Повторить пароль в поле «Подтверждение пароля»
  6. Нажать кнопку «Зарегистрироваться»

Ожидаемый результат:

  • Пользователь успешно зарегистрирован
  • Отображается сообщение «Проверьте вашу почту»
  • На email отправлено письмо с подтверждением

🧮 Уровни детализации тест-кейсов

  • Верхнеуровневые — общие, без суперподробностей«Зарегистрировать пользователя с валидными данными»
  • Низкоуровневые — очень детальныекаждый шаг расписан, как для человека, который впервые видит систему.

Ты сам/а будешь подбирать уровень детализации под:

  • сложность функционала,
  • опыт команды,
  • требования проекта.

🛠 Инструменты

  • Для написания тест-кейсов можно использовать:
    • Google-таблицы / Excel
    • Документы
    • или TMS (Test Management System), например Qase.

🧪 Практика (твоё упражнение)

Задание:
Составь тест-кейс на проверку любой функциональности интернет-магазина:авторизация,добавление товара в корзину,оформление заказа,поиск товара и т.д.Оформи:в таблице,в документе,или в TMS (например, Qase).Потом приложи файл или скрин.

3. Тест-план 📋

Тест-план — это уже не один сценарий, а стратегический документ, который описывает:

  • что именно мы будем тестировать (объект тестирования),
  • стратегию и подходы (как будем тестировать),
  • график тестирования,
  • критерии «начать» и «закончить» тестирование,
  • какие ресурсы и окружение нужны,
  • какие есть риски и что будем делать, если они проявятся.

Обычно тест-план делают лиды / сеньоры, но джуну полезно понимать, что это такое.


4. Баг-репорт 🐞

💡 Определение

Баг-репорт — это официальное описание найденной ошибки, которое помогает:

  • разработчику понять, что именно сломалось,
  • как воспроизвести проблему,
  • насколько она серьёзна и важна.

Хороший баг-репорт отвечает на два главных пункта:

  1. Можно ли воспроизвести проблему?
  2. Понятно ли, в чём суть и насколько это важно?

🧱 Обязательные поля баг-репорта

Общая структура (конкретные поля зависят от баг-трекера, но суть такая):

  1. 🏷 Заголовок (Title)
  2. 📋 Описание / Шаги воспроизведения (Steps to Reproduce)
  3. 🎯 Фактический результат (Actual result)
  4. Ожидаемый результат (Expected result)
  5. 💣 Severity (серьёзность)
  6. 🚦 Priority (приоритет)
  7. 💻 Environment (окружение)
    • ОС, браузер, версия приложения и т.д.
  8. 📎 Вложения (Attachments)
    • скриншоты, логи, тестовые данные и т.п.

🔍 Название баг-репорта: «Что? Где? Когда?»

Хорошее название должно отвечать на 3 вопроса:

  1. Что? — что сломалось и как именно?«Картинка с котиком уезжает за пределы экрана»
  2. Где? — где именно проблема? (страница, модуль, компонент)«…на главной странице»
  3. Когда? — при каких условиях/действиях это происходит?«…при ширине окна браузера менее 500px»

Итоговое название:

«Картинка с котиком на главной странице уезжает за границу экрана при ширине окна < 500px»

🎚 Серьёзность багов (Severity)

Severity — это насколько сильно баг ломает систему с технической точки зрения.

Пример уровней:

  • 🟥 Critical / Blocker — ничего не работает: система падает, невозможно зайти, оформить заказ и т.д.
  • 🔴 Major / High — важная функциональность ломается, но система не падает полностью.
  • 🟠 Medium — заметно, мешает, но можно жить.
  • 🟢 Minor / Low — мелочь: опечатка, пиксель влево, цвет не тот.

🚦 Приоритет багов (Priority)

Priority — это насколько срочно нужно чинить баг для бизнеса.

  • High — чинить сразу
  • Medium — чинить в ближайших релизах
  • Low — можно отложить

Иногда баг технически не страшный, но очень важный для бизнеса (например, опечатка в цене на главном баннере).


🔁 Примеры комбинаций: Severity vs Priority

🔼 Высокий приоритет, низкая серьёзность

Например:

  • Важный лендинг, на главной кнопке вместо «Купить» написано «Купипь».
  • Функционально всё работает, система не ломается, но
    • это видят все пользователи,
    • репутация страдает,
    • руководство в ярости.

Severity — Low (опечатка)
Priority — High (чинить быстро).


🔼 Высокая серьёзность, низкий приоритет

Например:

  • В старом разделе отчётов, которым никто не пользуется,
  • при очень специфическом наборе фильтров
  • система падает с ошибкой.

Технически: серьёзно, падение.
Но бизнес говорит: «Этот отчёт будет удалён через месяц, никто им не пользуется».

Severity — High / Critical
Priority — Low


🧪 Практика (твоё упражнение)

Задание:
Найди 3 бага на любом сайте (можно учебный проект, демо-сайт, даже формочки простые) и:Оформи 3 баг-репортаВ любом виде: таблица, текстовый документОбязательно укажи:заголовок (с «что/где/когда»),шаги,ожидаемый результат,фактический результат,severity и priority.

5. Скриншоты и Lightshot 📸

В баг-репортах очень полезно прикладывать:

  • скриншоты,
  • иногда видео.

Для работы со скриншотами удобно:

👉 Lightshothttps://app.prntscr.com/ru/index.html

Ты можешь:

  • вставлять скрин прямо в баг-репорт,
  • или заливать в облако и прикреплять ссылку.

Если баг визуальный (верстка, отступы, вылезла картинка) — скриншот почти обязателен.
Хорошо, если на скрине ты подсветишь место ошибки стрелочкой или рамкой.


6. Частые ошибки в тестовой документации 🚫

Особенно при написании тест-кейсов и баг-репортов.

1️⃣ Ошмётки ожидаемого результата в шагах

❌ Плохо:

Шаг 2: Нажать на кнопку "HERE" в строчке для перехода на следующую страницу

Здесь в шаг шагами уже залезла часть «что произойдёт».

✅ Лучше разделить:

Шаг 2: Нажать на кнопку «HERE»
Ожидаемый результат: Переход на страницу регистрации


2️⃣ Ошмётки шагов в ожидаемом результате

❌ Плохо:

Ожидаемый результат: При нажатии на кнопку Sign In происходит переход на страницу авторизации

Мы уже написали «нажать кнопку» в шагах.

✅ Лучше:

Шаг 3: Нажать на кнопку Sign In
Ожидаемый результат: Происходит переход на страницу авторизации


3️⃣ Несколько багов в одном баг-репорте

❌ Плохо:

«Зелёная кнопка на главной странице имеет текст "No" и её нажатие не приводит к переходу на страницу Х»

Тут два бага:

  1. Текст кнопки неправильный
  2. Переход не работает

✅ Лучше сделать два отдельных баг-репорта:

  1. «Текст "No" на зелёной кнопке на главной странице»
  2. «При нажатии зелёной кнопки на главной странице не происходит переход на страницу Х»

Почему важно разделять:

  • один пофиксят, второй забудут;
  • у багов может быть разный приоритет;
  • так ты показываешь больше собственной работы 😏

7. Чек-лист самопроверки для тебя 🧠

Когда напишешь:

  • чек-лист,
  • тест-кейс,
  • баг-репорты —

пробегись по вопросам:

  • Понятно ли не-автору, что нужно делать?
  • Есть ли конкретные шаги, а не «проверить, что всё корректно»?
  • Разделены ли:
    • шаги
    • ожидаемый результат
    • фактический результат
  • Нет ли двух багов в одном репорте?
  • Заголовок бага отвечает на «Что? Где? Когда?»?
  • Severity и Priority логичны?


Дополнительно посмотри тут:

https://youtu.be/OHJ3TzuLSC0?si=pxFBcjbP1YeRFL_9