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

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

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

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

Содержание

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

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

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

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

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

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

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


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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

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

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

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