Skip to content

Testing

Stas Yakhnenko edited this page Sep 21, 2023 · 1 revision

Тести (бекенд) :

Треба переконатися, що створені об'єкти моделей (наприклад, Product, Customer, тощо) можуть бути коректно створені та збережені в базі даних. Треба перевірити, чи виконується валідація для полів моделей (наприклад, перевірка на унікальність email у моделі Customer). Також перевіряється правильність роботи методів та властивостей моделей, які додали для обробки бізнес-логіки.

Тести для зв'язків між моделями:

Треба переконатися, що зв'язки між моделями працюють правильно, наприклад, здійснемо тести для додавання товару до замовлення (OrderItem) та перевіряємо, чи зберігається зв'язок між Product та Order. Також перевіряємо, як реагує база даних на спробу видалення об'єкта, на який посилаються інші об'єкти через зовнішні ключі.

Тести для API:

Використовуємо фреймворк тестування API, наприклад, Django Rest Framework Test Framework, для перевірки функціональності API. Проводимо тести для створення, оновлення, видалення і отримання ресурсів через API (наприклад, створення замовлення через POST запит).

Тести для авторизації та перевірки доступу:

Переконуємось, що авторизація та перевірка доступу працюють правильно, наприклад, потрібно використати тести для перевірки, що тільки авторизовані користувачі можуть створювати замовлення або писати відгуки.

Тести для обробки помилок:

Треба використати тести для перевірки, як бекенд обробляє помилки, такі як невірні запити, відсутність даних тощо.

Тести для функційності бізнес-логіки:

Якщо присутні специфічні функції бізнес-логіки, наприклад, розрахунок загальної вартості замовлення, то потрібно провести тести для цих функцій.

Тести для валідації даних:

Переконуємось, що валідація даних (наприклад, валідація email) працює коректно.

Тести для оплати і доставки:

Проводимо тести для процесів оплати та доставки замовлень.

Тести для відгуків:

Переконуємось, що відгуки можуть бути створені та відображені коректно.

Тести для створення платіжного інтенту (PaymentIntent):

Перевірка створення платіжного інтенту з коректною сумою і валютою. Перевірка коректності отримання client_secret після створення інтенту.

Тести для оплати та підтвердження платіжного інтенту:

Перевірка успішної оплати та підтвердження платіжного інтенту. Тести на обробку помилок під час оплати.

Тести для скасування платіжного інтенту:

Перевірка можливості скасування платіжного інтенту. Тести на обробку помилок при спробі скасувати платіж.

Тести для зворотного виклику від Stripe (Webhook):

Перевірка правильності обробки зворотного виклику від Stripe після оплати. Тести на обробку зворотних викликів з різними статусами оплати.

Тести для реальної оплати:

Якщо система підтримує реальну оплату,то проводимо тести, які перевіряють, що оплата відбувається коректно. Тести на безпеку зберігання платіжних даних.

Тести для відображення інформації користувачам:

Перевірка відображення інформації про стан оплати та замовлення користувачам. Тести на відображення повідомлень про помилки під час оплати.

Тести безпеки:

Перевірка захисту від SQL-ін'єкцій та інших атак на систему оплати. Тести на валідацію платіжних даних.

Тести з тестовим середовищем Stripe:

Перевірка інтеграції з тестовим середовищем Stripe. Тести для симуляції різних станів оплати в тестовому режимі.

Тести(фронтенд) :

Тести авторизації:

Тест перевірки форми на стороні клієнта:

Опис: Перевіряємо, чи використовується правильно тип поля "email" і "password" у HTML-формі.

Сценарій:

  • Відкрити сторінку авторизації.

Очікуваний результат:

  • Поле для введення адреси електронної пошти має атрибут type="email".
  • Поле для введення пароля має атрибут type="password". Тест асинхронного відправлення форми:

Опис: Перевіряємо, чи відправлення форми здійснюється асинхронно без повного перезавантаження сторінки.

Сценарій:

  • Ввести правильні облікові дані.
  • Натиснути кнопку "Sign In".

Очікуваний результат:

  • Форма відправляється асинхронно без перезавантаження сторінки.
  • Відповідь від сервера обробляється безперервно. Тест обробки помилок на стороні клієнта:

Опис: Перевіряємо, чи правильно відображаються повідомлення про помилку на формі при неправильному введенні облікових даних.

Сценарій:

  • Ввести неправильні облікові дані.
  • Натиснути кнопку "Sign In".

Очікуваний результат:

  • Відповідь від сервера з помилкою обробляється асинхронно.
  • Повідомлення про помилку відображається на формі для користувача. Тест успішного входу в систему:

Опис: Перевіряємо, чи користувач успішно входить в систему та переходить на інформаційну панель.

Сценарій:

  • Ввести правильні облікові дані.
  • Натиснути кнопку "Sign In".

Очікуваний результат:

  • Користувач успішно авторизований.
  • Перенаправлення на інформаційну панель користувача або попередню відвідану сторінку. Ці тести допоможуть переконатися, що сторінка авторизації працює належним чином та забезпечує зручну авторизацію користувача.

Тести реєстрації :

Тест перевірки форми на стороні клієнта:

Опис: Перевіряємо, чи використовується правильно тип поля "email" і "password" у HTML-формі.

Сценарій:

  • Відкрити сторінку реєстрації.

Очікуваний результат:

  • Поле для введення адреси електронної пошти має атрибут type="email".
  • Поля для введення паролів мають тип type="password". Тест асинхронного відправлення форми:

Опис: Перевіряємо, чи відправлення форми здійснюється асинхронно без повного перезавантаження сторінки.

Сценарій:

  • Заповнити форму правильними даними.
  • Натиснути кнопку "Register".

Очікуваний результат:

  • Форма відправляється асинхронно без перезавантаження сторінки.
  • Відповідь від сервера обробляється безперервно. Тест обробки помилок на стороні сервера:

Опис: Перевіряємо, чи правильно відображаються повідомлення про помилку на формі при неправильному введенні даних або при спробі зареєструвати вже існуючий обліковий запис.

Сценарій:

  • Заповнити форму неправильними даними або вже існуючою адресою електронної пошти.
  • Натиснути кнопку "Register".

Очікуваний результат:

  • Відповідь від сервера з помилкою обробляється асинхронно.
  • Повідомлення про помилку відображається на формі для користувача. Тест успішної реєстрації:

Опис: Перевіряємо, чи користувач успішно реєструється та переходить на сторінку після реєстрації.

Сценарій:

  • Заповнити форму правильними даними.
  • Натиснути кнопку "Register".

Очікуваний результат:

  • Користувач успішно зареєстрований.
  • Перенаправлення на іншу сторінку (наприклад, сторінку після реєстрації) або на панель користувача.

Ці тести допоможуть переконатися, що сторінка реєстрації працює належним чином та забезпечує зручність користування.

Тест пошуку товарів:

Опис: Перевіряємо, чи працює функціональність пошуку товарів, і чи правильно відображаються результати пошуку.

Сценарій:

  • Відкрити головну сторінку.
  • Ввести слово у полі пошуку.
  • Почекати, поки HTMX завантажить результати пошуку.

Очікуваний результат:

  • Відображаються результати пошуку, які відповідають введеному слову.
  • Результати відображаються без перезавантаження сторінки.

Тест додавання товару до кошика:

Опис: Перевіряємо, чи працює функціональність додавання товару до кошика при натисканні на кнопку "Купити".

Сценарій:

  • Відкрити головну сторінку.
  • Натиснути кнопку "Купити" на товарі.
  • Перевірити, чи змінився лічильник кошика.

Очікуваний результат:

  • Товар додано до кошика.
  • Лічильник кошика змінився відповідно. Тест відображення маркетингового банера:

Опис: Перевіряємо, чи правильно відображається маркетинговий банер на головній сторінці.

Сценарій:

  • Відкрити головну сторінку.

Очікуваний результат:

  • Маркетинговий банер відображається на сторінці з відповідним контентом.

Тест відображення віджетів товарів:

Опис: Перевіряємо, чи правильно відображаються віджети товарів на головній сторінці, такі як "Товари на розпродажі", "Популярні товари" і "Рекомендовані товари для вас".

Сценарій:

  • Відкрити головну сторінку.

Очікуваний результат:

  • Кожен віджет відображає відповідний контент згідно з даними з сервера.
  • Віджети відображаються на сторінці без перезавантаження.

Ці тести допоможуть переконатися, що головна сторінка веб-застосунку працює належним чином і надає користувачам можливість зручно шукати та переглядати товари.

Тест фільтрації за категоріями:

Опис: Перевіряємо, чи працює фільтрація продуктів за категоріями.

Сценарій:

  • Відкрити сторінку пошуку.
  • Вибрати категорію зі списку фільтрів.
  • Зачекайте, поки HTMX оновить результати.

Очікуваний результат:

  • Відображаються результати, які відповідають обраній категорії.
  • Результати відображаються без перезавантаження сторінки.

Тест фільтрації за ціною:

Опис: Перевіряємо, чи працює фільтрація продуктів за ціновим діапазоном.

Сценарій:

  • Відкрити сторінку пошуку.
  • Змінити положення регулятора цінового діапазону.
  • Зачекайте, поки HTMX оновить результати.

Очікуваний результат:

  • Відображаються результати, які відповідають обраному ціновому діапазону.
  • Результати відображаються без перезавантаження сторінки. Тест сортування продуктів:

Опис: Перевіряємо, чи працює функціональність сортування продуктів за різними параметрами.

Сценарій:

  • Відкрити сторінку пошуку.
  • Вибрати опцію сортування зі списку.
  • Зачекайте, поки HTMX оновить результати.

Очікуваний результат:

  • Результати відображаються у відповідності з обраною опцією сортування.
  • Результати відображаються без перезавантаження сторінки.

Ці тести допоможуть переконатися, що сторінка пошуку працює належним чином та надає користувачам можливість знаходити та фільтрувати продукти зручним способом.

Тест перевірки відображення основної інформації про товар:

Опис: Переконуємось, що сторінка товару відображає основну інформацію про товар, таку як назву, зображення, опис і ціну.

Сценарій:

  • Відкрити сторінку перегляду товару.

Очікуваний результат:

  • Назва товару відображається на сторінці.
  • Зображення товару відображається на сторінці.
  • Опис товару відображається на сторінці.
  • Ціна товару відображається на сторінці. Тест додавання товару до кошика:

Опис: Переконуємось, що кнопка "Додати до кошика" взаємодіє з бекендом та додає товар до кошика.

Сценарій:

  • Відкрити сторінку перегляду товару.
  • Клацнути на кнопці "Додати до кошика".
  • Зачекайте, поки HTMX обробить запит.

Очікуваний результат:

  • Якщо товар успішно додано до кошика, отримано відповідь зі статусом "success".
  • Якщо товар вже є у кошику, отримано відповідь з повідомленням про помилку.
  • У будь-якому іншому випадку перевірте, чи не відображається повідомлення про помилку. Тест обробки помилок додавання до кошика:

Опис: Перевіряємо, як сторінка обробляє помилки під час спроби додати товар до кошика.

Сценарій:

  • Відкрити сторінку перегляду товару.
  • Клацнути на кнопці "Додати до кошика".
  • Зачекайте, поки HTMX обробить запит.

Очікуваний результат:

  • Якщо товар успішно додано до кошика, отримано відповідь зі статусом "success".
  • Якщо товар вже є у кошику, отримано відповідь з повідомленням про помилку.
  • Якщо запит недійсний (наприклад, неправильна структура даних), перевірте, чи не відображається повідомлення про помилку.

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

Тест перевірки відображення товарів у кошику:

Опис: Переконуємось, що сторінка "Кошик з товарами" правильно відображає товари, які користувач додав до кошика.

Сценарій:

  • Додати товари до кошика.
  • Відкрити сторінку "Кошик з товарами".

Очікуваний результат:

  • Список товарів в кошику має відображати всі додані товари з їх зображеннями, назвами, цінами, кількістю та загальною вартістю. Тест зміни кількості товару в кошику:

Опис: Переконуємось, що користувач може змінювати кількість товару у кошику і загальна вартість автоматично оновлюється.

Сценарій:

  • Додати товар до кошика.
  • Натиснути кнопку "+" для збільшення кількості товару.

Очікуваний результат:

  • Кількість товару в кошику змінюється.
  • Загальна вартість товарів в кошику автоматично оновлюється. Тест видалення товару з кошика:

Опис: Переконуємось, що користувач може видаляти товари з кошика.

Сценарій:

  • Додати товар до кошика.
  • Натиснути кнопку "Видалити" біля товару.

Очікуваний результат:

  • Товар видаляється з кошика і більше не відображається.
  • Загальна вартість товарів в кошику автоматично оновлюється. Тест оформлення замовлення:

Опис: Переконуємось, що користувач може успішно оформити замовлення зі сторінки "Кошик з товарами".

Сценарій:

  • Додати товари до кошика.
  • Заповнити обов'язкові поля для оформлення замовлення.
  • Натиснути кнопку "Оформити замовлення".

Очікуваний результат:

  • Замовлення успішно оформлено.
  • Користувач переходить на сторінку підтвердження замовлення або отримує підтвердження на цій сторінці. Тест обробки помилок під час зміни кількості товару:

Опис: Переконуємось, що сторінка коректно обробляє помилки під час спроби змінити кількість товару.

Сценарій:

  • Додати товар до кошика.
  • Спробувати ввести недійсну кількість товару (наприклад, букви або від'ємне число).

Очікуваний результат:

  • Сторінка відображає повідомлення про помилку та не дозволяє змінити кількість на недійсне значення. Тест обробки помилок під час оформлення замовлення:

Опис: Переконуємось, що сторінка коректно обробляє помилки під час спроби оформити замовлення.

Сценарій:

  • Додати товари до кошика.
  • Спробувати оформити замовлення без заповнення обов'язкових полів (наприклад, адреси доставки).

Очікуваний результат:

  • Сторінка відображає повідомлення про помилку та не дозволяє оформити замовлення без заповнення обов'язкових полів.

Ці тести допоможуть переконатися, що сторінка "Кошик з товарами" та всі пов'язані з нею функції працюють належним чином і дозволяє користувачам зручно робити покупки.

Тест перевірки відображення замовлених товарів:

Опис: Переконуємось, що сторінка "Сторінка покупки" правильно відображає список замовлених товарів.

Сценарій:

  • Додати товари до кошика.
  • Перейти на сторінку "Сторінка покупки".

Очікуваний результат:

  • Сторінка має відображати всі замовлені товари з їх зображеннями, назвами та цінами. Тест обробки замовлення:

Опис: Переконуємось, що користувач може успішно оформити замовлення зі сторінки "Сторінка покупки".

Сценарій:

  • Додати товари до кошика.
  • Перейти на сторінку "Сторінка покупки".
  • Ввести обов'язкові дані для замовлення (наприклад, адресу доставки).

Очікуваний результат:

  • Замовлення успішно оформлено.
  • Користувач переходить на сторінку підтвердження замовлення або отримує підтвердження на цій сторінці. Тест обробки оплати замовлення:

Опис: Переконуємось, що користувач може успішно оплатити своє замовлення.

Сценарій:

  • Додати товари до кошика.
  • Перейти на сторінку "Сторінка покупки".
  • Ввести обов'язкові дані для замовлення (наприклад, адресу доставки).
  • Обрати метод оплати та здійснити оплату.й досвід

Очікуваний результат:

  • Оплата замовлення успішно виконана.
  • Користувач отримує підтвердження оплати та деталі свого замовлення. Тест обробки помилок під час оформлення замовлення:

Опис: Переконуємось, що сторінка коректно обробляє помилки під час спроби оформити замовлення без заповнення обов'язкових полів.

Сценарій:

  • Додати товари до кошика.
  • Перейти на сторінку "Сторінка покупки".
  • Спробувати оформити замовлення без введення обов'язкових даних (наприклад, без адреси доставки).

Очікуваний результат:

  • Сторінка відображає повідомлення про помилку та не дозволяє оформити замовлення без введення обов'язкових даних.

Ці тести допоможуть переконатися, що сторінка "Сторінка покупки" та всі пов'язані з нею функції працюють належним чином і надають користувачам можливість зручно оформлювати замовлення.

Ось приклади тестів для сторінки "Сторінка покупки":

Тест перевірки відображення замовлених товарів:

Опис: Переконуємось, що сторінка "Сторінка покупки" правильно відображає список замовлених товарів.

Сценарій:

  • Додати товари до кошика.
  • Перейти на сторінку "Сторінка покупки".

Очікуваний результат:

  • Сторінка має відображати всі замовлені товари з їх зображеннями, назвами та цінами. Тест обробки замовлення:

Опис: Переконуємось, що користувач може успішно оформити замовлення зі сторінки "Сторінка покупки".

Сценарій:

  • Додати товари до кошика.
  • Перейти на сторінку "Сторінка покупки".
  • Ввести обов'язкові дані для замовлення (наприклад, адресу доставки).

Очікуваний результат:

  • Замовлення успішно оформлено.
  • Користувач переходить на сторінку підтвердження замовлення або отримує підтвердження на цій сторінці. Тест обробки оплати замовлення:

Опис: Переконуємось, що користувач може успішно оплатити своє замовлення.

Сценарій:

  • Додати товари до кошика.
  • Перейти на сторінку "Сторінка покупки".
  • Ввести обов'язкові дані для замовлення (наприклад, адресу доставки).
  • Обрати метод оплати та здійснити оплату.

Очікуваний результат:

  • Оплата замовлення успішно виконана.
  • Користувач отримує підтвердження оплати та деталі свого замовлення. Тест обробки помилок під час оформлення замовлення:

Опис: Переконуємось, що сторінка коректно обробляє помилки під час спроби оформити замовлення без заповнення обов'язкових полів.

Сценарій:

  • Додати товари до кошика.
  • Перейти на сторінку "Сторінка покупки".
  • Спробувати оформити замовлення без введення обов'язкових даних (наприклад, без адреси доставки).

Очікуваний результат:

  • Сторінка відображає повідомлення про помилку та не дозволяє оформити замовлення без введення обов'язкових даних.

Ці тести допоможуть переконатися, що сторінка "Сторінка покупки" та всі пов'язані з нею функції працюють належним чином і дозволяють користувачам зручно купувати та оформляти замовлення.

Clone this wiki locally