﻿Сценарий использования приложения «Викторина по защите персональных данных»
Оглавление
Общий сценарий запуска

Сценарий прохождения викторины

Сценарии работы с изображениями

Сценарии обработки ошибок

Сценарии завершения работы

Тестовые сценарии

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 (европейский регламент)
ИСПД	Информационная система персональных данных
ФСТЭК	Федеральная служба по техническому и экспортному контролю
Оператор	Лицо, осуществляющее обработку ПД
Обезличивание	Удаление связи данных с конкретным человеком