🧪 ПЛАН ТЕСТИРОВАНИЯ КНОПОЧНОГО ИНТЕРФЕЙСА
Версия: 1.0
Дата: 1 марта 2026
Статус: Готово к тестированию
📋 ОБЗОР
После реализации кнопочного интерфейса необходимо провести комплексное тестирование всех функций.
Общее время тестирования: ~2 часа
🔧 ЭТАП 0: ПОДГОТОВКА (5 мин)
0.1 Проверка окружения
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 Проверка конфигурации
# Проверка .env
cat .env | grep BOT_TOKEN # Должен быть токен
cat .env | grep ADMIN_CHAT_ID # Должен быть ID чата
cat .env | grep ADMIN_USER_ID # Должен быть ваш ID
0.3 Проверка базы данных
# Проверка файла БД
ls -la database/domovoy.db # Должен существовать
# Проверка таблиц
sqlite3 database/domovoy.db ".tables" # Должны быть: user, verification_request, etc.
✅ ЭТАП 1: АВТОМАТИЧЕСКИЕ ПРОВЕРКИ (15 мин)
Запуск автотестов
# Вариант 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 мин)
# Проверка логов
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 |
/пользователи |
Список (русский алиас) |
☐ |
✅ ЧЕК-ЛИСТ ЗАВЕРШЕНИЯ
Критичные функции (должны работать):
Важные функции (желательно):
Второстепенные (можно позже):
📄 ОТЧЁТ О ТЕСТИРОВАНИИ
Заполните после тестирования:
# Отчёт о тестировании
**Дата:** ___________
**Тестировщик:** ___________
**Версия:** 1.0
## Пройдено тестов: __ / __
## Критичные ошибки:
1. ...
2. ...
## Предложения по улучшению:
1. ...
2. ...
## Статус: ✅ ГОТОВО / ❌ ТРЕБУЕТСЯ ДОРАБОТКА
🚀 ЗАПУСК БОТА
# Старт
./start.sh
# Лог
tail -f logs/bot.log
# Стоп
./stop.sh
# Рестарт
./start.sh
ВСЕМ УДАЧИ В ТЕСТИРОВАНИИ! 🎉