Всім доброго раночку 👋👋👋
Сьогодні без історій. Просто день.
Такий собі — як понеділок, але без понеділка.
Все працює, задачі клікаються, прод дихає рівно.
І наче можна просто спокійно… жити?
Але є привід для теплоти.
Вчора був дуже душевний день — один з моїх учнів отримав офер!
Ми до цього дійшли, і от — все склалось.
Це завжди трошки як баг, що став фічею.
Нехай у вас сьогодні буде тихо, стабільно й з хорошим вайбом.
А якщо щось бахне — ну, розберемось. Ми ж QA.
Сьогодні без історій. Просто день.
Такий собі — як понеділок, але без понеділка.
Все працює, задачі клікаються, прод дихає рівно.
І наче можна просто спокійно… жити?
Але є привід для теплоти.
Вчора був дуже душевний день — один з моїх учнів отримав офер!
Ми до цього дійшли, і от — все склалось.
Це завжди трошки як баг, що став фічею.
Нехай у вас сьогодні буде тихо, стабільно й з хорошим вайбом.
А якщо щось бахне — ну, розберемось. Ми ж QA.
❤19👍8🔥3
🧪 Завдання дня для QA
Чучуть теоріі)) Питання: Що з наступного є основною метою тестування продуктивності?
Чучуть теоріі)) Питання: Що з наступного є основною метою тестування продуктивності?
Anonymous Quiz
39%
(A) Перевірка швидкості запуску додатка та його реакції на запити.
55%
(B) Перевірка стабільності системи під високим навантаженням, зокрема при пікових значеннях трафіку.
5%
(C) Перевірка точності результатів, що виводяться додатком під час роботи.
1%
(D) Перевірка сумісності додатка з різними версіями операційних систем.
❤8🤯6🔥1
Bug or Defect?
🧪 Завдання дня для QA
Чучуть теоріі)) Питання: Що з наступного є основною метою тестування продуктивності?
Чучуть теоріі)) Питання: Що з наступного є основною метою тестування продуктивності?
До теми з ранкового пула про перформанс!
Якщо цікаво копнути глибше — рекомендую блог BlazeMeter.
BlazeMeter Blog — це як технічний Medium для тестувальників:
— чеклісти з performance для API (реально зручно)
— кейси типу "як ми тестували мікросервіси на проді і не згоріли"
— інтеграції з JMeter, Jenkins і навіть Postman'ом
— і головне — читається просто, а не як документація до космічного шатлу
Ловіть посилання — https://www.blazemeter.com/blog
Зберігай у шпаргалку, поки не встигли сховати за пейвол 😅
І якщо знайдеш там перлину — кидай у коменти, шоб ми теж подивились.
Напишіть в коментарі знали по такий?
Буду вдячний за репост групи
https://t.me/BugOrDefects
Якщо цікаво копнути глибше — рекомендую блог BlazeMeter.
BlazeMeter Blog — це як технічний Medium для тестувальників:
— чеклісти з performance для API (реально зручно)
— кейси типу "як ми тестували мікросервіси на проді і не згоріли"
— інтеграції з JMeter, Jenkins і навіть Postman'ом
— і головне — читається просто, а не як документація до космічного шатлу
Ловіть посилання — https://www.blazemeter.com/blog
Зберігай у шпаргалку, поки не встигли сховати за пейвол 😅
І якщо знайдеш там перлину — кидай у коменти, шоб ми теж подивились.
Напишіть в коментарі знали по такий?
Буду вдячний за репост групи
https://t.me/BugOrDefects
Blazemeter
Blog | Perforce BlazeMeter
Stay ahead in software testing with BlazeMeter's blog—featuring expert insights on performance testing, test automation, AI-driven testing, and best practices for continuous integration and delivery.
🔥18
Доброго ранку - я опять з нудними історіями)
🌞 Ранкова історія QA: REST не завжди “OK”
Робочий день почався… не з кави і кліків по задачках. А з повідомлення в групі
Це не баг. REST повертає 200 OK.
🙃 Тааак, от і весь мій ранок полетів.
Не хотів відкривати повідомлення до кави. Але... щось мене потягнуло. І все — каву відмінили, пішов пояснювати.
Почав із простого
“Те, що REST повертає 200 OK — не значить, що для клієнта все добре.”
Бо якщо в тілі респонсу пусто, або там не ті дані, які потрібні клієнту, то яке ж це “OK”? Для API команда відпрацювала, а для UI — нічого не ясно.
Клієнт очікує масив з item’ами, який має значення, що показувати, які кнопки вмикати, чи взагалі є дані.
А в нас — просто статус без контенту. Ну, дякую.
40 хвилин пояснень, прикладів, зворотних кейсів, і — буде фікс 🙌
REST навчиться відповідати не просто “success”, а ще й інформативно.
Бо ми ж не просто виконуємо запит, ми будуємо діалог між фронтом і беком.
А у вас бувають такі моменти, коли треба пояснювати, що “success” — ще не значить “правильно”?
Гарного всім дня і тримаємось — до вихідних уже ближче 😄
Буду вдячний за репост групи
https://t.me/BugOrDefects
🌞 Ранкова історія QA: REST не завжди “OK”
Робочий день почався… не з кави і кліків по задачках. А з повідомлення в групі
Це не баг. REST повертає 200 OK.
🙃 Тааак, от і весь мій ранок полетів.
Не хотів відкривати повідомлення до кави. Але... щось мене потягнуло. І все — каву відмінили, пішов пояснювати.
Почав із простого
“Те, що REST повертає 200 OK — не значить, що для клієнта все добре.”
Бо якщо в тілі респонсу пусто, або там не ті дані, які потрібні клієнту, то яке ж це “OK”? Для API команда відпрацювала, а для UI — нічого не ясно.
Клієнт очікує масив з item’ами, який має значення, що показувати, які кнопки вмикати, чи взагалі є дані.
А в нас — просто статус без контенту. Ну, дякую.
40 хвилин пояснень, прикладів, зворотних кейсів, і — буде фікс 🙌
REST навчиться відповідати не просто “success”, а ще й інформативно.
Бо ми ж не просто виконуємо запит, ми будуємо діалог між фронтом і беком.
А у вас бувають такі моменти, коли треба пояснювати, що “success” — ще не значить “правильно”?
Гарного всім дня і тримаємось — до вихідних уже ближче 😄
Буду вдячний за репост групи
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==
👍20😁7❤3
😎 Завдання дня для QA.
Тестуєш інтеграцію між сервісами. Один надсилає ось такий JSON.
{ "bonusPoints": null, "active": true } На іншому кінці логіка падає або працює некоректно. Що найімовірніше викликає проблему?
Тестуєш інтеграцію між сервісами. Один надсилає ось такий JSON.
{ "bonusPoints": null, "active": true } На іншому кінці логіка падає або працює некоректно. Що найімовірніше викликає проблему?
Anonymous Quiz
74%
(A) В полі bonusPoints очікується число, а приходить null — тип не збігається
3%
(B) Поле bonusPoints не мало б бути у відповіді взагалі
8%
(C) Сервіс хоче отримати "null" як текст, а не реальний null
15%
(D) Порядок полів у JSON не відповідає схемі — десеріалізація не працює
👍8🔥2
Шпаргалка, що покрилась пилом 😆
Витягуємо з архіву те, що мали б давно памʼятати, але... реальність така, що навіть сеньори інколи лізуть в гугл 👀
Хтось помітив?
Витягуємо з архіву те, що мали б давно памʼятати, але... реальність така, що навіть сеньори інколи лізуть в гугл 👀
Хтось помітив?
1🔥25❤4🌚3
Всім доброго ранку!! 🤗
Ранкові історіі QA - Впевнений шо у вас таке теж було і не раз)
Дайте хоч щось… — сказав дев і зробив твій день присвішений дослідження і збору 1000000 кб логів 🤪🤪🤪
Коли дев каже
А ти бачиш, як на клієнті трансляція йде. Відео програється, спікер говорить, все типу ок. Але dev на стороні серверу каже:
У нас порожньо. Нічого не приходить.
І ти такий
Ну добре…
Тут починається твоя улюблена частина — трасування, sniffing і трохи QA-магії
Бо коли в UI щось відображається, а бекенд ніби нічого не отримує — ти вже знаєш, що це класика.
Клієнт є, сервер є, а трафік — ніби у відпустці.
Сценарій дуже простий як двері
У додатку йде трансляція. Але сервер не бачить ніякого трафіку (відеопотік через UDP).
А дев каже
У нас все чисто. Напевно, на клієнті щось…
І ти такій окей давай ставимо флажки і ловимо пакети
Слухаємо клієнта
Вмикаємо Wireshark (або dumpcap) на клієнтському боці.
або просто
Запускаємо запис, відтворюємо трансляцію, ловимо .pcap.
У дампі бачимо:
Пакети йдуть / payload є / порти вказані правильно
Клієнт — невинний.
ну окай тоді слухаємо сервер
На сервері — tcpdump, бо він не підведе
І… порожньо. Нічого. Нуль.
кей, тоді пробуємо ще фокус
Все ще — тиша. Нема навіть SYN, нема навіть запитів.
Ага! Тут вже цікаво.
так тепер аналізую мережу
Якщо на клієнті видно, а на сервері — нічого, це може бути:
фаєрвол (локальний або міжмережевий)
UDP-зв’язок блокується між сегментами
Неправильна маршрутизація (NAT, VPN, проксі)
Сервер слухає не той інтерфейс або порт
Аналіз в Wireshark
Фільтруємо пакети за:
(якщо це RTSP)
І вже можна точно сказати:
“Ось клієнт відправляє, ось час, ось порт. Але сервер не бачить взагалі.”
Відправляєш dev’у: .pcap + скрін + timestamp
І підпис:
Ось вам всі логи і почті рішення - займайтесь)
але можно спробувати ще и фікс зробити))) але яж просто QA
Ключові фішки аналізу
tcpdump на сервері — must have
Wireshark — ідеально для фільтрації по потоку (stream)
Фільтри: ip.addr, udp, tcp.stream eq, frame contains
Завжди дивись: SYN, ACK, payload, порт, інтерфейс
Moral of the story,
Коли dev каже “Дайте хоч щось” —
Дай йому дамп і хай не бубнить.
бувало у вас таке що деви хочуть вид вас все на блюдечці?
Буду вдячний за репост группи, + приєднуйтесь до нас)
https://t.me/BugOrDefects
Ранкові історіі QA - Впевнений шо у вас таке теж було і не раз)
Дайте хоч щось… — сказав дев і зробив твій день присвішений дослідження і збору 1000000 кб логів 🤪🤪🤪
Коли дев каже
“У нас нічого не видно. Дайте хоч щось…”
А ти бачиш, як на клієнті трансляція йде. Відео програється, спікер говорить, все типу ок. Але dev на стороні серверу каже:
У нас порожньо. Нічого не приходить.
І ти такий
Ну добре…
Тут починається твоя улюблена частина — трасування, sniffing і трохи QA-магії
Бо коли в UI щось відображається, а бекенд ніби нічого не отримує — ти вже знаєш, що це класика.
Клієнт є, сервер є, а трафік — ніби у відпустці.
Сценарій дуже простий як двері
У додатку йде трансляція. Але сервер не бачить ніякого трафіку (відеопотік через UDP).
А дев каже
У нас все чисто. Напевно, на клієнті щось…
І ти такій окей давай ставимо флажки і ловимо пакети
Слухаємо клієнта
Вмикаємо Wireshark (або dumpcap) на клієнтському боці.
ip.addr == <server_ip> && udp.port == 5000
або просто
ip.addr == <server_ip>
Запускаємо запис, відтворюємо трансляцію, ловимо .pcap.
У дампі бачимо:
Пакети йдуть / payload є / порти вказані правильно
Клієнт — невинний.
ну окай тоді слухаємо сервер
На сервері — tcpdump, бо він не підведе
sudo tcpdump -i any host <client_ip> and udp port 5000 -w /tmp/server_capture.pcap
І… порожньо. Нічого. Нуль.
кей, тоді пробуємо ще фокус
sudo tcpdump -i any port 5000
Все ще — тиша. Нема навіть SYN, нема навіть запитів.
Ага! Тут вже цікаво.
так тепер аналізую мережу
Якщо на клієнті видно, а на сервері — нічого, це може бути:
фаєрвол (локальний або міжмережевий)
UDP-зв’язок блокується між сегментами
Неправильна маршрутизація (NAT, VPN, проксі)
Сервер слухає не той інтерфейс або порт
Аналіз в Wireshark
Фільтруємо пакети за:
ip.addr == <server_ip>
udp
rtp
frame contains "SETUP"
(якщо це RTSP)
І вже можна точно сказати:
“Ось клієнт відправляє, ось час, ось порт. Але сервер не бачить взагалі.”
Відправляєш dev’у: .pcap + скрін + timestamp
І підпис:
Ось вам всі логи і почті рішення - займайтесь)
але можно спробувати ще и фікс зробити))) але яж просто QA
Ключові фішки аналізу
tcpdump на сервері — must have
Wireshark — ідеально для фільтрації по потоку (stream)
Фільтри: ip.addr, udp, tcp.stream eq, frame contains
Завжди дивись: SYN, ACK, payload, порт, інтерфейс
Moral of the story,
Коли dev каже “Дайте хоч щось” —
Дай йому дамп і хай не бубнить.
бувало у вас таке що деви хочуть вид вас все на блюдечці?
Буду вдячний за репост группи, + приєднуйтесь до нас)
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==
1👍14❤7👀6🥴3🔥2
Завдання для QA: Git-команда дня
Ти працюєш з гілкою feature/test-123, щось наламав і хочеш скасувати останні зміни у файлі, але не комміт, а саме локальні зміни в робочій директорії. Яку команду використаєш? ДУЖЕ УВАЖНО!!!
Ти працюєш з гілкою feature/test-123, щось наламав і хочеш скасувати останні зміни у файлі, але не комміт, а саме локальні зміни в робочій директорії. Яку команду використаєш? ДУЖЕ УВАЖНО!!!
Anonymous Quiz
19%
(A) git reset --hard HEAD
15%
(B) git checkout <назва_файлу>
19%
(C) git clean -fd
47%
(D) git restore <назва_файлу>
❤12
Bug or Defect?
Завдання для QA: Git-команда дня
Ти працюєш з гілкою feature/test-123, щось наламав і хочеш скасувати останні зміни у файлі, але не комміт, а саме локальні зміни в робочій директорії. Яку команду використаєш? ДУЖЕ УВАЖНО!!!
Ти працюєш з гілкою feature/test-123, щось наламав і хочеш скасувати останні зміни у файлі, але не комміт, а саме локальні зміни в робочій директорії. Яку команду використаєш? ДУЖЕ УВАЖНО!!!
Всім доброго вечора, ну що ось і вихідні наступають)
Всім гарних і сонячних вихідних 🤗🤗🤗
Залишу це вам, Шпаргалка по Git, яку хочеться зберегти
Колись я теж плутався між git pull, git fetch, git reset --hard, і думав, що rebase — це щось, що краще не чіпати руками без амулету та зілля захисту 😅
Тому ось вам міні-шпаргалка — просто, коротко і наочно
Буду вдячний за поширення групи)
Всім гарних і сонячних вихідних 🤗🤗🤗
Залишу це вам, Шпаргалка по Git, яку хочеться зберегти
Колись я теж плутався між git pull, git fetch, git reset --hard, і думав, що rebase — це щось, що краще не чіпати руками без амулету та зілля захисту 😅
Тому ось вам міні-шпаргалка — просто, коротко і наочно
Буду вдячний за поширення групи)
🔥29❤8