Тестирование на основе юзкейсов — полное руководство

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

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

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

Содержание

Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.

Что такое юзкейс?

Юзкейс — это список действий, выполняемых субъектом при взаимодействии с системой для достижения цели. Здесь действующим лицом может быть любой человек, использующий систему, или любая внешняя система. Юзкейсы используются для описания функциональных требований к системе.

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

Пример юзкейса

Давайте рассмотрим пример одного простого юзкейса, когда клиент оформляет заказ в приложении электронной коммерции. Типичный юзкейс имеет следующую структуру.

ID юзкейсаUC 001
Название юзкейсаСделать заказ
Действующие лицаЗаказчик
Краткое описаниеЭтот юзкейс объясняет шаги, с помощью которых клиент может сделать заказ в приложении.
НавигацияПокупатель добавил товар в корзину и выбрал его количество.
Покупатель указал, что хочет оформить заказ, нажав на кнопку «Сделать заказ».
Предварительные условияПокупатель добавил товар в корзину и выбрал количество.
Покупатель указал, что хочет оформить заказ, нажав на кнопку «Сделать заказ».
ПостусловиеЗаказ должен быть сделан.
Основной/обычный сценарийЕсли покупатель не вошел в систему, ему будет предложено сначала войти в систему.
Покупатель нажимает на кнопку «Сделать заказ».
Покупатель переходит на страницу «Вход/Регистрация».
Покупатель нажимает на кнопку «Войти».
Покупатель вводит имя пользователя и пароль.
Покупатель нажимает на кнопку «Войти».
Покупатель входит в систему.


Если покупатель хочет изменить количество товара, он может вернуться назад и изменить количество товара, а затем продолжить процесс оформления заказа.
Покупатель нажимает кнопку «Назад».
Покупатель переходит на экран «Контактная информация и адрес».
Покупатель нажимает кнопку «Назад».
Покупатель переходит на экран «Подробная информация о продукте».
Покупатель изменяет количество.
Покупатель нажимает кнопку «Сделать заказ».


Если покупатель хочет изменить контактную и адресную информацию, он может вернуться назад, чтобы изменить детали, а затем продолжить процесс размещения заказа.
Покупатель нажимает кнопку «Назад».
Покупатель переходит на экран «Контактная информация и адрес».
Покупатель изменяет детали.


Если покупатель хочет отменить заказ, он может отменить заказ и вернуться на главную страницу.
Покупатель нажимает кнопку «Отмена».
На экране появится всплывающее окно подтверждения с кнопками «Да» и «Нет».
Покупатель нажимает на кнопку «Да».
Покупатель переходит на главную страницу.
Альтернативный сценарийЕсли платеж не прошел, покупатель увидит сообщение «Платеж не прошел» и перейдет на страницу «Детали заказа».
ИсключенияЕсли платеж не прошел, покупатель увидит сообщение «Платеж не прошел» и перейдет на страницу «Детали заказа».
Бизнес-правила<<Поля для заполнения должны иметь валидацию>>.

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

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

Как видно из приведенной структуры, юзкейс описывает шаги, предпринимаемые пользователем для завершения действия по размещению заказа, а цель пользователя — сделать заказ. В юзкейсе также упоминаются некоторые альтернативные сценарии и исключения, которые могут возникнуть при достижении этой цели.

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

Как создать тест-кейсы на основе юзкейса?

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

При создании тест-кейсов на основе юзкейса можно выполнить следующие шаги:

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

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

Мы остановимся на основном потоке. Ниже приведена структура тест-кейса на примере обычного флоу, упомянутого в приведенном выше юзкейсе.

ID тест-кейсаTC 001
ID юзкейсаUC 001
ПриоритетВысокий
ОписаниеЭтот тест-кейс проверяет основной процесс оформления заказа покупателем.
Покупатель после входа в систему и добавления товара в корзину нажимает кнопку «Сделать заказ», чтобы оформить заказ.
Покупатель вводит контактные данные и адрес.
Покупатель проверяет данные заказа и переходит на страницу оплаты.
Покупатель производит оплату, и после успешной оплаты заказ будет оформлен.
ПредусловиеПользователь должен был нажать на кнопку «Сделать заказ» в корзине.
ШагиНажмите на кнопку «Сделать заказ».
Введите контактные данные и адрес в поля, указанные ниже: <<Перечень полей>>. Нажмите на кнопку «Отправить».
Нажмите на кнопку «Подтвердить и оплатить».
Выберите способ оплаты «Кредитная карта».
Введите данные «Кредитной карты» в поля, указанные ниже: <<Перечень полей>>. Нажмите на кнопку «Оплатить».
Данные тестирования<<Тестовые данные для каждого поля ввода>>.
Ожидаемый результатПокупатель должен перейти на страницу «Контактная информация и адрес».
Покупатель должен иметь возможность ввести значения, указанные в тестовых данных.
Контактная информация и адрес должны быть сохранены, и клиент должен перейти на страницу «Детали заказа».
Покупатель должен перейти на страницу оплаты.
Покупатель должен иметь возможность выбрать способ оплаты «Кредитная карта», и должны отображаться соответствующие поля.
Покупатель должен иметь возможность ввести значения, как указано в тестовых данных.
Оплата должна быть успешной, и должно появиться подтверждающее сообщение «Ваш платеж был успешным, и заказ был размещен. Идентификатор вашего заказа — XYZ1234».

Для каждого шага тест-кейса должен быть указан ожидаемый результат.

Теперь давайте рассмотрим некоторые преимущества и недостатки использования тестирования на основе юзкейсов.

Преимущества тестирования на основе юзкейсов

  • Юзкейсы разрабатываются с точки зрения пользователя и описывают действия, выполняемые пользователем при взаимодействии с системой. Таким образом, при тестировании на основе юзкейсов основное внимание уделяется пользователю. Поскольку команда тестировщиков думает с точки зрения пользователя, это также помогает ей выявить любые проблемы, связанные с пользовательским опытом.
  • Поскольку тест-кейсы разрабатываются на основе юзкейсов, этот тип тестирования помогает охватить все возможные «флоу», которые, скорее всего, будут проходить пользователи.
  • При разработке тест-кейсов тестировщики могут быстро начать работу над ними, а также сократить время на их разработку, поскольку основой являются юзкейсы, а документ с их описанием доступен до начала разработки.
  • Каждый юзкейс содержит предварительные и последующие условия, бизнес-правила, основной «флоу», альтернативные «флоу», исключения и т. д. Эти разделы помогают команде тестирования при разработке тест-кейсов.
  • Сложность тест-кейсов может быть снижена, поскольку команда тестировщиков будет следовать «флоу», указанным в требованиях по юзкейсам.

Недостатки тестирования на основе юзкейсов

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

Заключение

Тестирование на основе юзкейсов — это функциональное тестирование методом «черного ящика». Оно помогает протестировать систему с точки зрения пользователя.

Перевод статьи «Use Case Testing – The Complete Guide».

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

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

Читать в телеграм

1 комментарий к “Тестирование на основе юзкейсов — полное руководство”

  1. Пингбэк: Большой учебник по тестированию

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *