🆘 "Що це за пекло в логах?": Читаємо Stack Trace як відкриту книгу
Привіт, екіпаж!
Ситуація: ви натискаєте кнопку, отримуєте
Звичайна реакція: "Ой, це для програмістів". Скріншот -> Jira -> "Сервер впав". Реакція профі: Скопіювати текст -> AI -> Отримати діагноз.
Ваш Co-pilot вміє читати стек-трейси будь-якою мовою (
Практичний кейс: Ви отримали помилку при оплаті товару. В логах помилка Java.
✨ Готовий промпт "Log Analyzer":
✅ Що відповість AI:
Висновок: Замість "У вас все зламалося", ви пишете в тікеті: "При оплаті падає NPE, якщо не передати номер карти. Схоже, немає валідації на рівні API". Розробники будуть носити вас на руках за таку конкретику.
А ви заглядаєте в логи чи одразу створюєте тікет? 👇
Привіт, екіпаж!
Ситуація: ви натискаєте кнопку, отримуєте
500 Internal Server Error. Ви йдете в логи (Kibana, Graylog або просто консоль), а там... матриця. Сотні рядків незрозумілого тексту: NullPointerException, at com.company.service..., Traceback (most recent call last)....Звичайна реакція: "Ой, це для програмістів". Скріншот -> Jira -> "Сервер впав". Реакція профі: Скопіювати текст -> AI -> Отримати діагноз.
Ваш Co-pilot вміє читати стек-трейси будь-якою мовою (
Java, Python, JS, C#) і перекладати їх на людську.Практичний кейс: Ви отримали помилку при оплаті товару. В логах помилка Java.
✨ Готовий промпт "Log Analyzer":
Виступи в ролі Senior Backend Developer.
Я QA, тестував оплату і отримав 500 помилку. Ось Stack Trace з логів.
**Завдання:**
1. Поясни простою мовою, що саме зламалося (NullPointer? TimeOut? TypeMismatch?).
2. Вкажи, в якому файлі і на якому рядку сталася біда.
3. Припусти, що могло стати причиною (наприклад, я передав порожнє поле, чи це помилка в коді?).
**Лог:**
`java.lang.NullPointerException: Cannot invoke "String.length()" because "cardNumber" is null
at com.shop.PaymentService.validate(PaymentService.java:42)
at com.shop.OrderController.pay(OrderController.java:15)...`
✅ Що відповість AI:
"Помилка NullPointerException. Проблема в файлі PaymentService.java на рядку 42. Суть: Система намагалася перевірити довжину номера картки (cardNumber), але ця змінна виявилася порожньою (null). Причина: Скоріше за все, в запиті не передався номер карти, або він загубився по дорозі від контролера до сервісу."
Висновок: Замість "У вас все зламалося", ви пишете в тікеті: "При оплаті падає NPE, якщо не передати номер карти. Схоже, немає валідації на рівні API". Розробники будуть носити вас на руках за таку конкретику.
А ви заглядаєте в логи чи одразу створюєте тікет? 👇
🔥1
🕸 GraphQL без сліз: Як писати складні запити, не знаючи синтаксису
Ви звикли до REST API: хочеш юзера — йдеш на
Але приходить розробник і каже: "Ми переїхали на GraphQL. Тепер у нас тільки один URL, а дані проси через Query". 🤯 Ви відкриваєте
Тут в гру вступає AI.
Практичний кейс: Вам треба отримати ім'я користувача, його імейл та список із останніх 5 замовлень (тільки ID та суму) для юзера з
✨ Готовий промпт "GraphQL Builder":
✅ Результат від AI:
Що з цим робити?
Бонус: Якщо запит не працює, скопіюйте помилку
Висновок:
А у вас на проєкті
Ви звикли до REST API: хочеш юзера — йдеш на
/users/1, хочеш його замовлення — йдеш на /users/1/orders. Все просто.Але приходить розробник і каже: "Ми переїхали на GraphQL. Тепер у нас тільки один URL, а дані проси через Query". 🤯 Ви відкриваєте
Postman, бачите пусте поле Body і не знаєте, що туди писати. { user { id } }? Чи query { getUser }?GraphQL дозволяє забрати всі потрібні дані одним запитом (і юзера, і його кота, і історію покупок). Але написати цей "багатоповерховий" запит без помилок — важко.Тут в гру вступає AI.
Практичний кейс: Вам треба отримати ім'я користувача, його імейл та список із останніх 5 замовлень (тільки ID та суму) для юзера з
ID 123.✨ Готовий промпт "GraphQL Builder":
Виступи в ролі Backend Developer.
Мені потрібно написати **GraphQL Query**.
**Моя мета:**
Отримати дані для користувача з `id: "123"`.
Поля, які мені потрібні:
1. З об'єкта User: `firstName`, `email`.
2. З вкладеного об'єкта Orders (мені потрібні тільки останні 5 штук): `id`, `totalAmount`, `status`.
Напиши правильний синтаксис запиту.
✅ Результат від AI:
query {
user(id: "123") {
firstName
email
orders(limit: 5) {
id
totalAmount
status
}
}
}Що з цим робити?
1️⃣ В Postman вибираєте тип GraphQL.2️⃣ Вставляєте цей код у поле Query.3️⃣ Тиснете Send.4️⃣ Отримуєте ідеальний JSON саме з тими даними, які просили. Жодних зайвих полів!
Бонус: Якщо запит не працює, скопіюйте помилку
(Field 'orders' doesn't exist on type 'User') в AI, і він скаже: "А, точно, у вашій схемі це поле називається userOrders, спробуй так...".Висновок:
GraphQL — це потужно, бо ви самі вирішуєте, що поверне сервер. З AI ви стаєте архітектором своїх даних за секунди.А у вас на проєкті
REST чи GraphQL? 👇Please open Telegram to view this post
VIEW IN TELEGRAM
❤1🔥1
📁 Тобі потрібен PDF на 100 МБ? Не гугли! Генеруємо тестові файли за секунду
Привіт, екіпаж!
П'ятниця — час чистити папку "Завантаження". До речі, скільки у вас там лежить файлів типу
Ми постійно тестуємо аплоадери. І часто нам потрібні специфічні файли:
Замість того, щоб шукати ці файли по всьому інтернету, створіть їх самі за допомогою пари рядків коду від AI.
Практичний кейс №1: Файл точного розміру Вам треба перевірити ліміт завантаження (наприклад, макс 10 МБ). Треба створити файл розміром 10.5 МБ.
✨ Промпт:
✅ Результат (Python):
(Запускаєте — і у вас миттєво з'являється файл потрібного розміру!)
Практичний кейс №2: "Бите" зображення Треба перевірити, як сервер обробляє invalid files. Якщо просто перейменувати
✨ Промпт:
Висновок: Ви маєте повний контроль. Хочете
А у вас є "заповітна папочка" з тестовими файлами, чи ви кожен раз шукаєте нові? 👇
Привіт, екіпаж!
П'ятниця — час чистити папку "Завантаження". До речі, скільки у вас там лежить файлів типу
test.jpg, sample_big.pdf, broken_file.docx?Ми постійно тестуємо аплоадери. І часто нам потрібні специфічні файли:
1️⃣ Граничні значення: Файл рівно 25 МБ (ліміт), і файл 25 МБ + 1 байт.2️⃣ Биті файли: Щоб перевірити, чи не впаде сервер, якщо завантажити "сміття".
Замість того, щоб шукати ці файли по всьому інтернету, створіть їх самі за допомогою пари рядків коду від AI.
Практичний кейс №1: Файл точного розміру Вам треба перевірити ліміт завантаження (наприклад, макс 10 МБ). Треба створити файл розміром 10.5 МБ.
✨ Промпт:
Виступи в ролі Python Developer.
Напиши скрипт, який створює "пустий" (dummy) файл з розширенням `.txt`.
Вимоги:
1. Розмір файлу має бути рівно **10.5 Megabytes**.
2. Назва файлу: `test_oversize.txt`.
✅ Результат (Python):
with open("test_oversize.txt", "wb") as f:
f.seek(10 * 1024 * 1024 + 512 * 1024 - 1) # 10.5 MB
f.write(b"\0")(Запускаєте — і у вас миттєво з'являється файл потрібного розміру!)
Практичний кейс №2: "Бите" зображення Треба перевірити, як сервер обробляє invalid files. Якщо просто перейменувати
.txt у .jpg, розумний сервер це зрозуміє. Нам треба файл, який має заголовок картинки, але "сміття" всередині.✨ Промпт:
Напиши скрипт на Python, який створює файл `corrupted_image.jpg`.
1. Початок файлу (Header) має бути як у справжнього JPG (щоб обдурити просту валідацію).
2. Решта вмісту — випадкові байти (random noise).
3. Розмір — 1 МБ.
Висновок: Ви маєте повний контроль. Хочете
CSV на мільйон рядків? PDF з вірусом? Картинку з метаданими 2026 року? AI згенерує генератор для всього цього.А у вас є "заповітна папочка" з тестовими файлами, чи ви кожен раз шукаєте нові? 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
🏴☠️ "Хакер на мінімалках": Як знайти дірку в безпеці сайту за 2 хвилини
Привіт, екіпаж!
Ми звикли перевіряти позитивні сценарії: "Ввів ім'я -> Зберіглося". А що, якщо замість імені ввести шматок JavaScript-коду? 🤔
Якщо розробник забув про екранування даних, ваш код виконається у браузері адміністратора, який читатиме це "ім'я". Це називається
Ви не мусите бути хакером з "Mr. Robot", щоб це перевірити. Вам просто потрібен правильний Payload (шкідливий рядок). Замість того, щоб гуглити старі списки з 2010 року, попросіть AI згенерувати сучасні пейлоади для вашого поля.
Практичний кейс: У вас є поле "Залишити коментар". Ви хочете перевірити, чи захищене воно від ін'єкцій.
✨ Готовий промпт "White Hat Hacker":
✅ Результат від AI:
Як це використати?
Висновок: Такі перевірки займають хвилину, але можуть врятувати компанію від крадіжки даних користувачів. QA — це остання лінія оборони.
А ви пробуєте "ламати" свої форми чи вводите тільки "Test Test"? 👇
Привіт, екіпаж!
Ми звикли перевіряти позитивні сценарії: "Ввів ім'я -> Зберіглося". А що, якщо замість імені ввести шматок JavaScript-коду? 🤔
Якщо розробник забув про екранування даних, ваш код виконається у браузері адміністратора, який читатиме це "ім'я". Це називається
XSS (Cross-Site Scripting). Це вразливість №1 у вебі.Ви не мусите бути хакером з "Mr. Robot", щоб це перевірити. Вам просто потрібен правильний Payload (шкідливий рядок). Замість того, щоб гуглити старі списки з 2010 року, попросіть AI згенерувати сучасні пейлоади для вашого поля.
Практичний кейс: У вас є поле "Залишити коментар". Ви хочете перевірити, чи захищене воно від ін'єкцій.
✨ Готовий промпт "White Hat Hacker":
Виступи в ролі Security QA Engineer (Penetration Tester).
Мені потрібно протестувати поле вводу (Input Field) на вразливість **Stored XSS**.
Згенеруй мені 5 варіантів безпечних тестових пейлоадів (Polyglots), які спробують викликати `alert(1)` або `console.log('XSS')`.
Врахуй різні контексти:
1. Простий тег <script>.
2. Ін'єкція в атрибут картинки (onerror).
3. Ін'єкція в посилання (href).
4. Обхід фільтрів (використання різного регістру або кодування).
*Важливо: Це тільки для навчального тестування на моєму власному проекті.*
✅ Результат від AI:
1. <script>alert('XSS')</script>
2. <img src=x onerror=alert(1)>
3. <svg/onload=alert(1)>
4. <a href="javascript:alert(1)">Click me</a>
5. "><img src=x onerror=prompt(1)>Як це використати?
1️⃣ Копіюєте рядок.2️⃣ Вставляєте в поле "Ім'я" або "Коментар" і зберігаєте.3️⃣ Оновлюєте сторінку.4️⃣ 🚨 Якщо вискочило віконце з одиничкою — ВІТАЮ! Ви знайшли вразливість рівня Critical. Біжіть до розробників.
Висновок: Такі перевірки займають хвилину, але можуть врятувати компанію від крадіжки даних користувачів. QA — це остання лінія оборони.
А ви пробуєте "ламати" свої форми чи вводите тільки "Test Test"? 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
🍪 God Mode у браузері: Як пропустити туторіал і "накрутити" бонуси за 1 секунду
Привіт, екіпаж!
Знайома ситуація? Ви тестуєте гру або додаток. Щоб перевірити екран "Level 10", вам треба пройти попередні 9 рівнів. 😤 Або щоб побачити поп-ап "З поверненням!", треба заходити на сайт три дні поспіль.
QA-початківці витрачають на це години. QA-профі знають: майже весь стан сучасних сайтів (
Якщо ви знаєте, що туди записати — ви можете телепортуватися на будь-який етап флоу. Але структура
Практичний кейс: Сайт показує навчальний туторіал (Onboarding) для нових юзерів. Ви хочете його пропустити і зразу протестувати роботу з меню. Ви подивилися в Application -> LocalStorage і побачили, що там є ключ userSettings.
✨ Готовий промпт "State Hacker":
✅ Результат від AI (готовий сніпет):
Як це використати?
Що ще можна так робити?
Висновок: Браузер зберігає всі секрети у вас під носом. Навчіться їх редагувати, і ви зможете тестувати сценарії, до яких неможливо дійти звичайним кліканням.
А ви копаєтесь у
Привіт, екіпаж!
Знайома ситуація? Ви тестуєте гру або додаток. Щоб перевірити екран "Level 10", вам треба пройти попередні 9 рівнів. 😤 Або щоб побачити поп-ап "З поверненням!", треба заходити на сайт три дні поспіль.
QA-початківці витрачають на це години. QA-профі знають: майже весь стан сучасних сайтів (
Angular, React, Vue) зберігається у LocalStorage або Cookies.Якщо ви знаєте, що туди записати — ви можете телепортуватися на будь-який етап флоу. Але структура
JSON там буває складною. Не партеся. Нехай AI напише вам "ін'єкцію".Практичний кейс: Сайт показує навчальний туторіал (Onboarding) для нових юзерів. Ви хочете його пропустити і зразу протестувати роботу з меню. Ви подивилися в Application -> LocalStorage і побачили, що там є ключ userSettings.
✨ Готовий промпт "State Hacker":
Виступи в ролі Frontend Developer.
Я хочу маніпулювати **LocalStorage** в браузері для тестування.
Сайт зберігає налаштування в ключі `app_settings`.
**Завдання:**
Напиши мені JS-код для консолі, який:
1. Отримує поточний об'єкт з `app_settings` (якщо він є).
2. Змінює (або додає) в ньому параметри:
- `tutorialCompleted`: `true` (щоб пропустити навчання)
- `visitCount`: `10` (щоб вважатися досвідченим юзером)
- `theme`: `"dark"`
3. Зберігає оновлений об'єкт назад у LocalStorage.
4. Перезавантажує сторінку (`location.reload()`), щоб зміни вступили в силу.
✅ Результат від AI (готовий сніпет):
let data = JSON.parse(localStorage.getItem('app_settings') || '{}');
data.tutorialCompleted = true;
data.visitCount = 10;
data.theme = "dark";
localStorage.setItem('app_settings', JSON.stringify(data));
location.reload();Як це використати?
1️⃣ F12 -> Console.2️⃣ Вставили код -> Enter.3️⃣ Сторінка оновилась — і ви вже "старий" юзер без набридливих підказок, у темній темі.
Що ще можна так робити?
🔹A/B тести: Примусово ставити собі групу "B" у куках.
🔹E-commerce: Додавати в кошик товари, кнопки "Купити" для яких приховані на UI.
🔹Ігри: Міняти score: 100 на score: 999999.
Висновок: Браузер зберігає всі секрети у вас під носом. Навчіться їх редагувати, і ви зможете тестувати сценарії, до яких неможливо дійти звичайним кліканням.
А ви копаєтесь у
LocalStorage чи тестуєте тільки через UI? 👇Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
🔑 Хакерський набір: Як читати JWT-токени без сторонніх сайтів
Привіт, екіпаж!
Ви робите запит в
СТОП! 🛑 Вставляти робочі токени (особливо з продакшну) на чужі сайти — це грубе порушення безпеки.
Давайте зробимо свій безпечний декодер прямо в консолі браузера за допомогою AI.
Практичний кейс: Вам треба миттєво дізнатися, коли закінчується життя токена (поле
✨ Готовий промпт "JWT Decoder":
✅ Результат від AI (зберігаємо в Snippets):
Як це використати?
Висновок: Ви діагностуєте проблеми авторизації за секунди, не передаючи дані третім сторонам. Це професійний підхід до безпеки.
А ви користуєтесь онлайн-декодерами чи довіряєте тільки собі? 👇
Привіт, екіпаж!
Ви робите запит в
Postman, а у відповідь — 401 Unauthorized. Чому?1️⃣ Токен прострочився 5 хвилин тому?2️⃣ Вам дали токен з правами Read-Only, а ви намагаєтесь зробити POST?3️⃣ В токені зашитий не той User ID?
Токен (JWT) — це не абракадабра. Це просто Base64-кодований JSON. Його можна прочитати. Більшість йде на сайт jwt.io, вставляє туди токен і дивиться. СТОП! 🛑 Вставляти робочі токени (особливо з продакшну) на чужі сайти — це грубе порушення безпеки.
Давайте зробимо свій безпечний декодер прямо в консолі браузера за допомогою AI.
Практичний кейс: Вам треба миттєво дізнатися, коли закінчується життя токена (поле
exp) і яка там роль.✨ Готовий промпт "JWT Decoder":
Виступи в ролі Security Engineer.
Напиши мені JavaScript-функцію для консолі браузера, яка парсить **JWT токен**.
**Вимоги:**
1. Функція приймає рядок токена.
2. Вона декодує другу частину токена (Payload).
3. Виводить вміст у зручному вигляді (console.table або JSON).
4. **Важливо:** Якщо в токені є поля `exp` (expiration) або `iat` (issued at), перетвори їх з Unix Timestamp у читабельну дату (Human readable format).
Код має працювати без зовнішніх бібліотек.
✅ Результат від AI (зберігаємо в Snippets):
function parseJWT(token) {
try {
const base64Url = token.split('.')[1];
const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
const jsonPayload = decodeURIComponent(window.atob(base64).split('').map(function(c) {
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
}).join(''));
const data = JSON.parse(jsonPayload);
// Конвертуємо дати
['exp', 'iat', 'nbf'].forEach(field => {
if (data[field]) {
data[field + '_readable'] = new Date(data[field] * 1000).toLocaleString();
}
});
console.table(data);
} catch (e) {
console.error("Невалідний токен!", e);
}
}Як це використати?
1️⃣ Збережіть цей код у сніпети (ми вчили це вчора 😉) або просто вставте в консоль.2️⃣ Напишіть: parseJWT("ващ_довгий_токен_eyJ...").3️⃣ Дивіться в табличку!
🔹role: "admin" (Ок, права є).
🔹exp_readable: "15.12.2025, 10:00:00" (Ага! Він протух годину тому).
Висновок: Ви діагностуєте проблеми авторизації за секунди, не передаючи дані третім сторонам. Це професійний підхід до безпеки.
А ви користуєтесь онлайн-декодерами чи довіряєте тільки собі? 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
👯♂️ Stage vs Prod: Як знайти реальні відмінності в JSON, ігноруючи "шум"
Привіт, екіпаж!
Часта задача на регресії: переконатися, що нова версія API повертає те саме, що й стара (за винятком нових фіч). Ви берете два JSON-и по 500 рядків, кидаєте в Text Compare... і все червоне. 😱
Чому? Бо змінилися
Очищати файли вручну? Ні. Попросіть AI зробити Smart Diff.
Практичний кейс: Порівнюємо відповідь сервера v1 (Prod) і v2 (Stage).
✨ Готовий промпт "JSON Detective":
✅ Що видасть AI: Замість тисячі червоних рядків він напише коротко:
⚠️ Знайдено критичні зміни:
Висновок: Ви за хвилину знаходите баги зворотної сумісності (Backward Compatibility), які могли б покласти мобільний додаток, і не витрачаєте час на перегляд таймстемпів.
А чим ви порівнюєте великі JSON-и? Очима чи тулами? 👇
Привіт, екіпаж!
Часта задача на регресії: переконатися, що нова версія API повертає те саме, що й стара (за винятком нових фіч). Ви берете два JSON-и по 500 рядків, кидаєте в Text Compare... і все червоне. 😱
Чому? Бо змінилися
id, createdAt, updatedAt, traceId. Це "динамічний шум". Вам же треба знати, чи не зникло поле price і чи не змінився тип даних у status.Очищати файли вручну? Ні. Попросіть AI зробити Smart Diff.
Практичний кейс: Порівнюємо відповідь сервера v1 (Prod) і v2 (Stage).
✨ Готовий промпт "JSON Detective":
Виступи в ролі QA Lead.
У мене є два JSON-об'єкти (Старий і Новий).
**Завдання:**
Порівняй їх структуру та дані, АЛЕ:
1. **Ігноруй** поля, які змінюються динамічно (унікальні ID, timestamp, dates, tokens).
2. Фокусуйся на змінах у **бізнес-логіці**:
- Чи зникли якісь поля?
- Чи змінилися типи даних (наприклад, string став int)?
- Чи змінилися значення констант (наприклад, status: "active" стало "ENABLED")?
Виведи тільки список значущих відмінностей.
**JSON 1 (Old):** ...
**JSON 2 (New):** ...
✅ Що видасть AI: Замість тисячі червоних рядків він напише коротко:
⚠️ Знайдено критичні зміни:
1️⃣ Поле user.fullName зникло в новій версії. Замість нього з'явилися firstName та lastName.2️⃣ Поле price змінило тип: було String ("100.00"), стало Number (100.00). Це може зламати старий фронтенд!3️⃣ Поле isAvailable змінилося з true на false, хоча товар той самий.
Висновок: Ви за хвилину знаходите баги зворотної сумісності (Backward Compatibility), які могли б покласти мобільний додаток, і не витрачаєте час на перегляд таймстемпів.
А чим ви порівнюєте великі JSON-и? Очима чи тулами? 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
📊 Google Sheets на стероїдах: Як перевірити 100 посилань прямо в таблиці
Привіт, екіпаж!
Ситуація: вам дали таблицю, в якій 500 посилань на сторінки товарів. Завдання: "Перевір, які з них робочі (200 OK), а які биті (404 Not Found)".
❌ Варіант "Джуніор": Клікати на кожне посилання вручну. (Прощавай, вихідні).
❌ Варіант "Мідл": Експортувати в CSV, загнати в
✅ Варіант "Smart QA": Створити власну функцію в
Google Таблиці підтримують скрипти (
Писати скрипт вручну? Навіщо?
✨ Готовий промпт "Sheet Scripter":
✅ Результат від AI (код):
Як це використати?
Магія: Таблиця сама почне думати і за хвилину проставить коди: 200, 404, 500. Ви одразу бачите биті посилання. Фільтруєте по "404" — і баг-репорт готовий.
Висновок:
А ви використовуєте скрипти в таблицях чи тільки формули
Привіт, екіпаж!
Ситуація: вам дали таблицю, в якій 500 посилань на сторінки товарів. Завдання: "Перевір, які з них робочі (200 OK), а які биті (404 Not Found)".
❌ Варіант "Джуніор": Клікати на кожне посилання вручну. (Прощавай, вихідні).
❌ Варіант "Мідл": Експортувати в CSV, загнати в
JMeter/Postman Runner. (Довго налаштовувати).✅ Варіант "Smart QA": Створити власну функцію в
Google Sheets, яка зробить це сама.Google Таблиці підтримують скрипти (
Apps Script). Ви можете створити формулу =CHECK_STATUS(A1), яка піде в інтернет і поверне код відповіді.Писати скрипт вручну? Навіщо?
✨ Готовий промпт "Sheet Scripter":
Виступи в ролі Google Apps Script Developer.
Мені потрібен скрипт для Google Sheets.
Створи кастомну функцію `GET_STATUS(url)`.
**Логіка:**
1. Функція приймає URL.
2. Робить HTTP-запит (GET) за цією адресою.
3. Повертає HTTP Status Code (наприклад, 200, 404, 500).
4. Якщо виникає помилка (наприклад, DNS error) — повертає текст "Error".
5. Додай обробку кешу, щоб скрипт не спамив запитами при кожному чиху.
✅ Результат від AI (код):
function GET_STATUS(url) {
try {
var response = UrlFetchApp.fetch(url, {muteHttpExceptions: true});
return response.getResponseCode();
} catch (error) {
return "Error: " + error.toString();
}
}Як це використати?
1️⃣ У Google Таблиці натисніть Extensions (Розширення) -> Apps Script.2️⃣ Видаліть все, що там є, і вставте код від AI.3️⃣ Натисніть "Зберегти" (іконка дискети).4️⃣ Поверніться в таблицю.5️⃣ У комірці B1 напишіть: =GET_STATUS(A1) (де в A1 ваше посилання).6️⃣ Протягніть формулу вниз на всі 500 рядків.
Магія: Таблиця сама почне думати і за хвилину проставить коди: 200, 404, 500. Ви одразу бачите биті посилання. Фільтруєте по "404" — і баг-репорт готовий.
Висновок:
Google Sheets — це не просто клітинки. Це повноцінна IDE, якщо знати, як попросити AI написати під неї код.А ви використовуєте скрипти в таблицях чи тільки формули
SUM? 👇Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
🤖 Google Sheets + Telegram: Як відправляти баги розробникам автоматично
Привіт, екіпаж!
Бачу, вам сподобалась тема скриптів у таблицях. Давайте підвищимо градус крутості. 🔥
Класична рутина:
Нащо перемикатися? Давайте зробимо так: ви обираєте в клітинці статус
Це називається
Що нам треба:
✨ Готовий промпт "Auto-Reporter":
✅ Результат від AI (код для Extensions -> Apps Script):
Як це виглядає в житті? Ви просто працюєте з таблицею: "Pass, Pass, Pass, FAILED". І у вашого ліда в кишені вібрує телефон: "🚨 Баг детектед! Тест: Логін через Facebook".
Висновок: Ви економите час на комунікації і виглядаєте як техно-маг.
Хто спробує налаштувати собі "тривожну кнопку"? 👇
Привіт, екіпаж!
Бачу, вам сподобалась тема скриптів у таблицях. Давайте підвищимо градус крутості. 🔥
Класична рутина:
1️⃣ Проходиш тест-кейс у таблиці.2️⃣ Знаходиш баг.3️⃣ Відкриваєш Telegram/Slack.4️⃣ Пишеш: "Там тест №45 впав, гляньте".5️⃣ Повертаєшся в таблицю.
Нащо перемикатися? Давайте зробимо так: ви обираєте в клітинці статус
FAILED, і Таблиця САМА пише в Telegram розробнику.Це називається
Webhooks, і це простіше, ніж здається.Що нам треба:
1️⃣ Створити бота в Telegram через @BotFather (це займе 10 секунд, отримаєте токен).2️⃣ Дізнатися ID чату, куди слати повідомлення (можна через бот @userinfobot).3️⃣ Попросити AI написати магію.
✨ Готовий промпт "Auto-Reporter":
Виступи в ролі Google Apps Script Developer.
Напиши скрипт для Google Sheets, який відправляє повідомлення в Telegram.
**Логіка:**
1. Скрипт має спрацьовувати автоматично при редагуванні комірки (`onEdit`).
2. Якщо в колонці **C** (Статус) з'являється значення **"FAILED"**:
- Бери назву тесту з колонки **A** (того ж рядка).
- Бери посилання/дані з колонки **B**.
- Відправляй повідомлення в мій Telegram Bot.
**Дані:**
Token: "ВАШ_ТОКЕН"
Chat ID: "ВАШ_CHAT_ID"
Повідомлення має бути з емодзі, наприклад: "🚨 Баг знайдено! Тест: [Назва]. Дані: [Лінк]".
✅ Результат від AI (код для Extensions -> Apps Script):
function onEdit(e) {
var sheet = e.source.getActiveSheet();
var range = e.range;
// Якщо змінили колонку 3 (C) і написали "FAILED"
if (range.getColumn() == 3 && e.value == "FAILED") {
var row = range.getRow();
var testName = sheet.getRange(row, 1).getValue(); // Колонка A
var testLink = sheet.getRange(row, 2).getValue(); // Колонка B
sendTelegram(testName, testLink);
}
}
function sendTelegram(test, link) {
var token = "ВСТАВТЕ_ТУТ_ТОКЕН_ВІД_BOTFATHER";
var chatId = "ВСТАВТЕ_ТУТ_ВАШ_ID";
var message = "🚨 *Баг детекед!*\n\n📌 *Тест:* " + test + "\n🔗 *Де:* " + link;
var url = "https://api.telegram.org/bot" + token + "/sendMessage";
var payload = {
"chat_id": chatId,
"text": message,
"parse_mode": "Markdown"
};
var options = {
"method": "post",
"payload": payload
};
UrlFetchApp.fetch(url, options);
}Як це виглядає в житті? Ви просто працюєте з таблицею: "Pass, Pass, Pass, FAILED". І у вашого ліда в кишені вібрує телефон: "🚨 Баг детектед! Тест: Логін через Facebook".
Висновок: Ви економите час на комунікації і виглядаєте як техно-маг.
Google Sheets може керувати зовнішнім світом, якщо дати йому правильний код.Хто спробує налаштувати собі "тривожну кнопку"? 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
🔖 Кнопка "Зробити добре": Створюємо власні інструменти в панелі закладок
Привіт, екіпаж!
Ми вже говорили про Chrome Snippets, але у них є мінус: треба натиснути F12, перейти в Sources, знайти скрипт, натиснути Run... Забагато кліків для частої дії.
Хочете мати кнопку прямо під адресним рядком, яка робить магію одним кліком? Це називається
Що можна зробити одним кліком:
Коли ви заводите баг, вам треба вказати: URL, розширення екрану, User Agent, час. Давайте зробимо кнопку, яка копіює це в буфер обміну автоматично.
✨ Готовий промпт "Bookmarklet Creator":
✅ Результат від AI (готовий код):
Як встановити:
Як це працює? Тепер, коли ви знаходите баг:
Висновок: Ви можете створити закладки для будь-чого: "Заповнити форму логіну", "Увімкнути червоні границі блоків", "Показати приховані поля". Ви самі будуєте свій інтерфейс браузера.
А у вас є корисні букмарклети чи тільки посилання на YouTube? 👇
Привіт, екіпаж!
Ми вже говорили про Chrome Snippets, але у них є мінус: треба натиснути F12, перейти в Sources, знайти скрипт, натиснути Run... Забагато кліків для частої дії.
Хочете мати кнопку прямо під адресним рядком, яка робить магію одним кліком? Це називається
Bookmarklet. Це шматок JS-коду, збережений замість URL.Що можна зробити одним кліком:
1️⃣ Очистити всі Cookies та LocalStorage для цього сайту.2️⃣ Підсвітити всі елементи без атрибута alt (для тестування доступності).3️⃣ Мій улюблений кейс: Скопіювати технічну інфо для баг-репорту.
Коли ви заводите баг, вам треба вказати: URL, розширення екрану, User Agent, час. Давайте зробимо кнопку, яка копіює це в буфер обміну автоматично.
✨ Готовий промпт "Bookmarklet Creator":
Виступи в ролі Frontend Developer.
Напиши мені JavaScript-код для **Bookmarklet**.
Код має бути обгорнутий у `javascript:(function(){ ... })()`, щоб я міг зберегти його як закладку.
**Функціонал:**
1. Збери дані про поточну сторінку:
- URL (`window.location.href`)
- Роздільна здатність екрану (`screen.width` x `screen.height`)
- Розмір вікна (`window.innerWidth` x `window.innerHeight`)
- User Agent (`navigator.userAgent`)
2. Сформуй красивий текст для Jira (markdown або plain text).
3. Скопіюй цей текст у буфер обміну (Clipboard API).
4. Покажи `alert("Інфо скопійовано!")`.
✅ Результат від AI (готовий код):
javascript:(function(){
const info = `
*URL:* ${window.location.href}
*Screen:* ${screen.width}x${screen.height}
*Viewport:* ${window.innerWidth}x${window.innerHeight}
*UA:* ${navigator.userAgent}
`;
navigator.clipboard.writeText(info.trim()).then(() => {
alert('✅ Інфо для баг-репорту скопійовано!');
}).catch(err => {
console.error('Failed to copy: ', err);
alert('❌ Помилка копіювання (перевір права доступу)');
});
})();Як встановити:
1️⃣ Натисніть Ctrl+D (додати закладку) на будь-якому сайті.2️⃣ Назвіть її "🐞 Copy Bug Info".3️⃣ Натисніть кнопку "Більше" (More) або "Змінити" (Edit).4️⃣ У поле URL видаліть посилання і вставте код, який дав AI (починаючи з javascript:).5️⃣ Збережіть.
Як це працює? Тепер, коли ви знаходите баг:
1️⃣ Тиснете на закладку "🐞 Copy Bug Info" на панелі.2️⃣ Бачите повідомлення "Скопійовано!".3️⃣ Йдете в Jira і тиснете Ctrl+V. Всі технічні дані вставляються ідеально.
Висновок: Ви можете створити закладки для будь-чого: "Заповнити форму логіну", "Увімкнути червоні границі блоків", "Показати приховані поля". Ви самі будуєте свій інтерфейс браузера.
А у вас є корисні букмарклети чи тільки посилання на YouTube? 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
🧩 "Зворотній інжиніринг": Як тестувати складні поля без болю (Regex + AI)
Привіт, екіпаж!
Зізнавайтесь, хто любить Regular Expressions? Ніхто? Я так і думав. 😄 Для QA це часто чорна магія. Розробники використовують їх для валідації пошти, паролів, IBAN-ів та номерів телефонів.
Ситуація: Розробник каже: "Я оновив правила для паролів. Тепер вони мають відповідати цьому виразу:
Що робить звичайний QA? Сидить і годину підбирає пароль, який пройде. Що робить Smart QA? Просить AI зробити Reverse Regex — тобто згенерувати тестові дані НА ОСНОВІ формули.
Це економить купу часу на Positive/Negative тестуванні.
Практичний кейс: Вам дали складний формат для поля "ID замовлення":
Вам треба 5 валідних прикладів і 5 невалідних для негативних тестів.
✨ Готовий промпт "Regex Cracker":
✅ Результат від AI:
Бонус-хак: Це працює і у зворотний бік. Якщо вам треба знайти/відфільтрувати дані в логах (наприклад, всі помилки 500 або всі емейли), попросіть AI: "Напиши мені Regex для пошуку всіх IP-адрес у тексті" — і вставте результат у Ctrl+F (в режимі Regex) у своєму редакторі логів.
Висновок:
А як ви перевіряєте валідацію? Методом "тику" чи читаєте код? 👇
Привіт, екіпаж!
Зізнавайтесь, хто любить Regular Expressions? Ніхто? Я так і думав. 😄 Для QA це часто чорна магія. Розробники використовують їх для валідації пошти, паролів, IBAN-ів та номерів телефонів.
Ситуація: Розробник каже: "Я оновив правила для паролів. Тепер вони мають відповідати цьому виразу:
^(?=.*[A-Z])(?=.*[!@#$&*])(?=.*[0-9])(?=.*[a-z]).{8,}$".Що робить звичайний QA? Сидить і годину підбирає пароль, який пройде. Що робить Smart QA? Просить AI зробити Reverse Regex — тобто згенерувати тестові дані НА ОСНОВІ формули.
Це економить купу часу на Positive/Negative тестуванні.
Практичний кейс: Вам дали складний формат для поля "ID замовлення":
ORD-[рік]-[4 літери]-[хеш]. Regex: ^ORD-\d{4}-[A-Z]{4}-[a-z0-9]{6}$.Вам треба 5 валідних прикладів і 5 невалідних для негативних тестів.
✨ Готовий промпт "Regex Cracker":
Виступи в ролі QA Engineer.
Ось Regular Expression, який використовується для валідації поля:
`^ORD-\d{4}-[A-Z]{4}-[a-z0-9]{6}$`
**Завдання:**
1. **Поясни**, що саме вимагає цей вираз (простою мовою).
2. Згенеруй **5 валідних прикладів** (Positive Test Data), які пройдуть перевірку.
3. Згенеруй **5 невалідних прикладів** (Negative Test Data) і поясни, чому саме кожен з них має впасти (наприклад, "неправильний рік", "малі літери замість великих", "закороткий хеш").
✅ Результат від AI:
Пояснення: Рядок має починатися з "ORD-", потім 4 цифри, дефіс, 4 великі літери, дефіс, 6 символів (цифри або малі літери).
✅ Валідні (Pass):
1️⃣ ORD-2024-TEST-abc123
2️⃣ ORD-1999-ABCD-xy99zz ...
❌ Невалідні (Fail):
1️⃣ ORD-24-TEST-abc123 (Рік має 2 цифри замість 4)
2️⃣ ord-2024-TEST-abc123 (Префікс з малої літери)
3️⃣ ORD-2024-test-abc123 (Блок літер має бути UPPERCASE) ...
Бонус-хак: Це працює і у зворотний бік. Якщо вам треба знайти/відфільтрувати дані в логах (наприклад, всі помилки 500 або всі емейли), попросіть AI: "Напиши мені Regex для пошуку всіх IP-адрес у тексті" — і вставте результат у Ctrl+F (в режимі Regex) у своєму редакторі логів.
Висновок:
Regex — це не страшно, якщо ви не пишете його руками. Використовуйте AI як перекладач з "мови символів" на "людську" і назад.А як ви перевіряєте валідацію? Методом "тику" чи читаєте код? 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🚀 З Network Tab у Load Test за 30 секунд: Магія cURL
Привіт, екіпаж!
Ви знайшли ендпоінт, який "тупить". Сторінка завантажується 5 секунд. Ви хочете перевірити: це разова акція чи сервер ляже, якщо зайде 50 юзерів одночасно?
Писати скрипт для навантажувального тестування (
Але у вас вже є все необхідне в браузері. Chrome дозволяє скопіювати будь-який запит як cURL. А AI вміє перетворювати cURL на код.
Практичний кейс: Перетворити один ручний запит на скрипт для навантажувального тестування інструментом k6 (сучасний аналог
Крок 1: У Chrome DevTools (Network) клікаємо правою кнопкою по "тугому" запиту -> Copy -> Copy as cURL (bash).
Крок 2 (Магія AI):
✨ Готовий промпт "Load Test Generator":
✅ Результат від AI (готовий файл script.js):
Що далі? Вам навіть не треба встановлювати k6, якщо ліньки. Просто запустіть цей код, і ви побачите, як ваш сервер почувається під навантаженням.
Бонус: Так само можна просити: "Перетвори цей cURL на Python Request код" або "Перетвори це на Cypress тест".
Висновок: Не пишіть бойлерплейт-код руками. Браузер + AI роблять 90% роботи за вас. Ви лише натискаєте "Пуск".
А ви вже пробували k6 чи все ще сидите на JMeter? 👇
Привіт, екіпаж!
Ви знайшли ендпоінт, який "тупить". Сторінка завантажується 5 секунд. Ви хочете перевірити: це разова акція чи сервер ляже, якщо зайде 50 юзерів одночасно?
Писати скрипт для навантажувального тестування (
JMeter, k6, Locust) з нуля — це довго. Треба прописувати всі хедери, куки, токени... 🤯Але у вас вже є все необхідне в браузері. Chrome дозволяє скопіювати будь-який запит як cURL. А AI вміє перетворювати cURL на код.
Практичний кейс: Перетворити один ручний запит на скрипт для навантажувального тестування інструментом k6 (сучасний аналог
JMeter, де скрипти пишуться на JS).Крок 1: У Chrome DevTools (Network) клікаємо правою кнопкою по "тугому" запиту -> Copy -> Copy as cURL (bash).
Крок 2 (Магія AI):
✨ Готовий промпт "Load Test Generator":
Виступи в ролі Performance QA Engineer.
Ось cURL запит, який я скопіював з браузера:
`curl 'https://api.mysite.com/order' -H 'Authorization: Bearer xyz' ...` (вставте свій cURL сюди)
**Завдання:**
Перетвори цей запит на скрипт для інструменту навантажувального тестування **k6**.
1. Налаштуй сценарій (options): 50 віртуальних юзерів (VUs) протягом 30 секунд.
2. Додай перевірку (check): статус відповіді має бути 200.
3. Додай перевірку: час відповіді < 500ms.
✅ Результат від AI (готовий файл script.js):
import http from 'k6/http';
import { check, sleep } from 'k6';
export let options = {
vus: 50, // 50 користувачів
duration: '30s', // півхвилини стресу
};
export default function () {
let url = 'https://api.mysite.com/order';
let params = {
headers: {
'Authorization': 'Bearer xyz',
'Content-Type': 'application/json',
// AI сам підставив всі ваші куки!
},
};
let res = http.get(url, params);
check(res, {
'status is 200': (r) => r.status === 200,
'time < 500ms': (r) => r.timings.duration < 500,
});
sleep(1);
}
Що далі? Вам навіть не треба встановлювати k6, якщо ліньки. Просто запустіть цей код, і ви побачите, як ваш сервер почувається під навантаженням.
Бонус: Так само можна просити: "Перетвори цей cURL на Python Request код" або "Перетвори це на Cypress тест".
Висновок: Не пишіть бойлерплейт-код руками. Браузер + AI роблять 90% роботи за вас. Ви лише натискаєте "Пуск".
А ви вже пробували k6 чи все ще сидите на JMeter? 👇
👍1
💾 "Ти ж знаєш SQL?": Як писати складні JOIN-и, не розуміючи їх
Привіт, екіпаж!
Класика жанру: на співбесіді питають про SQL, ви кажете "впевнений середній рівень". А потім на роботі: "Слухай, перевір в базі, чи не загубилися транзакції за вчора для юзерів з Києва". 🤯
І ти сидиш і думаєш: тут треба
Не треба. Ваш Co-pilot — це найкращий DBA (Database Administrator). Вам навіть не треба знати точні назви колонок, достатньо описати логіку.
Практичний кейс: Треба знайти баг у програмі лояльності. У нас є 3 таблиці:
Завдання: Знайти юзерів, які купили на суму більше $100, але запису в таблиці bonuses для цього замовлення немає (або балів 0).
✨ Готовий промпт "SQL Master":
✅ Результат від AI:
Чому це круто?
Висновок: Вам не треба зубрити синтаксис складних об'єднань. Вам треба розуміти суть даних. А код напише AI. Тепер ви можете перевіряти бекенд на рівні бази, а не тільки через UI.
А ви пишете складні запити самі чи просите допомоги у девів? 👇
Привіт, екіпаж!
Класика жанру: на співбесіді питають про SQL, ви кажете "впевнений середній рівень". А потім на роботі: "Слухай, перевір в базі, чи не загубилися транзакції за вчора для юзерів з Києва". 🤯
І ти сидиш і думаєш: тут треба
INNER JOIN чи LEFT JOIN? А як зв'язати таблицю Юзерів з таблицею Оплат? Більшість QA в цей момент йде до розробника: "Напиши мені селект, пліз".Не треба. Ваш Co-pilot — це найкращий DBA (Database Administrator). Вам навіть не треба знати точні назви колонок, достатньо описати логіку.
Практичний кейс: Треба знайти баг у програмі лояльності. У нас є 3 таблиці:
1️⃣ users (клієнти).2️⃣ orders (замовлення).3️⃣ bonuses (нараховані бали).
Завдання: Знайти юзерів, які купили на суму більше $100, але запису в таблиці bonuses для цього замовлення немає (або балів 0).
✨ Готовий промпт "SQL Master":
Виступи в ролі Database Architect.
Мені потрібен SQL-запит (PostgreSQL/MySQL).
**Структура моїх таблиць (приблизна):**
1. `users` (id, email, city)
2. `orders` (id, user_id, amount_usd, created_at)
3. `bonuses` (order_id, points)
**Завдання:**
Напиши запит, який виведе email користувачів та ID замовлень, де:
1. Сума замовлення (`amount_usd`) більше 100.
2. АЛЕ в таблиці `bonuses` для цього замовлення або немає запису, або `points` дорівнює 0.
3. Використовуй правильні JOIN-и.
✅ Результат від AI:
SELECT u.email, o.id as order_id, o.amount_usd
FROM users u
JOIN orders o ON u.id = o.user_id
LEFT JOIN bonuses b ON o.id = b.order_id
WHERE o.amount_usd > 100
AND (b.points IS NULL OR b.points = 0);
Чому це круто?
1️⃣ AI сам зрозумів, що треба LEFT JOIN (щоб знайти тих, у кого немає запису в бонусах).2️⃣ Він правильно розставив умови WHERE.3️⃣ Ви просто копіюєте це в DBeaver чи pgAdmin і бачите список багованих замовлень.
Висновок: Вам не треба зубрити синтаксис складних об'єднань. Вам треба розуміти суть даних. А код напише AI. Тепер ви можете перевіряти бекенд на рівні бази, а не тільки через UI.
А ви пишете складні запити самі чи просите допомоги у девів? 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🐘 "Білий ящик" для QA: Тестуємо ETL та міграції, не читаючи код
Привіт, екіпаж!
Під минулим постом про SQL підписник поділився крутим кейсом: використання AI для тестування Glue Jobs (скриптів міграції даних). Це наштовхнуло мене на важливу тему.
Часто розробники пишуть складні
Як це протестувати?
Ми робимо Reverse Engineering: перетворюємо логіку коду на перевірочний запит.
Практичний кейс: Розробник написав код міграції (Python):
Вам треба перевірити, чи не "загубилися" дані і чи правильно присвоївся статус.
✨ Готовий промпт "ETL Validator":
✅ Результат від AI:
Чому це геніально? Цей запит має повернути 0 рядків. Якщо він щось повернув — значить, міграція пройшла криво. Ви знайшли баг, навіть не розбираючись, як працює Spark чи Glue під капотом.
Дякую підписникам за ідеї в коментарях! Ви — драйвер цього каналу. 🚀
А вам доводиться тестувати переливання даних чи тільки UI? 👇
Привіт, екіпаж!
Під минулим постом про SQL підписник поділився крутим кейсом: використання AI для тестування Glue Jobs (скриптів міграції даних). Це наштовхнуло мене на важливу тему.
Часто розробники пишуть складні
ETL-скрипти (на Python або Scala), які переливають дані з однієї бази в іншу з якоюсь логікою. Наприклад: "Якщо юзер з України і чек > $1000, то перенеси його в таблицю VIP_Users і додай прапорець is_premium"Як це протестувати?
❌ Варіант "Хаос": Просто дивитися в таблицю і сподіватися, що все ок.
❌ Варіант "Хардкор": Вчити Python/PySpark, щоб зрозуміти код розробника.
✅ Варіант "Smart QA": Скопіювати шматок коду розробника в AI і попросити написати SQL-запит, який перевірить цю логіку.
Ми робимо Reverse Engineering: перетворюємо логіку коду на перевірочний запит.
Практичний кейс: Розробник написав код міграції (Python):
# Логіка в Glue Job
if user.country == 'UA' and user.total_spent > 1000:
target_table.status = 'VIP'
target_table.discount = 10
else:
target_table.status = 'Standard'
Вам треба перевірити, чи не "загубилися" дані і чи правильно присвоївся статус.
✨ Готовий промпт "ETL Validator":
Виступи в ролі Data QA Engineer.
Ось шматок коду (Python/Business Logic), який використовується для міграції даних:
`if user.country == 'UA' and user.total_spent > 1000: target_table.status = 'VIP' ...`
**Завдання:**
Напиши мені **SQL-запит**, який знайде ПОМИЛКИ в міграції (тобто рядки, де логіка НЕ спрацювала).
Мені треба знайти користувачів, які:
1. Мають країну 'UA' і витрати > 1000.
2. АЛЕ в новій таблиці `target_table` їх статус НЕ 'VIP' або знижка НЕ 10.
✅ Результат від AI:
SELECT * FROM source_users s
JOIN target_table t ON s.id = t.user_id
WHERE s.country = 'UA'
AND s.total_spent > 1000
AND (t.status != 'VIP' OR t.discount != 10);
Чому це геніально? Цей запит має повернути 0 рядків. Якщо він щось повернув — значить, міграція пройшла криво. Ви знайшли баг, навіть не розбираючись, як працює Spark чи Glue під капотом.
Дякую підписникам за ідеї в коментарях! Ви — драйвер цього каналу. 🚀
А вам доводиться тестувати переливання даних чи тільки UI? 👇
❤1👍1
📸 "Не переписуй руками": Як AI пише тести прямо зі скріншотів
Привіт, екіпаж!
Наш підписник у коментарях (дякую за ідею! 🔥) поділився крутим кейсом: він робить скріншот схеми бази даних (ERD), кидає його в AI і просить написати SQL-запити для перевірки структури таблиць.
Це називається Multimodal AI. Сучасні моделі (GPT-4o, Claude 3.5 Sonnet, Gemini 1.5 Pro) мають "очі". Вони розуміють стрілочки, зв'язки та дрібний текст на схемах краще, ніж деякі джуни після безсонної ночі. 😄
Давайте розберемо, як це економить час.
Практичний кейс №1: Бази Даних (Backend) Вам дали картинку зі схемою БД (ER-діаграму) і сказали: "Перевір, чи розробники правильно створили таблиці". Вручну перевіряти типи полів (
Що робимо:
Промпт:
✅ Результат: Ви отримуєте готовий скрипт, який за секунду видає звіт: "Таблиця Users: ОК. Таблиця Orders: Помилка, поле price має тип INT, а на схемі DECIMAL".
Практичний кейс №2: UI/UX (Frontend) Вам дали макет форми логіну у Figma (або просто картинку). Треба написати автотест.
Що робимо:
Кидаємо скріншот макета в AI.
Промпт:
✅ Результат: AI бачить кнопку "Log In", розуміє, що це Submit, і пише код:
Висновок: Ваша клавіатура відпочиває. Ви перетворюєте візуальну документацію на працюючий код за один крок. Якщо ви досі переписуєте назви колонок з картинки вручну — спробуйте кинути картинку в чат.
А ви вже користуєтесь розпізнаванням зображень у роботі? 👇
Привіт, екіпаж!
Наш підписник у коментарях (дякую за ідею! 🔥) поділився крутим кейсом: він робить скріншот схеми бази даних (ERD), кидає його в AI і просить написати SQL-запити для перевірки структури таблиць.
Це називається Multimodal AI. Сучасні моделі (GPT-4o, Claude 3.5 Sonnet, Gemini 1.5 Pro) мають "очі". Вони розуміють стрілочки, зв'язки та дрібний текст на схемах краще, ніж деякі джуни після безсонної ночі. 😄
Давайте розберемо, як це економить час.
Практичний кейс №1: Бази Даних (Backend) Вам дали картинку зі схемою БД (ER-діаграму) і сказали: "Перевір, чи розробники правильно створили таблиці". Вручну перевіряти типи полів (
VARCHAR(255) чи TEXT?) — нудно.Що робимо:
1️⃣ Робимо скріншот діаграми.2️⃣ Кидаємо в чат з AI.
Промпт:
Ось схема БД. Напиши SQL-запит (для PostgreSQL), який перевірить системні таблиці information_schema і підтвердить, що: - Всі таблиці існують. - Типи даних у колонках відповідають схемі. - Primary Key та Foreign Key налаштовані правильно.
✅ Результат: Ви отримуєте готовий скрипт, який за секунду видає звіт: "Таблиця Users: ОК. Таблиця Orders: Помилка, поле price має тип INT, а на схемі DECIMAL".
Практичний кейс №2: UI/UX (Frontend) Вам дали макет форми логіну у Figma (або просто картинку). Треба написати автотест.
Що робимо:
Кидаємо скріншот макета в AI.
Промпт:
Ти QA Automation Engineer. Ось макет форми. Напиши автотест на Playwright/Cypress. Використовуй патерн Page Object. Підбери найкращі селектори для полів 'Email', 'Password' і кнопки 'Login' (припусти, що ID логічні).
✅ Результат: AI бачить кнопку "Log In", розуміє, що це Submit, і пише код:
await page.locator('input[type="email"]').fill('user@test.com');Висновок: Ваша клавіатура відпочиває. Ви перетворюєте візуальну документацію на працюючий код за один крок. Якщо ви досі переписуєте назви колонок з картинки вручну — спробуйте кинути картинку в чат.
А ви вже користуєтесь розпізнаванням зображень у роботі? 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Досить провалювати співбесіди через стрес 🤯
Пам'ятаєте, я казав, що готую для вас дещо особливе? Так от, робота кипить. Я вирішив створити інструмент, який стане вашим особистим тренажерним залом перед реальними оферами.
Ми робимо не просто "квіз-бота" з кнопками А/Б/В. Ми робимо повноцінний AI-симулятор співбесіди (Telegram Mini App).
Уявіть: ви обираєте роль (Junior, Middle, Senior), настрій інтерв'юера — і починається живий діалог.
🤔 "А чому просто не піти в ChatGPT?" — запитаєте ви. Справедливе питання. Але ось у чому різниця:
Ставте 🔥, якщо хочете першими отримати доступ до бета-тесту!
Пам'ятаєте, я казав, що готую для вас дещо особливе? Так от, робота кипить. Я вирішив створити інструмент, який стане вашим особистим тренажерним залом перед реальними оферами.
Ми робимо не просто "квіз-бота" з кнопками А/Б/В. Ми робимо повноцінний AI-симулятор співбесіди (Telegram Mini App).
Уявіть: ви обираєте роль (Junior, Middle, Senior), настрій інтерв'юера — і починається живий діалог.
🤔 "А чому просто не піти в ChatGPT?" — запитаєте ви. Справедливе питання. Але ось у чому різниця:
1️⃣ Вам не треба бути Prompt Engineer. У звичайному чаті треба писати простирадла тексту: "Уяви, що ти Senior QA, запитай мене про SQL...". У нашому боті це вже зашито в архітектуру. Ми налаштували AI так, щоб він поводився як реальний, прискіпливий техлід, а не як "добрий робот".
2️⃣ Контекст і Пам'ять. Звичайний чат "забуває" ваші слабкі місця. Наш бот пам'ятатиме: "Ага, минулого разу ти посипався на API. Давай перевіримо, чи ти підтягнув тему".
3️⃣ Зручний інтерфейс. Це не просто переписка текстом. Це зручний додаток всередині Telegram з вибором тем, прогрес-барами та красивими звітами після інтерв'ю.
Ставте 🔥, якщо хочете першими отримати доступ до бета-тесту!
🔥6
⛓️ Припини копіювати токени! Налаштовуємо авто-авторизацію в Postman
Привіт, екіпаж!
Зізнавайтесь, скільки разів на день ви робите Ctrl+C на токені логіну і Ctrl+V в інший запит? Якщо більше нуля — ви робите роботу робота.
Postman вміє сам брати дані з відповіді і зберігати їх у змінні. Але писати ці скрипти на JS руками ніхто не хоче. "Ай, швидше скопіювати", — думаєте ви. Ні, не швидше. Один раз попросіть AI написати скрипт, і забудьте про ручну авторизацію назавжди.
Практичний кейс: Ми хочемо, щоб після успішного логіну токен автоматично зберігався у змінну
✨ Готовий промпт "Postman Automator":
✅ Результат від AI (копіюємо в Tests запиту /login):
Що робити далі?
Магія: Тепер ви просто тиснете Send на логіні, і всі 50 запитів у вашій колекції автоматично отримують свіжий ключ. Ви більше ніколи не побачите 401 помилку через "старий токен".
А ви все ще копіюєте руками чи вже автоматизували? 👇
Привіт, екіпаж!
Зізнавайтесь, скільки разів на день ви робите Ctrl+C на токені логіну і Ctrl+V в інший запит? Якщо більше нуля — ви робите роботу робота.
Postman вміє сам брати дані з відповіді і зберігати їх у змінні. Але писати ці скрипти на JS руками ніхто не хоче. "Ай, швидше скопіювати", — думаєте ви. Ні, не швидше. Один раз попросіть AI написати скрипт, і забудьте про ручну авторизацію назавжди.
Практичний кейс: Ми хочемо, щоб після успішного логіну токен автоматично зберігався у змінну
{{bearer_token}}, яку використовують всі інші запити в колекції.✨ Готовий промпт "Postman Automator":
Виступи в ролі QA Automation Engineer.
Напиши мені скрипт для вкладки **Tests** у Postman.
**Логіка:**
1. Перевір, що статус відповіді 200.
2. Розпарси JSON-відповідь.
3. Знайди там поле `accessToken` (або просто `token`).
4. Збережи його значення в **Environment Variable** з назвою `my_token`.
5. Виведи в консоль повідомлення "Token updated!".
✅ Результат від AI (копіюємо в Tests запиту /login):
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
var jsonData = pm.response.json();
// Перевіряємо, чи прийшов токен
if (jsonData.token) {
pm.environment.set("my_token", jsonData.token);
console.log("🔑 Token updated successfully!");
} else {
console.error("❌ Token not found in response");
}Що робити далі?
1️⃣ У запиті Login вставте цей код у вкладку Tests.2️⃣ У всіх інших запитах (наприклад, Get Profile) у вкладці Auth виберіть Type: Bearer Token.3️⃣ У полі Token напишіть: {{my_token}}.
Магія: Тепер ви просто тиснете Send на логіні, і всі 50 запитів у вашій колекції автоматично отримують свіжий ключ. Ви більше ніколи не побачите 401 помилку через "старий токен".
А ви все ще копіюєте руками чи вже автоматизували? 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
🎭 "Fake it till you make it": Тестуємо фронтенд без бекенду
Привіт, екіпаж!
Знайома історія? Фронтендер каже: "Я зверстав сторінку Профілю, але дані не вантажаться, бо бекендери ще пиляють ендпоінт /api/profile". QA: "Ну ок, чекаю". 😴
Не треба чекати! Ви можете перевірити верстку, лоадери та обробку даних вже зараз. Нам потрібно просто підсунути браузеру Mock (фейкову відповідь) замість реального запиту.
Можна ставити Charles або Fiddler, але це довго. Простіше попросити AI написати скрипт, який "перехопить" функцію fetch у браузері і віддасть ваші дані.
Практичний кейс: Сайт робить запит на
✨ Готовий промпт "Network Interceptor":
✅ Результат від AI (Monkey Patching):
Як це використати?
Що це дає? Ви можете протестувати, як виглядає інтерфейс із дуже довгими іменами, з нульовим балансом або з помилкою 500 (просто змініть status: 200 на 500 у коді). Ви не залежите від бекенду.
А ви чекаєте на API чи мокаєте дані самі? 👇
Привіт, екіпаж!
Знайома історія? Фронтендер каже: "Я зверстав сторінку Профілю, але дані не вантажаться, бо бекендери ще пиляють ендпоінт /api/profile". QA: "Ну ок, чекаю". 😴
Не треба чекати! Ви можете перевірити верстку, лоадери та обробку даних вже зараз. Нам потрібно просто підсунути браузеру Mock (фейкову відповідь) замість реального запиту.
Можна ставити Charles або Fiddler, але це довго. Простіше попросити AI написати скрипт, який "перехопить" функцію fetch у браузері і віддасть ваші дані.
Практичний кейс: Сайт робить запит на
/api/user-stats. Сервера немає. Ми хочемо, щоб сайт отримав: { "level": 80, "xp": 9999, "rank": "Legend" } і показав це на екрані.✨ Готовий промпт "Network Interceptor":
Виступи в ролі JavaScript Developer.
Напиши мені скрипт для консолі браузера, який мокає (перехоплює) `window.fetch`.
**Логіка:**
1. Збережи оригінальний `fetch`.
2. Якщо URL запиту містить `/api/user-stats` — не роби реальний запит до сервера.
3. Замість цього поверни штучну відповідь (Response object) зі статусом 200 і таким JSON:
`{ "level": 80, "xp": 9999, "rank": "Legend" }`
4. Всі інші запити пропускай як зазвичай (return originalFetch).
5. Виведи в консоль повідомлення: "⚡️ Запит перехоплено!".
✅ Результат від AI (Monkey Patching):
const originalFetch = window.fetch;
window.fetch = async (...args) => {
const [url] = args;
// Якщо бачимо потрібний URL
if (url.toString().includes('/api/user-stats')) {
console.log(`⚡️ Перехоплено запит до: ${url}`);
// Повертаємо фейк
return new Response(JSON.stringify({
level: 80,
xp: 9999,
rank: "Legend"
}), {
status: 200,
headers: { 'Content-Type': 'application/json' }
});
}
// Всі інші запити йдуть на реальний сервер
return originalFetch(...args);
};
console.log("✅ Mock Server активовано прямо в браузері!");
Як це використати?
1️⃣ Відкриваєте сторінку.2️⃣ Вставляєте код у консоль -> Enter.3️⃣ Оновлюєте частину інтерфейсу (натискаєте кнопку "Оновити профіль").4️⃣ Магія: Браузер думає, що отримав дані від сервера, і малює вам "80 level".
Що це дає? Ви можете протестувати, як виглядає інтерфейс із дуже довгими іменами, з нульовим балансом або з помилкою 500 (просто змініть status: 200 на 500 у коді). Ви не залежите від бекенду.
А ви чекаєте на API чи мокаєте дані самі? 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
🎄 Release Notes: 2026 is ready to deploy!
Loading... ██████████ 99%
Друзі, сьогодні ми закриваємо велику задачу під назвою "2025". Я хочу побажати вам найголовнішого — стабільності. Щоб "тривоги" були тільки навчальними, щоб небо було чистим, а новини — нудними і добрими.
Нехай у вашому домі завжди буде світло (і інтернет!), а поруч — ті, з ким хочеться ділити цей момент. Відкладіть сьогодні ноутбуки, забудьте про дедлайни. Ця ніч — для вас.
Бережіть себе. Мирного Нового року! 💙💛
Loading... ██████████ 99%
Друзі, сьогодні ми закриваємо велику задачу під назвою "2025". Я хочу побажати вам найголовнішого — стабільності. Щоб "тривоги" були тільки навчальними, щоб небо було чистим, а новини — нудними і добрими.
Нехай у вашому домі завжди буде світло (і інтернет!), а поруч — ті, з ким хочеться ділити цей момент. Відкладіть сьогодні ноутбуки, забудьте про дедлайни. Ця ніч — для вас.
Бережіть себе. Мирного Нового року! 💙💛
❤2👍1