Перейти к содержанию

Этап 4. Тестирование и документация

Зачем нужно тестирование

Тестирование показывает, что приложение работает не только в идеальном сценарии, но и при ошибках ввода. Для модуля авторизации особенно важно проверять неверные пароли, пустые поля, повторяющиеся логины и блокировку.

Виды проверок

Вид проверки Что проверяется
позитивная действие выполняется при корректных данных
негативная приложение показывает ошибку при неправильных данных
граничная проверяются минимальная длина пароля, пустые строки, неверный формат
ролевая пользователь видит только разрешенные разделы
регрессионная старые функции продолжают работать после изменений

Что тестировать в модуле входа

В модуле входа проверяются регистрация, повторяющийся логин, пустые поля, короткий пароль, успешный вход, неверный пароль, CAPTCHA, блокировка после нескольких ошибок и доступ к разделам по роли. Для предметной части отдельно проверяются создание, редактирование, удаление и поиск записей.

Пример ручной проверки удобно фиксировать как короткий сценарий:

Действие: войти под admin / admin123.
Ожидаемый результат: открывается главное окно, видны разделы пользователей и журнала входов.

Действие: ввести неверный пароль три раза подряд.
Ожидаемый результат: вход временно блокируется, попытки записаны в LoginAttempts.

Тестирование CRUD

Для каждой предметной сущности проверяются базовые операции:

Операция Пример проверки
создание новая книга появляется в таблице
чтение список загружается после открытия формы
изменение после редактирования данные сохраняются
удаление запись исчезает из списка или помечается неактивной
поиск ввод части названия фильтрует таблицу

Если сущность участвует в связях, нужно проверять и бизнес-ограничения. Например, книгу нельзя выдать, если она уже отмечена как недоступная.

В коде такая проверка находится до записи операции в SQLite:

if (!book.IsAvailable)
{
    MessageBox.Show("Книга недоступна для выдачи.");
    return;
}

_issues.Add(new BookIssue
{
    BookId = book.Id,
    ReaderId = selectedReader.Id,
    IssueDate = DateTime.Now
});

Документация

Итоговые материалы должны объяснять, какую задачу решает приложение, какие таблицы используются, как устроен интерфейс, как запустить проект и на каких сценариях он проверялся. Скриншоты основных окон добавляются рядом с описанием соответствующих функций.

Инструкция запуска

Инструкция запуска должна быть короткой и проверяемой. В ней указываются версия .NET, используемая база данных, порядок запуска из Visual Studio, тестовые учетные записи и расположение файла базы данных.

Пример:

1. Открыть решение PracticeApp.sln.
2. Проверить, что установлен .NET 8.
3. Запустить проект PracticeApp.
4. При первом запуске создается файл practice.db.
5. Тестовый вход: admin / admin123.

Описание ошибок

В отчете полезно отдельно указать, какие ошибки обрабатывает приложение: неверный логин или пароль, неверная CAPTCHA, повторный логин при регистрации, пустые обязательные поля, попытка открыть недоступный раздел, нарушение уникальности номера или кода.