Ответ
Ролевая модель (RBAC — Role-Based Access Control) — это механизм управления доступом, в котором права на выполнение операций в системе назначаются не конкретным пользователям, а их ролям (например, «Администратор», «Пользователь», «Гость»). Тестирование RBAC проверяет корректность работы этой модели.
Что проверяется:
- Позитивные сценарии: Пользователь может выполнять действия, разрешенные его роли.
- Негативные сценарии: Пользователь не может выполнять действия, запрещенные его роли (проверка на отсутствие несанкционированного доступа).
- Эскалация привилегий: Невозможность получить права более высокой роли обходными путями (например, подмена параметров в URL или API-запросе).
Пример теста на Python с использованием pytest:
def test_admin_can_delete_user(admin_client):
response = admin_client.delete('/api/users/123')
assert response.status_code == 200 # Админ имеет право
def test_user_cannot_delete_user(user_client):
response = user_client.delete('/api/users/123')
assert response.status_code == 403 # Обычный пользователь получает "Запрещено"
Ключевые аспекты для тестировщика:
- Понимание матрицы прав для каждой роли.
- Проверка доступа к UI-элементам (кнопки, меню) и API-эндпоинтам.
- Тестирование сценариев, когда у пользователя несколько ролей одновременно.