Bug or Defect?
2.51K subscribers
237 photos
94 videos
1 file
213 links
Download Telegram
Bug or Defect?
Photo
Всім доброго вечора колеги, як ваш настрій? 💛

Продовжимо сьогодні трохи про MongoDB. Але не з позиції ось команда insert і йдіть пробувати.

Багато хто чув, що Mongo, це «NoSQL-база», але в роботі QA часто це виглядає як "а як мені перевірити, що після API реально створився юзер?".


Якщо коротко то Mongo це документна база, де все зберігається у вигляді JSON-подібних об’єктів.
Тобто не таблички як у SQL, а колекції з документами.

Для QA це плюс, бо дані видно так само, як вони летять через API.

Якщо цікаво з вас серденько!

Всім гарного вечора а головне спокійного)

Всіх обняв
38🤓5👍4
Всім доброго раночку друзі 🌞

Сиджу з кавою, читаю новини і знову ловлю себе на думці, технології летять так швидко вперед, що голова обертом.
Ще якихось 15 років тому я кайфував від телефону лягушки умовно Motorola і вважав, що G2-інтернет це просто космос.
А сьогодні вже говоримо про G6, AI-агенти в Windows і купу штук, які навіть у фантастиці здавались перебором.

Я натрапив на одну статтю, вона коротка, але дуже показова.
Почитаєте, впевнено зависнете на думці: А ми взагалі встигаємо за цим темпом?.

https://peerlist.io/zakkhassan97/articles/whats-going-on-in-tech-right-now-august-2025

Яка ваша думка?
Може, це нормально, жити в епоху, де оновлення виходять частіше, ніж ти встигаєш докупити каву? 😅

Всім гарного дня, друзі 💛
Обняв 🤗
👍5👀32🔥2
Завдання дня для QA:

Ви ганяєте апку під Linux і бачиш, що при довгій роботі починає "під’їдати" пам’ять. Твій колега каже: Та то просто кеш, не парься. Але ти береш серйозну артилерію Valgrind: - Що з цього дійсно робить Valgrind?
Anonymous Quiz
11%
(А) Показує FPS та продуктивність CPU в реальному часі.
73%
(B) Перевіряє доступ до пам’яті, знаходить витоки та неправильне використання malloc/free.
14%
(C) Це тул для логування всіх системних викликів (як strace).
2%
(D) Автоматично виправляє помилки у C-коді й патчить білд.
👀6🤓32👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Друзі, привіт!
Як ви? Сподіваюсь, у всіх усе добре 💛

Бажаю вам гарного та продуктивного дня, сильні 💛

А щоб трошки підняти настрій, ловіть це відео
І тільки не кажіть, що не впізнали себе, коли горять строки релізу)

Всіх обняв 🤗
😁196🤗2😭1
Bug or Defect?
Доброго вечора друзі) Чули про таку штуку? Що я маю вам сказать) Є прикольний один цікавий тул - Ollama https://ollama.com/ Це такий движок для локального запуску LLM-моделей (це типу Llama3, Gemma, Mistral). Тобто можна юзати ШІ без хмар і без інтернету.…
Всім привіт друзі ще раз, як ваш день? що нового?

Як кажуть по запиту продовжу тему про Ollama та інтеграція в постан)

Запустити Ollama як локальний API це прям просто)
Спочатку треба підняти Ollama в режимі сервісу (він тоді слухає HTTP-запити на localhost:11434).
ollama serve


Потім у вас є REST API, куди можна стукати з Postman чи будь-якого іншого інструмента.

Як базові API-запити до Ollama

Ну спочатку класика перевіряємо, що все працює. У Postman робимо POST:
POST http://localhost:11434/api/generate
Content-Type: application/json



Ну і само Body

{
"model": "llama3.1",
"prompt": "Напиши тест-кейси для API логіну користувача у форматі JSON"
}



У відповідь буде щось типу:

{
"response": "{ \"tests\": [ {\"name\": \"Login success\", \"expectedStatus\": 200}, {\"name\": \"Login fail wrong pass\", \"expectedStatus\": 401} ] }"
}


Ну і вже по цікавіше це інтеграція в Postman через Pre-request Script

Тут магія. У колекції/запиті в Postman заходимо в Pre-request Script і вставляємо:

pm.sendRequest({
url: 'http://localhost:11434/api/generate',
method: 'POST',
header: {
'Content-Type': 'application/json'
},
body: {
mode: 'raw',
raw: JSON.stringify({
"model": "llama3.1",
"prompt": "Згенеруй JSON з тестами для ендпоінта /login: статуси, позитивний і негативний сценарії"
})
}
}, function (err, res) {
if (!err) {
let aiResponse = res.json().response;
console.log("AI Response:", aiResponse);
pm.variables.set("generatedTests", aiResponse);
}
});



Що тут буде відбуватися, перед кожним викликом твого API Postman стукає в Ollama, и сам Ollama генерує тести, а сам результат зберігається у змінну generatedTests.

Як використання в Test Script теж буде.

Тепер у Tests можна брати generatedTests і виконувати:

let tests = JSON.parse(pm.variables.get("generatedTests"));

tests.tests.forEach(t => {
pm.test(t.name, function () {
pm.response.to.have.status(t.expectedStatus);
});
});



Тобто Ollama сам придумує асерти, а ти їх юзаєш.

Про автоматизація в CI/CD (Newman) ви спитаєте і вона є)

Колекцію можна запускати через Newman (CLI-ранер Postman):
newman run my_collection.json


А далі додаємо в Jenkins/GitHub Actions, і кожен пуш у репо буде запускати автогенерацію + автотести від Ollama.

Як лайхак від мене, То можна дати Ollama прямий доступ до Swagger/OpenAPI і написати prompt: типо щось "Проаналізуй цей swagger.json і створи повний набір API-тестів у форматі JSON", І він реально згенерить колекцію.

Та в результаті ви отрумуєте,
- Ollama генерує ідеї тестів,
- Postman виконує,
- Newman ганяє в CI/CD,
- QA економить купу часу.

Всім гарного дня
Дуже скоро покажу вам новий проект на Ютуб - який повинен вам зайти я думаю, ще чучуть трошки треба все доробити як надо)

Сильні💙
🔥18🤗21👍1
Всім доброго раночку, як настрій?

Я сьогодні з 6 вже пью ось 3 чашечку кофааа, і починаю розгребати беклог)

Є прикольна вакансія, умови на рівні - але може хтось шукає з гарним опитом то це буде тощо треба)

https://cleverstaff.net/i/vacancy-y9rof3

Всім гарного дня друзі) О 5 можно вже починати від'єджати від стола))
👍9🔥4🤝2
Друзі, всім привіт ☀️☀️

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

Сьогодні в мене саме такий день.
Один з моїх учнів, який ще під час курсу отримав офер, зробив мені сюрприз. Я якось між іншим на уроці ляпнув, що почав бігати і треба годинник, щоб відслідковувати кроки й пульс. І от сьогодні мені прилітає доставка, Apple Watch з підписом:
"Дякую тобі, бо завдяки твоїм урокам і підтримці я взяв себе в руки, зайнявся улюбленою справою і отримав роботу мрії."

Чесно, я в шоці. Це навіть не про сам подарунок, а про те, що мої старання реально комусь допомогли змінити життя. І ось ця думка для мене найбільша цінність

Для мене це доказ, що знання, якими я ділюсь, не дарма. І тепер будь-яке твоє питання в нашій сфері, завжди welcome, у будь-який час.

Ось так, друзі. Маленькі моменти іноді дають більше сил, ніж будь-які бонуси чи зарплати.

Всіх обняв 🤗
Сильні 💛
🔥28❤‍🔥92
Що я маю вам сказать))

Копався в себе і знайшов таку міні-шпаргалку по Python)
Може комусь зайде, особливо тим, хто любить мати під рукою базові команди, щоб не шукати кожного разу в Google.

Всім ще раз гарного вечора і початок вихідних) Відпочівайте 🤗🤗🤗
👍15🤓21
Привіт друзі, як ваші вихідні? 🙂


Хочу назвати цей пост так: Не будьте таки як (Я) «Постійно і постійно вертайте ваш енв назад »

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

Шо то маю вам сказать, Бо сьогодні зранку маю класичну історію з Куа-життя.

Ранок почався з того що сежу і думаю, треба глянути одну штуку на тестовому серваку, на якому я давно не був. Ну і пошов я підключатися через клієнт спочатку і тут дивина. Через клієнт мені пише сервер недоступний і все - нічого типо ребута рестарта апки не помогає) ХММ

Думаю ну окай може сервачок хтось потушив - давай через, Ping і він відповідає, curl теж дістається до сервера, тобто він живий.
А от з клієнта все глухо: ніби апка мертва.

І тут у мене на думці сразу як я це люблю с самого ранку після вихідних(

Ну окай, Перевірив blacklist/banlist чисто. І тут вже починаю підозрювати, що справа може бути у фаєрволі а само ломально.

Як зрозуміти і подивитися це не проблема, Можна подивитись локальні правила через:
netsh advfirewall firewall show rule name=all

Або, якщо є підозрюваний процес, перевірити, чи не заблокований його вихідний трафік по IP/домену.

І тут я згадав, що колись давно, коли тестував (обрив коннекту), я сам собі заблочив ip сервера на рівні фаєрвола

Тобто сервер живий і через курл і пінг я можу нормально його бачити а правило саме для APP з якого я хотів зайти - ну короче ви поняли
Ну і це той самий rule, який мене і підставив:
netsh advfirewall firewall add rule name=BlockTest program="шлях\до\апки.exe" dir=out remoteip=XXX.XXX.XXX.XXX action=block


А відновити все назад можна так:
netsh advfirewall firewall delete rule name=BlockTest program="шлях\до\апки.exe" remoteip=XXX.XXX.XXX.XXX

Ну тут вже підставляєте свій шлях до апки та IP)

Ну що зняв rule цей і одразу все ожило. Сервер нікуди не падав, просто я сам собі «підсипав баг» минулого разу)

Мораль яка: завжди після тестів вертайте енв назад. Бо можна півдня шукати проблему, якої насправді немає.

А це вам від мене бонус корисних команд:
Подивитись всі правила:
netsh advfirewall firewall show rule name=all


Забанити апку/endpoint:
netsh advfirewall firewall add rule name=BlockTest program="шлях\до\апки.exe" dir=out remoteip=XXX.XXX.XXX.XXX action=block


Відновити:
netsh advfirewall firewall delete rule name=BlockTest program="шлях\до\апки.exe" remoteip=XXX.XXX.XXX.XXX


Заблокувати весь трафік на конкретний IP (IP-rule)
netsh advfirewall firewall add rule name=BlockIP dir=out remoteip=XXX.XXX.XXX.XXX action=block



Розблокувати цей IP
netsh advfirewall firewall delete rule name=BlockIP



Заблокувати ICMP (ping)
netsh advfirewall firewall add rule name=BlockPing protocol=icmpv4:any,any dir=in action=block


Розблокувати ICMP
netsh advfirewall firewall delete rule name=BlockPing


Всім гарного дня, друзі 🤗
Обняв, і не забувайте чистити після себе енви 😉

Якщо вам цікаво і хочете, я ще зроблю маленький блок пояснення різниці між program-rule (блокує конкретну апку) і IP-rule (блокує весь трафік на адресу)? Це гарно підсумує, чому ping/curl працювали, а клієнт ні. Тоді не забуваємо про серденько)
21🔥6👍3👏1
Завдання дня для QA

Ви пінгуєте сервер: ping 10.10.10.10 але відповідь не приходить. Адмін каже: сервер живий, просто ICMP ми відрубали. - Яку альтернативу можна використати, щоб перевірити?
Anonymous Quiz
27%
(B) curl 10.10.10.10
12%
(C) nc -zv 10.10.10.10 22
40%
(D) Всі вищеперелічені.
👀7🔥31👍1👏1
This media is not supported in your browser
VIEW IN TELEGRAM
Друзі, привіт! 👋

Сьогодні такий день, коли реально треба не дві, а чотири руки, щоб встигнути все, що навалилось)

Думаю, у багатьох із вас таке саме відчуття, ніби на роботі ростуть додаткові руки зі спини 😅

Це відео прям в тему)

Всім гарного дня, друзi!

Обняв 🤗
😁102🤗1
Завдання дня для QA:

Ви логінитесь в апку, сервер видає Set-Cookie: JSESSIONID=abc123. Потім відкриваєте нову вкладку в браузері й знову заходиш на сторінку. - Що буде з твоєю сесією?
Anonymous Quiz
11%
(A) Сервер створить нову сесію, бо нова вкладка = новий юзер
79%
(B) Сесія залишиться та сама, бо cookie спільні між вкладками
5%
(C) Сесія зламається, бо браузери не тримають cookies між вкладками
6%
(D) Відповідь залежить від браузера
👍61🔥1
Bug or Defect?
Привіт друзі, як ваші вихідні? 🙂 Хочу назвати цей пост так: Не будьте таки як (Я) «Постійно і постійно вертайте ваш енв назад » Ранкові історії QA: Шо то маю вам сказать, Бо сьогодні зранку маю класичну історію з Куа-життя. Ранок почався з того що сежу…
Привіт друзі, як ваш день? 🙂

Пам’ятаєте мою історію з фаєрволом? Ну що сьогодні хочу трохи докинути деталей як і обіцяв)

Яка ж все таки різниці між правилами.
Колись я сам собі підклав ггг: Коли я забанив трафік для апки, потім дивлюсь, пінг проходить, curl тягне сторінку, сервер живий, а клієнт каже «ні, я не бачу його». Ну і сиди ломи голову.

Що я маю вас сказать.

Program-rule
Закриває тільки конкретну програму. Наприклад, блочимо свій клієнт:
netsh advfirewall firewall add rule name=BlockApp program="C:\Path\to\app.exe" dir=out remoteip=192.168.1.1 action=block


Ping і curl як раз тут будуть жити. Але ваша апка все, тиша.

а от вже IP-rule
Рубає взагалі весь трафік на конкретний IP.
netsh advfirewall firewall add rule name=BlockIP dir=out remoteip=192.168.1.1 action=block


І тут вже ніякі пінги чи курли не пройдуть. Мертво все, що йде на адресу.

про ICMP-rul це вже про сам ping.
netsh advfirewall firewall add rule name=BlockPing protocol=icmpv4:any,any dir=out action=block


Тобто сервер працює, апка працює, але ping каже «timeout». Це іноді дуже плутає.

Саме для КУА це суперкорисно: якщо хочете перевірити, як поводиться апка без інтернету → ставите program-rule. якщо хочете симулювати, що сервер ліг повністю → ставите IP-rule. ну і якщо хочеш подивитись, чи ваша система орієнтується на пінг, чи реально перевіряє API → блочи ICMP.

і оставлю вам ще пара команд, щоб не губились:

Подивитись усі правила:
netsh advfirewall firewall show rule name=all



Видалити конкретне правило:
netsh advfirewall firewall delete rule name=BlockApp



Подивитись активні сесії й коннекти:
netstat -ano



Вимкнути фаєрвол повністю (але не робіть так на проді):
netsh advfirewall set allprofiles state off



Який поінт від мене, КУА не тільки кнопочки тисне, а й вміє ламати/відновлювати середовище так, щоб реально бачити різницю.
Бо коли знаєш, як це працює під капотом, вже не «сервер мертвий», а просто rule тебе підставив)

Всім гарного вечора 🤗🤗🤗
5👍42🔥2
Друзі, доброго ранку! 🌞

Сиджу з кавою в очікувані колу, думаю щось почитаю і потрапив на це) в цілому суть дуже просто QA‑команди, які активно тусують на форумах і в Slack/Stack Overflow, збільшують ефективність тестування на 30 %.

Короче, лайфхак простий: QA-спільнота, це ваша сила. Не залишайтесь в ізоляції, діліться, питаємо, навчайтеся і двигайте якість уперед разом.

https://moldstud.com/articles/p-maximize-your-qa-testing-success-how-to-leverage-online-communities-effectively

Всім гарного дня і продуктивного настрою!
Обняв 🤗
👍104🔥1