Этап 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, повторный логин при регистрации, пустые обязательные поля, попытка открыть недоступный раздел, нарушение уникальности номера или кода.