| Ролевая модель: чит-лист проверок | 
| 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-канале  |