Bug or Defect?
Завдання дня для QA:
Вам треба протестувати, що після входу в пошту, клієнт коректно завантажує всі непрочитані листи: Який із протоколів за це відповідає?
Вам треба протестувати, що після входу в пошту, клієнт коректно завантажує всі непрочитані листи: Який із протоколів за це відповідає?
Друзі, всім доброго раночку ☀️☀️☀️
Просто хотів вам побажати продуктивного дня хай баги самі стають у backlog, а фічі працюють з першого разу
А поки ви з кавою або дорогою на роботу, коротенько про протоколи, повертаючись до недавнього пулу ☝️
Це не просто терміни це ті штуки, які або економлять тобі час, або крадуть його, якщо не знаєш)
Гарного дня і мінімум фрустрації сьогодні!
Обняв 🤗
Просто хотів вам побажати продуктивного дня хай баги самі стають у backlog, а фічі працюють з першого разу
А поки ви з кавою або дорогою на роботу, коротенько про протоколи, повертаючись до недавнього пулу ☝️
Це не просто терміни це ті штуки, які або економлять тобі час, або крадуть його, якщо не знаєш)
Гарного дня і мінімум фрустрації сьогодні!
Обняв 🤗
2❤20🔥7🤗2
Завдання дня для QA: (2 Варіанта)
Тестуєте логін перекидає на дашборд, а там старі дані, як до логіна. Ніби не той юзер, або взагалі інша сесія. Дивишся API повертає правильне, а UI показує кашу: Що з цього може бути реальною причиною?
Тестуєте логін перекидає на дашборд, а там старі дані, як до логіна. Ніби не той юзер, або взагалі інша сесія. Дивишся API повертає правильне, а UI показує кашу: Що з цього може бути реальною причиною?
Anonymous Poll
50%
(A) Компонент кешує старий state
42%
(B) Куки не оновились після логіна
62%
(C) Браузер тримає старий localStorage
8%
(D) Виник race condition між запитами
11%
(E) У бекенда затримка в записі даних
❤8🔥3
Всім доброго вечора) як ваш день?
Мене переодично питають про відкритий API і сам іноді шукаю коли оновлює практичний курс для учнів - то тримайте цю круту міні шпагралку по сервісам)
Не тули, відкриті API, які реально можна юзати для QA-практики.
Це не демо-сервіси з курсів, а живі штуки з авторизацією, фільтрами, обробкою файлів, датами, статус-кодами все, що треба для нормального API-тестування.
Можна ганяти через Postman, curl або писати автотести ці API дають все, від музики та погоди до розпізнавання файлів і фоток з космосу )
То тримайте - якщо цікаво було і зайшло чи знаєте то серденько повинно світитися)
Всім гарного вечора!
Мене переодично питають про відкритий API і сам іноді шукаю коли оновлює практичний курс для учнів - то тримайте цю круту міні шпагралку по сервісам)
Не тули, відкриті API, які реально можна юзати для QA-практики.
Це не демо-сервіси з курсів, а живі штуки з авторизацією, фільтрами, обробкою файлів, датами, статус-кодами все, що треба для нормального API-тестування.
Можна ганяти через Postman, curl або писати автотести ці API дають все, від музики та погоди до розпізнавання файлів і фоток з космосу )
То тримайте - якщо цікаво було і зайшло чи знаєте то серденько повинно світитися)
Всім гарного вечора!
4❤🔥25👍7🔥7❤4
Друзі, всім привіт!
Сподіваюсь, у вас усе добре і ви в безпеці ☀️
Мене часто питають учні
«Та шо ти там знову з тою кавою? По 3 рази на день п’єш?»
Так! Бо мій ранок, це стабільно кава, балкон, новини і вид на місто.
Коротше, класичний ритуал, без якого я не я.
Ось вам і шматок мого ранку
А як у вас?
Якщо не важко, зробіть фото свого ранку з каналом кавуська, ноут, ранковий світ що завгодно.
Було б дуже круто розфорсити отаку ранкову культуру серед наших QA 😄
А так з вас сонечко або серденько)
Всім гарного, продуктивного і спокійного дня.
Тримаємось, працюємо, вчимось і не забуваємо відпочивати.
Сильні 💪 Обняв!
Сподіваюсь, у вас усе добре і ви в безпеці ☀️
Мене часто питають учні
«Та шо ти там знову з тою кавою? По 3 рази на день п’єш?»
Так! Бо мій ранок, це стабільно кава, балкон, новини і вид на місто.
Коротше, класичний ритуал, без якого я не я.
Ось вам і шматок мого ранку
А як у вас?
Якщо не важко, зробіть фото свого ранку з каналом кавуська, ноут, ранковий світ що завгодно.
Було б дуже круто розфорсити отаку ранкову культуру серед наших QA 😄
А так з вас сонечко або серденько)
Всім гарного, продуктивного і спокійного дня.
Тримаємось, працюємо, вчимось і не забуваємо відпочивати.
Сильні 💪 Обняв!
3❤🔥18🔥11👍4😇1🤗1
Завдання дня для QA:
Тестуєте логін, форма є, запит йде, але замість відповіді з токеном, 404 або взагалі HTML-сторінка. Дев каже: Все працює, бек живий А ти дивишся ні, не живий.
Тестуєте логін, форма є, запит йде, але замість відповіді з токеном, 404 або взагалі HTML-сторінка. Дев каже: Все працює, бек живий А ти дивишся ні, не живий.
Anonymous Quiz
20%
(A) API ще не запущений
54%
(B) Запит йде не туди через NGINX
22%
(C) Не переданий токен
4%
(D) Заглючив браузер
👀10❤1
Всім доброго вечора друзі)
Щось давно не було!
Вечірня історія QA. Як перевірити, чи проект світиться назовні і заробити плюсик в репутацію.
ну що я маю вам сказати.
Повертаємось до теми безпеки. І якщо ви QA, який не просто клікає кнопки, а хоче розуміти, що реально з проектом ця історія для вас.
Сьогодні поділюсь одним лайфхаком з реальної практики.
І якось прочитав я статтю, що іноді деви залишають службові файли десь у публічному доступі, просто не подумавши.
Задача яка перевірити, чи проект відкриває щось зайве через nginx. якщо якась службова інфа світиться зовні, це реальна дірка.
І я вирішив це перевірити
і так був файл який реально світиться зовні в якому інфа про версіі, номера сертифікатів і т.д до той чи іншой інфи) в нашому випадку той файлик не велику інфу несе і його прикрили) але це могло чи у вас може буди важливим)
Суть яка
Береш якийсь умовний, непримітний файл. Називаєш його скажімо,
Далі, пробуєш просто постукати по порту напряму.
Наприклад, у вас девсервер був на
, і пробуйте
І Якщо
200 OK. І пішов контент.
то цей лог доступний зовні. Просто валяється під руками, без авторизації, прямо через NGINX.
Це не баг у коді. Це неправильна конфігурація nginx. просто забули закрити або прибрати шлях у location.
І от тут ви вже не просто QA, а той, хто потенційно врятував реліз від зливу інфи.
А тепер ще цікавіше: .git/
я часто читаю шо деви особливо не опетні забувають прятати .git, і ви можете це перевірити не відкрита службова папка .git/ (а вона часом випадково заливається разом із кодом).
просто зробіть
І якщо знову 200 OK і у відповідь прийшов вміст git-конфігу з remote URL, ім'ям розробника, і навіть ssh-ключем (true story 🫣). то це просто провал)
Це реальна загроза, бо
- відкривають структуру репозиторію, через них можна відновити весь код і навіть знайти секрети, які колись хтось пушнув
як перевірити, що шось лишнє світиться,
Найпростіше через curl
Умовно
Можете перевірити ще кілька
Якщо щось дає 200 OK бігом в чат з девами
Чому це важливо для QA?
Бо іноді найкращий тест це просто подивитись трохи глибше. Ти можеш реально знайти вразливість, яка обійде всі UI-тести, не вилізе в CI. і яку ніхто навіть не шукав
А ти взяв і знайшов і тебе вже хвалять)
Поінт від мене простий
Навіть не будучи сек'юріті інженером, ви можете знаходити великі речі. Просто треба розуміти, що і навіщо перевіряти.
Такі штуки це реальний плюс до твоєї репутації як QA.
якщо хочете окрему шпаргалку по типових шляхах, які треба перевірити чекаю від вас ❤️
а вообще спробуйте шо у вас і напешіть в коментарях шо вийшло або ви про це взнали і перевіряєте це вже давно)
Бажаю вам гарного вечора!
Обняв 🤗
Щось давно не було!
Вечірня історія QA. Як перевірити, чи проект світиться назовні і заробити плюсик в репутацію.
ну що я маю вам сказати.
Повертаємось до теми безпеки. І якщо ви QA, який не просто клікає кнопки, а хоче розуміти, що реально з проектом ця історія для вас.
Сьогодні поділюсь одним лайфхаком з реальної практики.
І якось прочитав я статтю, що іноді деви залишають службові файли десь у публічному доступі, просто не подумавши.
Задача яка перевірити, чи проект відкриває щось зайве через nginx. якщо якась службова інфа світиться зовні, це реальна дірка.
І я вирішив це перевірити
і так був файл який реально світиться зовні в якому інфа про версіі, номера сертифікатів і т.д до той чи іншой інфи) в нашому випадку той файлик не велику інфу несе і його прикрили) але це могло чи у вас може буди важливим)
Суть яка
Береш якийсь умовний, непримітний файл. Називаєш його скажімо,
internal-status/health.txt або zxc123/debug.log.
Далі, пробуєш просто постукати по порту напряму.
Наприклад, у вас девсервер був на
10.10.123.123
, і пробуйте
curl -I http://10.10.123.123:443/zxc123/debug.log
І Якщо
200 OK. І пішов контент.
то цей лог доступний зовні. Просто валяється під руками, без авторизації, прямо через NGINX.
Це не баг у коді. Це неправильна конфігурація nginx. просто забули закрити або прибрати шлях у location.
І от тут ви вже не просто QA, а той, хто потенційно врятував реліз від зливу інфи.
А тепер ще цікавіше: .git/
я часто читаю шо деви особливо не опетні забувають прятати .git, і ви можете це перевірити не відкрита службова папка .git/ (а вона часом випадково заливається разом із кодом).
просто зробіть
curl -I http://{{IP}}/.git/configІ якщо знову 200 OK і у відповідь прийшов вміст git-конфігу з remote URL, ім'ям розробника, і навіть ssh-ключем (true story 🫣). то це просто провал)
Це реальна загроза, бо
.git/HEAD, .git/config, .git/index
- відкривають структуру репозиторію, через них можна відновити весь код і навіть знайти секрети, які колись хтось пушнув
як перевірити, що шось лишнє світиться,
Найпростіше через curl
Умовно
curl -I http://<IP>:<port>/.git/config
Можете перевірити ще кілька
curl -I http://<IP>/.env
curl -I http://<IP>/debug.log
curl -I http://<IP>/logs/latest.log
Якщо щось дає 200 OK бігом в чат з девами
Чому це важливо для QA?
Бо іноді найкращий тест це просто подивитись трохи глибше. Ти можеш реально знайти вразливість, яка обійде всі UI-тести, не вилізе в CI. і яку ніхто навіть не шукав
А ти взяв і знайшов і тебе вже хвалять)
Поінт від мене простий
Навіть не будучи сек'юріті інженером, ви можете знаходити великі речі. Просто треба розуміти, що і навіщо перевіряти.
Такі штуки це реальний плюс до твоєї репутації як QA.
якщо хочете окрему шпаргалку по типових шляхах, які треба перевірити чекаю від вас ❤️
а вообще спробуйте шо у вас і напешіть в коментарях шо вийшло або ви про це взнали і перевіряєте це вже давно)
Бажаю вам гарного вечора!
Обняв 🤗
3❤🔥37🔥9👍6❤3⚡2
This media is not supported in your browser
VIEW IN TELEGRAM
Друзі, всім доброго раночку ☀️
Сподіваюсь, ви в безпеці, і вже з кавою)
Нехай сьогодні буде день без багів, з приємною командою і нормальним інтернетом (це теж важливо ) бо у мене вчора був просто жесть.
А якщо ви сьогодні не на роботі просто відпочиньте. Ви це заслужили 💛
А відео просто як легке нагадування всім, хто часом переживає, що GPT, AI, роботи йдуть забирати нашу роботу.
Спойлер, не заберуть, якщо ти думаєш, аналізуєш і вмієш задавати питання 😉
Гарного і спокійного вам дня, обняв 🤗
НА ВІДЕО ПРИСУТНІЙ МАТ
Сподіваюсь, ви в безпеці, і вже з кавою)
Нехай сьогодні буде день без багів, з приємною командою і нормальним інтернетом (це теж важливо ) бо у мене вчора був просто жесть.
А якщо ви сьогодні не на роботі просто відпочиньте. Ви це заслужили 💛
А відео просто як легке нагадування всім, хто часом переживає, що GPT, AI, роботи йдуть забирати нашу роботу.
Спойлер, не заберуть, якщо ти думаєш, аналізуєш і вмієш задавати питання 😉
Гарного і спокійного вам дня, обняв 🤗
НА ВІДЕО ПРИСУТНІЙ МАТ
1😁12🤩2❤1
Завдання дня для QA:
Якщо ти тестуєш вебдодаток швидше за все, десь там є NGINX. Але от питання: для чого його найчастіше ставлять?
Якщо ти тестуєш вебдодаток швидше за все, десь там є NGINX. Але от питання: для чого його найчастіше ставлять?
Anonymous Quiz
64%
(A) Реверс-проксі пересилає запити між клієнтом і бекендом
14%
(B) Обробка логіки: виконує Python/Node.js-код
10%
(C) CI/CD запускає білди, тести, деплої
12%
(D) Агрегація логів, збирає і аналізує трафік додатку
⚡4
Ну що, обіцяний розбір хто винен, коли після логіна ви опиняєтесь на дашборді, а там дані ніби з минулого життя.
І так що я маю вам сказать!
(A) Компонент кешує старий state і чому одна з правильних відповідей
Це прямо топова причина, фронт після логіна не перерендерив потрібний компонент або взяв дані з попереднього useState/useEffect.
Таке буває, якщо логіка не підв’язана на userId чи authState, а просто працює як було.
(B) Куки не оновились після логіна це майже відпадає.
Якби куки не оновились, API скоріш за все повернув би 401 або дані старого юзера, А ми ж бачимо, що API дає правильну відповідь, просто UI не встигає або не знає.
(C) Браузер тримає старий localStorage тут можливо, але залежить від реалізації. бо якщо фронт бере дані не з API, а з localStorage (бо так хтось оптимізував) то після логіна може не бути оновлення.
Тоді в дашборді буде старе userInfo, поки не перезавантажиш сторінку.
(D) Race condition між запитами. це серйозний кандидат у винуватці.
Уявіть ви логінитесь, UI одразу відправляє запит на дані юзера, але токен або куки ще не оновились.
І бах дашборд приходить з даними попереднього юзера або взагалі кешованим.
(E) У бекенда затримка в записі даних, Рідко, але трапляється.
Якщо бек ще дописує сесію, або профіль юзера не одразу оновлюється в БД тоді дані можуть повертатись із затримкою.
Це зазвичай вирішується ретраєм або затримкою перед фетчем.
Якщо ловили таке у проєктах діліться як відловлювали.
Note: Про зустріч) це не інфо циганство це просто корисна зустріч щоб круто провести час, поспілкуватися обсудити якісь круті насушні питання)
І так що я маю вам сказать!
(A) Компонент кешує старий state і чому одна з правильних відповідей
Це прямо топова причина, фронт після логіна не перерендерив потрібний компонент або взяв дані з попереднього useState/useEffect.
Таке буває, якщо логіка не підв’язана на userId чи authState, а просто працює як було.
(B) Куки не оновились після логіна це майже відпадає.
Якби куки не оновились, API скоріш за все повернув би 401 або дані старого юзера, А ми ж бачимо, що API дає правильну відповідь, просто UI не встигає або не знає.
(C) Браузер тримає старий localStorage тут можливо, але залежить від реалізації. бо якщо фронт бере дані не з API, а з localStorage (бо так хтось оптимізував) то після логіна може не бути оновлення.
Тоді в дашборді буде старе userInfo, поки не перезавантажиш сторінку.
(D) Race condition між запитами. це серйозний кандидат у винуватці.
Уявіть ви логінитесь, UI одразу відправляє запит на дані юзера, але токен або куки ще не оновились.
І бах дашборд приходить з даними попереднього юзера або взагалі кешованим.
(E) У бекенда затримка в записі даних, Рідко, але трапляється.
Якщо бек ще дописує сесію, або профіль юзера не одразу оновлюється в БД тоді дані можуть повертатись із затримкою.
Це зазвичай вирішується ретраєм або затримкою перед фетчем.
Якщо ловили таке у проєктах діліться як відловлювали.
Note: Про зустріч) це не інфо циганство це просто корисна зустріч щоб круто провести час, поспілкуватися обсудити якісь круті насушні питання)
3❤11🔥3👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Банда привіт!
Сьогодні п’ятниця, той день, коли хочеться все встигнути, все доробити, і вже о 17:00 сидіти нога на ногу з кавусею в руках
Але ж ми знаємо, як воно буває.
18:00 і твій тімлід такий: А давайте ще швидко придумаємо концепт на понеділок. 😅
Ти якого вже як годину у компа нема)))
Ви сильні 💪 Гарного дня!
Сьогодні п’ятниця, той день, коли хочеться все встигнути, все доробити, і вже о 17:00 сидіти нога на ногу з кавусею в руках
Але ж ми знаємо, як воно буває.
18:00 і твій тімлід такий: А давайте ще швидко придумаємо концепт на понеділок. 😅
Ти якого вже як годину у компа нема)))
Ви сильні 💪 Гарного дня!
1🔥9😁8❤2
Завдання дня для QA:
Уявіть тестуєте вебзастосунок. Відкриваєте форму, почали роботу, але через деякий час клієнт перестав отримувати відповіді від сервера, сесія обірвалась. Що найімовірніше сталося?
Уявіть тестуєте вебзастосунок. Відкриваєте форму, почали роботу, але через деякий час клієнт перестав отримувати відповіді від сервера, сесія обірвалась. Що найімовірніше сталося?
Anonymous Quiz
50%
(A) ui не підтримував заголовок Connection: keep-alive, і тср-з'єднання розірвалось через таймаут
34%
(B) Сервер закрив з'єднання через відсутність нових запитів (через Keep-Alive timeout)
12%
(C) Клієнт змінив IP і сесія стала недійсною
5%
(D) Сервер випадково заблокував IP клієнта
👀7🔥4👍3
Bug or Defect?
Всім доброго вечора друзі) Щось давно не було! Вечірня історія QA. Як перевірити, чи проект світиться назовні і заробити плюсик в репутацію. ну що я маю вам сказати. Повертаємось до теми безпеки. І якщо ви QA, який не просто клікає кнопки, а хоче розуміти…
Всім доброго вечора) Як ваш день?
Ну шо, обіцянку тримаю. Ви ставили серденько а значить, буде продовження.
Тема реально важлива, і сьогодні практичне доповнення, типові шляхи, які варто перевірити, якщо ви хочете побачити а чи не світиться у вас щось зайве
Що я маю вас сказати, ось ТОП службових файлів і директорій, які іноді забувають сховати
Як завжди по класиці через curl -I або навіть просто в браузері, якщо IP/домен доступний)
Це перевірка конфігів
Це лог-файлів
Це git
Це health/статуси
ну і не забувайте шо якщо це https то це по замовчуваню 443 - на 8080 це я вам як приклад)
Якщо щось з цього повертає 200 OK це означає
- Файл/шлях світиться
- Немає захисту (навіть найпростішого deny all або auth_basic)
- І будь-хто ззовні може отримати доступ до внутрішньої інфи (url-и, конфіги, ключі, логи)
І ше раз повторюсь чому це критично
- Це не якась дрібничка, це може коштувати компанії витоку
- Це може бути точкою входу для атаки
- І ви, як QA, можеш бути тим, хто зупинив це ще до релізу
ну і мій поіт по висновку
куа не зобов’язаний бути сек’юріті-спецом, але розуміти, де шукати дірки, це вже 50% справи. Навіть простий curl і трохи уважності можуть підняти тебе в очах команди.
Ну що всім гарного вечора друзі, відпочивайте хто як вміє)
Всіх обняв 🤗💛
Ну шо, обіцянку тримаю. Ви ставили серденько а значить, буде продовження.
Тема реально важлива, і сьогодні практичне доповнення, типові шляхи, які варто перевірити, якщо ви хочете побачити а чи не світиться у вас щось зайве
Що я маю вас сказати, ось ТОП службових файлів і директорій, які іноді забувають сховати
Як завжди по класиці через curl -I або навіть просто в браузері, якщо IP/домен доступний)
Це перевірка конфігів
curl -I http://<IP>:8080/.env
curl -I http://<IP>:8080/config.json
curl -I http://<IP>:8080/.htpasswd
Це лог-файлів
curl -I http://<IP>:8080/debug.log
curl -I http://<IP>:8080/logs/latest.log
Це git
curl -I http://<IP>:8080/.git/config
curl -I http://<IP>:8080/.git/HEAD
curl -I http://<IP>:8080/.gitignore
Це health/статуси
curl -I http://<IP>:8080/healthz
curl -I http://<IP>:8080/server-status
curl -I http://<IP>:8080/internal/status
ну і не забувайте шо якщо це https то це по замовчуваню 443 - на 8080 це я вам як приклад)
Якщо щось з цього повертає 200 OK це означає
- Файл/шлях світиться
- Немає захисту (навіть найпростішого deny all або auth_basic)
- І будь-хто ззовні може отримати доступ до внутрішньої інфи (url-и, конфіги, ключі, логи)
І ше раз повторюсь чому це критично
- Це не якась дрібничка, це може коштувати компанії витоку
- Це може бути точкою входу для атаки
- І ви, як QA, можеш бути тим, хто зупинив це ще до релізу
ну і мій поіт по висновку
куа не зобов’язаний бути сек’юріті-спецом, але розуміти, де шукати дірки, це вже 50% справи. Навіть простий curl і трохи уважності можуть підняти тебе в очах команди.
Ну що всім гарного вечора друзі, відпочивайте хто як вміє)
Всіх обняв 🤗💛
2👍16❤🔥8❤3🤗1