# 🧪 ПЛАН ТЕСТИРОВАНИЯ КНОПОЧНОГО ИНТЕРФЕЙСА **Версия:** 1.0 **Дата:** 1 марта 2026 **Статус:** Готово к тестированию --- ## 📋 ОБЗОР После реализации кнопочного интерфейса необходимо провести комплексное тестирование всех функций. **Общее время тестирования:** ~2 часа --- ## 🔧 ЭТАП 0: ПОДГОТОВКА (5 мин) ### 0.1 Проверка окружения ```bash cd /home/matrixhasyou/domovoy_bot # Проверка Python python3 --version # Должно быть 3.11+ # Проверка venv ls -la venv/bin/python3 # Должен существовать # Проверка зависимостей venv/bin/pip list | grep aiogram # Должна быть aiogram 3.x ``` ### 0.2 Проверка конфигурации ```bash # Проверка .env cat .env | grep BOT_TOKEN # Должен быть токен cat .env | grep ADMIN_CHAT_ID # Должен быть ID чата cat .env | grep ADMIN_USER_ID # Должен быть ваш ID ``` ### 0.3 Проверка базы данных ```bash # Проверка файла БД ls -la database/domovoy.db # Должен существовать # Проверка таблиц sqlite3 database/domovoy.db ".tables" # Должны быть: user, verification_request, etc. ``` --- ## ✅ ЭТАП 1: АВТОМАТИЧЕСКИЕ ПРОВЕРКИ (15 мин) ### Запуск автотестов ```bash # Вариант 1: Скрипт bash tests/run_tests.sh # Вариант 2: Ручная проверка venv/bin/python3 -m py_compile handlers/admin.py venv/bin/python3 -m py_compile handlers/users.py venv/bin/python3 -c "from handlers.admin import router; print('✅ OK')" ``` ### Ожидаемые результаты: | Проверка | Ожидаемый результат | Статус | |----------|---------------------|--------| | Синтаксис admin.py | ✅ | ☐ | | Синтаксис users.py | ✅ | ☐ | | Синтаксис admin_menu.py | ✅ | ☐ | | Синтаксис inline.py | ✅ | ☐ | | Импорт handlers.admin | ✅ | ☐ | | Импорт handlers.users | ✅ | ☐ | | Импорт keyboards.admin_menu | ✅ | ☐ | | Импорт keyboards.inline | ✅ | ☐ | | Импорт config | ✅ | ☐ | --- ## 🎯 ЭТАП 2: ТЕСТИРОВАНИЕ АДМИН-МЕНЮ (45 мин) ### 2.1 Базовое меню `/admin` | № | Действие | Ожидаемый результат | Статус | |---|----------|---------------------|--------| | 2.1.1 | Отправить `/admin` | Показывается inline-меню со всеми кнопками | ☐ | | 2.1.2 | Нажать "📊 Статистика" | Показывается текст со статистикой чата | ☐ | | 2.1.3 | Нажать "🕵️ Шпионы" | Показывается список шпионов или "нет шпионов" | ☐ | | 2.1.4 | Нажать "👥 Пользователи" | Показывается callback с списком (callback) | ☐ | | 2.1.5 | Нажать "⏳ Непроверенные" | Показывается список непроверенных | ☐ | | 2.1.6 | Нажать "🏆 Рейтинг" | Показывается топ-10 + меню рейтинга | ☐ | | 2.1.7 | Нажать "☠️ Токсичность" | Показывается подменю токсичности | ☐ | | 2.1.8 | Нажать "🏠 Квартиры" | Показывается подменю квартир | ☐ | | 2.1.9 | Нажать "⚠️ Предупреждения" | Показывается подменю анти-спам | ☐ | | 2.1.10 | Нажать "🔇 Муты" | Показывается список замутованных | ☐ | | 2.1.11 | Нажать "🚫 Баны" | Показывается список забаненных | ☐ | | 2.1.12 | Нажать "🔍 Поиск" | Показывается подменю поиска | ☐ | | 2.1.13 | Нажать "👤 Действия" | Показывается список пользователей (20 на стр.) | ☐ | | 2.1.14 | Нажать "📥 Экспорт" | Показывается сообщение о начале экспорта | ☐ | | 2.1.15 | Нажать "📤 Рассылка" | Запрос сообщения для рассылки | ☐ | | 2.1.16 | Нажать "🚫 Отозвать вериф." | Инструкция по отзыву верификации | ☐ | | 2.1.17 | Нажать "📋 Список не вериф." | Список с отозванной верификацией | ☐ | | 2.1.18 | Нажать "❓ Помощь" | Справка по командам админа | ☐ | ### 2.2 Поиск | № | Действие | Ожидаемый результат | Статус | |---|----------|---------------------|--------| | 2.2.1 | `/admin` → "🔍 Поиск" → "🏠 Поиск квартиры" | Бот просит ввести номер квартиры | ☐ | | 2.2.2 | Ввести `45` | Показывается список жильцов кв. 45 | ☐ | | 2.2.3 | Нажать "🔙 Назад" | Возврат к меню поиска | ☐ | | 2.2.4 | "👤 Поиск пользователя" | Бот просит ввести имя/username/ID | ☐ | | 2.2.5 | Ввести `Иван` | Показывается поиск по имени | ☐ | | 2.2.6 | Ввести `@username` | Показывается поиск по username | ☐ | | 2.2.7 | Ввести `123456789` | Показывается поиск по ID | ☐ | ### 2.3 Действия с пользователем | № | Действие | Ожидаемый результат | Статус | |---|----------|---------------------|--------| | 2.3.1 | `/admin` → "👤 Действия" | Список 20 пользователей с пагинацией | ☐ | | 2.3.2 | Нажать "⬅️ Назад" | Переход на предыдущую страницу | ☐ | | 2.3.3 | Нажать "Вперёд ➡️" | Переход на следующую страницу | ☐ | | 2.3.4 | Нажать на пользователя | Меню действий с пользователем | ☐ | | 2.3.5 | "🚫 Забанить" → "✅ Да" | Пользователь забанен, сообщение об успехе | ☐ | | 2.3.6 | "🚫 Забанить" → "❌ Нет" | Бан отменён | ☐ | | 2.3.7 | "✅ Разбанить" (если забанен) | Пользователь разбанен | ☐ | | 2.3.8 | "🔓 Снять вериф." | Верификация снята | ☐ | | 2.3.9 | "⏳ Отозвать (7д)" | Сообщение "Функция в разработке" | ☐ | | 2.3.10 | "📊 Рейтинг" | Показывается рейтинг пользователя | ☐ | | 2.3.11 | "📝 История" | Сообщение "Используйте /history" | ☐ | | 2.3.12 | "📞 Телефон" | Показывается телефон или "не указан" | ☐ | | 2.3.13 | "🔙 Назад к списку" | Возврат к списку пользователей | ☐ | | 2.3.14 | "🔙 В меню" | Возврат к главному админ-меню | ☐ | ### 2.4 Управление анти-спамом | № | Действие | Ожидаемый результат | Статус | |---|----------|---------------------|--------| | 2.4.1 | `/admin` → "⚠️ Предупреждения" | Подменю анти-спам | ☐ | | 2.4.2 | "📋 Стоп-слова" | Список слов с пагинацией | ☐ | | 2.4.3 | Нажать на слово `❌ слово` | Слово удалено | ☐ | | 2.4.4 | "➕ Добавить слово" | Бот просит ввести слово | ☐ | | 2.4.5 | Ввести слово | Слово добавлено, показано кол-во | ☐ | | 2.4.6 | "⬅️/➡️" навигация | Страницы переключаются | ☐ | | 2.4.7 | "🌐 Домены" | Список доменов с пагинацией | ☐ | | 2.4.8 | "➕ Добавить домен" → ввести | Домен добавлен | ☐ | | 2.4.9 | "🔑 Паттерны" | Список паттернов с пагинацией | ☐ | | 2.4.10 | "➕ Добавить паттерн" → ввести | Паттерн добавлен | ☐ | ### 2.5 Токсичность | № | Действие | Ожидаемый результат | Статус | |---|----------|---------------------|--------| | 2.5.1 | `/admin` → "☠️ Токсичность" | Подменю токсичности | ☐ | | 2.5.2 | "☠️ Топ токсичных" | Топ-10 токсичных пользователей | ☐ | | 2.5.3 | "📊 Статистика" | Статистика токсичности (всего, токсичных, avg) | ☐ | ### 2.6 Рейтинг | № | Действие | Ожидаемый результат | Статус | |---|----------|---------------------|--------| | 2.6.1 | `/admin` → "🏆 Рейтинг" | Топ-10 + меню рейтинга | ☐ | | 2.6.2 | "🏆 Топ-10" | Топ-10 пользователей | ☐ | | 2.6.3 | "📊 Уровни" | Распределение по уровням | ☐ | --- ## 👤 ЭТАП 3: ТЕСТИРОВАНИЕ ПОЛЬЗОВАТЕЛЬСКОГО МЕНЮ (30 мин) ### 3.1 Главное меню `/start` | № | Действие | Ожидаемый результат | Статус | |---|----------|---------------------|--------| | 3.1.1 | Отправить `/start` | Показывается inline-меню со всеми кнопками | ☐ | | 3.1.2 | "📞 Экстренные телефоны" | Меню телефонов | ☐ | | 3.1.3 | "👷 Мастера" | Список мастеров | ☐ | | 3.1.4 | "👮 Участковый" | Контакты полиции | ☐ | | 3.1.5 | "📅 График отключений" | Меню выбора типа отключения | ☐ | | 3.1.6 | "📢 Объявления" | Доска объявлений | ☐ | | 3.1.7 | "🏆 Достижения" | Список достижений пользователя | ☐ | | 3.1.8 | "📅 События" | Список событий дома | ☐ | | 3.1.9 | "💰 Платежи" | Список платежей ЖКХ | ☐ | | 3.1.10 | "📋 Опросы" | Активные опросы | ☐ | | 3.1.11 | "🔍 Моя квартира" | Инфо о квартире пользователя | ☐ | | 3.1.12 | "📣 Подать объявление" | Мастер создания объявления | ☐ | | 3.1.13 | "📊 Токсичность" | Топ токсичных | ☐ | | 3.1.14 | "🏠 Темы чата" | Статистика по темам | ☐ | | 3.1.15 | "🙏 Поблагодарить" | Выбор пользователя для благодарности | ☐ | | 3.1.16 | "❓ Помощь" | Справка по командам | ☐ | ### 3.2 Благодарности | № | Действие | Ожидаемый результат | Статус | |---|----------|---------------------|--------| | 3.2.1 | `/start` → "🙏 Поблагодарить" | Список пользователей (20 на стр.) | ☐ | | 3.2.2 | "⬅️/➡️" навигация | Страницы переключаются | ☐ | | 3.2.3 | Выбрать пользователя | Подтверждение благодарности | ☐ | | 3.2.4 | "✅ Поблагодарить" | +10 к рейтингу, сообщение об успехе | ☐ | | 3.2.5 | "❌ Отмена" | Благодарность отменена | ☐ | | 3.2.6 | Повторная благодарность | "Уже благодарили сегодня" | ☐ | | 3.2.7 | Благодарность самому себе | "Нельзя поблагодарить самого себя" | ☐ | --- ## 🔒 ЭТАП 4: ПРОВЕРКА БЕЗОПАСНОСТИ (10 мин) | № | Действие | Ожидаемый результат | Статус | |---|----------|---------------------|--------| | 4.1 | Обычный пользователь жмёт `/admin` | "Админ-панель доступна только в ЛС" | ☐ | | 4.2 | Не админ жмёт админ-кнопку | "Нет прав" или игнорирование | ☐ | | 4.3 | Ввод некорректного номера квартиры | Игнорирование или сообщение об ошибке | ☐ | | 4.4 | Ввод некорректных данных в FSM | Graceful error, не краш | ☐ | | 4.5 | Пустые списки (нет данных) | "Нет данных", не ошибка | ☐ | | 4.6 | Истёкшая сессия пагинации | "Сессия истекла. Выберите заново" | ☐ | --- ## 📊 ЭТАП 5: НАГРУЗОЧНОЕ ТЕСТИРОВАНИЕ (15 мин) | № | Действие | Ожидаемый результат | Статус | |---|----------|---------------------|--------| | 5.1 | 200+ пользователей в БД | Пагинация работает (10 страниц) | ☐ | | 5.2 | 500+ стоп-слов | Пагинация работает (25 страниц) | ☐ | | 5.3 | 2 админа одновременно | Нет конфликтов, оба работают | ☐ | | 5.4 | Быстрое переключение страниц | Нет зависаний, edit_reply_markup работает | ☐ | | 5.5 | Долгий запрос к БД | Таймаут или ответ, не краш | ☐ | --- ## 📝 ЭТАП 6: ПРОВЕРКА ЛОГОВ (5 мин) ```bash # Проверка логов tail -100 logs/bot.log | grep ERROR # Не должно быть критичных ошибок tail -100 logs/bot.log | grep WARNING # Проверить предупреждения ``` | Проверка | Ожидаемый результат | Статус | |----------|---------------------|--------| | Нет ERROR | ✅ | ☐ | | Нет исключений | ✅ | ☐ | | Логирование работает | ✅ | ☐ | --- ## 📋 ЭТАП 7: SLASH-КОМАНДЫ (10 мин) | № | Команда | Ожидаемый результат | Статус | |---|---------|---------------------|--------| | 7.1 | `/stats` | Статистика чата | ☐ | | 7.2 | `/статистика` | Статистика чата (русский алиас) | ☐ | | 7.3 | `/spies` | Список шпионов | ☐ | | 7.4 | `/шпионы` | Список шпионов (русский алиас) | ☐ | | 7.5 | `/top` | Топ-10 по рейтингу | ☐ | | 7.6 | `/топ` | Топ-10 (русский алиас) | ☐ | | 7.7 | `/rank` | Распределение по уровням | ☐ | | 7.8 | `/ранг` | Распределение (русский алиас) | ☐ | | 7.9 | `/users` | Список пользователей | ☐ | | 7.10 | `/пользователи` | Список (русский алиас) | ☐ | --- ## ✅ ЧЕК-ЛИСТ ЗАВЕРШЕНИЯ ### Критичные функции (должны работать): - [ ] `/admin` показывает меню - [ ] "📊 Статистика" работает - [ ] "👤 Действия" → выбор пользователя - [ ] "🚫 Забанить" → бан с подтверждением - [ ] "🔓 Снять верификацию" → снятие - [ ] "🙏 Поблагодарить" → выбор + подтверждение - [ ] Пагинация (⬅️/➡️) работает - [ ] FSM (ввод параметров) работает - [ ] Нет критичных ошибок в логах ### Важные функции (желательно): - [ ] Все кнопки админ-меню работают - [ ] Все кнопки пользовательского меню работают - [ ] Управление стоп-словами работает - [ ] Поиск работает - [ ] Токсичность работает - [ ] Slash-команды работают ### Второстепенные (можно позже): - [ ] "⏳ Отозвать (7д)" (TODO) - [ ] "📝 История" (TODO) - [ ] "⚠️ Предупредить" (TODO) --- ## 📄 ОТЧЁТ О ТЕСТИРОВАНИИ Заполните после тестирования: ```markdown # Отчёт о тестировании **Дата:** ___________ **Тестировщик:** ___________ **Версия:** 1.0 ## Пройдено тестов: __ / __ ## Критичные ошибки: 1. ... 2. ... ## Предложения по улучшению: 1. ... 2. ... ## Статус: ✅ ГОТОВО / ❌ ТРЕБУЕТСЯ ДОРАБОТКА ``` --- ## 🚀 ЗАПУСК БОТА ```bash # Старт ./start.sh # Лог tail -f logs/bot.log # Стоп ./stop.sh # Рестарт ./start.sh ``` --- **ВСЕМ УДАЧИ В ТЕСТИРОВАНИИ! 🎉**