Wireshark для QA — мінімум зусиль, максимум користі
Після останнього кейса з «сервер мовчить», обіцяв накидати фільтри, які реально юзаю, коли треба перевірити трафік і не згоріти в потоках SYN’ів і ACK’ів.
Ось топчик для QA:
⸻
🔹 Перевірити лише POST-запити:
🔹 Побачити весь HTTPS-трафік (коли шифрування, але хоч бачити сесії):
🔹 Показати тільки трафік між твоїм клієнтом і певною IP-адресою:
🔹 Подивитися, чи є взагалі TCP-зʼєднання:
Це покаже всі SYN-запити (початок встановлення TCP-зʼєднання) — корисно, коли підозрюєш, що сервер не приймає коннект.
⸻
🧠 Ідея яка: тобі як QA не треба лізти в payload (особливо якщо він зашифрований). Але можна побачити — чи взагалі пішов запит, чи сервер щось відповів, чи зʼєднання встановилось.
І от тоді ти не просто кажеш «не працює», а вже приходиш на стендап з картами на руках.
Після останнього кейса з «сервер мовчить», обіцяв накидати фільтри, які реально юзаю, коли треба перевірити трафік і не згоріти в потоках SYN’ів і ACK’ів.
Ось топчик для QA:
⸻
🔹 Перевірити лише POST-запити:
http.request.method == "POST"
🔹 Побачити весь HTTPS-трафік (коли шифрування, але хоч бачити сесії):
tls
🔹 Показати тільки трафік між твоїм клієнтом і певною IP-адресою:
ip.addr == 192.168.1.100
🔹 Подивитися, чи є взагалі TCP-зʼєднання:
tcp.flags.syn == 1 && tcp.flags.ack == 0
Це покаже всі SYN-запити (початок встановлення TCP-зʼєднання) — корисно, коли підозрюєш, що сервер не приймає коннект.
⸻
🧠 Ідея яка: тобі як QA не треба лізти в payload (особливо якщо він зашифрований). Але можна побачити — чи взагалі пішов запит, чи сервер щось відповів, чи зʼєднання встановилось.
І от тоді ти не просто кажеш «не працює», а вже приходиш на стендап з картами на руках.
❤3🆒1
👋 Всім привіт у BugOrDefects!
Радий бачити вас тут — сподіваюсь, вам цікаво читати, так само як мені цікаво писати.
Цей канал я створив не просто для зберігання інфи, а щоб ми з вами мали простір для росту, обміну досвідом і трошки інсайтів QA.
А тепер — коротка історія з життя. Технічна, але життєва.
Коли баг жив не в коді, а в... CDN
Одного разу ми отримали репорт: “Кнопка не працює”.
Формально — все ОК. UI завантажується, запити йдуть, відповіді приходять.
Тільки в одних юзерів все працює, а в інших — ні.
Почав копати:
в DevTools — 200 на все
в логах сервера — теж чисто
все, що можна повторити локально — повторюється без багу
І ось де магія:
після перевірки через VPN виявилося, що з певних регіонів CDN (Content Delivery Network) віддає стару версію JS-файлів, які вже не сумісні з оновленим бекендом.
Причина — кешування на стороні CDN не було інвалідовано після деплою.
Висновок: навіть якщо код без багів — інфраструктура теж частина “системи”, і вона може ламати UX.
Такі дрібниці формують великий досвід.
QA — це не тільки “натиснути кнопку”, це вміння мислити ширше, бачити зв'язки і не зупинятись, поки не зрозумієш “чому насправді”.
Дякую, що ви тут! Далі — тільки цікавіше 👀
Радий бачити вас тут — сподіваюсь, вам цікаво читати, так само як мені цікаво писати.
Цей канал я створив не просто для зберігання інфи, а щоб ми з вами мали простір для росту, обміну досвідом і трошки інсайтів QA.
А тепер — коротка історія з життя. Технічна, але життєва.
Коли баг жив не в коді, а в... CDN
Одного разу ми отримали репорт: “Кнопка не працює”.
Формально — все ОК. UI завантажується, запити йдуть, відповіді приходять.
Тільки в одних юзерів все працює, а в інших — ні.
Почав копати:
в DevTools — 200 на все
в логах сервера — теж чисто
все, що можна повторити локально — повторюється без багу
І ось де магія:
після перевірки через VPN виявилося, що з певних регіонів CDN (Content Delivery Network) віддає стару версію JS-файлів, які вже не сумісні з оновленим бекендом.
Причина — кешування на стороні CDN не було інвалідовано після деплою.
Висновок: навіть якщо код без багів — інфраструктура теж частина “системи”, і вона може ламати UX.
Такі дрібниці формують великий досвід.
QA — це не тільки “натиснути кнопку”, це вміння мислити ширше, бачити зв'язки і не зупинятись, поки не зрозумієш “чому насправді”.
Дякую, що ви тут! Далі — тільки цікавіше 👀
❤8🆒1
Всім привіт і вітаю на каналі
Сьогоднішня історія — з серії "Усе було добре... поки ні"
Прийшов зранку на роботу. Перевіряю Jira. І тут — повідомлення, від якого одразу вирівнюється постава 😅
Багу, яку раніше вже ловили і фіксили, знову находять на продакшені.
Думаю: ну як так?
А виявилось усе просто й боляче одночасно —
✅ бага була зафіксена
❌ але таргет-версія в Jira стояла не релізна, а якась other-branch
В результаті — фікс пішов повз реліз, QA поставила невірний таргет і все тихенько поїхало не туди.
Добре, що встиг вчасно помітити, переніс завдання в правильну версію, підтягнули в реліз — і все ок. Навіть спасибі прилетіло 😊
Мораль проста:
🛡 QA — це не тільки тести, а ще й контроль процесу.
Бо іноді один чек у Jira може вирішити долю продакшну.
Сьогоднішня історія — з серії "Усе було добре... поки ні"
Прийшов зранку на роботу. Перевіряю Jira. І тут — повідомлення, від якого одразу вирівнюється постава 😅
Багу, яку раніше вже ловили і фіксили, знову находять на продакшені.
Думаю: ну як так?
А виявилось усе просто й боляче одночасно —
✅ бага була зафіксена
❌ але таргет-версія в Jira стояла не релізна, а якась other-branch
В результаті — фікс пішов повз реліз, QA поставила невірний таргет і все тихенько поїхало не туди.
Добре, що встиг вчасно помітити, переніс завдання в правильну версію, підтягнули в реліз — і все ок. Навіть спасибі прилетіло 😊
Мораль проста:
🛡 QA — це не тільки тести, а ще й контроль процесу.
Бо іноді один чек у Jira може вирішити долю продакшну.
❤5🆒1
🧩 5 Chrome-розширень, без яких моє тестування вже не те
або «що в моєму QA-арсеналі завжди включено»
🔍 Wappalyzer
Дозволяє миттєво побачити, на чому побуданий сайт — фреймворки, CMS, вебсервер, аналітика, CDN, шрифти.
Часто допомагає ще до початку тестів зрозуміти технології проєкту, або знайти щось "неочікуване".
🍪 EditThisCookie
Редактор cookies. Міняю токени, видаляю зайве, підставляю роль іншого користувача — кайф.
Корисний не тільки для авторизації, а й для перевірки безпеки (наприклад, чи правильно працює expiry/session, чи не можна підкинути іншу сесію).
📡 Postman Interceptor
Пряме підключення браузера до Postman. Перехопив сесію — і можеш тестити API як залогінений юзер.
Сильно економить час, коли треба повторити флоу в UI та одразу поганяти бек.
🧾 JSON Formatter
Просто красиво форматує JSON. Все.
Коли response важкий і багато вкладень — без цього можна не побачити різницю між null, undefined і typo.
⚛️ React Developer Tools
Для тих, хто тестує React. Можна залізти в компонент, подивитись state, props, чи щось оновлюється і що ні.
Допомагає зрозуміти, чому кнопка неактивна або форма не сабмітиться — без танців з дебагом.
🧠 Ці інструменти — як продовження моїх рук.
Іноді саме завдяки ним баг знаходиться не за години, а за хвилини.
📌 Якщо зайде — зберу ще добірку з тулзами для API, mobile або accessibility тестування.
📲 Буду вдячний за репост Групи:
https://t.me/BugOrDefects
або «що в моєму QA-арсеналі завжди включено»
🔍 Wappalyzer
Дозволяє миттєво побачити, на чому побуданий сайт — фреймворки, CMS, вебсервер, аналітика, CDN, шрифти.
Часто допомагає ще до початку тестів зрозуміти технології проєкту, або знайти щось "неочікуване".
🍪 EditThisCookie
Редактор cookies. Міняю токени, видаляю зайве, підставляю роль іншого користувача — кайф.
Корисний не тільки для авторизації, а й для перевірки безпеки (наприклад, чи правильно працює expiry/session, чи не можна підкинути іншу сесію).
📡 Postman Interceptor
Пряме підключення браузера до Postman. Перехопив сесію — і можеш тестити API як залогінений юзер.
Сильно економить час, коли треба повторити флоу в UI та одразу поганяти бек.
🧾 JSON Formatter
Просто красиво форматує JSON. Все.
Коли response важкий і багато вкладень — без цього можна не побачити різницю між null, undefined і typo.
⚛️ React Developer Tools
Для тих, хто тестує React. Можна залізти в компонент, подивитись state, props, чи щось оновлюється і що ні.
Допомагає зрозуміти, чому кнопка неактивна або форма не сабмітиться — без танців з дебагом.
🧠 Ці інструменти — як продовження моїх рук.
Іноді саме завдяки ним баг знаходиться не за години, а за хвилини.
📌 Якщо зайде — зберу ще добірку з тулзами для API, mobile або accessibility тестування.
📲 Буду вдячний за репост Групи:
https://t.me/BugOrDefects
Telegram
Bug or Defect?
Welcome to Bug or Defect?
youtube - https://www.youtube.com/@BugOrDefect
instagram - https://www.instagram.com/bugordefect_life?igsh=MTFlYzZyMncwZWd4eQ==
youtube - https://www.youtube.com/@BugOrDefect
instagram - https://www.instagram.com/bugordefect_life?igsh=MTFlYzZyMncwZWd4eQ==
👍6❤3❤🔥3🆒1
☕️ Ранкові історії QA #1: “Тест-кейс на інтуїцію”
Тікет:
📝 "Додати обмеження на кількість символів"
І все. Без макетів.
Без уточнень.
Без прикладів.
Ти такий:
"Ну, стандарт же — 255. Зроблю, перевірю, полетів далі."
А потім...
🚨 На проді обрубало все після 32 символів.
Клієнт в паніці, фідбек летить градом, баг репорт — прямо в серце.
💡 Мораль історії:
Ніколи не покладайся на “інтуїцію”.
Те, що здається очевидним — зазвичай, ні для кого не очевидне.
Питай. Уточнюй. Фіксуй. І ще раз уточнюй. 😄
📲 Буду вдячний за репост Групи.
https://t.me/BugOrDefects
Тікет:
📝 "Додати обмеження на кількість символів"
І все. Без макетів.
Без уточнень.
Без прикладів.
Ти такий:
"Ну, стандарт же — 255. Зроблю, перевірю, полетів далі."
А потім...
🚨 На проді обрубало все після 32 символів.
Клієнт в паніці, фідбек летить градом, баг репорт — прямо в серце.
💡 Мораль історії:
Ніколи не покладайся на “інтуїцію”.
Те, що здається очевидним — зазвичай, ні для кого не очевидне.
Питай. Уточнюй. Фіксуй. І ще раз уточнюй. 😄
📲 Буду вдячний за репост Групи.
https://t.me/BugOrDefects
Telegram
Bug or Defect?
Welcome to Bug or Defect?
youtube - https://www.youtube.com/@BugOrDefect
instagram - https://www.instagram.com/bugordefect_life?igsh=MTFlYzZyMncwZWd4eQ==
youtube - https://www.youtube.com/@BugOrDefect
instagram - https://www.instagram.com/bugordefect_life?igsh=MTFlYzZyMncwZWd4eQ==
❤6🆒1
Обідній скролінг не минув дарма: натрапив на мега добірку по security — ділюсь!
Хочете розпочати проводити тестування безпеки? Ось гайд
- OWASP Mobile Security Testing Guide – посібник від OWASP з тестування мобільних застосунків.
- OWASP Web Security Testing Guide – посібник від OWASP з тестування веб-застосунків.
- HowToHunt – туторіал і рекомендації щодо пошуку вразливостей.
- Pentest Book – корисна база знань із пентесту, сценаріїв проникнення та багато іншого.
- HackTricks – база знань CTF-гравця, де він ділиться хакерськими прийомами, техніками та всім, що дізнався на CTF, а також останніми дослідженнями та новинами.
- NIST SP 800-115 – керівництво від NIST із методологій тестування безпеки та проведення пентестів.
- Red Team Field Manual (RTFM) – кишенькова книга з корисними командами та техніками для Red Team і пентестерів.
- MITRE ATT&CK – база даних тактик, технік і процедур (TTPs), які використовуються в реальних атаках.
Хочете розпочати проводити тестування безпеки? Ось гайд
- OWASP Mobile Security Testing Guide – посібник від OWASP з тестування мобільних застосунків.
- OWASP Web Security Testing Guide – посібник від OWASP з тестування веб-застосунків.
- HowToHunt – туторіал і рекомендації щодо пошуку вразливостей.
- Pentest Book – корисна база знань із пентесту, сценаріїв проникнення та багато іншого.
- HackTricks – база знань CTF-гравця, де він ділиться хакерськими прийомами, техніками та всім, що дізнався на CTF, а також останніми дослідженнями та новинами.
- NIST SP 800-115 – керівництво від NIST із методологій тестування безпеки та проведення пентестів.
- Red Team Field Manual (RTFM) – кишенькова книга з корисними командами та техніками для Red Team і пентестерів.
- MITRE ATT&CK – база даних тактик, технік і процедур (TTPs), які використовуються в реальних атаках.
owasp.org
OWASP Mobile Application Security | OWASP Foundation
The OWASP Mobile Application Security (MAS) project consists of a series of documents that establish a security and privacy standard for mobile apps and a comprehensive testing guide that covers the processes, techniques, and tools used during a mobile application…
🔥5👍2🆒1
🕵️ QA-історія: “Таймаут — це не завжди про порт”
Недавно мав кейс, коли один сервер (назвемо його Сервер А) стукався до іншого (Сервер B) — і на кожну спробу з’єднання ми отримували таймаут.
Ну що ж, класика. Беру термінал, перевіряю.
Ну, думаю:
“Зараз по-швидкому telnet, curl, nc, і все злетить”.
Але щось пішло не так. 🙃
📍 Перші кроки перевірки:
🔸 Перевіряю з’єднання з A до B:
— конект є.
🔸 Далі:
— з’єднання успішне.
🔸 curl:
— зависає. Потім: Connection timed out.
❗️Це вже цікаво. Значить — дістатися можемо, але відповіді немає.
📍 Діагностика:
✅ Перевіряю з боку B:
— сервіс слухає порт.
✅ Перевіряю журнал логів на B — видно, що запити доходять і відповіді відправляються.
✅ На B пускаю tcpdump:
— видно пакети на вхід і на вихід.
📍 А тепер магія Wireshark:
На Сервері A запускаю tcpdump:
— відкриваю .pcap у Wireshark, і там видно тільки SYN → SYN-ACK → ACK → [DATA] → …
І все. Далі — нуль. Відповідь не доходить.
📍 Розгадка:
Після довгих пошуків і залучення інфри, знайшов причину:
🔥 фаєрвол на Сервері A блочив вхідні відповіді, бо вони приходили з іншого регіону (інший діапазон IP).
👉 Тобто:
Сервер A міг ініціювати з’єднання (вихідні пакети дозволені)
Але коли Сервер B відповідав — фаєрвол A це блочив (вхідні пакети з цього регіону були заборонені)
💡 І тому — таймаут.
📍 Команди, що реально допомогли:
🔹 Перевірити конект:
🔹 Перевірити маршрут:
traceroute server-b
🔹 Подивитись відкриті порти:
🔹 Зняти трафік:
🔹 Аналіз трафіку у Wireshark
📍 Мораль QA-історії: Іноді конект не гарантує, що все працює.
🧠 Не зупиняйся на “telnet працює” — йди глибше.
Бо фаєрвол може сказати:
🔒 “Виходити можна. А от повертатись — ні.”
📲 Буду вдячний за репост Групи.
https://t.me/BugOrDefects
Недавно мав кейс, коли один сервер (назвемо його Сервер А) стукався до іншого (Сервер B) — і на кожну спробу з’єднання ми отримували таймаут.
Ну що ж, класика. Беру термінал, перевіряю.
Ну, думаю:
“Зараз по-швидкому telnet, curl, nc, і все злетить”.
Але щось пішло не так. 🙃
📍 Перші кроки перевірки:
🔸 Перевіряю з’єднання з A до B:
telnet server-b 8080
— конект є.
🔸 Далі:
nc -vz server-b 8080
— з’єднання успішне.
🔸 curl:
curl -v http://server-b:8080/ping
— зависає. Потім: Connection timed out.
❗️Це вже цікаво. Значить — дістатися можемо, але відповіді немає.
📍 Діагностика:
✅ Перевіряю з боку B:
sudo netstat -tulnp | grep 8080
— сервіс слухає порт.
✅ Перевіряю журнал логів на B — видно, що запити доходять і відповіді відправляються.
✅ На B пускаю tcpdump:
sudo tcpdump -i eth0 port 8080
— видно пакети на вхід і на вихід.
📍 А тепер магія Wireshark:
На Сервері A запускаю tcpdump:
sudo tcpdump -i eth0 host server-b and port 8080 -w trace.pcap
— відкриваю .pcap у Wireshark, і там видно тільки SYN → SYN-ACK → ACK → [DATA] → …
І все. Далі — нуль. Відповідь не доходить.
📍 Розгадка:
Після довгих пошуків і залучення інфри, знайшов причину:
🔥 фаєрвол на Сервері A блочив вхідні відповіді, бо вони приходили з іншого регіону (інший діапазон IP).
👉 Тобто:
Сервер A міг ініціювати з’єднання (вихідні пакети дозволені)
Але коли Сервер B відповідав — фаєрвол A це блочив (вхідні пакети з цього регіону були заборонені)
💡 І тому — таймаут.
📍 Команди, що реально допомогли:
🔹 Перевірити конект:
nc -vz server-b 8080
telnet server-b 8080
🔹 Перевірити маршрут:
traceroute server-b
🔹 Подивитись відкриті порти:
sudo netstat -tulnp
🔹 Зняти трафік:
sudo tcpdump -i eth0 host server-b -w trace.pcap
🔹 Аналіз трафіку у Wireshark
📍 Мораль QA-історії: Іноді конект не гарантує, що все працює.
🧠 Не зупиняйся на “telnet працює” — йди глибше.
Бо фаєрвол може сказати:
🔒 “Виходити можна. А от повертатись — ні.”
📲 Буду вдячний за репост Групи.
https://t.me/BugOrDefects
Telegram
Bug or Defect?
Welcome to Bug or Defect?
youtube - https://www.youtube.com/@BugOrDefect
instagram - https://www.instagram.com/bugordefect_life?igsh=MTFlYzZyMncwZWd4eQ==
youtube - https://www.youtube.com/@BugOrDefect
instagram - https://www.instagram.com/bugordefect_life?igsh=MTFlYzZyMncwZWd4eQ==
👍6❤1🆒1
Ранкові історії QA #2: “П’ятничний реліз”
PM:
— Та нічого складного, дрібне оновлення. Зробимо сьогодні.
Dev:
— Там одна стрічка коду, пофіксили.
А ти запускаєш smoke — і бачиш, як “дрібне оновлення” знесло пів застосунку.
І ти розумієш:
в QA не буває “дрібного оновлення”, особливо в п’ятницю.
📲 Буду вдячний за репост Групи.
https://t.me/BugOrDefects
PM:
— Та нічого складного, дрібне оновлення. Зробимо сьогодні.
Dev:
— Там одна стрічка коду, пофіксили.
А ти запускаєш smoke — і бачиш, як “дрібне оновлення” знесло пів застосунку.
І ти розумієш:
в QA не буває “дрібного оновлення”, особливо в п’ятницю.
📲 Буду вдячний за репост Групи.
https://t.me/BugOrDefects
Telegram
Bug or Defect?
Welcome to Bug or Defect?
youtube - https://www.youtube.com/@BugOrDefect
instagram - https://www.instagram.com/bugordefect_life?igsh=MTFlYzZyMncwZWd4eQ==
youtube - https://www.youtube.com/@BugOrDefect
instagram - https://www.instagram.com/bugordefect_life?igsh=MTFlYzZyMncwZWd4eQ==
😁8😱2🥴2💔1🆒1
🎯 "Як набратись досвіду, якщо роботи в QA ще нема?"
Це питання мені за цей тиждень написали в особисті кілька людей. Прямо:
"Я вчуся на курсах, практикуюсь, але як почати?"
"Де брати реальні таски, якщо ще не працевлаштований?"
І я такий:
Окей, настав час розповісти.
📍 uTest і TestIO — дві платформи, з яких я сам починав.
Причому я ще був на другому місяці курсів, а вже фрілансив і мав "Практичний" досвід.
🔹 На TestIO я тестував мобільні апки, вебсайти, фічі для логінів, баги ловив — і реально заробляв.
Перші виплати — чистий кайф. Плюс англійська в дії, UI — як на долоні, і вчишся писати багрепорти, які не соромно в портфоліо.
🔹 На uTest теж круто: там багато exploratory тестування, юзерські сценарії, де треба думати як end-user, а не просто тицяти.
💬 Ці платформи — це не просто “погратись”. Це:
✔️ Практика в реальних проектах
✔️ Можливість бачити, як пишуть баги інші
✔️ Робота з інтернаціональною QA-спільнотою
✔️ І головне — досвід, який можна писати в CV вже зараз
💡 Мораль:
Якщо роботи поки нема — досвід все одно можна здобути.
І повір: навіть кілька місяців на TestIO/uTest дають більше, ніж чекати першу вакансію на дивані.
📲 Буду вдячний за репост Групи.
https://t.me/BugOrDefects
Це питання мені за цей тиждень написали в особисті кілька людей. Прямо:
"Я вчуся на курсах, практикуюсь, але як почати?"
"Де брати реальні таски, якщо ще не працевлаштований?"
І я такий:
Окей, настав час розповісти.
📍 uTest і TestIO — дві платформи, з яких я сам починав.
Причому я ще був на другому місяці курсів, а вже фрілансив і мав "Практичний" досвід.
🔹 На TestIO я тестував мобільні апки, вебсайти, фічі для логінів, баги ловив — і реально заробляв.
Перші виплати — чистий кайф. Плюс англійська в дії, UI — як на долоні, і вчишся писати багрепорти, які не соромно в портфоліо.
🔹 На uTest теж круто: там багато exploratory тестування, юзерські сценарії, де треба думати як end-user, а не просто тицяти.
💬 Ці платформи — це не просто “погратись”. Це:
✔️ Практика в реальних проектах
✔️ Можливість бачити, як пишуть баги інші
✔️ Робота з інтернаціональною QA-спільнотою
✔️ І головне — досвід, який можна писати в CV вже зараз
💡 Мораль:
Якщо роботи поки нема — досвід все одно можна здобути.
І повір: навіть кілька місяців на TestIO/uTest дають більше, ніж чекати першу вакансію на дивані.
📲 Буду вдячний за репост Групи.
https://t.me/BugOrDefects
Telegram
Bug or Defect?
Welcome to Bug or Defect?
youtube - https://www.youtube.com/@BugOrDefect
instagram - https://www.instagram.com/bugordefect_life?igsh=MTFlYzZyMncwZWd4eQ==
youtube - https://www.youtube.com/@BugOrDefect
instagram - https://www.instagram.com/bugordefect_life?igsh=MTFlYzZyMncwZWd4eQ==
❤7
Рубрика "Завдання дня" для QA
Що важливо перевіряти при тестуванні API?
Що важливо перевіряти при тестуванні API?
Anonymous Quiz
0%
A) Тільки статус-код
85%
B) Статус-код, заголовки і тіло відповіді
3%
C) Тільки тіло відповіді
11%
D) Статус-код і заголовки, тіло не завжди обов’язкове
🤓5
🛠 5 прикольних фішок Postman, які реально спрощують життя QA-шника
Я часто чую: «Postman — це просто для ручного ганяння API». Але насправді він набагато глибший. Якщо ти мануальний QA і працюєш з API, ось 5 речей у Postman, які я використовую майже щодня і які варто знати:
1️⃣ Змінні середовища (Environment variables)
Коли ти тестиш на кількох енвах — dev, staging, prod — забивати руками URL або токени кожного разу = біль.
В Postman можна створити середовище і підставляти змінні типу
або
Ідеально, коли треба швидко перемкнутись з одного енву на інший — 2 кліки і готово.
2️⃣ Pre-request scripts — автоматизація до того, як піде запит
Наприклад, треба згенерити унікальний email або зберегти токен перед наступним запитом?
Postman дозволяє запускати JS-скрипти до запиту.
Я, наприклад, часто юзаю:
Потім просто вставляю
у body.
3️⃣ Collection Runner — для масових прогонів
Не хочеш клікати вручну по 10+ запитах? Запускай колекцію одразу.
Плюс — можна підвантажити CSV/JSON з різними параметрами й перевірити, як API поводиться з різними даними.
4️⃣ Автотест у вкладці Tests (так, Postman — це ще й маленький тест-фреймворк)
Postman дозволяє писати невеликі перевірки прямо у кожному запиті:
Я так часто перевіряю не лише статус, а й тіло відповіді або специфічні поля. Це не повна автоматизація, але вже щось.
5️⃣ Newman — якщо треба запускати все з терміналу або CI/CD
Newman — це CLI-версія Postman. Завантажив колекцію, і можеш запускати її хоч у Jenkins, хоч з терміналу.
Коли хочеться напівавтоматизувати smoke-тест — ідеально.
Це все прості штуки, але якщо почати ними користуватись — ручне тестування API стає на рівень вище.
📲 Буду вдячний за репост Групи.
https://t.me/BugOrDefects
Я часто чую: «Postman — це просто для ручного ганяння API». Але насправді він набагато глибший. Якщо ти мануальний QA і працюєш з API, ось 5 речей у Postman, які я використовую майже щодня і які варто знати:
1️⃣ Змінні середовища (Environment variables)
Коли ти тестиш на кількох енвах — dev, staging, prod — забивати руками URL або токени кожного разу = біль.
В Postman можна створити середовище і підставляти змінні типу
{{baseUrl}}або
{{authToken}}.Ідеально, коли треба швидко перемкнутись з одного енву на інший — 2 кліки і готово.
2️⃣ Pre-request scripts — автоматизація до того, як піде запит
Наприклад, треба згенерити унікальний email або зберегти токен перед наступним запитом?
Postman дозволяє запускати JS-скрипти до запиту.
Я, наприклад, часто юзаю:
pm.environment.set("email", user_${Date.now()}@test.com);Потім просто вставляю
{{email}} у body.
3️⃣ Collection Runner — для масових прогонів
Не хочеш клікати вручну по 10+ запитах? Запускай колекцію одразу.
Плюс — можна підвантажити CSV/JSON з різними параметрами й перевірити, як API поводиться з різними даними.
4️⃣ Автотест у вкладці Tests (так, Postman — це ще й маленький тест-фреймворк)
Postman дозволяє писати невеликі перевірки прямо у кожному запиті:
pm.test("Status code is 200", () => {
pm.response.to.have.status(200);
});Я так часто перевіряю не лише статус, а й тіло відповіді або специфічні поля. Це не повна автоматизація, але вже щось.
5️⃣ Newman — якщо треба запускати все з терміналу або CI/CD
Newman — це CLI-версія Postman. Завантажив колекцію, і можеш запускати її хоч у Jenkins, хоч з терміналу.
Коли хочеться напівавтоматизувати smoke-тест — ідеально.
Це все прості штуки, але якщо почати ними користуватись — ручне тестування API стає на рівень вище.
📲 Буду вдячний за репост Групи.
https://t.me/BugOrDefects
Telegram
Bug or Defect?
Welcome to Bug or Defect?
youtube - https://www.youtube.com/@BugOrDefect
instagram - https://www.instagram.com/bugordefect_life?igsh=MTFlYzZyMncwZWd4eQ==
youtube - https://www.youtube.com/@BugOrDefect
instagram - https://www.instagram.com/bugordefect_life?igsh=MTFlYzZyMncwZWd4eQ==
🔥5
П’ятниця. Вечір
Всі нормальні люди — на барі, на дивані або вже в сні.
А ти — QA.
Лягаєш спати після важкого тижня, і тут…
БАМ! — в голову прилітає думка:
“А якщо той тікет не репродюситься, бо дані летять не туди? Або тому що timezone не співпав?..”
Вставати не можна. Але спокою вже немає.
Бо мозок — це ще той Jenkins:
пуш — трігер — білд думок — без таймауту.
Вам таке знайоме? Відчути той дзен на п’ятничній ночі і в той же час — тиск думок про баги?
Всім гарного вечора і вихідних
Всі нормальні люди — на барі, на дивані або вже в сні.
А ти — QA.
Лягаєш спати після важкого тижня, і тут…
БАМ! — в голову прилітає думка:
“А якщо той тікет не репродюситься, бо дані летять не туди? Або тому що timezone не співпав?..”
Вставати не можна. Але спокою вже немає.
Бо мозок — це ще той Jenkins:
пуш — трігер — білд думок — без таймауту.
Вам таке знайоме? Відчути той дзен на п’ятничній ночі і в той же час — тиск думок про баги?
Всім гарного вечора і вихідних
❤8💔2
Ранкові історії QA #3: "Субота для QA"
Плани:
☕️ Спокійно випити каву.
🛋 Полежати без думок про баги.
📖 Можливо, почитати щось для душі.
Реальність:
Замовляєш латте через додаток.
Отримуєш американо.
Починаєш тестувати апку доставки:
- Чи правильна передача параметрів?
- Чи не переплутані поля у базі?
- Чи не відвалився десь маппінг кавових типів?..
QA mode: активовано автоматично.
Навіть у суботу. Навіть за кавою.
Мораль:
Ти можеш вийти у вихідний, але вихідний з QA — ні.
📲 Буду вдячний за репост Групи.
https://t.me/BugOrDefects
Плани:
☕️ Спокійно випити каву.
🛋 Полежати без думок про баги.
📖 Можливо, почитати щось для душі.
Реальність:
Замовляєш латте через додаток.
Отримуєш американо.
Починаєш тестувати апку доставки:
- Чи правильна передача параметрів?
- Чи не переплутані поля у базі?
- Чи не відвалився десь маппінг кавових типів?..
QA mode: активовано автоматично.
Навіть у суботу. Навіть за кавою.
Мораль:
Ти можеш вийти у вихідний, але вихідний з QA — ні.
📲 Буду вдячний за репост Групи.
https://t.me/BugOrDefects
Telegram
Bug or Defect?
Welcome to Bug or Defect?
youtube - https://www.youtube.com/@BugOrDefect
instagram - https://www.instagram.com/bugordefect_life?igsh=MTFlYzZyMncwZWd4eQ==
youtube - https://www.youtube.com/@BugOrDefect
instagram - https://www.instagram.com/bugordefect_life?igsh=MTFlYzZyMncwZWd4eQ==
🤣5🥴3🍓1
Bug or Defect? pinned «Рубрика "Завдання дня" для QA
Що важливо перевіряти при тестуванні API?»
Що важливо перевіряти при тестуванні API?»
Рубрика "Завдання дня" для QA
Який HTTP-статус код зазвичай повертається при успішному створенні ресурсу через API?
Який HTTP-статус код зазвичай повертається при успішному створенні ресурсу через API?
Anonymous Quiz
24%
A) 200 OK
71%
B) 201 Created
0%
C) 204 No Content
5%
D) 202 Accepted
Рубрика "Завдання дня" для QA
Питання: Що обов'язково потрібно перевірити при натисканні кнопки "Додати", яка підключена до REST API?
Питання: Що обов'язково потрібно перевірити при натисканні кнопки "Додати", яка підключена до REST API?
Anonymous Quiz
14%
A) Чи відправився правильний REST-запит (Add) і отримано коректну відповідь
9%
B) Чи з'явився запис у базі даних після натискання
77%
C) І перше, і друге
❤3
Всім привіт - для вас 15 потужних безкоштовних інструментів для QA 🚀
🔹 Playwright (США)
Швидке кросбраузерне E2E-тестування. Підтримує Chrome, Firefox, Safari. Ідеально для UI-тестів і інтеграції у CI/CD пайплайни.
🔹 Selenium (США)
Легенда автоматизації. Підтримка багатьох мов (Java, Python, C#, JS), тестування у реальних браузерах та хмарних сервісах.
🔹 Cypress (США)
Інтуїтивний JavaScript-фреймворк для тестування вебдодатків. Пише тести прямо у браузері, швидкий рантайм і стабільність.
🔹 Katalon Studio (Community Edition) (США)
Готовий набір для автоматизації веб, API та мобільного тестування. Мінімум налаштувань — максимум можливостей.
🔹 TestProject (Ізраїль)
Платформа для запису і запуску автоматичних тестів без коду. Інтеграція із CI/CD, спільнота плагінів, хмарне збереження.
🔹 Appium (США)
Кросплатформне тестування мобільних додатків для iOS та Android. Підтримує нативні, гібридні та вебдодатки.
🔹 JMeter (США)
Класика для навантажувального тестування. Створення сценаріїв тестування вебсайтів, API, баз даних та серверів.
🔹 Rest Assured (Швеція)
Фреймворк на Java для легкого тестування REST API. Простий синтаксис для складних сценаріїв перевірки запитів і відповідей.
🔹 Postman CLI & Collection Runner (США)
Потужний інструмент для тестування API. Дозволяє запускати тести через термінал, інтегрувати в CI/CD та автоматизувати регресію.
🔹 Robot Framework (Фінляндія)
Фреймворк із ключовими словами для автоматизації тестування. Підходить для Acceptance Testing, API, UI, DevOps задач.
🔹 Gauge (США)
Тести у форматі Markdown. Легке налаштування, підтримка мультиплатформності та чудова читабельність тест-кейсів.
🔹 Taiko (США)
Сучасний інструмент для стабільного браузерного тестування. Мінімум флейків, прості API для інтеграції з CI/CD.
🔹 Pact (Австралія)
Контрактне тестування для мікросервісів і API. Перевірка сумісності сервісів до релізу — мінімізація багів у продакшені.
🔹 TestNG (США)
Потужний тестовий фреймворк для Java. Підтримує параметризацію тестів, групування, паралельне виконання та гнучкі репорти.
🔹 ZAP (OWASP) (США)
Інструмент для сканування вразливостей у вебдодатках. Автоматичні перевірки безпеки, інтеграція у пайплайни DevSecOps.
Всі інструменти open-source і доступні для вільного використання!
📲 Буду вдячний за репост Групи.
https://t.me/BugOrDefects
🔹 Playwright (США)
Швидке кросбраузерне E2E-тестування. Підтримує Chrome, Firefox, Safari. Ідеально для UI-тестів і інтеграції у CI/CD пайплайни.
🔹 Selenium (США)
Легенда автоматизації. Підтримка багатьох мов (Java, Python, C#, JS), тестування у реальних браузерах та хмарних сервісах.
🔹 Cypress (США)
Інтуїтивний JavaScript-фреймворк для тестування вебдодатків. Пише тести прямо у браузері, швидкий рантайм і стабільність.
🔹 Katalon Studio (Community Edition) (США)
Готовий набір для автоматизації веб, API та мобільного тестування. Мінімум налаштувань — максимум можливостей.
🔹 TestProject (Ізраїль)
Платформа для запису і запуску автоматичних тестів без коду. Інтеграція із CI/CD, спільнота плагінів, хмарне збереження.
🔹 Appium (США)
Кросплатформне тестування мобільних додатків для iOS та Android. Підтримує нативні, гібридні та вебдодатки.
🔹 JMeter (США)
Класика для навантажувального тестування. Створення сценаріїв тестування вебсайтів, API, баз даних та серверів.
🔹 Rest Assured (Швеція)
Фреймворк на Java для легкого тестування REST API. Простий синтаксис для складних сценаріїв перевірки запитів і відповідей.
🔹 Postman CLI & Collection Runner (США)
Потужний інструмент для тестування API. Дозволяє запускати тести через термінал, інтегрувати в CI/CD та автоматизувати регресію.
🔹 Robot Framework (Фінляндія)
Фреймворк із ключовими словами для автоматизації тестування. Підходить для Acceptance Testing, API, UI, DevOps задач.
🔹 Gauge (США)
Тести у форматі Markdown. Легке налаштування, підтримка мультиплатформності та чудова читабельність тест-кейсів.
🔹 Taiko (США)
Сучасний інструмент для стабільного браузерного тестування. Мінімум флейків, прості API для інтеграції з CI/CD.
🔹 Pact (Австралія)
Контрактне тестування для мікросервісів і API. Перевірка сумісності сервісів до релізу — мінімізація багів у продакшені.
🔹 TestNG (США)
Потужний тестовий фреймворк для Java. Підтримує параметризацію тестів, групування, паралельне виконання та гнучкі репорти.
🔹 ZAP (OWASP) (США)
Інструмент для сканування вразливостей у вебдодатках. Автоматичні перевірки безпеки, інтеграція у пайплайни DevSecOps.
Всі інструменти open-source і доступні для вільного використання!
📲 Буду вдячний за репост Групи.
https://t.me/BugOrDefects
Telegram
Bug or Defect?
Welcome to Bug or Defect?
youtube - https://www.youtube.com/@BugOrDefect
instagram - https://www.instagram.com/bugordefect_life?igsh=MTFlYzZyMncwZWd4eQ==
youtube - https://www.youtube.com/@BugOrDefect
instagram - https://www.instagram.com/bugordefect_life?igsh=MTFlYzZyMncwZWd4eQ==
👍7😎2❤1
Ранкові історії QA #4: “Недільний релакс”
Прокидаєшся в неділю з думкою:
"Сьогодні тільки Family, кава і абсолютний чіл."
Але доля така:
Ти не просто QA Team Lead. Ти ще й ментор.
І вчора ввечері тобі прилетіло 10 000 домашок на перевірку.
Кава в руку, ноутбук на коліна, режим "Let's goooo!" увімкнено.
Чіл відкладається. Починається QA-марафон.
Мораль:
У нас немає вихідних. Є просто інша форма баг-трекінгу. 😄
📲 Буду вдячний за репост Групи.
https://t.me/BugOrDefects
Прокидаєшся в неділю з думкою:
"Сьогодні тільки Family, кава і абсолютний чіл."
Але доля така:
Ти не просто QA Team Lead. Ти ще й ментор.
І вчора ввечері тобі прилетіло 10 000 домашок на перевірку.
Кава в руку, ноутбук на коліна, режим "Let's goooo!" увімкнено.
Чіл відкладається. Починається QA-марафон.
Мораль:
У нас немає вихідних. Є просто інша форма баг-трекінгу. 😄
📲 Буду вдячний за репост Групи.
https://t.me/BugOrDefects
Telegram
Bug or Defect?
Welcome to Bug or Defect?
youtube - https://www.youtube.com/@BugOrDefect
instagram - https://www.instagram.com/bugordefect_life?igsh=MTFlYzZyMncwZWd4eQ==
youtube - https://www.youtube.com/@BugOrDefect
instagram - https://www.instagram.com/bugordefect_life?igsh=MTFlYzZyMncwZWd4eQ==
🤓8❤2
Рубрика "Завдання дня" для QA
Питання: Який технічний прийом тест-дизайну базується на перевірці значень на межах допустимих діапазонів?
Питання: Який технічний прийом тест-дизайну базується на перевірці значень на межах допустимих діапазонів?
Anonymous Quiz
0%
A) Аналіз причинно-наслідкових зв'язків
92%
B) Граничні значення (Boundary Value Analysis)
8%
C) Еквівалентне розбиття (Equivalence Partitioning)
0%
D) Попарне тестування (Pairwise Testing)
❤7
Рубрика "Завдання дня" для QA
Питання: Користувач додає товар у кошик через форму. Дані у базу записуються правильно, але при повторному відкритті кошика — він порожній. Що варто зробити в першу чергу?
Питання: Користувач додає товар у кошик через форму. Дані у базу записуються правильно, але при повторному відкритті кошика — він порожній. Що варто зробити в першу чергу?
Anonymous Quiz
4%
A) Спробувати додати товар ще раз
9%
B) Оновити сторінку
22%
C) Перевірити, чи вірно записався товар у потрібну таблицю в БД
64%
D) Перевірити GET-запит, який отримує дані кошика, і впевнитися, що відповідь коректна
❤6🤔3
🛠 Вечірня історія з технічним присмаком: Вебсокети і магія ping/pong
Короче, сьогодні сидів, перевіряв домашки і мене різко вилогінює з системи. Я такий: "Опа, що це було?". Тільки ж сьогодні логінився, токен мав би жити довше, тим більше я активно клікав по LMS.
И тут я згадав для вас реальну історію, якою хотів би Поділитися)
Тестували ми тоді новий функціонал авторизації.
Я зайшов тестовим юзером, роблю собі завдання, все норм. Відволікся на іншу вкладку, через кілька хвилин повертаюсь — юзера викинуло в логаут. Думаю: "Може я сам випадково натиснув щось?.."
Працюємо далі. Знову логінюся, клікаю туди-сюди — повертаюсь на вкладку... і знову вилогін. Тут вже явно щось не так подумав я.
Почав розбиратися. Поліз у логи. Бачу чіткий Logout Event від сервера. Тобто мене не фронт розлогінює — сервер сам присилає команду на вигнання, цікаво 👀
Тоді я поліз у логи сервера — шукав всі події по моєму sessionID. Там явно видно:
Session expired due to inactivity.
Sent logout event to client.
Але сесія ж була активна... ну, або мала бути. 🤔
Відкрив devtools → вкладку Network → фільтр WebSocket → і почав слідкувати, що відбувається.
Після копання стало ясно:
Фронт мав періодично слати ping серверу через WebSocket, щоби підтверджувати "я тут". А насправді клієнт мовчав, і через 90 секунд сервер вирішував: "Та його вже нема" — і автоматично сесію закривав.
Мораль історії:
🧠Іноді причина проблеми глибше, ніж здається на перший погляд. Не вистачає просто подивитись на куки чи токени — треба копати до рівня WebSocket протоколу і реально ловити трафік! Та Дивитися як поводить себе транспортний рівень — особливо, коли працюєш з WebSocket'ами.
я даже знайшов всій старий скрипт по Python який писав коли ще було цікаво погратися з WebSocket та набити руку по коду - я його чутка підправив і залишу вам, може кому буде цікаво подивитися
🛠 Чому цей скрипт бійсно корисний)
Працює на будь-якому WebSocket сервері (wss і ws підтримка)
Має окремий обробник pong відповідей
Показує реальні помилки, якщо сервер не відповідає
Дає змогу швидко діагностувати проблеми з heartbeat (пінг-понг механізмом
📲 Буду вдячний за репост Групи.
https://t.me/BugOrDefects
Короче, сьогодні сидів, перевіряв домашки і мене різко вилогінює з системи. Я такий: "Опа, що це було?". Тільки ж сьогодні логінився, токен мав би жити довше, тим більше я активно клікав по LMS.
И тут я згадав для вас реальну історію, якою хотів би Поділитися)
Тестували ми тоді новий функціонал авторизації.
Я зайшов тестовим юзером, роблю собі завдання, все норм. Відволікся на іншу вкладку, через кілька хвилин повертаюсь — юзера викинуло в логаут. Думаю: "Може я сам випадково натиснув щось?.."
Працюємо далі. Знову логінюся, клікаю туди-сюди — повертаюсь на вкладку... і знову вилогін. Тут вже явно щось не так подумав я.
Почав розбиратися. Поліз у логи. Бачу чіткий Logout Event від сервера. Тобто мене не фронт розлогінює — сервер сам присилає команду на вигнання, цікаво 👀
Тоді я поліз у логи сервера — шукав всі події по моєму sessionID. Там явно видно:
Session expired due to inactivity.
Sent logout event to client.
Але сесія ж була активна... ну, або мала бути. 🤔
Відкрив devtools → вкладку Network → фільтр WebSocket → і почав слідкувати, що відбувається.
Після копання стало ясно:
Фронт мав періодично слати ping серверу через WebSocket, щоби підтверджувати "я тут". А насправді клієнт мовчав, і через 90 секунд сервер вирішував: "Та його вже нема" — і автоматично сесію закривав.
Мораль історії:
🧠Іноді причина проблеми глибше, ніж здається на перший погляд. Не вистачає просто подивитись на куки чи токени — треба копати до рівня WebSocket протоколу і реально ловити трафік! Та Дивитися як поводить себе транспортний рівень — особливо, коли працюєш з WebSocket'ами.
я даже знайшов всій старий скрипт по Python який писав коли ще було цікаво погратися з WebSocket та набити руку по коду - я його чутка підправив і залишу вам, може кому буде цікаво подивитися
import websocket
import threading
import time
WS_URL = "wss://echo.websocket.org" # заміни на свій WebSocket URL
PING_INTERVAL = 30
def on_open(ws):
print("[OPEN] Connection established")
def send_ping():
while True:
print("[PING] Sending ping to server...")
try:
ws.send(
"ping"
)
except Exception as e:
print("[ERROR] Error while sending ping:", e)
break
time.sleep(PING_INTERVAL)
threading.Thread(target=send_ping).start()
def on_message(ws, message):
print(f"[MESSAGE] Message received: {message}")
def on_pong(ws, message):
print(f"[PONG] Pong response from server: {message}")
def on_error(ws, error):
print(f"[ERROR] Connection error: {error}")
def on_close(ws, close_status_code, close_msg):
print(f"[CLOSE] Connection closed. Code: {close_status_code}, Message: {close_msg}")
ws = websocket.WebSocketApp(
WS_URL,
on_open=on_open,
on_message=on_message,
on_error=on_error,
on_close=on_close,
on_pong=on_pong,
)
print("[INFO] Starting WebSocket client...")
ws.run_forever(ping_interval=PING_INTERVAL, ping_timeout=10)
🛠 Чому цей скрипт бійсно корисний)
Працює на будь-якому WebSocket сервері (wss і ws підтримка)
Має окремий обробник pong відповідей
Показує реальні помилки, якщо сервер не відповідає
Дає змогу швидко діагностувати проблеми з heartbeat (пінг-понг механізмом
📲 Буду вдячний за репост Групи.
https://t.me/BugOrDefects
Telegram
Bug or Defect?
Welcome to Bug or Defect?
youtube - https://www.youtube.com/@BugOrDefect
instagram - https://www.instagram.com/bugordefect_life?igsh=MTFlYzZyMncwZWd4eQ==
youtube - https://www.youtube.com/@BugOrDefect
instagram - https://www.instagram.com/bugordefect_life?igsh=MTFlYzZyMncwZWd4eQ==
❤5👍1😎1