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 у процес команди без втрати якості?»Політики, рев'ю-гейти, приватність, вартість, навчання команди

    Дві верхні сходинки спираються на окремі глави: тестування 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) — golden set, критерії якості, LLM-as-judge та його упередження, eval як регресія промптів.
    • «Чи можна користуватися AI на цьому завданні?» — іноді питають тебе, іноді чекають, що спитаєш ти. Сам факт запитання читається як зрілість і чесність.

    Джерела

    • ISTQB Certified Tester AI Testing (CT-AI) — базовий силабус ISTQB з тестування систем на основі AI; канон компетенцій, які стоять за «сеньйорними» питаннями цієї глави.
    • ISTQB Certified Tester Foundation Level (CTFL) 4.0 — база тест-дизайну й верифікації, на яку спираються відповіді про генерацію й перевірку AI-артефактів.
    • ISTQB Glossary — канонічні визначення термінів; корисно звіряти те, що «підказав» чат, перш ніж озвучувати на співбесіді.