Ролевая модель: чит-лист проверок |
11.11.2024 00:00 |
Автор: Ольга Назина (Киселева) Чит-лист — это шпаргалка по выбранной теме, что не забыть проверить. Берете чит-лист как основу, адаптируете под свой проект, и готово! В своей книге про тест-дизайн я написала ряд чит-листов, которыми и хочу теперь поделиться. Сегодня поговорим про ролевую модель в GUI и API — это когда у нас есть разграничение прав для отдельных пользователей / целых групп (им назначается роль). Набор ролей может быть очень обширным — права только на просмотр, на редактирование, на редактирование конкретной сущности или даже одного поля в этой сущности, просмотр конкретной страницы (отчетность или аудит), создание связи… Но если брать в целом, обычно у нас есть:
Давайте разберемся, как будем их проверять: GUI — графический интерфейс пользователяДля любого действия в системе пробуем выполнить его под:
Если стоит задача проверить саму ролевую модель, то берем роль и проверяем для каждой действия, для которых:
Например, я, как автор статей на хабре, могу редактировать свои статьи. Тогда пробуем:
Если у вас есть какие-то явные ограничения вида:
То важно проверить не только менеджера VIP-клиентов, но и все остальные роли — что они такую кнопку не видят. API — программный интерфейсВсё то же самое, что и в GUI, просто тут мы вызываем методы, а не нажимаем на кнопки в интерфейсе. Если проверяем метод, то под пользователем, у которого:
Если проверяем саму ролевую модель, то берем роль и вызываем каждый метод по 1-2 раза — чтобы доступ был / не было. Возьмем для примера систему Cards, согласно ТЗ на ролевую модель — «пользователь, указанный через user-id (имитирует вход через LDAP в реальной жизни) в методе getUser видит только себя)». Чтобы это проверить, отправляем 2 запроса:
Иногда бывает, что ограничение накладывается частично — например, оператор может отредактировать информацию по клиенту типа VIP-статуса, но не может отредактировать ФИО и другие паспортные данные. Как такое проверить? Верно, отправляем запрос на редактирование, в котором:
А ещё может быть ограничение на просмотр конкретных полей. Особенно это актуально для GraphQL API, где набор полей в ответе указывается клиентом. Запрашиваем в ответе:
Сочетание ролейТестируя роли, нужно проверять их:
Потому что бывает так, что настраивается ряд «мелких» ролей:
А потом делают группы пользователей, собирая права доступа из этих мелких ролей. Как бы раздавая браслеты, разрешающие заходить в ту или иную зону аквапарка. Поэтому проверяем, что будет, когда у пользователя:
ИтогоПри тестировании ролевой модели нужно для каждой роли проверить все действия и / или методы API. Смотрим, что обе ситуации обрабатываются правильно:
Отказ в доступе в GUI можно попробовать обойти (например, кнопки в интерфейсе нет, а мы идем по прямой ссылке). А отказ доступа в API нужно исследовать подробнее:
Сами роли проверяем по отдельности и вместе — как они взаимодействуют друг с другом? Правильно ли конфликтуют, если это требуется? А что, если у пользователя ещё нет ни одной роли? PS — больше полезных статей ищите в моем блоге по метке «полезное». А полезные видео — на моем youtube-канале |