vyvchy
    Теми розділу

    14 · AI для QA

    AI на співбесіді QA

    Зміст

    Ще два роки тому питання «чи користуєтесь AI?» на співбесіді QA було цікавинкою. Сьогодні це окрема вісь оцінки. Важить не сам факт користування, а як саме: як ти делегуєш роботу моделі, де їй не довіряєш, як перевіряєш вивід і чи береш відповідальність за результат. Змінилася й ставка помилки: кандидат, який каже «AI сам усе напише», лякає інтерв'юера так само, як кандидат, який каже «клікну навмання — якщо впаде, значить баг».

    Ця глава — не про й не про інструменти (це решта розділу). Вона про те, як говорити про AI на співбесіді так, щоб сильний інженер по той бік столу побачив зрілість, а не набір базвордів. Відповідь на це питання — (proxy): по тому, як ти розповідаєш про роботу з AI, інтерв'юер зчитує твоє інженерне мислення загалом.

    Що насправді перевіряє це питання

    Ключове непорозуміння: кандидати думають, що їх перевіряють на знання інструментів («вмієш Claude Code? чув про MCP?»). Насправді інтерв'юера цікавить твоє судження — здатність відрізнити, де AI економить години, а де тихо додає .

    Питання про AI — це замаскована перевірка тих самих якостей, які QA перевіряють завжди: чи розумієш ти межі інструмента, чи верифікуєш результат, чи береш на себе відповідальність. Модель генерує текст, який виглядає правильним, — так само як зелений тест виглядає робочим. Хто розуміє, чому «виглядає правильно» не дорівнює «правильно» (див. Верифікація результатів AI), той автоматично дає сильну відповідь про AI. Хто не розуміє — провалюється незалежно від того, скільки інструментів назве.

    Тому в основі сильної розповіді лежить один цикл, який варто вміти проговорити:

    Так

    Ні

    пропустити цей крок

    Задача

    AI генерує чернетку

    Верифікація:
    рев'ю + запуск + звірка з фактами

    Проходить?

    У код/тест-план
    під твоїм підписом

    Доробити або відкинути

    Червоний прапорець

    Так

    Ні

    пропустити цей крок

    Задача

    AI генерує чернетку

    Верифікація:
    рев'ю + запуск + звірка з фактами

    Проходить?

    У код/тест-план
    під твоїм підписом

    Доробити або відкинути

    Червоний прапорець

    Головна думка діаграми: підпис завжди твій. AI — це стажер, якому можна доручити чернетку, але не можна доручити відповідальність. Інтерв'юер слухає, чи розумієш ти, де в цьому циклі стоїш саме ти.

    Чому «прочитав і виглядає добре» взагалі не рахується перевіркою — виміряно ще в першоджерелі : люди важко відрізняють згенерований текст від написаного людиною. Око тут не інструмент, тож інтерв'юер і слухає процедуру — рев'ю, запуск, звірка з фактами, — а не враження від тексту.

    Питання за рівнями

    Глибина питань про AI зростає з рівнем позиції. Це орієнтир, а не жорсткий закон — але корисно розуміти, чого чекають від тебе і де проходить наступна планка.

    РівеньТипове питанняНа що дивиться інтерв'юер
    trainee«Якими AI-інструментами користуєшся і для чого?»Що ти взагалі пробував; чи розумієш, що модель помиляється
    junior«Покажи, як ти згенеруєш тест-кейси на цю форму. Як перевіриш, що вони повні?»Промптинг під задачу + верифікація виводу
    middle«AI згенерував автотест, він зелений. Як переконаєшся, що він щось перевіряє?»Рев'ю AI-коду; ловиш зелені тести без асертів і вигадані API
    middle«Де ти AI не довіряєш і чому?»Чи знаєш межі: галюцинації, knowledge cutoff, приватність даних
    senior«Як тестувати фічу з LLM усередині? Як зробити eval?»Недетермінізм, семантичні перевірки, golden set, LLM-as-judge
    senior«Як ти впровадив би AI у процес команди без втрати якості?»Політики, рев'ю-гейти, приватність, вартість, навчання команди

    Одна деталь про сеньйорний рядок «Як зробити eval?»: сильна відповідь починається не з інструмента. Промптингу передують дві речі, які дока ставить умовою, — чіткий критерій успіху й спосіб емпірично проти нього перевіряти; це і є eval, а вибір бібліотеки — наслідок. Корисно назвати й межу: не кожен провалений eval найкраще розвʼязується промпт-інженерією — буває, що правити треба продукт, дані або саму постановку задачі.

    Дві верхні сходинки спираються на окремі глави: тестування LLM-фіч — Тестування AI-застосунків, а дизайн оцінювання — Evals та LLM-as-judge. Якщо йдеш на middle+, ці дві теми — обов'язкові до розуміння, навіть якщо на поточній роботі ти LLM-фічі не тестував.

    Як говорити про AI-досвід без базвордів

    Найпоширеніший провал — відповідь рівня «я активно використовую AI для оптимізації процесів тестування та підвищення ефективності». Це порожньо: жодного факту, жодної задачі, жодного числа. Інтерв'юер чує генератор буліт-поїнтів, а не інженера.

    Сильна розповідь — завжди конкретна й будується за тим самим циклом, що вгорі: задача → що зробив AI → як ти перевірив → результат. Порівняй:

    Слабко: «Я використовую AI для генерації тест-кейсів, це дуже пришвидшує роботу».

    Сильно: «На регресію платіжної форми треба було розписати кейси. Я дав моделі acceptance criteria й попросив кейси за класами еквівалентності й межами. Вона видала близько сорока — я викинув третину як дублі, додав негативні сценарії з подвійним списанням, які вона пропустила, і звірив покриття з вимогами вручну. Чистий виграш — приблизно година проти двох з половиною».

    Друга відповідь сильна не тому, що згадує «класи еквівалентності», а тому, що показує три речі одразу: ти знаєш що делегувати, ти бачиш дефекти у виводі (пропущені негативні кейси), ти міряєш результат чесно, не перебільшуючи. Саме за це платять.

    Кілька правил, які тримають розповідь чесною:

    • Одна конкретна історія переважує десять загальних тверджень. Заготуй два-три реальні кейси з цифрами.
    • Називай межі. «Селектори модель вигадує, тому локатори я завжди звіряю з реальним DOM» — це не слабкість, це зрілість.
    • Не приписуй AI свою роботу. «AI написав фреймворк» звучить як «я не розумію, що там усередині». Краще: «скелет згенерував AI, архітектуру й політику локаторів визначав я».
    • Уникай слів-порожнеч. «Синергія», «disruption», «10x-продуктивність» без цифри — червоні прапорці для інтерв'юера, а не плюси.

    Практичні завдання з AI

    Окремий формат — коли на технічному етапі дозволяють (або вимагають) користуватися AI прямо під час завдання, бо саме так виглядає реальна робота. Тут перевіряють не результат, а процес: як ти формулюєш задачу моделі й, головне, що робиш з її виводом.

    Класична пастка — завдання, де AI охоче видає правдоподібний, але порожній артефакт. Наприклад, просиш згенерувати Playwright-тест на форму логіну й отримуєш:

    test('user can log in', async ({ page }) => {
      await page.goto('/login');
      await page.getByLabel('Email').fill('user@example.com');
      await page.getByLabel('Password').fill('secret');
      await page.getByRole('button', { name: 'Log in' }).click();
      // тест зелений — але що він перевірив?
    });

    Тест проходить, бо в ньому немає жодної перевірки: клікнули й пішли. Сильний кандидат одразу це бачить і додає на спостережуваний результат — редирект, вітання, наявність токена, — а не радіє зеленому статусу. Інтерв'юер саме на це й дивиться: чи розумієш ти, що зелений колір без асерту нічого не гарантує (детальніше — Верифікація результатів AI).

    Що ще спостерігають під час live-завдання з AI:

    • Ти читаєш вивід чи копіюєш наосліп? Мовчазний copy-paste без погляду — миттєвий мінус.
    • Ловиш вигадане? Модель упевнено кличе неіснуючий метод чи селектор, якого немає на сторінці. Помітити це — половина оцінки.
    • Ітеруєш осмислено? Не «спробую ще раз той самий промпт», а «уточню контекст, бо вона не знала про наш data-testid».
    • Знаєш, коли AI зайвий. Іноді швидше написати три рядки руками, ніж пояснювати їх моделі. Сказати це вголос — сильний хід.

    Окремий формат — «протестуй цю фічу за допомогою AI». Тут структура відповіді та сама, що й у класичному «протестуй X» (уточнення → пріоритети → техніки), просто частину генерації ідей ти делегуєш моделі, а відбір і пріоритизацію лишаєш за собою.

    AI як інструмент підготовки

    AI — потужний спаринг-партнер для підготовки, але з однією великою пасткою, про яку треба пам'ятати саме тут.

    Що працює добре:

    • Mock-співбесіда. Попроси модель бути суворим інтерв'юером на конкретну роль і ставити питання по одному, з фідбеком на кожну відповідь. Це тренує формулювання під тиском.
    • Пояснення концепцій під твій рівень. «Поясни ідемпотентність так, ніби я junior, з прикладом на API» — швидше, ніж гуглити п'ять статей.
    • Генерація каверзних питань на тему, яку боїшся. Але відповіді звіряй (див. нижче).
    • Репетиція self-presentation, зокрема англійською, — модель підкаже природніші формулювання.

    Головна пастка: модель не джерело істини. Через та knowledge cutoff (див. Як працюють LLM) вона впевнено видасть застарілий факт, вигадану версію інструмента чи неправильне визначення — а ти завчиш це й повіриш на співбесіді як власному знанню. Це найгірший сценарій: озвучити на інтерв'ю вигаданий моделлю «факт» з абсолютною впевненістю. Тому будь-яке фактичне твердження — визначення, поведінку інструмента, цифру — перевіряй у першоджерелі (документація, силабус, специфікація), а не завчай з чату. AI добре тренує форму відповіді; зміст лишається на тобі.

    Механіка пастки проста, якщо розділити два сховища знання моделі: те, що застигло у вагах під час навчання, і те, що подано їй зараз, у контексті. — це робоча памʼять діалогу, і воно відрізняється від корпусу, на якому модель навчали. Практичний висновок для підготовки той самий: потрібний факт або кладуть у контекст першоджерелом (вставити сторінку доки, силабус, специфікацію), або звіряють після відповіді — покладатися на памʼять ваг не можна.

    Етика на live-інтерв'ю

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

    Практичні правила:

    • Питай дозвіл. Перед live-завданням спитай прямо: «Чи можна користуватися AI?». Це не слабкість — це нормальне уточнення умов, і сам факт запитання читається як зрілість.
    • Озвучуй, що робиш. «Зараз попрошу модель накидати скелет, потім розберемо, що вона пропустила» — це перетворює використання AI з підозри на демонстрацію навички.
    • Take-home чесно. Якщо в домашньому завданні частину зробив AI, будь готовий пояснити кожен рядок так, ніби писав сам. Нездатність пояснити власний код гірша, ніж скромніше, але зрозуміле рішення.
    • Не видавай чуже за своє. «AI написав — я не дивився» на захисті рішення — це провал незалежно від якості коду.
    • Приватність — теж етика. Не вставляй у публічний чат-бот код під NDA, секрети чи персональні дані замовника (див. Безпека й приватність при роботі з AI). Якщо на live-завданні необдумано вставиш чужий закритий код у модель — це червоний про твою гігієну даних загалом.

    Типові помилки

    • Виглядає як демонстрація сучасності, а насправді — червоний прапорець: «AI сам усе напише, тестувальники скоро не потрібні». Інтерв'юер чує людину, яка не розуміє, де AI помиляється, і готова підписатися під невідомо чим.
    • Виглядає як багатий досвід, а насправді — порожнеча: розповідь суцільними базвордами без жодної конкретної задачі, дефекту чи цифри.
    • Виглядає як чесність, а насправді від відповідальності: «це AI згенерував, я не перевіряв». Делегувати генерацію можна, делегувати відповідальність — ні.
    • Виглядає як підготовленість, а насправді — завчені з чату факти: впевнено озвучене визначення, яке модель галюцинувала, а кандидат не звірив із джерелом.
    • Виглядає як спритність, а насправді — обман: крадькома списувати з екрана на live-завданні. Досвідчений інтерв'юер це бачить, і ціна викриття — репутація.
    • Виглядає як ефективність, а насправді — витік даних: вставити закритий код чи PII у публічну модель, щоб швидше розв'язати задачу.

    Підсумок

    • Питання про AI перевіряє не знання інструментів, а судження: межі, верифікацію, відповідальність. Це проксі твоєї інженерної зрілості.
    • Сильна розповідь конкретна: задача → що зробив AI → як перевірив → результат із цифрою. Одна реальна історія переважує десять загальних фраз.
    • Підпис завжди твій. AI генерує чернетку; за те, що піде в код чи тест-план, відповідаєш ти.
    • Глибина питань росте з рівнем: від «чим користуєшся» (trainee) до дизайну evals і впровадження AI в процес (senior).
    • Прозорість на live-інтерв'ю сильніша за приховування, а завчені з чату факти небезпечні — зміст завжди звіряй із першоджерелом.

    Можливі питання

    • «Якими AI-інструментами користуєшся і для чого?» — базовий . Дивляться, чи є реальний досвід і чи розумієш, що модель помиляється. Слабка відповідь — список назв; сильна — конкретна задача з результатом.
    • «AI написав тобі тест, він зелений. Як переконаєшся, що він щось перевіряє?» — перевірка на зелені тести без асертів. Хочуть почути «читаю, що саме він асертить, і запускаю на свідомо зламаному стані».
    • «Де ти AI не довіряєш?» — тест на розуміння меж. Правильні напрямки: вигадані селектори й API, галюцинації фактів, knowledge cutoff, приватність даних.
    • «Розкажи, як AI реально допоміг у роботі — з конкретикою». — фільтр базвордів. Ловлять відсутність деталей; сильний кандидат називає задачу, дефекти у виводі й чесний виграш часу.
    • «Як тестувати фічу, всередині якої LLM?» (middle+) — чекають недетермінізм, замість точного порівняння, галюцинації як клас дефектів.
    • «Що таке eval і як би ти його зробив?» (senior) — , критерії якості, LLM-as-judge та його упередження, eval як .
    • «Чи можна користуватися AI на цьому завданні?» — іноді питають тебе, іноді чекають, що спитаєш ти. Сам факт запитання читається як зрілість і чесність.

    Джерела

    Що насправді перевіряє це питання

    • ISTQB CT-GenAI Syllabus v1.1 — вивід генеративного AI канонічно є чернеткою, а людська оцінка названа необхідною умовою якості.
    • Claude Code Docs — Best practices for Claude Code — гейт «немає перевірки — не віддавай» і названий провал trust-then-verify gap.
    • ISTQB CT-AI Syllabus v2.0 — чому «виглядає правильно» не дорівнює «правильно»: моделі схильні до впевнених, але неправильних результатів.
    • Brown et al. — Language Models are Few-Shot Learners (arXiv:2005.14165) — людям важко відрізнити згенерований текст від написаного людиною; звідси й те, що «прочитав очима» перевіркою не є.

    Питання за рівнями

    • ISTQB CT-AI Syllabus v2.0 — те, що стоїть за сеньйорним питанням про LLM-фічу: недетермінізм, проблема й статистичні замість бінарних.
    • Zheng et al. — Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena (arXiv:2306.05685) — першоджерело LLM-as-judge разом із його межами, які й перевіряють питанням про eval.
    • ISTQB CT-GenAI Syllabus v1.1 — рамка «впровадити AI в процес команди»: настанови використання, з рев'ю згенерованого й правила щодо чутливих даних.
    • Claude Platform Docs — Prompt engineering overview — чіткий критерій успіху й спосіб емпірично проти нього перевіряти як умова, що передує промптингу, і межа: не кожен провалений eval лікується промпт-інженерією.

    Як говорити про AI-досвід без базвордів

    • ISTQB CT-GenAI Syllabus v1.1 — що саме модель робить у цій історії: генерує тест-кейси з критеріїв приймання, а зіставлення з вимогами лишається за людиною.
    • Claude Code Docs — Best practices for Claude Codetrust-then-verify gap: правдоподібна на вигляд реалізація, яка не покриває .
    • ISTQB CT-AI Syllabus v2.0 — підстава для «називай межі»: впевнений вивід моделі не є перевіреним виводом.

    Практичні завдання з AI

    • Playwright — Writing tests — тест за означенням виконує дії й стверджує стан проти очікувань: згенерований «тест» без асерту тестом не є.
    • Claude Code Docs — Best practices for Claude Code — просити доказ, а не заяву про успіх: вивід тесту, команду й результат.
    • ISTQB CT-AI Syllabus v2.0 — чому «ловиш вигадане» коштує половину оцінки: впевнені, але неправильні результати — властивість, а не рідкісний збій.

    AI як інструмент підготовки

    • Lewis et al. — Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks (arXiv:2005.11401) — чому пам'ять у вагах підводить: здатність точно доступатися до знання й ним маніпулювати обмежена.
    • Claude Platform Docs — Tool use with Claude (overview) — розрив між знанням моделі й актуальністю визнаний на рівні інструментів: пошук існує саме для того, що поза .
    • ISTQB CT-AI Syllabus v2.0 — впевнений тон не є ознакою правильності, тому завчений із чату факт небезпечний.
    • ISTQB CT-GenAI Syllabus v1.1 — канонічний спосіб перевірки: перехресна звірка з документацією й порівняння між моделями, а не перепитування тієї самої.
    • ISTQB Glossary — машинний зріз усіх термінів — канон означень, проти якого звіряють те, що «підказав» чат; сторінка glossary.istqb.org рендериться клієнтським JS, тож читабельна адреса саме ця.
    • Claude Platform Docs — Context windows — контекстне вікно як робоча памʼять, відмінна від корпусу навчання: звідси «поклади факт у контекст або звір», а не «спитай у моделі».

    Етика на live-інтерв'ю

    Пояснення

    «Поясни» працює з власним API-ключем Anthropic: запит іде з вашого браузера прямо до Anthropic.

    Свій API-ключ (BYOK)

    Вставте власний ключ Anthropic — пояснення працюватиме на реальній моделі. Ключ зберігається лише у вашому браузері (localStorage), нікуди не надсилається, крім api.anthropic.com, і не логується.