Bug or Defect?
2.51K subscribers
237 photos
94 videos
1 file
213 links
Download Telegram
Всім доброго вечора))

Вечірні історії QA

Розбирав один цікавий кейс - Кейс про зникаючі дані, які насправді нікуди не зникали
(або як localStorage зробив вигляд, що користувача не існує)

Situation,
— Юзер логіниться по email
— Додає товари в корзину
— Закриває додаток / виходить
— Знову логіниться

Корзина порожня, фільтри скинуті, REST нічого не повертає

Думаю: "Окей, рефреш? Кеш? Session timeout?"
Але! Навіть після оновлення сторінки до релогіна все було ОК, тобто справа не в сесії, не в рефреші, і точно не в браузері.

Думаю окай - будемо розбирати,

— Перевіряю REST — дійсно, приходить пустий масив на /cart і /filters
— Іду в базу — роблю select по user_id, → і тут перший шок: взагалі немає записів по цьому юзеру
Але я ж пам’ятаю, що вони були… Я САМ їх додавав!
— Перелогінююсь ще раз з тим же email → дивлюсь — корзина заповнюється (😅), але тільки якщо логін був з тією ж регістрацією email, як і раніше

Окей, теорія: різний кейс в email'і (upper/lower case) дає різний результат
Починаю тест:

— Заходжу як User@example.com → додаю товар → ID юзера в REST: id=1479
— Виходжу → заходжу як user@example.com → ID юзера: id=1932 😳

Один і той самий email, але два різні юзери в системі
(бо фронт не нормалізує email до нижнього регістру, і створює новий акаунт)

DevTools → Application → LocalStorage
→ дивлюсь ключі, значення
→ під кожен варіант email (User@... і user@...) зберігається окремий user_id

Виходить, що юзер сам себе обманув — або точніше, фронт створив дві сутності під один email, просто через різну капіталізацію.
А бек — йому що? Він чесно створив два акаунти.

Висновки для себе і всіх, хто дочитав:

Завжди нормалізуй email на фронті (toLowerCase())

Якщо REST поводиться адекватно, а юзер каже "все пропало" — дивись на ID

Використовуй DevTools → Application → LocalStorage
→ дивись user_id, token, і все, що може впливати на запити

Фронт теж може бути джерелом проблем, навіть коли здається, що він ні при чому

Різниця в одному символі — мінус корзина, мінус юзерський досвід

Такий баг не ловиться автоматично.
Його ловить уважний QA, який знає, куди копати: бази, localStorage, REST, ID.

🫡 Дякую, що дочитав

📲 Буду вдячний за репост Групи.
https://t.me/BugOrDefects
29👍12
Всім доброго раночку 🤗 - погодка сьогодні не сонячна, але держимо настрій)

Ранкова історія QA 🫣
Коли учень перегнав вчителя?
(або як реагувати, коли тебе вже навчають твої ж учні)

Вчора ввечері був ще один дзвінок з учнем — готуємось до співбесіди, проганяємо кейси, говоримо про API, кеші, інтеграції…
І от на одному моменті я завис — кажу:
— “Слухай, а отут я так сходу не скажу...”
А він:
— “Та я розбирав нещодавно, там такий нюанс ще є, зараз покажу”.
І показує. Правильно. Красиво. По ділу.
І я завис вдруге — не від питання, а від думки.

А що, якщо учень вже краще за мене?
Радіти чи ревнувати?
Пишатися чи підтягуватись?

Бо з одного боку — це ж круто, я передав знання, дав базу, навчив розбиратись самостійно.
А з іншого — трошки б’є по самооцінці 😅

А ви як реагуєте, коли ваш учень “переростає” вас?
Це сигнал, що ви крутий ментор, чи дзвіночок, що пора й самому качатись далі?

🤔 Поділіться в коментах — хочеться зрозуміти, як інші це сприймають.

📲 Буду вдячний за репост Групи.
https://t.me/BugOrDefects
16
Bug or Defect?
🔥 Завдання дня для QA

При тестувані, сервер піймав crash, Файл core.25931 лежить десь на сервері. Як перейти до директорії з ним та зберегти його собі локально?
Привіт - Вирішив написати вам короткий розбір пула поки пішов на обід

ну що як вже багато знає шо правильна відповідь це (B) яка набрала всього 13%😢

find / -name "core.*" -exec cp {} ~/Desktop/ \; — Ця команда проста і робоча. Вона проходиться по всьому файловому дереву (/) в пошуках файлів, які підпадають під маску core.*, і одразу копіює кожен знайдений файл у твій Desktop.

{} — це місце, куди find підставляє знайдений файл.
-exec ... \; — виконує команду для кожного результату.

Неважливо, де файл лежить — знайде і скопіює. Не треба нічого вручну парсити, писати скрипти чи гадати, куди що передати.


Чому не (A) cd / && find . -name "core.*" | cp $1 ~/Desktop/ — Тут багато хто попадається.
Ти наче хочеш через | передати шлях у cp, але $1 — це не значення з пайпа, а аргумент скрипту/команди, в результаті cp отримує порожній $1 і каже: "чувак, куди копати?".


Чому не (С) scp user@server:/core.25931 . — Хороша команда, якщо ти точно знаєш повний шлях до файлу. Але якщо файл "десь на сервері" — тобто ти навіть не знаєш, чи він в корені, чи в якійсь /var/tmp/... — ця команда нічого не знайде.
А ще може впасти з помилкою: "No such file or directory".

ну і чому не (D) gzip core.* && mv core.*.gz /tmp/ — Архівуєш дамп — це ок, але core.* може містити кілька файлів або неіснуючі файли в поточній директорії. А ще ти його не копіюєш, а переміщаєш в /tmp/. І знову — якщо не в тій директорії, команда не знайде нічого.

тобто коротко чому find / -name "core.*" -exec cp {} ~/Desktop/ \; рулить,

- Працює з будь-якою кількістю дампів
- Не вимагає знати шлях
- Копіює одразу, без танців з бубном
- Зручно для автоматизації або в кризових ситуаціях

📲 Буду вдячний за репост Групи.
https://t.me/BugOrDefects
👍83
Залишу це тут))

Bug, Defect, Error, Failure, Issue — не плутай!
Збережи собі — знадобиться ще не раз

Error — Це людська помилка: неправильна логіка, формула, або інтерпретація вимог.
Саме error створює дефекти в коді чи дизайні.
Приклад: Dev помилився у формулі знижки — отримали від’ємну ціну.

Defect — Це відхилення від очікуваної поведінки, помічене на етапі розробки чи тестування.
Не обов’язково впливає на користувача — це те, що не відповідає вимогам.
Приклад: Пропускає вхід з пустим паролем, хоча за ТЗ не має.

Bug — Це дефект, що проявляється при виконанні ПЗ — часто в тестах або продакшні.
У реальному житті “баг” і “дефект” часто вживають як синоніми.
Приклад: Кнопка “Submit” не працює — забули викликати функцію.

Failure
Це реальна відмова системи під час запуску.
Помилка → дефект → баг → failure — саме він б’є в користувача.
Приклад: Додаток падає при завантаженні файлу понад 2MB.

Issue
Широке поняття з трекерів (JIRA, GitHub):
🔹 Баги
🔹 Завдання
🔹 Фічі
🔹 Імпрув
Не кожна issue — це баг.
Приклад: “Проблема логіну” → може бути баг, а може просто редизайн.

Як пов’язані всі ці поняття?

Error (людська помилка)

Defect (в коді чи дизайні)

Bug (виявлено під час тестування або в юзерів)

Failure (помітна відмова при запуску)

На замітку QA:

🔸 Баг без контексту — як діагноз без аналізів
🔸 Не всі баги = дефекти. Але всі дефекти можуть стати багами
🔸 У JIRA не все "issue" — проблема. Чітко називай тип

📲 Буду вдячний за репост Групи.
https://t.me/BugOrDefects
👍142
Всім доброго вечора!
Якого б ти рангу не був, а це знати повинен.

QA Cheatsheet: Must-Have Basics для кожного тестувальника
Збережи собі й повертайся, коли загубишся в багоджунглях.

📌 1. Види тестування
Functional — чи все працює за вимогами?
Regression — нічого старого не зламалось?
Unit — окремі модулі працюють?
Integration — взаємодія модулів ок?
API — запити та відповіді валідні?
UI/UX — чи це юзер-френдлі?
Performance — швидко/під навантаженням?
Security — діри знайдено?
Smoke/Sanity — швидка перевірка ключевого

📌2. Техніки тестування
Boundary Value
Equivalence Partitioning
State Transition
Random
Exploratory
Ad-hoc
Checklist

📌3. Severity vs Priority
Severity = наскільки боляче
Critical > Major > Minor > Trivial

Priority = наскільки терміново
High > Medium > Low

📌4. Інструменти для бойового QA
Selenium / Cypress / Playwright – UI
Postman / RestAssured – API
JMeter / K6 – навантаження
Burp / OWASP ZAP – безпека
TestRail – тести
Jira / Bugzilla – баги
Charles / Fiddler – мережа

📌 5. Документація, без якої ніяк
Test Plan
Test Cases
Test Summary
Bug Reports

📌6. STLC – Життя тесту
Аналіз вимог
Планування
Написання кейсів
Підготовка середовища
Виконання
Баги + ретест
Закриття

📌7. Принципи тестування
Дефекти є — треба шукати
Раннє тестування = дешевше
Все протестити — нереально
Баги гуртуються
Тести мають бути повторними
Все залежить від контексту
Відсутність багів ≠ продукт ок
Шукай дефекти з самого старту

📌8. Головне з сучасного QA-контексту
CI/CD – релізи на автопілоті
TDD – спершу тест, потім код
BDD – сценарії як розмова
SDLC/STLC – бач загальну картину

📌9. Майндсет QA-шника
Постійна цікавість
Думай як юзер
Ламай свідомо
Фіксуй усе
Автоматизуй, де це має сенс
Говори з девами і продами

Хочеш більше таких шпаргалок?
Підписуйся https://t.me/BugOrDefects
38🔥1
👀
19🔥7
Ранкова історія QA 👀

Сьогодні без історій.
Ніхто нічого не зламав, білди зелені, dev мовчить, прод дихає.

Просто день як день.
А ти — як ти.

П’єш каву, читаєш таски й чекаєш, коли щось піде не так. Бо інакше — не QA.

✈️ буду вдячний за репост групи.

https://t.me/BugOrDefects
👍153
🔥 Завдання дня для QA

Хто вкрав пакети? Ти тестиш систему, все працює чітко. Але юзер жаліється: “Дані не доходять 🫠”. Фрондент каже: “Це щось з TCP, бро...” А ти сидиш, дивишся в логі й думаєш: Що ж таке цей TCP і чому він тут важливий?
Anonymous Quiz
0%
(A) Це чарівний спосіб з'єднати дві програми телепатією.
98%
(B) Це мережевий протокол, який гарантує доставку даних між системами.
1%
(C) Це новий тип токена для авторизації в API (ну майже…)
1%
(D) Це абревіатура з проєкту "Ти Це Перевірив?"
🔥 Завдання дня для QA: А що таке UDP?

У тебе лаги в стрімі, а звук з відео йде з різницею в часі. Dev каже: “Ну, бо це UDP, там все швидко, але без гарантій.” А ти стоїш і думаєш — "Та хто ж таке взагалі вигадав?"
Anonymous Quiz
11%
(A) Ultra Direct Protocol — найшвидший спосіб передати гнів на прод
83%
(B) User Datagram Protocol — працює без перевірки доставки, але швидко
3%
(C) Unidentified Debug Port — все, що не працює, ллється сюди
3%
(D) Unicorn Data Pusher — передає тільки казкові дані
3
Всім доброго вечора!!!

🌙 Вечірня історія QA: Ubuntu Edition

Є кейси, після яких хочеться просто зробити shutdown now...

Ситуація:
Підключаюсь я до своєї улюбленої Ubuntu машини. Ввожу пароль — бац... чорний екран на пару секунд... і знову екран логіну.

Я такий:
"Ммм, цікаво… Ну давай, Google, витягуй мене з цього".

Перші думки — або проблеми з X, або щось з драйверами/десктопом. Але ж просто ж логін — а по SSH заходить норм.

Після кількох годин розкопок, перевірки логів
journalctl -xe, cat ~/.xsession-errors

— зрозумів:
login manager (в моєму випадку gdm3) просто завалився при запуску сеансу.

Рішення:
Зайшов по SSH або в tty (Ctrl+Alt+F3)

Випробував перезапуск gdm3:
sudo systemctl restart gdm3  

Але... той самий результат 🥲

Вирішив перевстановити дисплей-менеджер:
sudo apt-get install --reinstall gdm3  

І на всяк випадок поставив запасний, бо щось мені вже не подобалось:
sudo apt install lightdm  
sudo dpkg-reconfigure lightdm

Вибрав lightdm — після цього система ожила

Ну а далі ще трохи
sudo apt autoremove, sudo apt update,

і я знову в строю.


У кого таке було? 😄
Пиши в коментар, як вибирався з чорноти екрану.
А якщо ще не було — збережи пост, може колись Ubuntu тебе "перевірить"

✈️ буду вдячний за репост групи.

https://t.me/BugOrDefects
14🤯4👍1
Сьогодні попав під ☔️ і побачив таку картину😆

Коли твій автотест не перевіряє умови середовища…
☔️+❄️+💦=
#true

Manual QA дивиться на це і такий:
Ну точно ж баг, ну люди добрі!
🤪🤪🤪
😁27🐳5🤣4
Усім доброго ранку! 😴☀️

☀️ Ранкові історії QA ☀️

QA-ранок: «Це точно клієнт!»

Прокидаєшся, відкриваєш чат:
Там вже всі спам’ять Клієнт не працює! Що з ним?
І ти такий: Ага, щас…

І от ти включаєш інвестигейт, лупаєш по логу, перевіряєш все — і тут піп: сервер прислав кривий XML.
А клієнт за який ти відповідаєш вже отримав репутацію “того, хто все ламає”.
І ти вже кричиш в чат: «Ні, хлопці, це сервер тупить!»
Але всім простіше вірити, що це клієнт винен.

QA-це коли знаходиш проблему, яку всі вже приписали клієнтському додатку, а насправді сервер просто не вміє працювати.

📲 Буду вдячний за репост Групи.

https://t.me/BugOrDefects
👍12💔4😢21
Bug or Defect?
Всім доброго вечора!!! 🌙 Вечірня історія QA: Ubuntu Edition Є кейси, після яких хочеться просто зробити shutdown now... ⠀ Ситуація: Підключаюсь я до своєї улюбленої Ubuntu машини. Ввожу пароль — бац... чорний екран на пару секунд... і знову екран логіну.…
Ubuntu. Просто. Чітко. В одному місці.
Поки система не впала — збережи цю шпаргалку.

Команди на всі випадки:
– Моніторинг
– Файли
– Пакети
– Мережа
– Сервіси
– Cron
– Snap і APT
– UFW, SSH, ping і ще купа всього

Якщо ти працюєш з Ubuntu — це must-have.
то роздрукуй, повісь і поклоняйся час від часу.

Буду вдячний за репост групи.

https://t.me/BugOrDefects
🔥12👍8❤‍🔥21
🔥 Завдання дня для QA: А що таке dpkg --configure -a?

Ти запускаєш установку пакету, а Ubuntu така: “dpkg was interrupted, you must manually run ‘sudo dpkg --configure -a’ .........
Anonymous Quiz
14%
(A) Повністю перевстановлює всі пакети в системі
3%
(B) Перезапускає Ubuntu без перевірки оновлень
73%
(C) Завершує конфігурацію недоінстальованих пакетів після збоїв
10%
(D) Очищає всі залежності в apt кеші, не питаючи
6
Всім доброго вечора.

Ігор а що ти читаєш щоб бути в курсі про новини IT - дуже часто чую такі питання)

Software Testing News

https://softwaretestingnews.co.uk

Для мене — це як ранкова кава, але замість цукру — новини зі світу QA, IT і техніки.
Реальні кейси, аналітика, конференції.

Кому цікаво з ранку за кавою розбудити
🧠, почитайте.


А ви що читаєте, щоб залишатися в курсі? Пишіть в коментарі я думаю буде цікаво не тільки мені)

Всім гарного вечора
☀️☀️☀️
17👍4
☀️ Ранкові історики QA☀️ Всім доброго раночку☀️

— про SSO, трошки паніки і забутий host

Прокидаюсь. Кава. VPN — підключено. Відкриваю апку, логін через SSO — бах, помилка:
“authentication host not found”.

Мозок: Оу, цікаво…
Перевірив VPN — все є. Пароль — правильний.
І тут починається класика:
Google? Ні, логи!

Заходжу, читаю — а там:
host.microsoft.com — disabled.

…і тоді згадується вчорашній експеримент:
“А що буде, якщо заблокувати хост Microsoft для SSO?”
Блокнув через hosts файл.
Не розблокував.
І от я — сам собі баг.

Висновок: тестування — це круто, але після тестів завжди прибирай за собою. Бо ранок може початись із легкого серцевого.

Як редагувати hosts (локально):
# Відкрити файл (Linux/macOS):
sudo nano /etc/hosts


# Для Windows:
C:\Windows\System32\drivers\etc\hosts
(відкрити через блокнот від імені адміністратора)


Щоб заблокувати хост:
127.0.0.1 login.microsoft.com


Щоб розблокувати — просто видали цей рядок.



А ви повертаєте env у нормальний стан після тестів?
Чи теж ловите свої ж пастки?

Пиши в коментарях — поділимось слізами QA-життя.

Буду вдячний за репост групи
https://t.me/BugOrDefects
👍16🙈6
Всім доброго вечора!
Може, вже й лідери команд на моєму каналі? Або хтось із часом стане лідером команди чи керівником — це для вас.
Чу-чуть мотиваціі!

"Коли тиск знецінює принципи"
У багатьох організаціях команди стикаються з тиском — особливо коли наближаються дедлайни або фінансові цілі. Та коли ми поступаємось принципами: випускаємо продукт, минаючи перевірки, ігноруємо тривожні сигнали чи скорочуємо процес — ми обираємо короткочасну вигоду замість довгострокової надійності.

Якість, етика та відповідальність не повинні бути опцією — це основа нашої роботи.

Справжнє лідерство полягає в тому, щоб залишатися вірним правильному рішенню, навіть коли на тебе тиснуть.

Моя думка, ви, як QA, працюєте на якість. Будьте на стороні користувачів, не бійтеся стояти на своєму. Доказуйте очевидні баги, не ігноруйте свої думки і амбіції!

Всім гарного вечора! і вихідних🤗🤗
19👍7
☕️ Ранкові історики QA
Субота. Всі сплять, а я — як завжди з кавою.
Готуюсь до трьох дзвінків з учнями й питаю себе:
«Ну шо, не загнусь сьогодні?» 😄

Але це вже своя рутина.
QA-шна. Від якої трохи втома, але ще більше — драйв.
Коли встигаєш не тільки тестити, а ще й бути трошки маяком для інших

☀️ Гарного настрою і сонячної суботи вам, друзі QA!
Пам'ятайте: навіть субота — чудовий день для нових знань 💡

Буду вдячний за репост групи
https://t.me/BugOrDefects
16
Забув вчора з вами поділитись — ловіть
Мав реальний стоп по SQL-запитах. Мозок завис, інтернет як завжди не по темі
І тут згадав про свою стару шпаргалку.
Вона мене вже не раз виручала — і цього разу теж витягла.

Подумав, а чому би не скинути вам теж?
Збережіть — може, теж стане в пригоді 👇

Буду вдячний за репост групи
https://t.me/BugOrDefects
👍24🔥103