Главная · Статьи · Как написать тест-кейс

Как написать тест-кейс: структура, пример и ошибки новичка

Вячеслав Степанов Вячеслав Степанов — проджект-менеджер, ментор ·

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

Как тестируют в IT — пишем тест-кейсы в Zephyr и находим реальные баги | Урок 25

Если видео не открывается — смотри на YouTube (может понадобиться VPN).

Содержание
  1. Что такое тест-кейс
  2. Когда пишут тест-кейсы
  3. Из чего состоит тест-кейс
  4. Пример тест-кейса
  5. Как собрать список проверок
  6. Какие значения проверять
  7. Где хранят тест-кейсы
  8. Зачем это проджект-менеджеру
  9. Типичные ошибки
  10. Частые вопросы

Что такое тест-кейс

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

Рядом живёт чек-лист: список коротких строк вроде «войти с верным паролем — открылся главный экран». Его быстро писать и проходить, он хорош для обхода главных экранов перед выкаткой. Разница видна на простом примере. Если дать трём людям задачу «проверить экран долгов», каждый проверит по-своему. С тест-кейсом все трое выполнят одну и ту же проверку.

Формат тест-кейса давно устоялся: его описывали ещё в стандарте IEEE 829 по документации тестирования (1983), сегодня он закреплён в международном стандарте ISO/IEC/IEEE 29119-3. На практике команды используют упрощённую версию, о ней ниже.

Когда пишут тест-кейсы

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

Кейсы пишут по требованиям, пока разработчик пишет код. Причин две.

Первая причина касается достоверности проверки. Если писать кейс по готовому продукту, в ожидаемый результат попадает то, что продукт уже делает. Открыл экран, увидел «5100» — записал «показывается 5100». Ошибка узаконена. Ожидание из требования («сумма с разделителем разрядов и знаком рубля») сразу покажет расхождение.

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

Из чего состоит тест-кейс

ЧастьЧто в ней
НазваниеОдна фраза: что проверяем. По списку названий должно быть понятно, что проверяет каждый кейс
ПредусловиеСостояние продукта до первого шага: какие данные и права уже есть
ШагиДействия по одному на строку, как команды: что нажать, что ввести
Ожидаемый результатЧто должно получиться. Пишется до прогона, из требований
ДанныеКонкретные значения, на которых проверяем
Схема: Given из критерия приёмки становится предусловием, When — шагами, Then — ожидаемым результатом тест-кейса
Если критерий написан в формате Given / When / Then, кейс собирается из него почти дословно.

Формат Given / When / Then («дано / когда / тогда») пришёл из подхода BDD, который описал Дэн Норт в середине 2000-х. По нему же видно качество требований: из хорошего критерия кейс собирается за минуту. Если не собирается — в задаче чего-то не хватает, и лучше выяснить это до начала разработки.

Пример тест-кейса

Возьмём фичу: экран «Долги учеников» в сервисе для репетиторов. Критерий приёмки: если у репетитора есть ученики с неоплаченными занятиями, рядом с названием вкладки показан кружок с их числом.

Название:   На вкладке «Долги учеников» показан кружок с числом должников
Предусловие: репетитор вошёл в систему; у двух учеников есть
             неоплаченные занятия
Шаги:
  1. Открыть раздел «Оплаты»
     → раздел открылся, видны вкладки
  2. Посмотреть на вкладку «Долги учеников»
     → рядом с названием стоит кружок с числом 2

Кейс проверяет одну вещь. Для проверки «кружок пропадает, когда должников нет» пишут другой кейс со своим предусловием. Качество кейса проверяют так: человек, который фичу никогда не видел, должен пройти по шагам и получить тот же результат. Если где-то придётся догадываться, кейс переписывают.

Хочешь разобраться в тестировании на живой фиче?
На менторстве ты пишешь тест-кейсы по своей фиче в тренажёре IT-компании, заводишь их в Zephyr, проводишь прогон, оформляешь найденные баги и получаешь разбор каждого шага. Начни с бесплатной консультации.

Записаться на бесплатную консультацию

Как собрать список проверок

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

  1. По критериям приёмки. Идёшь по критериям сверху вниз, и каждый получает хотя бы одну проверку. Так видна полнота и находятся требования, которые на экране не заметишь (например, работа на узком экране телефона).
  2. По экрану. Выписываешь, из чего состоит экран: вкладки, колонки, кнопки, поля, состояния (загрузка, пустой список, ошибка). Здесь часто всплывает поведение, которого в критериях нет. С такой находкой идут с вопросом к продакт-оунеру и не проверяют «как получилось».
  3. «А что если». Проходишь путь пользователя и в каждой точке спрашиваешь: а если данных нет? а если их сотня? а если нажать дважды? а если у ученика нет ни одного канала связи? Каждый ответ — отдельная проверка.

Маленькая фича не значит мало проверок: путь в шесть шагов легко даёт два десятка вопросов. Объём проверок определяет количество развилок на пути.

Какие значения проверять

Ось задержки оплаты: до 14 дней — серая группа, 14–29 — жёлтая, 30 и больше — красная; на границах проверяют пары 13 и 14, 29 и 30
Пример: плашка задержки меняет цвет на 14-й и 30-й день.

Перебрать все значения невозможно: задержка оплаты может быть 1, 2, 57 или 300 дней. Поэтому используют приёмы тест-дизайна. Два самых известных описал Гленфорд Майерс ещё в книге «The Art of Software Testing» (1979), и их до сих пор спрашивают на собеседованиях тестировщиков.

Границы есть почти везде, где значения выстраиваются в ряд:

ДанныеГде искать границы
ДеньгиНоль, первый рубль, очень большая сумма
ДатыВчера и сегодня, последний день месяца, 29 февраля
ТекстПустое поле, один символ, максимальная длина и на символ больше
СпискиПусто, одна запись, полная страница, страница плюс одна запись

Собирать список проверок и раскрывать его в кейсы помогает ИИ. Но работает он только с тем, что ему дали. С критериями и описанием экрана он разложит проверки аккуратно, а без описания экрана придумает несуществующий интерфейс. За каждый кейс отвечает тот, кто его завёл, поэтому результат ИИ всегда перечитывают.

Где хранят тест-кейсы

В небольших командах кейсы иногда ведут в таблице. Но удобнее специальные системы управления тестированием: они хранят кейсы, собирают прогоны и показывают, что прошло, а что упало. Популярные варианты — Zephyr, который встраивается прямо в Jira, и TestRail.

Кейсы раскладывают по папкам — обычно по экранам или фичам, чтобы через полгода найти нужный. У кейса есть статус: черновик, пока набор не согласован; согласован, когда кейс начинает попадать в прогоны; устарел, когда фича изменилась (история прогонов при этом сохраняется). На прогоне каждому кейсу ставят итог: прошёл, упал или заблокирован. На каждый упавший кейс заводят баг-репорт. Как его оформить, я разобрал в статье про баг-репорт.

Зачем это проджект-менеджеру

Типичные ошибки

Частые вопросы

Что такое тест-кейс простыми словами?

Описание одной проверки: в каком состоянии продукт перед началом, какие шаги выполнить и что должно получиться. По нему любой человек проверит фичу одинаково.

Чем тест-кейс отличается от чек-листа?

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

Из чего состоит тест-кейс?

Из названия, предусловия, шагов, ожидаемого результата и тестовых данных.

Когда нужно писать тест-кейсы?

По требованиям, параллельно с разработкой. Так ожидаемый результат берётся из требований, а дыры в них находятся до написания кода.

Что такое граничные значения в тестировании?

Значения на переходах между группами, где продукт меняет поведение. Например, если плашка желтеет на 14-й день задержки, проверяют 13 и 14 дней: на таких переходах чаще всего прячутся ошибки.

Читайте также
  1. HTTP-коды ошибок: шпаргалка
  2. Роли в IT-команде: кто есть кто и за что отвечает
  3. Что такое CI/CD простыми словами

Хочешь увидеть тестирование своими глазами?
На моём YouTube-канале собраны открытые уроки курса: тест-кейсы, Postman, API, Git и CI/CD глазами проджект-менеджера.

Смотреть уроки на YouTube