Тестирование нескольких пользовательских ролей

Мой вопрос может показаться немного глупым.

Моя команда должна проверить веб-приложение, чтобы оно использовалось тремя разными User Roles. Итак, мы начинаем с написания наших тестовых случаев на основе пользовательских историй. Моя проблема в том, что я не хочу создавать 3 разных теста для каждой роли пользователя. Я думаю, что это требует много времени при написании тестовых случаев и последующем их тестировании, потому что:

Total Test Cases Number = User Stories x Test Cases Per User Story x User Roles Number.

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

Есть ли лучший способ справиться с этой ситуацией?

Заранее спасибо.


person chaliasos    schedule 04.04.2012    source источник


Ответы (4)


принцип единой ответственности?

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

person jenson-button-event    schedule 04.04.2012
comment
Значит, нельзя избежать написания нескольких одинаковых тестовых случаев? В пользовательской истории, например «Войти в приложение, мне нужен тестовый пример для каждой роли пользователя? Вот чего я хочу избежать, и я уже знаю, что это довольно сложно. Спасибо. - person chaliasos; 04.04.2012
comment
Вы четко понимаете разницу между автоматизированным тестированием UAT, когда вы входите в систему под каждой отдельной ролью пользователя, и TDD, когда вы тестируете дизайн своего программного обеспечения? Похоже на первое, и в этом случае вы можете пойти по этому пути неправильно. Может быть, посмотрите на регистратор кликов или тестовый агент браузера, такой как watin/selenium, где вы можете кодировать входные данные для форм. Конечно, это случай создания списка ролей, их зацикливания и передачи роли (или логина/роли) в какой-то метод входа. - person jenson-button-event; 04.04.2012

Не уверен насчет кодирования (зависит от ситуации и того, как реализован код), но могу ответить с точки зрения тестирования (на данный момент 2 года, более половины из них в традиционной каскадной системе, переходящей на Agile).

Веб-приложение, которое я тестирую, похоже на то, что у нас есть три типа пользователей (глобальные) и три роли пользователей (привязанные к «проектам», которые представляют собой группы сайтов, сайты в терминах групп изображений, поиск EyeQ, если любопытно). Итак, 9 возможных комбинаций, 8 из которых могут составить сайт. Текущий документ по процедуре регрессии содержит более 100 тестовых примеров, около 20 из которых предназначены для редактирования/создания/удаления сайта. всего в целом: более 500 тестовых случаев, большинство из которых запускаются вручную (постоянные усилия по их автоматизации, но требуют времени, поскольку мы прошли через перезагрузку пользовательского интерфейса).

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

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

пример тестового случая: пользователь может создать сайт (8/9 комбинаций тип-роль могут сделать это в моем приложении)

что они сделали до того, как я пришел: тестовый пример 1- системный администратор, не привязанный к проекту, может сделать сайт (10 шагов); тестовый пример 2 — системный администратор с ролью проекта может создать сайт (те же 10 шагов); тестовый пример 3 - администратор учетной записи, не привязанный к проекту, может создать сайт (те же 10 шагов, что и в 1-м случае); тестовый пример 4 - администратор учетной записи с ролью proj может создать сайт (то же самое); тестовый пример 5... и так далее

что я делаю: тестовый пример 1: выполните 10 шагов как пользователь с комбо 1, шаг 11-выйдите из системы как это комбо, войдите как пользователь с комбо 2 и повторите 1-10, шаг 12-выйдите из системы как пользователь с шага 11 назад в качестве пользователя с комбо 3 и повторить 1-10, ...

Разница: 3+ тест-кейса или 30+ выполненных шагов (в данном случае около 100) против 1 тест-кейса: менее 20 шагов

Отнеситесь к этому с недоверием, это зависит от типа вашей проблемы. Если это действительно повторяется (как в примере), постарайтесь зациклить как можно больше.

Преимущество заключается в том, что когда вы запускаете структуру автотестирования, простой цикл for в тестовом примере с объектом-массивом или структурой для ввода. Недостаток в том, что он не будет таким модульным (требуется дополнительные 30 секунд, чтобы найти причину проблемы, если что-то сломается, но это мое мнение).

person DYezek    schedule 27.02.2013
comment
Кстати, EyeQ — это инструмент для веб-распространения спутниковых и аэрофотоснимков, и мои комментарии больше направлены на написание тестовых случаев в целом (мой случай, документы Word для ручного тестирования). Тестирование в коде (модульное, интеграционное и т. д.) — это совсем другое ведро червей. - person DYezek; 27.02.2013

Не нужно путать. Вам нужно просто сделать Matrix для прав доступа Vs. Роли пользователей. Например: - Raw: Пользовательские модули (права пользователей) Столбец: Роль пользователя

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

Вы можете скачать отсюда.

https://testcasegenerator.codeplex.com/

Загрузить генератор тестовых случаев

Это отличный инструмент для точного измерения перестановок и комбинаций.

person Malay Parikh    schedule 27.11.2017

Мы протестировали эти тестовые примеры на основе ролей для огромного корпоративного приложения с почти 38 ролями и сотнями редактируемых или нередактируемых полей на более чем 15-20 веб-страницах с использованием интеллект-карт.

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

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

Мы преобразовали тестовые случаи в ментальную карту: Образец ментальной карты

Интеллект-карты помогают объединить большие объемы данных в графическую форму, что облегчает понимание тестовых случаев и ускоряет выполнение.

person Suresh Parimi    schedule 11.12.2018