Login Sign Up
Advert
Your ad spot
Reserve this exclusive slot for the selected period.
Buy advertising →
Telegram community logo - QA Co-pilot
Added 06 Dec 2025

QA Co-pilot

@qa_copilot
Number of subscribers: 94
Photos: 271
Links: 45
Description:
QA Co-pilot 🚀 Ваш другий пілот у світі тестування. 👨‍💻 Для кого: Для тестувальників-практиків, які хочуть рости. 🎯 Про що: Делегуємо рутину нейромережам, прискорюємо роботу та звільняємо час на головне. ❌ Чого тут немає: Нудної теорії та води.
Source

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

Telegram community logo - QA Co-pilot QA Co-pilot @qa_copilot
21 Views/Reach 2026-04-02 09:44 Message №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-ка!