Тестирование на основе юзкейсов — это один из методов тестирования «черного ящика», используемый для функционального тестирования системы с целью выявления каких-либо дефектов. Для тестирования системы используются тест-кейсы, которые создаются на основе юзкейсов.
Поскольку юзкейсы пишутся до начала процесса разработки, команда тестировщиков может использовать их для создания тест-кейсов. Эти тест-кейсы могут быть использованы в системном, регрессионном, санитарном, приемочном тестировании.
Прежде чем приступить к детальному разбору тестирования на основе юзкейсов, давайте вкратце разберемся, что такое «юзкейс».
Содержание
- Что такое юзкейс?
- Пример юзкейса
- Как создать тест-кейсы на основе юзкейса?
- Пример тест-кейса
- Преимущества тестирования на основе юзкейсов
- Недостатки тестирования на основе юзкейсов
- Заключение
Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.
Что такое юзкейс?
Юзкейс — это список действий, выполняемых субъектом при взаимодействии с системой для достижения цели. Здесь действующим лицом может быть любой человек, использующий систему, или любая внешняя система. Юзкейсы используются для описания функциональных требований к системе.
Функциональные требования пишутся бизнес-аналитиком после этапа сбора и анализа требований и перед этапами проектирования и кодирования. То есть до того, как команда разработчиков начнет работу над системой.
Пример юзкейса
Давайте рассмотрим пример одного простого юзкейса, когда клиент оформляет заказ в приложении электронной коммерции. Типичный юзкейс имеет следующую структуру.
| ID юзкейса | UC 001 |
| Название юзкейса | Сделать заказ |
| Действующие лица | Заказчик |
| Краткое описание | Этот юзкейс объясняет шаги, с помощью которых клиент может сделать заказ в приложении. |
| Навигация | Покупатель добавил товар в корзину и выбрал его количество. Покупатель указал, что хочет оформить заказ, нажав на кнопку «Сделать заказ». |
| Предварительные условия | Покупатель добавил товар в корзину и выбрал количество. Покупатель указал, что хочет оформить заказ, нажав на кнопку «Сделать заказ». |
| Постусловие | Заказ должен быть сделан. |
| Основной/обычный сценарий | Если покупатель не вошел в систему, ему будет предложено сначала войти в систему. Покупатель нажимает на кнопку «Сделать заказ». Покупатель переходит на страницу «Вход/Регистрация». Покупатель нажимает на кнопку «Войти». Покупатель вводит имя пользователя и пароль. Покупатель нажимает на кнопку «Войти». Покупатель входит в систему. Если покупатель хочет изменить количество товара, он может вернуться назад и изменить количество товара, а затем продолжить процесс оформления заказа. Покупатель нажимает кнопку «Назад». Покупатель переходит на экран «Контактная информация и адрес». Покупатель нажимает кнопку «Назад». Покупатель переходит на экран «Подробная информация о продукте». Покупатель изменяет количество. Покупатель нажимает кнопку «Сделать заказ». Если покупатель хочет изменить контактную и адресную информацию, он может вернуться назад, чтобы изменить детали, а затем продолжить процесс размещения заказа. Покупатель нажимает кнопку «Назад». Покупатель переходит на экран «Контактная информация и адрес». Покупатель изменяет детали. Если покупатель хочет отменить заказ, он может отменить заказ и вернуться на главную страницу. Покупатель нажимает кнопку «Отмена». На экране появится всплывающее окно подтверждения с кнопками «Да» и «Нет». Покупатель нажимает на кнопку «Да». Покупатель переходит на главную страницу. |
| Альтернативный сценарий | Если платеж не прошел, покупатель увидит сообщение «Платеж не прошел» и перейдет на страницу «Детали заказа». |
| Исключения | Если платеж не прошел, покупатель увидит сообщение «Платеж не прошел» и перейдет на страницу «Детали заказа». |
| Бизнес-правила | <<Поля для заполнения должны иметь валидацию>>. |
Помимо вышеупомянутых разделов, юзкейс может иметь раздел «Последующие юзкейсы» с любыми юзкейсами, следующими за данным юзкейсом, раздел «Предположения», чтобы упомянуть любые предположения, которые были приняты во внимание для данного юзкейса, раздел «Макет», чтобы показать пользовательский интерфейс, связанный с данным юзкейсом, и т. д.
В приведенном выше примере, чтобы не затягивать обсуждение, мы предположили, что кредитная карта — единственный способ оплаты, доступный в системе, и здесь не упоминаются все возможные альтернативные варианты.
Как видно из приведенной структуры, юзкейс описывает шаги, предпринимаемые пользователем для завершения действия по размещению заказа, а цель пользователя — сделать заказ. В юзкейсе также упоминаются некоторые альтернативные сценарии и исключения, которые могут возникнуть при достижении этой цели.
Теперь давайте рассмотрим тест-кейсы, которые можно разработать на основе этого юзкейса.
Как создать тест-кейсы на основе юзкейса?
На каждый возможный «флоу» (поток) в юзкейсе следует создать отдельный тест-кейс. В приведенном выше примере упоминается пять вариантов (один основной и четыре альтернативных). Поэтому для этого юзкейса следует разработать как минимум пять тест-кейсов. При необходимости можно создать более пяти. Главное — охватить все возможные варианты. Обратите внимание, что даже для исключений необходимо разработать тест-кейсы.
При создании тест-кейсов на основе юзкейса можно выполнить следующие шаги:
- Изучить юзкейс и разобраться во всех его возможных «флоу».
- Определить все тест-кейсы для каждого «флоу».
- Определить тестовые данные для каждого тест-кейса.
Пример тест-кейса
Мы остановимся на основном потоке. Ниже приведена структура тест-кейса на примере обычного флоу, упомянутого в приведенном выше юзкейсе.
| ID тест-кейса | TC 001 |
| ID юзкейса | UC 001 |
| Приоритет | Высокий |
| Описание | Этот тест-кейс проверяет основной процесс оформления заказа покупателем. Покупатель после входа в систему и добавления товара в корзину нажимает кнопку «Сделать заказ», чтобы оформить заказ. Покупатель вводит контактные данные и адрес. Покупатель проверяет данные заказа и переходит на страницу оплаты. Покупатель производит оплату, и после успешной оплаты заказ будет оформлен. |
| Предусловие | Пользователь должен был нажать на кнопку «Сделать заказ» в корзине. |
| Шаги | Нажмите на кнопку «Сделать заказ». Введите контактные данные и адрес в поля, указанные ниже: <<Перечень полей>>. Нажмите на кнопку «Отправить». Нажмите на кнопку «Подтвердить и оплатить». Выберите способ оплаты «Кредитная карта». Введите данные «Кредитной карты» в поля, указанные ниже: <<Перечень полей>>. Нажмите на кнопку «Оплатить». |
| Данные тестирования | <<Тестовые данные для каждого поля ввода>>. |
| Ожидаемый результат | Покупатель должен перейти на страницу «Контактная информация и адрес». Покупатель должен иметь возможность ввести значения, указанные в тестовых данных. Контактная информация и адрес должны быть сохранены, и клиент должен перейти на страницу «Детали заказа». Покупатель должен перейти на страницу оплаты. Покупатель должен иметь возможность выбрать способ оплаты «Кредитная карта», и должны отображаться соответствующие поля. Покупатель должен иметь возможность ввести значения, как указано в тестовых данных. Оплата должна быть успешной, и должно появиться подтверждающее сообщение «Ваш платеж был успешным, и заказ был размещен. Идентификатор вашего заказа — XYZ1234». |
Для каждого шага тест-кейса должен быть указан ожидаемый результат.
Теперь давайте рассмотрим некоторые преимущества и недостатки использования тестирования на основе юзкейсов.
Преимущества тестирования на основе юзкейсов
- Юзкейсы разрабатываются с точки зрения пользователя и описывают действия, выполняемые пользователем при взаимодействии с системой. Таким образом, при тестировании на основе юзкейсов основное внимание уделяется пользователю. Поскольку команда тестировщиков думает с точки зрения пользователя, это также помогает ей выявить любые проблемы, связанные с пользовательским опытом.
- Поскольку тест-кейсы разрабатываются на основе юзкейсов, этот тип тестирования помогает охватить все возможные «флоу», которые, скорее всего, будут проходить пользователи.
- При разработке тест-кейсов тестировщики могут быстро начать работу над ними, а также сократить время на их разработку, поскольку основой являются юзкейсы, а документ с их описанием доступен до начала разработки.
- Каждый юзкейс содержит предварительные и последующие условия, бизнес-правила, основной «флоу», альтернативные «флоу», исключения и т. д. Эти разделы помогают команде тестирования при разработке тест-кейсов.
- Сложность тест-кейсов может быть снижена, поскольку команда тестировщиков будет следовать «флоу», указанным в требованиях по юзкейсам.
Недостатки тестирования на основе юзкейсов
- Если какой-либо «флоу» или юзкейс отсутствует в требованиях, это повлияет на процесс тестирования. Велика вероятность того, что тест-кейсы для отсутствующих юзкейсов будут пропущены.
- Юзкейсы охватывают только функциональные требования. Тестирование нефункциональных требований может быть невозможным.
- Юзкейсы пишутся с точки зрения пользователя. В системе могут быть некоторые сценарии, которые не рассматриваются с точки зрения пользователя, и они могут быть не включены в требования по юзкейсам. В таких случаях стопроцентное тестовое покрытие каждой функции системы невозможно.
Заключение
Тестирование на основе юзкейсов — это функциональное тестирование методом «черного ящика». Оно помогает протестировать систему с точки зрения пользователя.
Перевод статьи «Use Case Testing – The Complete Guide».

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