Вхід Реєстрація
Реклама
Ваше рекламне місце
Забронюйте цей слот без конкуренції на обраний період.
Купити рекламу →
Логотип телеграм спільноти - QA Co-pilot
Додано 06 гру 2025 🌐 UK

QA Co-pilot

@qa_copilot
Кількість підписників: 92
Фото: 326
Відео: 1
Посилання: 49
Опис:
QA Co-pilot 🚀 Ваш другий пілот у світі тестування. 👨💻 Для кого: Для тестувальників-практиків, які хочуть рости. 🎯 Про що: Делегуємо рутину нейромережам, прискорюємо роботу та звільняємо час на головне. ❌ Чого тут немає: Нудної теорії та води.
Джерело

QA Co-pilot | ‍♂️ Повстання мерців: Чому кнопка "Видалити акаунт" генерує найгірші б...

Логотип телеграм спільноти - QA Co-pilot QA Co-pilot @qa_copilot
21 Охват/переглядів 2026-04-02 09:44 Повідомлення №250
🧟‍♂️ Повстання мерців: Чому кнопка "Видалити акаунт" генерує найгірші баги (і як їх знайти)Привіт, екіпаж! Сьогодні поговоримо про фічу, яку є на кожному проєкті, але яку майже завжди тестують неправильно. ☕️Уявіть тест-кейс: ви заходите в налаштування профілю, тиснете "Видалити акаунт", підтверджуєте. Вас викидає на екран логіну. Ви пробуєте зайти зі старим паролем — не пускає.Статус: Pass? Ні, це лише верхівка айсберга. Бізнес ненавидить втрачати дані (особливо для аналітики). Тому розробники майже ніколи не видаляють ваш рядок із бази даних фізично (DELETE FROM users). Вони використовують Soft Delete (М'яке видалення) — просто ставлять у базі невидиму галочку is_deleted = true. Юзер ніби "вмирає" для інтерфейсу, але його тіло залишається в системі. І тут починається справжній зомбі-апокаліпсис, який QA зобов'язаний протестувати:🚫 Пастка нової реєстрації (Унікальний імейл)

Ви видалили акаунт [email protected]. Через тиждень ви вирішили повернутися і реєструєтесь наново з цим же імейлом.Що стається на дірявому бекенді? База даних кричить: "Стоп! Такий імейл вже є в таблиці!" (бо працює обмеження UNIQUE, а розробник забув додати умову, що імейли мають бути унікальними тільки серед НЕ видалених юзерів). Бекенд падає з помилкою 500 Internal Server Error. Користувач застряг у лімбі: він не може ні увійти, ні зареєструватися.

🧟‍♂️ Зомбі-токен (JWT)

Ви видалили акаунт, але ваш Access Token все ще "живий" (наприклад, лежить у Postman або в Local Storage браузера). Відправте будь-який запит (наприклад, на створення поста або зміну аватарки) з цим старим токеном. Дуже часто бекенд валідує підпис токена, бачить, що він ще не протермінувався, і пропускає запит! Сервер забуває перевірити ту саму галочку is_deleted у базі. У результаті "мертвий" користувач продовжує публікувати контент.

👻 Привиди в коментарях (Orphaned Data)

Юзер видалився. Але до цього він залишив 100 коментарів під статтями або зробив 5 замовлень. Що з ними сталося? Зайдіть на сторінку товару. Якщо замість коментаря фронтенд показує порожній білий екран або взагалі крашиться (бо намагається прочитати user.name, а user тепер повертає null) — це серйозний баг архітектури. Система має вміти граціозно заміняти видалених авторів на "Невідомий користувач".
Висновок:

Видалення сутності — це найскладніший процес в архітектурі баз даних. Коли тестуєте видалення, не перевіряйте, чи зникла картинка. Перевіряйте, чи не залишив покійник після себе розруху в інших частинах додатку.А як у вас на проєкті працює видалення?

👇
🔥 — Знаю всі наші Soft Deletes, токени "вбиваємо" миттєво!

👀 — Здається, ми тестували тільки "щасливий шлях" кнопки...

🤯 — Іду пробувати зареєструватися на видалений імейл, відчуваю, буде 500-ка!