|
|
@@ -0,0 +1,231 @@
|
|
|
+Сценарий использования приложения «Викторина по защите персональных данных»
|
|
|
+Оглавление
|
|
|
+Общий сценарий запуска
|
|
|
+
|
|
|
+Сценарий прохождения викторины
|
|
|
+
|
|
|
+Сценарии работы с изображениями
|
|
|
+
|
|
|
+Сценарии обработки ошибок
|
|
|
+
|
|
|
+Сценарии завершения работы
|
|
|
+
|
|
|
+Тестовые сценарии
|
|
|
+
|
|
|
+1. Общий сценарий запуска
|
|
|
+Сценарий 1.1: Успешный запуск приложения
|
|
|
+Шаг Действие пользователя Ожидаемая реакция системы
|
|
|
+1 Двойной клик по файлу quiz_app.py Открывается окно размером 1000x700
|
|
|
+2 - Появляется стартовый экран с голубым фоном
|
|
|
+3 - Отображается заголовок «Викторина по защите персональных данных»
|
|
|
+4 - Показываются правила и инструкция
|
|
|
+5 - Активна кнопка «Начать викторину»
|
|
|
+Сценарий 1.2: Запуск без установленного Pillow
|
|
|
+Шаг Действие пользователя Ожидаемая реакция системы
|
|
|
+1 Запуск приложения В консоли выводится сообщение: «PIL (Pillow) не установлен. Установите: pip install Pillow»
|
|
|
+2 - Приложение запускается, но работа с изображениями ограничена
|
|
|
+3 - Поддерживаются только JPG через стандартный PhotoImage
|
|
|
+2. Сценарий прохождения викторины
|
|
|
+Сценарий 2.1: Стандартное прохождение (мышь)
|
|
|
+Шаг Действие пользователя Ожидаемая реакция системы
|
|
|
+1 Нажатие на кнопку «Начать викторину» Вопросы перемешиваются в случайном порядке
|
|
|
+2 - Отображается первый вопрос
|
|
|
+3 - Показывается текст вопроса, изображение (если есть), 4 варианта ответа
|
|
|
+4 - Отображается прогресс «Вопрос 1 из 50»
|
|
|
+5 Клик мышью по одному из вариантов ответа Вариант выделяется (меняет фон при наведении и выборе)
|
|
|
+6 Нажатие на кнопку «Проверить (Enter)» Открывается модальное окно с результатом
|
|
|
+7 - Если ответ правильный: зелёное окно с текстом «Правильно!»
|
|
|
+8 - Если ответ неправильный: красное окно с правильным ответом и пояснением
|
|
|
+9 Нажатие на кнопку «Продолжить (Enter)» Модальное окно закрывается, загружается следующий вопрос
|
|
|
+Сценарий 2.2: Прохождение с клавиатуры
|
|
|
+Шаг Действие пользователя Ожидаемая реакция системы
|
|
|
+1 Нажатие клавиши «1» Выбирается первый вариант ответа
|
|
|
+2 Нажатие клавиши «2» Выбирается второй вариант ответа
|
|
|
+3 Нажатие клавиши «3» Выбирается третий вариант ответа
|
|
|
+4 Нажатие клавиши «4» Выбирается четвёртый вариант ответа
|
|
|
+5 Нажатие клавиши «Enter» Проверка выбранного ответа
|
|
|
+6 Нажатие клавиши «Enter» в окне результата Переход к следующему вопросу
|
|
|
+Сценарий 2.3: Попытка ответить без выбора
|
|
|
+Шаг Действие пользователя Ожидаемая реакция системы
|
|
|
+1 Нажатие на кнопку «Проверить» без выбора варианта Появляется окно с предупреждением: «Пожалуйста, выберите один из вариантов (клавиши 1-4)»
|
|
|
+2 Нажатие «OK» Возврат к вопросу, выбор не засчитан
|
|
|
+Сценарий 2.4: Завершение викторины
|
|
|
+Шаг Действие пользователя Ожидаемая реакция системы
|
|
|
+1 Ответ на 50-й вопрос После проверки последнего ответа открывается экран результатов
|
|
|
+2 - Отображается количество правильных ответов (например, «42 из 50»)
|
|
|
+3 - Отображается процент выполнения (например, «84.0%»)
|
|
|
+4 - Показывается текстовая оценка («Отлично!», «Хорошо!» и т.д.)
|
|
|
+5 - Активны кнопки «Пройти заново (Enter)» и «Завершить (Esc)»
|
|
|
+Сценарий 2.5: Повторное прохождение
|
|
|
+Шаг Действие пользователя Ожидаемая реакция системы
|
|
|
+1 Нажатие на кнопку «Пройти заново» или клавишу Enter Вопросы снова перемешиваются
|
|
|
+2 - Счётчик правильных ответов сбрасывается до 0
|
|
|
+3 - Отображается первый вопрос
|
|
|
+4 - Викторина начинается заново
|
|
|
+3. Сценарии работы с изображениями
|
|
|
+Сценарий 3.1: Отображение существующего изображения
|
|
|
+Шаг Действие пользователя Ожидаемая реакция системы
|
|
|
+1 Загрузка вопроса с полем image: 'q1.jpg' Система ищет файл в папке quiz_images/
|
|
|
+2 - Файл найден → загрузка через Pillow
|
|
|
+3 - Изображение масштабируется до 350x350
|
|
|
+4 - Изображение отображается в левой части окна
|
|
|
+5 - Определяется доминирующий цвет изображения
|
|
|
+6 - Фон окна меняется на этот цвет
|
|
|
+7 - Цвет текста автоматически становится чёрным или белым для читаемости
|
|
|
+Сценарий 3.2: Поиск изображения с разными расширениями
|
|
|
+Шаг Действие пользователя Ожидаемая реакция системы
|
|
|
+1 В вопросе указано image: 'q1.jpg' Система проверяет наличие q1.jpg
|
|
|
+2 - Файл q1.jpg отсутствует
|
|
|
+3 - Система ищет q1.png
|
|
|
+4 - Файл q1.png найден → загружает его
|
|
|
+5 - Работает как с оригинальным именем
|
|
|
+Сценарий 3.3: Отсутствие изображения
|
|
|
+Шаг Действие пользователя Ожидаемая реакция системы
|
|
|
+1 Загрузка вопроса с полем image: 'missing.jpg' Система ищет файл во всех поддерживаемых форматах
|
|
|
+2 - Файл не найден
|
|
|
+3 - Вместо изображения отображается текст: «[Файл не найден: missing.jpg] Поддерживаемые форматы: PNG, JPG, JPEG, GIF, BMP»
|
|
|
+4 - Фон окна выбирается из списка DEFAULT_COLORS
|
|
|
+Сценарий 3.4: Повреждённое изображение
|
|
|
+Шаг Действие пользователя Ожидаемая реакция системы
|
|
|
+1 Загрузка повреждённого JPG-файла Pillow выбрасывает исключение
|
|
|
+2 - Отображается текст: «[Ошибка: damaged.jpg] некорректный заголовок...»
|
|
|
+3 - Викторина продолжает работу без сбоев
|
|
|
+4. Сценарии обработки ошибок
|
|
|
+Сценарий 4.1: Отсутствие папки с изображениями
|
|
|
+Шаг Действие пользователя Ожидаемая реакция системы
|
|
|
+1 Папка quiz_images не создана Система не находит ни одного изображения
|
|
|
+2 Загрузка любого вопроса с image Для всех вопросов отображается сообщение о ненайденном файле
|
|
|
+3 - Приложение работает, вопросы отображаются нормально
|
|
|
+Сценарий 4.2: Некорректные данные в вопросах
|
|
|
+Шаг Действие пользователя Ожидаемая реакция системы
|
|
|
+1 Вопрос содержит correct: 5 (индекс вне диапазона 0-3) При проверке ответа будет сравниваться с несуществующим индексом
|
|
|
+2 - Результат может быть некорректным (нужна валидация данных)
|
|
|
+3 - Рекомендуется: предварительная проверка вопросов
|
|
|
+Сценарий 4.3: Определение цвета фона (ошибка в изображении)
|
|
|
+Шаг Действие пользователя Ожидаемая реакция системы
|
|
|
+1 Изображение существует, но не может быть прочитано для определения цвета В консоль выводится «Ошибка определения цвета: [причина]»
|
|
|
+2 - Система использует цвет из DEFAULT_COLORS
|
|
|
+3 - Викторина продолжает работу
|
|
|
+5. Сценарии завершения работы
|
|
|
+Сценарий 5.1: Выход через кнопку
|
|
|
+Шаг Действие пользователя Ожидаемая реакция системы
|
|
|
+1 Нажатие на кнопку «Выход (Esc)» на экране вопроса Появляется диалог подтверждения: «Вы действительно хотите выйти?»
|
|
|
+2 Нажатие «Да» Приложение закрывается
|
|
|
+3 Нажатие «Нет» Возврат к викторине
|
|
|
+Сценарий 5.2: Выход через клавишу Esc
|
|
|
+Шаг Действие пользователя Ожидаемая реакция системы
|
|
|
+1 Нажатие клавиши Esc на любом экране Появляется диалог подтверждения выхода
|
|
|
+2 Нажатие Enter или клик по «Да» Приложение закрывается
|
|
|
+Сценарий 5.3: Выход с экрана результатов
|
|
|
+Шаг Действие пользователя Ожидаемая реакция системы
|
|
|
+1 Завершение викторины, отображение результатов Активна кнопка «Завершить (Esc)»
|
|
|
+2 Нажатие на кнопку или клавишу Esc Диалог подтверждения НЕ появляется (по логике кода)
|
|
|
+3 - Приложение закрывается
|
|
|
+6. Тестовые сценарии
|
|
|
+Сценарий 6.1: Проверка цвета текста на тёмном фоне
|
|
|
+Шаг Действие пользователя Ожидаемая реакция системы
|
|
|
+1 Загрузить вопрос с тёмным изображением Доминирующий цвет тёмный (#1a1a2e)
|
|
|
+2 - Яркость фона < 128 → цвет текста становится белым
|
|
|
+3 - Все надписи читаемы на тёмном фоне
|
|
|
+Сценарий 6.2: Проверка цвета текста на светлом фоне
|
|
|
+Шаг Действие пользователя Ожидаемая реакция системы
|
|
|
+1 Загрузить вопрос со светлым изображением Доминирующий цвет светлый (#f0f0f0)
|
|
|
+2 - Яркость фона > 128 → цвет текста остаётся чёрным
|
|
|
+3 - Контрастность достаточная
|
|
|
+Сценарий 6.3: Перемешивание вопросов
|
|
|
+Шаг Действие пользователя Ожидаемая реакция системы
|
|
|
+1 Запустить викторину, запомнить порядок вопросов Порядок: 15, 3, 42, 7...
|
|
|
+2 Завершить и запустить снова Новый порядок: 38, 5, 22, 50...
|
|
|
+3 Запустить в третий раз Порядок отличается от первых двух
|
|
|
+4 - Каждый запуск уникален (вероятностно)
|
|
|
+Сценарий 6.4: Проверка всех 50 вопросов
|
|
|
+Шаг Действие пользователя Ожидаемая реакция системы
|
|
|
+1 Пройти викторину до конца Все 50 вопросов отображены по одному разу
|
|
|
+2 - Ни один вопрос не пропущен и не повторён
|
|
|
+3 - Счётчик прогресса доходит до «50 из 50»
|
|
|
+Сценарий 6.5: Проверка эффектов наведения
|
|
|
+Шаг Действие пользователя Ожидаемая реакция системы
|
|
|
+1 Навести курсор на вариант ответа Фон кнопки меняется на более тёмный/светлый оттенок
|
|
|
+2 Увести курсор Фон возвращается к исходному цвету
|
|
|
+3 Навести на кнопку «Проверить» Курсор меняется на руку (hand2)
|
|
|
+Сценарий 6.6: Стресс-тест (быстрое нажатие клавиш)
|
|
|
+Шаг Действие пользователя Ожидаемая реакция системы
|
|
|
+1 Быстро нажимать клавиши 1-2-3-4-Enter Приложение обрабатывает каждое нажатие последовательно
|
|
|
+2 - Нет зависаний или множественных окон
|
|
|
+3 - Последний выбранный вариант проверяется
|
|
|
+7. Пользовательские роли и сценарии
|
|
|
+Сценарий 7.1: Студент (самостоятельное обучение)
|
|
|
+Действие Ожидание
|
|
|
+Запускает викторину Видит 50 вопросов по защите ПД
|
|
|
+Отвечает неправильно Получает пояснение, учится на ошибках
|
|
|
+Проходит викторину несколько раз Каждый раз новый порядок вопросов
|
|
|
+Стремится к 100% Тренируется до идеального результата
|
|
|
+Сценарий 7.2: Преподаватель (демонстрация на лекции)
|
|
|
+Действие Ожидание
|
|
|
+Открывает викторину на проекторе Все видят крупный текст и изображения
|
|
|
+Вызывает студента к доске Студент выбирает ответ клавишами 1-4
|
|
|
+Объясняет неправильные ответы Пояснения помогают аудитории
|
|
|
+Сценарий 7.3: Сотрудник компании (проверка знаний)
|
|
|
+Действие Ожидание
|
|
|
+Проходит викторину на ПК Сохраняет результат (пока нет экспорта)
|
|
|
+Набирает <60% Рекомендовано повторить лекцию
|
|
|
+Набирает >80% Знания удовлетворительные
|
|
|
+8. Диаграмма последовательности (основной поток)
|
|
|
+text
|
|
|
+Пользователь → Стартовый экран → Начать викторину
|
|
|
+ ↓
|
|
|
+ Перемешивание вопросов
|
|
|
+ ↓
|
|
|
+ Отображение вопроса №1
|
|
|
+ ↓
|
|
|
+ ← Выбор ответа (мышь/клавиши 1-4)
|
|
|
+ ↓
|
|
|
+ Нажатие Enter / Проверить
|
|
|
+ ↓
|
|
|
+ ← Модальное окно с результатом
|
|
|
+ ↓
|
|
|
+ Продолжить (Enter)
|
|
|
+ ↓
|
|
|
+ ← Есть ещё вопросы? → Да → следующий вопрос
|
|
|
+ ↓ Нет
|
|
|
+ Экран результатов
|
|
|
+ ↓
|
|
|
+ ← Пройти заново? → Да → начало
|
|
|
+ ↓ Нет
|
|
|
+ Завершение (Esc)
|
|
|
+9. Рекомендации по тестированию
|
|
|
+Приоритетные тест-кейсы:
|
|
|
+✅ Запуск и закрытие приложения
|
|
|
+
|
|
|
+✅ Выбор ответа мышью и клавиатурой
|
|
|
+
|
|
|
+✅ Проверка правильности ответов
|
|
|
+
|
|
|
+✅ Отображение пояснений
|
|
|
+
|
|
|
+✅ Переход между всеми 50 вопросами
|
|
|
+
|
|
|
+✅ Корректный подсчёт результатов
|
|
|
+
|
|
|
+✅ Повторное прохождение
|
|
|
+
|
|
|
+Дополнительные тест-кейсы:
|
|
|
+⚠️ Работа с изображениями (есть/нет/битые)
|
|
|
+
|
|
|
+⚠️ Определение цвета фона
|
|
|
+
|
|
|
+⚠️ Поведение при отсутствии Pillow
|
|
|
+
|
|
|
+⚠️ Быстрые многократные нажатия
|
|
|
+
|
|
|
+⚠️ Разрешение экрана (штатное 1000x700)
|
|
|
+
|
|
|
+10. Словарь терминов
|
|
|
+Термин Определение
|
|
|
+ПД Персональные данные
|
|
|
+152-ФЗ Федеральный закон «О персональных данных»
|
|
|
+GDPR General Data Protection Regulation (европейский регламент)
|
|
|
+ИСПД Информационная система персональных данных
|
|
|
+ФСТЭК Федеральная служба по техническому и экспортному контролю
|
|
|
+Оператор Лицо, осуществляющее обработку ПД
|
|
|
+Обезличивание Удаление связи данных с конкретным человеком
|