Bug or Defect?
2.51K subscribers
237 photos
94 videos
1 file
213 links
Download Telegram
Bug or Defect?
Завдання дня для QA:

Ви відкрили додаток, і перша думка: «А що буде, якщо я прямо зараз вимкну Wi-Fi, зміню час на телефоні і натисну “Видалити акаунт”? Який тип тестування ми щойно описали?
Доброго вечора - Розберу вам коротенько цей пул може комусь буде цікаво)

Чому не (A)
ну тут і так все всі знають, smoke це швидка перевірка «живе/не живе» ключових флоу після білду (логін, головна дія, вихід). Ніяких експериментів типу вимкну Wi-Fi і натисну (Видалити акаунт). Це просто sanity-чек, не про креатив.

Чому не (B)
Тут теж все понятно, регресія, це повторне проходження вже відомих тест-кейcів після змін у коді. У нашій ситуації немає списку кейсів, ми не «перепроходимо» старе, ми одразу фантазуємо «а що як».

Чому не (D) і воно вас заплутало)
Експлорейшн часто плутають з «хаотичним клацанням», але це не так. Це цільова сесія з чартером (метою), таймбоксом, нотатками, гіпотезами. Тут у нас немає ні чартеру, ні структури, це спонтанний експеримент.

Чому (C) Ad-hoc всеж правельна відповідь)
«Відкрив додаток і перша думка: а що буде, якщо вимкну Wi-Fi / зміню час / натисну “Видалити акаунт”?», це класична ad-hoc: імпульсивна ідея → одразу пробуємо → дивимось, що зламається. Без плану, без нотаток, просто «крутонув ручку й подивився реакцію».

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

Пізніше вам накину круту шпаргалку по No-SQL - наконецто я до неї добрався )

Всім гарного вечора)
1❤‍🔥8👍62🔥1🥰1
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