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 | Як вкрасти подвійний бонус: Що таке Race Condition і чому мишка тут не...

Telegram community logo - QA Co-pilot QA Co-pilot @qa_copilot
35 Views/Reach 2026-03-30 09:09 Message №246
🏎 Як вкрасти подвійний бонус: Що таке Race Condition і чому мишка тут не допоможеПривіт, екіпаж! Сьогодні заліземо в ту частину бекенду, від якої сивіють розробники та власники бізнесу. ☕️Уявіть класичну ситуацію: ви реєструєтесь у додатку доставки і отримуєте промокод на 500 грн. Ви додаєте в кошик піцу, вводите код і тиснете «Застосувати». Все працює, знижка зарахована.А тепер уявіть, що ви відкрили свій акаунт одночасно на телефоні, планшеті та комп'ютері. Ви підготували кошики і натиснули кнопку «Застосувати промокод» на всіх трьох пристроях в одну й ту саму мілісекунду.Якщо бекенд написаний без урахування паралелізму, станеться магія, яка називається Race Condition (Стан гонитви).Що відбувається "під капотом"?Сервер отримує три запити одночасно і починає їх обробляти в трьох паралельних потоках: 🔹Потік 1: Промокод ще дійсний? Так.🔹Потік 2: Промокод ще дійсний? Так (бо Потік 1 ще не встиг позначити його як використаний!).🔹Потік 3: Промокод ще дійсний? Так. Далі всі три потоки нараховують вам по 500 грн знижки, і лише після цього ставлять у базі даних галочку is_used = true. Вітаю, ви щойно отримали 1500 грн знижки з одного промокоду на 500.Такі ж баги дозволяють знімати гроші в мінус з банківських карток, купувати два товари, коли на складі залишився лише один, або накручувати лайки.Як QA має це тестувати? (Краш-тест на паралельність)Звичайним швидким кліканням мишки ви цей баг не зловите (фронтенд просто заблокує кнопку після першого кліку). Нам потрібна важка артилерія.⚔️ Запускаємо паралельні потоки через PostmanБагато хто знає про Collection Runner у Postman, але за замовчуванням він відправляє запити по черзі (один за одним). Це не створить Race Condition.Щоб вдарити по серверу одночасно, вам потрібен інструмент рівня JMeter або крута фіча в самому Postman, яка з'явилася не так давно — скрипти з асинхронними запитами (pm.sendRequest), які запускаються циклом for без очікування відповіді.Або ще простіше — консольна утиліта cURL + трохи магії терміналу (Bash):Відкриваєте термінал і пишете команду, яка відправляє 10 однакових запитів на використання промокоду, ставлячи знак & в кінці кожного. Вони полетять на бекенд ідеально паралельно. Висновок: Якщо ваш продукт працює з грошима, знижками, складом або балансами — ви зобов'язані тестувати API на Race Condition. Бо якщо цього не зробите ви, це зроблять дуже хитрі користувачі.А ви коли-небудь ловили баги паралелізму на своєму проєкті? 👇🔥 — Так, блокуємо таблиці в базі даних (Pessimistic/Optimistic Locks), все надійно!👀 — Жодного разу так не тестував(ла), сподіваюсь, у нас все ок...🤯 — Прямо зараз піду мультиплікувати свої бонуси на проді!