Тестирование - Ntditl/kpfu_service_library GitHub Wiki

🔧 Тестирование Backend

Протестируем через swagger endpoint'ы (Для удобства разработчика: зелёный post, put - жёлтый, delete - красный, get - синий)

  1. Создадим пользователя

1.1) Сначала корректно

image Передаём нужные параметры по нужному endpoint - auth/register image

1.2) Попробую уже с email, который использовался для создания другого пользователя | image

Получаем ответ согласно документации

  1. Попробуем авторизоваться

2.1) сначала дадим пользователя, которого не существует. image Получаем ответ сервера image

2.2) Теперь существующего пользователя: image Получаем результат image

2.3) Теперь существующего, но с неправильными данными image Получаем результат image

  1. Протестируем запрос для получения имени роли по id

3.1) сначала отправим запрос для существующего id image

3.2) затем для не существующего image

3.3) затем введём некорректное значение для id (отрицательное) image

  1. Протестируем запрос для удаления роли по id

4.1) Сначала укажем существующую роль image - 200 - роль успешно удалена.

4.2) Затем не существующую image получим ожидаемый результат - role not found

4.3) Укажем отрицательный id image

  1. Протестируем изменение роли пользователя

5.1) Сначала введём id существующего пользователя image успешно

5.2) Введём id несуществующего пользователя image

5.3) Введём некорректный id image

Всё соответствует документации!

📋 Сводная таблица тестирования 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: Бронирование книги (авторизованный пользователь)

Предусловия:

  • Пользователь авторизован под ролью "Читатель";
  • Книга доступна для бронирования.

Шаги:

  1. Найти в каталоге необходимую книгу;
  2. Открыть карточку книги;
  3. Нажать кнопку "Забронировать".

Ожидаемый результат:

  • Появляется уведомление: "Заявка отправлена!"

Скриншот: Тест №1

Фактический результат: ✅ Всё отображается корректно.


Тест №2: Бронирование книги (неавторизованный пользователь)

Предусловия:

  • Пользователь не авторизирован;
  • Книга доступна для бронирования.

Шаги:

  1. Найти в каталоге необходимую книгу;
  2. Открыть карточку книги;
  3. Нажать кнопку "Забронировать".

Ожидаемый результат:

  • Появляется уведомление: "Вы должны быть авторизованы"

Скриншот: Тест №2

Фактический результат: ✅ Всё отображается корректно.


Тест №3: Авторизация (несуществующий пользователь)

Предусловия:

  • Пользователь НЕ зарегистрирован в системе;
  • Страница авторизации доступна.

Шаги:

  1. Перейти на страницу авторизации посредством нажатия кнопки "Войти" главной страницы;
  2. Ввести несуществующий email;
  3. Ввести произвольный пароль;
  4. Нажать кнопку "Войти".

Ожидаемый результат:

  • Отображается: "Пользователь не найден";
  • Авторизация не выполняется, остаёмся на странице входа.

Скриншот: Тест №3

Фактический результат: ✅ Система сообщает, что пользователя не существует.


Тест №4: Регистрация без заполнения обязательного поля

Предусловия:

  • Пользователь находится на странице регистрации;
  • Одно из полей не заполнено.

Шаги:

  1. Перейти на страницу регистрации (Главная страница -> "Войти" -> "Зарегистрироваться");
  2. Нажать кнопку "Зарегистрироваться", не заполняя одно из полей формы.

Ожидаемый результат:

  • Система выделяет незаполненное поле;
  • Отображается сообщение: "Вы пропустили это поле";
  • Регистрация не проходит.

Скриншот: Тест №4

Фактический результат: ✅ Сообщение отображается, регистрация не производится.


Тест №5: Ввод некорректного номера телефона при регистрации

Предусловия:

  • Пользователь находится на странице регистрации;
  • Поле "Номер телефона" допускает только цифры.

Шаги:

  1. Перейти на страницу регистрации (Главная страница -> "Войти" -> "Зарегистрироваться");
  2. Ввести в поле "Номер телефона" строку;
  3. Заполнить остальные поля формы корректно;
  4. Нажать "Зарегистрироваться".

Ожидаемый результат:

  • Появляется сообщение: "Номер телефона должен содержать только цифры";
  • Регистрация не выполняется.

Скриншот: Тест №5

Фактический результат: ✅ Некорректный формат телефона не пропускается, регистрация не производится.


Тест №6: Ввод некорректного email

Предусловия:

  • Пользователь находится на странице регистрации.

Шаги:

  1. Перейти на страницу регистрации (Главная страница -> "Войти" -> "Зарегистрироваться");
  2. Ввести в поле "E-mail" строку (без символа @);
  3. Заполнить остальные поля корректно;
  4. Нажать кнопку "Зарегистрироваться".

Ожидаемый результат:

  • Появляется сообщение: "Адрес электронной почты должен содержать символ "@". Похоже, вы его пропустили";
  • Регистрация не выполняется.

Скриншот: Тест №6

Фактический результат: ✅ Валидация отрабатывает, сообщение отображается.


Тест №7: Отображение кнопки "Личный кабинет" для авторизованного пользователя

Предусловия:

  • Пользователь авторизован.

Шаги:

  1. Авторизоваться в системе под любым валидным пользователем.

Ожидаемый результат:

  • В шапке сайта появляется кнопка "Личный кабинет".

Скриншот: Тест №7

Фактический результат: ✅ Кнопка доступна.


Тест №8: Проверка ссылки на обложку книги (добавление книги)

Предусловия:

  • Пользователь авторизован с ролью "Сотрудник библиотеки" или "Администратор";
  • Находится на странице добавления книги.

Шаги:

  1. Перейти в интерфейс добавления новой книги;
  2. Заполнить все поля корректно;
  3. В поле "Ссылка на обложку" ввести строку, не являющуюся изображением;
  4. Нажать кнопку "Добавить книгу".

Ожидаемый результат:

  • Появляется сообщение об ошибке: **"Ссылка на обложку должна указывать на изображение (jpg, jpeg, png, gif, webp)";
  • Книга не добавляется.

Скриншот: Тест №8

Фактический результат: ✅ Ошибка отображается, валидация работает.


Тест №9: Проверка поля "Год издания"

Предусловия:

  • Пользователь авторизован с ролью "Сотрудник библиотеки" или "Администратор";
  • Находится на странице добавления книги.

Шаги:

  1. Перейти в интерфейс добавления новой книги;
  2. Ввести в поле "Год издания" значение, превышающее текущий год;
  3. Заполнить остальные поля корректно;
  4. Нажать кнопку "Добавить книгу".

Ожидаемый результат:

  • Отображается сообщение: "Год издания не может быть больше текущего";
  • Книга не добавляется.

Скриншот: Тест №9

Фактический результат: ✅ Ошибка отображается, проверка работает.


📋 Сводная таблица 1 ручного тестирования Frontend

Название теста Роль пользователя Ожидаемый результат Фактический результат Скриншот
2 Бронирование книги (неавторизованный пользователь) Гость Сообщение "Вы должны быть авторизованы" ✅ Корректно Тест 2
3 Авторизация несуществующего пользователя Гость Сообщение "Пользователь не найден" ✅ Корректно Тест 3
4 Пропущено обязательное поле при регистрации Гость Подсветка поля, сообщение "Вы пропустили это поле" ✅ Корректно Тест 4
5 Ввод некорректного номера телефона Гость Сообщение "Номер телефона должен содержать только цифры" ✅ Корректно Тест 5
6 Ввод некорректного email (без @) Гость Сообщение об отсутствии символа @ ✅ Корректно Тест 6

📋 Сводная таблица 2 ручного тестирования Frontend

Название теста Роль пользователя Ожидаемый результат Фактический результат Скриншот
1 Бронирование книги (авторизованный пользователь) Авторизованный пользователь (Читатель) Заявка отправлена ✅ Корректно Тест 1
7 Отображение кнопки "Личный кабинет" Авторизованный пользователь (Читатель) Кнопка появляется в шапке ✅ Корректно Тест 7
8 Проверка ссылки на обложку (должна быть изображением) Сотрудник / Админ Сообщение об ошибке, если ссылка не ведет на изображение ✅ Корректно Тест 8
9 Год издания книги превышает текущий Сотрудник / Админ Сообщение "Год издания не может быть больше текущего" ✅ Корректно Тест 9