Iniciar sesión Registro
Anuncios
Tu espacio publicitario
Reserva este slot exclusivo para el periodo elegido.
Comprar publicidad →
Logotipo de la comunidad de telegram - QA Co-pilot
Añadido 06 dic. 2025

QA Co-pilot

@qa_copilot
Número de suscriptores: 94
Fotos: 271
Enlaces: 45
Descripción:
QA Co-pilot 🚀 Ваш другий пілот у світі тестування. 👨‍💻 Для кого: Для тестувальників-практиків, які хочуть рости. 🎯 Про що: Делегуємо рутину нейромережам, прискорюємо роботу та звільняємо час на головне. ❌ Чого тут немає: Нудної теорії та води.
Fuente

QA Co-pilot | Стан перегонів" (Race Condition): Як подвійний клік краде гроші бізнес...

Logotipo de la comunidad de telegram - QA Co-pilot QA Co-pilot @qa_copilot
31 Vistas/Alcance 2026-03-04 09:31 Mensaje №216
🏎 "Стан перегонів" (Race Condition): Як подвійний клік краде гроші бізнесуПривіт, екіпаж! Екватор тижня — ідеальний час для технічної магії. ☕️Уявіть ситуацію: користувач купує останній акційний ноутбук в інтернет-магазині. Інтернет трохи "тупить", кнопка "Оплатити" не реагує миттєво. Користувач нервує і клікає на неї тричі поспіль.Що відбувається далі? З картки списуються гроші три рази, система створює три замовлення на один і той самий "останній" ноутбук, а на складі починається паніка.Вітаю, ви зустріли Race Condition (Стан перегонів).Чому це відбувається "під капотом"?Коли сервер отримує три запити одночасно, він починає обробляти їх паралельно (у різних потоках). 🔹Потік 1 питає базу: "Ноутбуки є?". База: "Так, 1 штука".🔹Потік 2 в ту саму мілісекунду питає: "Ноутбуки є?". База ще не встигла оновитися і відповідає: "Так, 1 штука".🔹Потік 3 чує те саме. У результаті сервер радісно продає один фізичний товар трьом різним людям, заганяючи залишки на складі в мінус.Як крутий QA має це тестувати?👆 "Паркінсон" на UIНайпростіший тест — просто швидко-швидко клікати на будь-які деструктивні кнопки: "Зберегти", "Відправити", "Оплатити", "Видалити".Часто розробники забувають зробити кнопку неактивною (disabled) одразу після першого кліку, залишаючи вікно вразливості. 🐌 Метод "Повільного інтернету"Якщо інтернет швидкий, ви просто не встигнете клікнути двічі. Тому відкриваємо DevTools -> Network -> ставимо Slow 3G. Тепер запит "висить" 5 секунд, і у вас є купа часу, щоб натиснути кнопку ще 10 разів. 🤖 API-бомбардуванняUI-блокування кнопки — це лише захист від дурня. Хакер просто обійде UI і відправить запити напряму. Беремо Postman або JMeter і відправляємо 20 однакових POST-запитів в одну секунду паралельно. Якщо створилося 20 записів — архітектура бекенда дірява. Як це фіксять здорові команди?Надійні системи використовують Ідемпотентність (idempotency keys) — коли разом із запитом передається унікальний ID транзакції. Навіть якщо клієнт надішле 10 однакових запитів, сервер зрозуміє, що це дублі, і виконає дію лише один раз. Інший варіант — строгі блокування (Locks) на рівні самої бази даних.А ви перевіряєте критичні форми на подвійний клік?🔥 — Завжди клікаю як скажений(а)!👀 — Тестую на UI, але в API не ліз...🤷‍♂️ — Якщо юзер клікає двічі, це його проблеми!