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 🌐 UK

QA Co-pilot

@qa_copilot
Número de suscriptores: 92
Fotos: 326
Videos: 1
Enlaces: 49
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 не ліз...

🤷‍♂️ — Якщо юзер клікає двічі, це його проблеми!