Тест-кейс и тестовый сценарий

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

Описание 

Тест-кейсы (test cases, реже тестовые случаи, иногда также тестовые ситуации, в Википедии определяются как варианты тестирования) по своему общему предназначению похожи на чек-листы — контрольные списки поэтапной проверки каких-то аспектов функциональности или представления продукта. 

Но тест-кейс четче фокусируется на своей задаче: поиске дефектов в продукте и более узко направлен. Иначе говоря, цель тест-кейса — убедиться, что приложение (сайт) работает, как ожидалось, как прописано в требованиях.

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

Тест-кейс это как строго определенный и прописанный эксперимент в научной лаборатории, результаты которого фиксируются.

Итак, типичный тест-кейс:

  • Содержит условия запуска
  • Одно или несколько вводных условий/данных
  • Действие, которое должно быть выполнено 
  • Результаты выполнения — тестовые выводы, или изменения, произошедшие в результате 

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

Когда применяются тест-кейсы

Когда в жизненном цикле разработки ПО наступает нужный момент для написания тест-кейсов? Краткий ответ: это зависит от методологии, но вообще «пораньше» в цикле.

В старые времена, когда все работали только по каскадной модели, тестирование было одной, четко отдельной фазой. Она начиналась только после завершения фазы имплементации, которая в свою очередь начиналась только после того как был готов весь дизайн, и т.п. Но уже наступили времена Agile, и в этой гибкой методологии такие подходы уже не работают. В Agile тестирование — это уже не этап, а одна из активностей. Тестирование уже не ограничивается некими заданными временнЫми рамками, а производится постоянно, непрерывно, начинается как можно раньше, и за него отвечают не только QA-инженеры, а вся команда.

Если коротко, то тест-кейсы пишутся «чем раньше тем лучше». А если в компании практикуют TDD (что это?), или BDD (а это?), то тест-кейсы пишутся даже еще до написания продакшен-кода.

Подробно о тест-кейсах, отдельные технические материалы: Как писать тест-кейсы и Основные методики создания тест-кейсов

Что такое тестовый сценарий

Тестовые сценарии работают на более высоком уровне тестирования. Они менее подробны, как бы более «человечны» и ориентированы на «путь пользователя» по приложению/сайту. 

Тестовый сценарий может содержать в себе много тест-кейсов. 

Тестовый сценарий работает «на стратегическом уровне», то есть меньше вдается в подробности «как?», а описывает «почему?». Тестовый сценарий ориентирован скорее на бизнес-поведение пользователя, на его мотивацию, чем на «дотошное» выполнение с фиксацией результатов.

Подробно о тестовых сценариях в отдельном материале

Различия между тест-кейсом и тестовым сценарием — детальнее

Уровень

  • Тест-кейсы как правило низкоуровневые, конкретные и детальные. В них указываются действия, которые должны быть выполнены, входные данные, и ожидаемые результаты. 
  • Тестовые сценарии — высокоуровневые средства тестирования. Они ориентированы на «общий вид» приложения, его функциональности (или юзабельности). 

Зависимость

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

Пример: для выполнения тест-кейса «Логин» сначала должен быть выполнен тест-кейс «Регистрация».

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

Структура 

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

Выполнение

  • После выполнения тест-кейс отмечается как завершенный/выполненный с каким-то результатом (pass/fail, прошел/упал). 
  • Тестовый сценарий считается (успешно) выполненным, когда все включенные в него тест-кейсы успешно выполнены и завершены.

Автоматизация

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

Время 

  • Создание (написание) тест-кейсов требует как правило затрат времени, и некоторой опытности. 
  • Тестовые сценарии могут быть написаны быстро, и как бы более интуитивно. 

Онбординг 

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

Примеры тест-кейсов и тестовых сценариев

Лучше это рассмотреть на практике. 

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

Начнем с простого примера тест-кейса. Стажеру-QA дали задание написать простой тест-кейс проверки функциональности Корзины покупок на сайте. Что может быть в таком тест-кейсе?

  • Начальные условия: Корзина пуста.
  • Входные данные: продукт имеет стоимость 100 рублей.
  • Действия: добавление товара в корзину и активация купона скидки на 10%.
  • Ожидаемые результаты: в корзине должен быть один товар, а общая стоимость должна составлять 90 рублей.
  • Полученные результаты: такие-то и такие-то.

Если речь идет о ручном тестировании, тест-кейс можно рассматривать как инструкцию, которой будет следовать тестировщик при выполнении теста. 

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

ШагОжидаемый результатФактический результат
Перейти по URL-адресу и верифицировать КорзинуКорзина пуста
Перейти на главную страницу и добавить в Корзину товар TEST_PRODUCT_1 стоимостью 100 рубВ Корзине один товар
Перейти на страницу оформления заказа и добавить купон на скидку TEST_COUPON_10Общая стоимость заказа в Корзине составляет 90 руб

Этот пример упрощен, а часто в реальных тест-кейсах будут еще элементы, например:

  • Прикрепленные релевантные документы, (имеющие отношение к)
  • Диаграммы, схемы, рисунки, скриншоты и другие наглядные вещи, позволяющие тестировщику (и другим членам команды) быстро оценить результаты
  • Ссылки на документацию, особые отметки и комментарии, ссылки на Jira/GitHub

Пример тестового сценария

Пример тестового сценария проще и короче, поскольку они представляют собой «высокоуровневое изложение» вещей, которые нужно протестировать (проверить). Например в случае с магазином будет примерно такое:

  • Проверить функциональность Корзины
  • Проверить аутентификацию/авторизацию
  • Убедиться, что главная страница отображается и работает правильно

Тест-кейс и тестовый сценарий — табличное сравнение

Сравнение по:Тест-кейсТестовый сценарий
Описание Простой конкретный тест условия или требованияБолее общее, высокоуровневое словесное описание действий
Область тестированияУзкая, сосредоточенная на какой-то одной функции/действииОбласть широкая, покрывающая много тест-кейсов и функций
Гранулярность Детальное описание вводов, действий, и ожидаемых результатовВысокоуровневое описание общих целей/действий
Зависимость Может зависеть от (результатов) других тест-кейсовМожет и зависеть но чаще не зависит от других тестовых сценариев
Повторяемость Может повторно запускаться с другим набором тестовых данныхОбычно не повторяем, так как представляет собой высокоуровневое описание одного из типичных пользовательских путей
Цель Верифицирует конкретную функцию или выполнение одного требованияВалидирует общее поведение системы или пользовательский путь 
СтруктурноВходит в состав тестового сценарияВходит в состав use-кейса, покрывает большую user story или business-flow
ДокументацияСодержит пошаговые инструкции и ожидаемые результатыПредставляет собой общее описание и содержит конкретные тест-кейсы
Выполнение Может запускаться независимо от другихРезультат зависит от результатов выполнения многих тест-кейсов
Взаимная зависимость Может взаимно зависеть от других тест-кейсов или тестовых сценариевТакже может иметь взаимные зависимости от других тестовых сценариев
Покрытие Маленькое, покрывает один отдельный аспект или функцию или действиеБольшое, покрывает широкую функциональность или много пользовательских действий
Отслеживаемость Может отслеживаться (сопоставляться, связываться) с требованиями или пользовательскими историямиМожет сопоставляться с высокоуровневыми use-кейсами или пользовательскими историями
Автоматизация Может и часто автоматизируется для выполнения и верификацииВ составе сценария могут автоматизироваться тест-кейсы
Репорты Результаты формируются в репорты на уровне отдельного тест-кейса и наборовРезультаты формируются в репорты на уровне сценария или user journey

Часто задаваемые вопросы по тестовым сценариям — в соответствующем разделе статьи о тестовых сценариях.

Телеграм-канал QA-Собес

Отдельный материал о сценарном тестировании

Какой была ваша первая зарплата в QA и как вы искали первую работу?

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

1 КОММЕНТАРИЙ

Подписаться
Уведомить о
guest

1 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Tester
Tester
8 месяцев назад

Примеры, приведенные в статье в качестве «тестовых сценариев» напоминают тест-сьюты. Как сценарий может быть из одного шага «Проверить функциональность Корзины»? Это скорее сьют, который содержит в себе тест-кейсы для проверки корзины. Тестовый сценарий = test case (ISTQB Glossary)

Мы в Telegram

Наш официальный канал
Полезные материалы и тесты
Готовимся к собеседованию
Project- и Product-менеджмент

? Популярное

? Telegram-обсуждения

Наши подписчики обсуждают, как искали первую работу в QA. Некоторые ищут ее прямо сейчас.
Наши подписчики рассказывают о том, как не бояться задавать тупые вопросы и чувствовать себя уверенно в новой команде.
Обсуждаем, куда лучше податься - в менеджмент или по технической ветке?
Говорим о конфликтных ситуациях в команде и о том, как их избежать
$1100*
медианная зарплата в QA в июне 2023

*по результатам опроса QA-инженеров в нашем телеграм-канале

Собеседование

19%*
IT-специалистов переехало или приняло решение о переезде из России по состоянию на конец марта 2022

*по результатам опроса в нашем телеграм-канале

live

Обсуждают сейчас