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
👋 Доброго ранку, QA-друзі!
Сьогодні без історій — вже 11:02, а перший урок на сьогодні вже проведено (і поки що він же й останній )
Сподіваюсь, у вас гарний настрій, бо день тільки починається — або вже якось йде 😄
У мене за вікном дощ, тому саме час зробити собі кави або чаю
…і заскочити почитати щось корисне для професійної душі.
Навіть у суботу ми трішки качаємо скіли 💪
А нижче — рубрика, яка не дасть розслабитись 👇
Сьогодні без історій — вже 11:02, а перший урок на сьогодні вже проведено (і поки що він же й останній )
Сподіваюсь, у вас гарний настрій, бо день тільки починається — або вже якось йде 😄
У мене за вікном дощ, тому саме час зробити собі кави або чаю
…і заскочити почитати щось корисне для професійної душі.
Навіть у суботу ми трішки качаємо скіли 💪
А нижче — рубрика, яка не дасть розслабитись 👇
❤12
Завдання для QA:
Тестуєш API.
Запит GET працює в Postman, але в UI — 403 Forbidden. Чому?
Тестуєш API.
Запит GET працює в Postman, але в UI — 403 Forbidden. Чому?
Anonymous Quiz
15%
A) Невірний endpoint у фронті
63%
B) В UI не передається Authorization header
21%
C) Браузер автоматично дропає credentials через політику CORS
1%
D) Сервер просто не любить UI
❤11🤔9🔥7
Bug or Defect?
Завдання для QA:
Тестуєш API.
Запит GET працює в Postman, але в UI — 403 Forbidden. Чому?
Тестуєш API.
Запит GET працює в Postman, але в UI — 403 Forbidden. Чому?
Всім доброго ранку, як ваші справи? 🫣☀️☀️☀️
Понеділок, а це значить, що
кава вже в руці,
планінг вже десь поруч,
а ми вже потроху в робочому строю,
Якщо ще не в строю саме час приєднатися, зараз пробую розібрати вам суботній пулл, бо результати нашого пулу вас трохи заплутали
І це нормально, завдання було з підвохом
Чому ж не А?
Якби був невірний endpoint, швидше за все був би 404 (Not Found) або взагалі CORS Error. А не 403. тому це не може бути вірною відповідью
і чому не B?
Це вже ближче. Але це наслідок, а не причина.
Браузер не передає авторизаційні дані, бо йому не дали на це дозвіл саме через credentials і політику CORS.
ну про D не будемо згадувати)
а ось чому же С?
Бо браузер не просто труба між UI і беком.
Це справжній митник. І якщо ви не вказали,
fetch(url, { credentials: 'include' })
або в axios
axios.get(url, { withCredentials: true })
тоді ніякі куки чи токени не поїдуть.
А сервер, побачивши "аноніма", чемно каже
403 Forbidden доступ заборонено.
Postman ж не обмежений цими політиками. Там що вставив те й поїхало. Тому там усе працює.
Тому треба постійно буди на чеку
Якщо бачиш розрив між UI і Postman дивись не тільки на запит, а і на контекст його виконання.
Порівнюй заголовки, дивись на CORS, перевіряй, чи летить токен.
Бо в UI без credentials: 'include' токен не поїде, навіть якщо в localStorage/куках він є.
Буду вдячний за репост группи, + приєднуйтесь до нас)
https://t.me/BugOrDefects
Понеділок, а це значить, що
кава вже в руці,
планінг вже десь поруч,
а ми вже потроху в робочому строю,
Якщо ще не в строю саме час приєднатися, зараз пробую розібрати вам суботній пулл, бо результати нашого пулу вас трохи заплутали
І це нормально, завдання було з підвохом
Чому ж не А?
Якби був невірний endpoint, швидше за все був би 404 (Not Found) або взагалі CORS Error. А не 403. тому це не може бути вірною відповідью
і чому не B?
Це вже ближче. Але це наслідок, а не причина.
Браузер не передає авторизаційні дані, бо йому не дали на це дозвіл саме через credentials і політику CORS.
ну про D не будемо згадувати)
а ось чому же С?
Бо браузер не просто труба між UI і беком.
Це справжній митник. І якщо ви не вказали,
fetch(url, { credentials: 'include' })
або в axios
axios.get(url, { withCredentials: true })
тоді ніякі куки чи токени не поїдуть.
А сервер, побачивши "аноніма", чемно каже
403 Forbidden доступ заборонено.
Postman ж не обмежений цими політиками. Там що вставив те й поїхало. Тому там усе працює.
Тому треба постійно буди на чеку
Якщо бачиш розрив між UI і Postman дивись не тільки на запит, а і на контекст його виконання.
Порівнюй заголовки, дивись на CORS, перевіряй, чи летить токен.
Бо в UI без credentials: 'include' токен не поїде, навіть якщо в localStorage/куках він є.
Буду вдячний за репост группи, + приєднуйтесь до нас)
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🔥28❤2
Завдання дня для QA:
Ти логуєш баг з додатку, який бігає на Linux-сервері. Треба подивитися останні 50 рядків з логу app.log. Що вибереш?
Ти логуєш баг з додатку, який бігає на Linux-сервері. Треба подивитися останні 50 рядків з логу app.log. Що вибереш?
Anonymous Quiz
3%
A) tail app.log
25%
B) cat app.log | head -n 50
57%
C) tail -n 50 app.log
14%
D) less app.log | grep 50
❤3👌2
Доброго вечора всім - Як пройшов ваш понеділок? У мене щось прям в напрузі, зараз розповім)
Вечірня історія QA, А шо, камера вже зайнята?
або як я навчився читати помилки, а не тільки логи 😅
Сьогодні день був щось пекельний, займався стрімінгом, тестував запуск відео з клієнта.
Запускаю, а відео просто не стартує.
Ні помилки в UI, ні фейлу, ні лагу. Просто тиша.
Я, як порядний QA, лізу в логи.
А там нічого. Порожньо, як в холодильнику))
Починається класика:
Та ну як це, все ж працювало...
Може кудись не туди дивлюсь?
Може сервер тупе?
Може dev щось поламав?
А може... 😶🌫️
Пішов в DevTools → Console
І нарешті! Та сама рятівна стрічка
NotReadableError: Could not start video source
Google каже, така помилка буває, коли камера вже зайнята іншим застосунком або вкладкою.
А тепер тримайте кульмінацію
Я сам сидів на іншому екрані, там був відкритий Zoom бо була англіська і я залишився весіти в румі і саме він тримав камеру.
Я навіть не помітив індикатору, бо ну... QA без уваги це окрема професія 😅
в підсумку,
Завів ішшью на клієнт - Error від WebRTC має хендлити такі фейли з повідомленням типу “Камера зайнята”
Бо якщо користувач не бачить помилки він подумає, що воно просто не працює
А насправді просто не твій день (і не твоя камера)
А у вас таке було?
Коли баг знайшовся не завдяки скілам, а власній неуважності?
Поділіться, щоб не я один тут соромився 😅
Буду вдячний за репост группи, + приєднуйтесь до нас)
https://t.me/BugOrDefects
Вечірня історія QA, А шо, камера вже зайнята?
або як я навчився читати помилки, а не тільки логи 😅
Сьогодні день був щось пекельний, займався стрімінгом, тестував запуск відео з клієнта.
Запускаю, а відео просто не стартує.
Ні помилки в UI, ні фейлу, ні лагу. Просто тиша.
Я, як порядний QA, лізу в логи.
А там нічого. Порожньо, як в холодильнику))
Починається класика:
Та ну як це, все ж працювало...
Може кудись не туди дивлюсь?
Може сервер тупе?
Може dev щось поламав?
А може... 😶🌫️
Пішов в DevTools → Console
І нарешті! Та сама рятівна стрічка
NotReadableError: Could not start video source
Google каже, така помилка буває, коли камера вже зайнята іншим застосунком або вкладкою.
А тепер тримайте кульмінацію
Я сам сидів на іншому екрані, там був відкритий Zoom бо була англіська і я залишився весіти в румі і саме він тримав камеру.
Я навіть не помітив індикатору, бо ну... QA без уваги це окрема професія 😅
в підсумку,
Завів ішшью на клієнт - Error від WebRTC має хендлити такі фейли з повідомленням типу “Камера зайнята”
Бо якщо користувач не бачить помилки він подумає, що воно просто не працює
А насправді просто не твій день (і не твоя камера)
А у вас таке було?
Коли баг знайшовся не завдяки скілам, а власній неуважності?
Поділіться, щоб не я один тут соромився 😅
Буду вдячний за репост группи, + приєднуйтесь до нас)
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==
😁22👍10🔥3
Доброго ранко!!! як ваш настрій? 👀👀👀
Ранкові Історіі QA. коли сам собі зробив ранковий ППЦ*****
Вівторок.
Всі кажуть, що понеділок, важкий день.
Ага, ага.
Я тепер в це не вірю.
Бо от ранок, вівторок, ніщо не віщує бєди. Я собі далі тестую стрімінг, ловлю баги, слухаю лофі… і тут прилітає ідея, а що як трохи нагрузити систему?
Ну, типу, не одна камера, а 10-20…
Ага! Підняти віртуальні камери і хай стримять собі стріми, хай бекенд потіє трохи.
Мислю далі, як це зробити?
Йду до тимліда,
Кажу Слухай, є ідея така…
Він (як завжди позитивний, як мій термометр у липні)
Та легко. Підійми віртуалку десь у vSphere, заімплементуй скриптом кілька камер і буде тобі щастя!
Я такий - Challenge accepted.
Іду в вебшару vSphere, і тут починається та сама технічна реальність, де ти QA, DevOps, і чарівник одночасно.
що роби и куди я ото поліз - ну окай
Підняв віртуалку у vSphere
Взяв Ubuntu Server ISO
Налаштував ресурси (2 CPU, 4 GB RAM, мінімум 10 GB disk)
Включив SSH, бо без нього як без рук.
Поставив віртуальні камери
Встановив v4l2loopback:
Завантажив:
Це створює 5 віртуальних камер /dev/video10-14.
Залив відео на луп
За допомогою ffmpeg:
Кожен ffmpeg крутить своє відео вічно (-stream_loop -1), подаючи його у віртуальну камеру в реальному часі (-re).
Моніторю логіку стріму на бекенді
Через логери, метрики, response time дивлюсь, як воно себе веде.
А далі…
Ви думаєте, я пішов пити каву після такого?
Ха! Мій мозок вирішив, що він заслуговує на морозиво, бо плавитись вже почав конкретно
А ви, друзі, юзали якісь тулзи для створення віртуальних камер чи емуляції стріму?
Може, знаєте крутіші способи?
Діліться в коментах або в особисті може щось є по проще?
І памʼятайте: хороший QА, це не лише про «знайти баг», а й про «а давай нагрузимо це по-доброму »
Буду вдячний за репост группи, + приєднуйтесь до нас)
https://t.me/BugOrDefects
Ранкові Історіі QA. коли сам собі зробив ранковий ППЦ*****
Вівторок.
Всі кажуть, що понеділок, важкий день.
Ага, ага.
Я тепер в це не вірю.
Бо от ранок, вівторок, ніщо не віщує бєди. Я собі далі тестую стрімінг, ловлю баги, слухаю лофі… і тут прилітає ідея, а що як трохи нагрузити систему?
Ну, типу, не одна камера, а 10-20…
Ага! Підняти віртуальні камери і хай стримять собі стріми, хай бекенд потіє трохи.
Мислю далі, як це зробити?
Йду до тимліда,
Кажу Слухай, є ідея така…
Він (як завжди позитивний, як мій термометр у липні)
Та легко. Підійми віртуалку десь у vSphere, заімплементуй скриптом кілька камер і буде тобі щастя!
Я такий - Challenge accepted.
Іду в вебшару vSphere, і тут починається та сама технічна реальність, де ти QA, DevOps, і чарівник одночасно.
що роби и куди я ото поліз - ну окай
Підняв віртуалку у vSphere
Взяв Ubuntu Server ISO
Налаштував ресурси (2 CPU, 4 GB RAM, мінімум 10 GB disk)
Включив SSH, бо без нього як без рук.
Поставив віртуальні камери
Встановив v4l2loopback:
sudo apt install v4l2loopback-dkms
Завантажив:
sudo modprobe v4l2loopback devices=5 video_nr=10,11,12,13,14 card_label="Cam1","Cam2","Cam3","Cam4","Cam5"
Це створює 5 віртуальних камер /dev/video10-14.
Залив відео на луп
За допомогою ffmpeg:
ffmpeg -re -stream_loop -1 -i cam1.mp4 -f v4l2 /dev/video10 &
ffmpeg -re -stream_loop -1 -i cam2.mp4 -f v4l2 /dev/video11 &
ffmpeg -re -stream_loop -1 -i cam3.mp4 -f v4l2 /dev/video12 &
ffmpeg -re -stream_loop -1 -i cam4.mp4 -f v4l2 /dev/video13 &
ffmpeg -re -stream_loop -1 -i cam5.mp4 -f v4l2 /dev/video14 &
Кожен ffmpeg крутить своє відео вічно (-stream_loop -1), подаючи його у віртуальну камеру в реальному часі (-re).
Моніторю логіку стріму на бекенді
Через логери, метрики, response time дивлюсь, як воно себе веде.
А далі…
Ви думаєте, я пішов пити каву після такого?
Ха! Мій мозок вирішив, що він заслуговує на морозиво, бо плавитись вже почав конкретно
А ви, друзі, юзали якісь тулзи для створення віртуальних камер чи емуляції стріму?
Може, знаєте крутіші способи?
Діліться в коментах або в особисті може щось є по проще?
І памʼятайте: хороший QА, це не лише про «знайти баг», а й про «а давай нагрузимо це по-доброму »
Буду вдячний за репост группи, + приєднуйтесь до нас)
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==
🔥15👍5🥴4❤3
Bug or Defect?
Завдання дня для QA:
Ти логуєш баг з додатку, який бігає на Linux-сервері. Треба подивитися останні 50 рядків з логу app.log. Що вибереш?
Ти логуєш баг з додатку, який бігає на Linux-сервері. Треба подивитися останні 50 рядків з логу app.log. Що вибереш?
Шпаргалка з Linux-команд 🐧
або як вижити в терміналі, коли все падає а ти QA 😄
Друзі, тримайте невеличкий набір корисних Linux-команд.
або як вижити в терміналі, коли все падає а ти QA 😄
Друзі, тримайте невеличкий набір корисних Linux-команд.
1🔥13❤1
Завдання дня для QA:
Ти тестуєш GET /api/users/123.
У response: { "id": 123, "name": "Alice", "email": null } В базі в полі email реально лежить значення, наприклад alice@ua.com. Жодних помилок немає. API повертає 200 OK Що робити в першу чергу?
Ти тестуєш GET /api/users/123.
У response: { "id": 123, "name": "Alice", "email": null } В базі в полі email реально лежить значення, наприклад alice@ua.com. Жодних помилок немає. API повертає 200 OK Що робити в першу чергу?
Anonymous Quiz
10%
A) Зарепортити баг: дані в API не відповідають базі
27%
B) Перевірити, чи є фільтр/маскування полів у response
38%
C) Подивитися права доступу (auth scopes, roles) може, email приховується
26%
D) Порівняти swagger: чи має поле email бути nullable?
🔥26🥴1