1. анализ применения контекстного механизма контроля


 Тестирование эффективности контекстного механизма


Download 1.31 Mb.
Pdf ko'rish
bet11/21
Sana19.06.2023
Hajmi1.31 Mb.
#1611011
TuriРеферат
1   ...   7   8   9   10   11   12   13   14   ...   21
Bog'liq
ВКР - АкмальА

2.3. Тестирование эффективности контекстного механизма 
Тестирование и оценка эффективности контекстного механизма в 
данной программе "Умный дом" может включать следующие аспекты: 
1. Тестирование аутентификации и идентификации: 
- Ввод корректного логина и пароля для успешного входа в систему. 
- Ввод некорректного логина или пароля для отображения сообщения 
о неверных учетных данных. 
2. Тестирование управления доступом: 
- Проверка доступа к различным ресурсам (дверь, освещение, система 
безопасности, термостат) для разных пользователей в соответствии с матрицей 
доступа. 
- Проверка отсутствия доступа для пользователей, не имеющих прав 
доступа к определенному ресурсу. 
3. Тестирование выполнения команд: 
- Проверка успешного выполнения команды (включение или 
выключение) для выбранного ресурса. 
- Проверка обработки ошибок при выполнении команды. 
4. Тестирование записи в журнал доступа: 
- Проверка записи информации о пользователе, выполняющем 
команду, и самой команде в журнал доступа (access.log). 
- Проверка соответствия записей в журнале с действиями 
пользователей. 
5. Тестирование взаимодействия с внешней системой управления: 
- Проверка отправки правильных данных о выполненной команде 
(ресурс, команда, аутентификационный код, пользователь) через HTTP-
запрос. 
- Проверка обработки успешного ответа от внешней системы. 


48 
- Проверка обработки ошибок при взаимодействии с внешней 
системой. 
Оценка эффективности контекстного механизма может быть выполнена 
путем анализа следующих критериев: 
1. Безопасность: Оценка степени защищенности системы от 
несанкционированного доступа и возможных уязвимостей. 
2. Гибкость и удобство использования: Оценка уровня гибкости в 
управлении доступом, а также удобства использования системы для конечных 
пользователей. 
3. Интеграция: Оценка способности системы интегрироваться с 
другими системами умного дома и взаимодействовать с ними. 
4. Логирование и аудит: Оценка качества записи и мониторинга 
действий пользователей в системе. 
5. Производительность: Оценка времени отклика системы на запросы 
пользователей и выполнение команд. 
6. 
Расширяемость: 
Оценка 
возможности 
расширения 
функциональности системы контроля доступа для учета дополнительных 
ресурсов и прав доступа. 
Данный код представляет собой пример реализации системы умного 
дома с контролем доступа. Давайте разберем его более подробно: 
1. Импорт необходимых модулей: 
- hashlib: для хеширования паролей. 
- sqlite3: для работы с базой данных SQLite. 
- logging: для ведения логов. 
- requests: для отправки HTTP-запросов. 
2. Настройка логирования: 

logging.basicConfig(filename='access.log', 
level=logging.INFO): 
задается конфигурация логирования, где логи будут записываться в файл 
'access.log' с уровнем INFO. 
3. Класс SmartHome: 


49 
- init(self): конструктор класса, инициализирует экземпляр класса 
AccessControl для управления контролем доступа. 
- login(self): запрашивает у пользователя логин и пароль, проверяет их 
с помощью метода check_credentials() класса AccessControl. Если 
аутентификация прошла успешно, вызывается метод start_menu(), иначе 
выводится сообщение о неверном логине или пароле. 
- start_menu(self): отображает меню выбора ресурса и выполняет 
соответствующие действия в зависимости от выбора пользователя. 
- access_resource(self, resource): получает текущего пользователя с 
помощью метода get_current_user() класса AccessControl. Затем, используя 
контекстный менеджер grant_access(), предоставляет доступ к выбранному 
ресурсу. Вводится команда, которая передается методу execute_command() 
класса AccessControl для выполнения команды. 
4. Класс AccessControl: 
- init(self): конструктор класса, инициализирует матрицу доступа 
access_matrix, определяющую, какие пользователи имеют доступ к каким 
ресурсам. Текущий пользователь current_user изначально устанавливается в 
None. 
- check_credentials(self, username, password): проверяет логин и пароль 
пользователя, хеширует введенный пароль и сравнивает его с хешем, 
хранящимся в базе данных. Если аутентификация успешна, устанавливается 
текущий пользователь и возвращается True, иначе возвращается False. 
- get_current_user(self): возвращает текущего пользователя. 
- grant_access(self, user, resource): проверяет, имеет ли пользователь 
доступ к указанному ресурсу. Если доступ разрешен, создается экземпляр 
класса AccessContext, который представляет контекст доступа. Если доступ 
запрещен, возвращается экземпляр класса NullContext. 
- execute_command(self, resource, command): выполняет команду для 
указанного ресурса. Отправляет POST-запрос на указанный API-эндпоинт с 


50 
информацией о ресурсе, команде, аутентификационном коде и текущем 
пользователе. Результат выполнения команды выводится в консоль. 
5. Классы AccessContext и NullContext: 
- AccessContext: контекстный менеджер, который используется для 
предоставления доступа к ресурсам. При входе в контекст вызывается метод 
enter(), который возвращает самого себя. При выходе из контекста вызывается 
метод exit(). 
- NullContext: пустой контекстный менеджер, используется в случае 
отсутствия доступа к ресурсу. 
6. Создание базы данных и таблиц: 
- Создается соединение с базой данных access.db. 
- Создается таблица "users" для хранения пользователей. 
- Вставляются тестовые пользователи в таблицу. 
7. Пример использования: 
- Создается экземпляр класса SmartHome. 
- Вызывается метод login() для аутентификации пользователя и начала 
работы в системе умного дома. 
Данный код демонстрирует простой пример реализации контроля 
доступа в системе умного дома, где различным пользователям 
предоставляется доступ к разным ресурсам в зависимости от их прав доступа. 

Download 1.31 Mb.

Do'stlaringiz bilan baham:
1   ...   7   8   9   10   11   12   13   14   ...   21




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling