Тест-кейсы для настольного приложения
Система управления торговыми автоматами
Проект: WinForms Desktop Application - Vending Machines Management
Дата создания: 08.02.2026
Автор: QA Engineer

 
TC-001: Авторизация пользователя с корректными данными
ID тест-кейса	TC-001
Приоритет	Высокий
Тип тестирования	Функциональный
Предусловия	1. Приложение запущено
2. Отображается форма авторизации
3. В БД существует пользователь с email: test@example.com и паролем: 123456
Шаги выполнения	1. Ввести email: test@example.com в поле 'Email'
2. Ввести пароль: 123456 в поле 'Пароль'
3. Нажать кнопку 'Войти'
Ожидаемый результат	1. Форма авторизации закрывается
2. Открывается главная форма приложения
3. В верхней части отображается ФИО пользователя и роль
 
TC-002: Авторизация с некорректным паролем
ID тест-кейса	TC-002
Приоритет	Высокий
Тип тестирования	Негативный
Предусловия	1. Приложение запущено
2. Отображается форма авторизации
Шаги выполнения	1. Ввести email: test@example.com в поле 'Email'
2. Ввести неверный пароль: wrongpassword в поле 'Пароль'
3. Нажать кнопку 'Войти'
Ожидаемый результат	1. Форма авторизации остается открытой
2. Отображается сообщение об ошибке: 'Неверный логин или пароль'
3. Поля ввода не очищаются
 
TC-003: Отображение блока 'Эффективность сети'
ID тест-кейса	TC-003
Приоритет	Высокий
Тип тестирования	Функциональный
Предусловия	1. Пользователь авторизован
2. Главная форма открыта
3. В БД есть данные о торговых автоматах
Шаги выполнения	1. Открыть главную форму приложения
2. Найти блок 'Эффективность сети'
3. Проверить отображение Gauge диаграммы
Ожидаемый результат	1. Gauge отображается корректно
2. Показывает процент работающих автоматов (значение от 0 до 100)
3. Цвет индикатора: зеленый (≥80%), оранжевый (50-79%), красный (<50%)
4. Данные обновляются автоматически каждые 5 секунд
 
TC-004: Отображение блока 'Состояние сети' (PieChart)
ID тест-кейса	TC-004
Приоритет	Высокий
Тип тестирования	Функциональный
Предусловия	1. Пользователь авторизован
2. Главная форма открыта
3. В БД: 8 работающих, 1 сломанный, 1 на обслуживании автомат
Шаги выполнения	1. Открыть главную форму приложения
2. Найти блок 'Состояние сети'
3. Проверить PieChart диаграмму
Ожидаемый результат	1. PieChart отображается в виде 'пончика'
2. Три сегмента с данными:
   - Работает: 8 (зеленый цвет)
   - Не работает: 1 (красный цвет)
   - На обслуживании: 1 (синий цвет)
3. В центре отображается: 'Под вопросом: 1'
4. Легенда снизу диаграммы
 
TC-005: График 'Динамика продаж' - переключение между суммой и количеством
ID тест-кейса	TC-005
Приоритет	Средний
Тип тестирования	Функциональный
Предусловия	1. Пользователь авторизован
2. Главная форма открыта
3. В БД есть продажи за последние 10 дней
Шаги выполнения	1. Найти блок 'Динамика продаж за последние 10 дней'
2. Проверить, что активна кнопка 'По сумме' (синий цвет)
3. Нажать кнопку 'По количеству'
4. Дождаться обновления графика
5. Нажать кнопку 'По сумме' обратно
Ожидаемый результат	1. При клике на 'По количеству':
   - Кнопка становится синей (активной)
   - График обновляется, показывая количество транзакций
   - Данные на оси Y меняются
2. При клике на 'По сумме':
   - График возвращается к отображению сумм
   - Анимация отсутствует (без мигания)
 
TC-006: Отображение блока 'Сводка'
ID тест-кейса	TC-006
Приоритет	Средний
Тип тестирования	Функциональный
Предусловия	1. Пользователь авторизован
2. Главная форма открыта
3. В БД есть данные о доходах и обслуживании
Шаги выполнения	1. Найти блок 'Сводка'
2. Проверить наличие всех полей
3. Проверить корректность отображаемых данных
Ожидаемый результат	1. DataGridView отображает 7 строк:
   - Денег в ТА (₽)
   - Инкассаций, входящие (₽)
   - Выручка, сегодня (₽)
   - Выручка, вчера (₽)
   - Техобслуживание, плановое (ч)
   - Техобслуживание, внеплановое (ч)
   - Обращений ТП, сегодня
2. Данные обновляются каждые 5 секунд
3. Числа форматированы корректно
 
TC-007: Push-уведомления - критическая ошибка
ID тест-кейса	TC-007
Приоритет	Высокий
Тип тестирования	Функциональный
Предусловия	1. Пользователь авторизован
2. Главная форма открыта
3. В БД появилась запись: автомат со статусом 'broken'
Шаги выполнения	1. Дождаться автоматической проверки уведомлений (30 секунд)
2. Проверить появление toast-уведомления
Ожидаемый результат	1. В правом нижнем углу появляется уведомление
2. Фон красного цвета (#F44336)
3. Иконка: ⚠
4. Заголовок: 'Критическая ошибка'
5. Текст: название и местоположение автомата
6. Кнопка закрытия 'X' в правом верхнем углу
7. Уведомление отображается 10 секунд
8. Запись добавлена в файл notifications.log
 
TC-008: Push-уведомления - предупреждение о низком запасе
ID тест-кейса	TC-008
Приоритет	Средний
Тип тестирования	Функциональный
Предусловия	1. Пользователь авторизован
2. В БД товар с quantity ≤ min_stock
Шаги выполнения	1. Дождаться проверки уведомлений
2. Проверить toast-уведомление
Ожидаемый результат	1. Уведомление с оранжевым фоном (#FF9800)
2. Иконка: ⚠
3. Заголовок: 'Низкий запас'
4. Текст: название товара и остаток
5. Отображается 7 секунд
6. При наведении мыши - таймер останавливается
7. Можно закрыть кнопкой 'X'
 
TC-009: Очередь push-уведомлений с приоритетами
ID тест-кейса	TC-009
Приоритет	Средний
Тип тестирования	Функциональный
Предусловия	1. Пользователь авторизован
2. В БД одновременно:
   - 1 критическая ошибка
   - 2 предупреждения
   - 1 информационное сообщение
Шаги выполнения	1. Дождаться проверки уведомлений
2. Проследить порядок появления toast-уведомлений
Ожидаемый результат	1. Уведомления появляются по приоритету:
   - Сначала критическое (красное)
   - Затем предупреждения (оранжевые)
   - В конце информационное (зеленое)
2. Одновременно отображается максимум 5 уведомлений
3. При появлении нового - предыдущие сдвигаются вверх
4. Анимация плавная, без мигания
 
TC-010: Автоматическое обновление графиков без мигания
ID тест-кейса	TC-010
Приоритет	Высокий
Тип тестирования	Производительность
Предусловия	1. Пользователь авторизован
2. Главная форма открыта более 10 секунд
Шаги выполнения	1. Открыть главную форму
2. Наблюдать за графиками в течение 1 минуты
3. Проверить обновление данных
Ожидаемый результат	1. Все графики обновляются каждые 5 секунд
2. Обновление происходит БЕЗ:
   - Мигания экрана
   - Повторной анимации
   - Перерисовки всего контрола
3. Только значения меняются плавно
4. Производительность: CPU < 5%, RAM стабильна
5. Нет задержек в UI

