Тестирование - Ntditl/kpfu_service_library GitHub Wiki
🔧 Тестирование Backend
Протестируем через swagger endpoint'ы (Для удобства разработчика: зелёный post, put - жёлтый, delete - красный, get - синий)
- Создадим пользователя
1.1) Сначала корректно
Передаём нужные параметры по нужному endpoint - auth/register
1.2) Попробую уже с email, который использовался для создания другого пользователя |
Получаем ответ согласно документации
- Попробуем авторизоваться
2.1) сначала дадим пользователя, которого не существует.
Получаем ответ сервера
2.2) Теперь существующего пользователя:
Получаем результат
2.3) Теперь существующего, но с неправильными данными
Получаем результат
- Протестируем запрос для получения имени роли по id
3.1) сначала отправим запрос для существующего id
3.2) затем для не существующего
3.3) затем введём некорректное значение для id (отрицательное)
- Протестируем запрос для удаления роли по id
4.1) Сначала укажем существующую роль
- 200 - роль успешно удалена.
4.2) Затем не существующую
получим ожидаемый результат - role not found
4.3) Укажем отрицательный id
- Протестируем изменение роли пользователя
5.1) Сначала введём id существующего пользователя
успешно
5.2) Введём id несуществующего пользователя
5.3) Введём некорректный id
Всё соответствует документации!
📋 Сводная таблица тестирования Backend
№ | Название теста | Endpoint | Тип запроса | Входные данные | Ожидаемый результат | Фактический результат |
---|---|---|---|---|---|---|
1.1 | Регистрация нового пользователя | auth/register |
POST | Корректные данные | 200 OK. Пользователь зарегистрирован | ✅ Корректно |
1.2 | Регистрация с уже существующим email | auth/register |
POST | Повторный email | 400 Bad Request. Email уже используется | ✅ Корректно |
2.1 | Авторизация несуществующего пользователя | auth/login |
POST | Неверный email/пароль | 404 Not Found. Пользователь не найден | ✅ Корректно |
2.2 | Авторизация существующего пользователя | auth/login |
POST | Валидные данные | 200 OK. Токен выдан | ✅ Корректно |
2.3 | Авторизация с неверным паролем | auth/login |
POST | Неверный пароль | 401 Unauthorized. Неверные данные | ✅ Корректно |
3.1 | Получение роли по id (существующий id) | roles/{id} |
GET | id = существующий | 200 OK. Вернулось имя роли | ✅ Корректно |
3.2 | Получение роли по id (несуществующий id) | roles/{id} |
GET | id = несуществующий | 404 Not Found. Role not found | ✅ Корректно |
3.3 | Получение роли по id (отрицательный id) | roles/{id} |
GET | id = -1 | 500 Unprocessable Entity. Ошибка валидации | ✅ Корректно |
4.1 | Удаление роли по существующему id | roles/{id} |
DELETE | id = существующий | 200 OK. Роль удалена | ✅ Корректно |
4.2 | Удаление роли по несуществующему id | roles/{id} |
DELETE | id = несуществующий | 404 Not Found. Role not found | ✅ Корректно |
4.3 | Удаление роли с отрицательным id | roles/{id} |
DELETE | id = -1 | 500 Unprocessable Entity. Ошибка валидации | ✅ Корректно |
5.1 | Изменение роли пользователя (существующий id) | users/{id}/role |
PUT | Валидный id и новая роль | 200 OK. Роль успешно изменена | ✅ Корректно |
5.2 | Изменение роли (несуществующий пользователь) | users/{id}/role |
PUT | Несуществующий id | 404 Not Found. User not found | ✅ Корректно |
5.3 | Изменение роли (некорректный id, напр. отрицательный) | users/{id}/role |
PUT | id = -1 | 500 Internal Server Error. Ошибка валидации | ✅ Корректно |
👥 Тестирование Frontend
Данный раздел содержит подробные кейсы ручного тестирования пользовательского интерфейса системы. Проверка осуществляется вручную: последовательным выполнением шагов, наблюдением за поведением приложения и сравнением с ожидаемым результатом.
Тест №1: Бронирование книги (авторизованный пользователь)
Предусловия:
- Пользователь авторизован под ролью "Читатель";
- Книга доступна для бронирования.
Шаги:
- Найти в каталоге необходимую книгу;
- Открыть карточку книги;
- Нажать кнопку "Забронировать".
Ожидаемый результат:
- Появляется уведомление: "Заявка отправлена!"
Скриншот:
Фактический результат: ✅ Всё отображается корректно.
Тест №2: Бронирование книги (неавторизованный пользователь)
Предусловия:
- Пользователь не авторизирован;
- Книга доступна для бронирования.
Шаги:
- Найти в каталоге необходимую книгу;
- Открыть карточку книги;
- Нажать кнопку "Забронировать".
Ожидаемый результат:
- Появляется уведомление: "Вы должны быть авторизованы"
Скриншот:
Фактический результат: ✅ Всё отображается корректно.
Тест №3: Авторизация (несуществующий пользователь)
Предусловия:
- Пользователь НЕ зарегистрирован в системе;
- Страница авторизации доступна.
Шаги:
- Перейти на страницу авторизации посредством нажатия кнопки "Войти" главной страницы;
- Ввести несуществующий email;
- Ввести произвольный пароль;
- Нажать кнопку "Войти".
Ожидаемый результат:
- Отображается: "Пользователь не найден";
- Авторизация не выполняется, остаёмся на странице входа.
Скриншот:
Фактический результат: ✅ Система сообщает, что пользователя не существует.
Тест №4: Регистрация без заполнения обязательного поля
Предусловия:
- Пользователь находится на странице регистрации;
- Одно из полей не заполнено.
Шаги:
- Перейти на страницу регистрации (Главная страница -> "Войти" -> "Зарегистрироваться");
- Нажать кнопку "Зарегистрироваться", не заполняя одно из полей формы.
Ожидаемый результат:
- Система выделяет незаполненное поле;
- Отображается сообщение: "Вы пропустили это поле";
- Регистрация не проходит.
Скриншот:
Фактический результат: ✅ Сообщение отображается, регистрация не производится.
Тест №5: Ввод некорректного номера телефона при регистрации
Предусловия:
- Пользователь находится на странице регистрации;
- Поле "Номер телефона" допускает только цифры.
Шаги:
- Перейти на страницу регистрации (Главная страница -> "Войти" -> "Зарегистрироваться");
- Ввести в поле "Номер телефона" строку;
- Заполнить остальные поля формы корректно;
- Нажать "Зарегистрироваться".
Ожидаемый результат:
- Появляется сообщение: "Номер телефона должен содержать только цифры";
- Регистрация не выполняется.
Скриншот:
Фактический результат: ✅ Некорректный формат телефона не пропускается, регистрация не производится.
Тест №6: Ввод некорректного email
Предусловия:
- Пользователь находится на странице регистрации.
Шаги:
- Перейти на страницу регистрации (Главная страница -> "Войти" -> "Зарегистрироваться");
- Ввести в поле "E-mail" строку (без символа
@
); - Заполнить остальные поля корректно;
- Нажать кнопку "Зарегистрироваться".
Ожидаемый результат:
- Появляется сообщение: "Адрес электронной почты должен содержать символ "@". Похоже, вы его пропустили";
- Регистрация не выполняется.
Скриншот:
Фактический результат: ✅ Валидация отрабатывает, сообщение отображается.
Тест №7: Отображение кнопки "Личный кабинет" для авторизованного пользователя
Предусловия:
- Пользователь авторизован.
Шаги:
- Авторизоваться в системе под любым валидным пользователем.
Ожидаемый результат:
- В шапке сайта появляется кнопка "Личный кабинет".
Скриншот:
Фактический результат: ✅ Кнопка доступна.
Тест №8: Проверка ссылки на обложку книги (добавление книги)
Предусловия:
- Пользователь авторизован с ролью "Сотрудник библиотеки" или "Администратор";
- Находится на странице добавления книги.
Шаги:
- Перейти в интерфейс добавления новой книги;
- Заполнить все поля корректно;
- В поле "Ссылка на обложку" ввести строку, не являющуюся изображением;
- Нажать кнопку "Добавить книгу".
Ожидаемый результат:
- Появляется сообщение об ошибке: **"Ссылка на обложку должна указывать на изображение (jpg, jpeg, png, gif, webp)";
- Книга не добавляется.
Скриншот:
Фактический результат: ✅ Ошибка отображается, валидация работает.
Тест №9: Проверка поля "Год издания"
Предусловия:
- Пользователь авторизован с ролью "Сотрудник библиотеки" или "Администратор";
- Находится на странице добавления книги.
Шаги:
- Перейти в интерфейс добавления новой книги;
- Ввести в поле "Год издания" значение, превышающее текущий год;
- Заполнить остальные поля корректно;
- Нажать кнопку "Добавить книгу".
Ожидаемый результат:
- Отображается сообщение: "Год издания не может быть больше
текущего
"; - Книга не добавляется.
Скриншот:
Фактический результат: ✅ Ошибка отображается, проверка работает.
📋 Сводная таблица 1 ручного тестирования Frontend
№ | Название теста | Роль пользователя | Ожидаемый результат | Фактический результат | Скриншот |
---|---|---|---|---|---|
2 | Бронирование книги (неавторизованный пользователь) | Гость | Сообщение "Вы должны быть авторизованы" | ✅ Корректно | Тест 2 |
3 | Авторизация несуществующего пользователя | Гость | Сообщение "Пользователь не найден" | ✅ Корректно | Тест 3 |
4 | Пропущено обязательное поле при регистрации | Гость | Подсветка поля, сообщение "Вы пропустили это поле" | ✅ Корректно | Тест 4 |
5 | Ввод некорректного номера телефона | Гость | Сообщение "Номер телефона должен содержать только цифры" | ✅ Корректно | Тест 5 |
6 | Ввод некорректного email (без @ ) |
Гость | Сообщение об отсутствии символа @ |
✅ Корректно | Тест 6 |
📋 Сводная таблица 2 ручного тестирования Frontend
№ | Название теста | Роль пользователя | Ожидаемый результат | Фактический результат | Скриншот |
---|---|---|---|---|---|
1 | Бронирование книги (авторизованный пользователь) | Авторизованный пользователь (Читатель) | Заявка отправлена | ✅ Корректно | Тест 1 |
7 | Отображение кнопки "Личный кабинет" | Авторизованный пользователь (Читатель) | Кнопка появляется в шапке | ✅ Корректно | Тест 7 |
8 | Проверка ссылки на обложку (должна быть изображением) | Сотрудник / Админ | Сообщение об ошибке, если ссылка не ведет на изображение | ✅ Корректно | Тест 8 |
9 | Год издания книги превышает текущий | Сотрудник / Админ | Сообщение "Год издания не может быть больше текущего" | ✅ Корректно | Тест 9 |