Как писать тесты с ИИ — за 15 минут закрыть код от глупых поломок

«Тесты» звучат как что-то из мира серьёзных инженеров — скучно, долго, потом. Но вот в чём фокус: с ИИ первый рабочий тест пишется за пятнадцать минут, и он ловит ровно те глупые поломки, на которых ты обычно теряешь целый вечер. Не «правильно по учебнику», а выгодно тебе. Разберём по шагам, как писать тесты с ИИ, даже если ты никогда их не писал.
Зачем вообще тесты (коротко)
Тест — это маленький кусочек кода, который проверяет, что твой другой кусочек кода делает то, что должен. Один раз написал — и дальше он автоматически кричит, если ты (или ИИ) случайно что-то сломал.
Главная ценность не в «сейчас работает», а в «не сломается потом». Ты меняешь одну функцию, а тест ловит, что заодно отвалилась соседняя. Без теста ты бы узнал об этом от пользователя. Особенно выручает, когда код писал ИИ: тест — это твоя проверка, что сгенерированное реально работает.
Шаг 1. Выбери одну функцию
Не берись тестировать всё приложение сразу — утонешь. Выбери одну функцию с понятным входом и выходом. Идеальный кандидат: считает цену со скидкой, форматирует дату, проверяет корректность email. То, где ясно: «даю вот это — жду вот это».
Например, функция цена_со_скидкой(цена, процент). Вход — два числа, выход — одно. Отлично, с неё и начнём.
Шаг 2. Попроси у ИИ не тест, а список случаев
Тут главный трюк, который пропускают новички. Не проси сразу «напиши тест». Сначала попроси список случаев, которые стоит проверить — включая странные.
Напиши тесты для моей функции скидкиИИ выдаст список: «скидка 20% от 100 → 80; скидка 0% → цена без изменений; скидка 100% → 0; отрицательный процент → должно быть ошибкой…». Вот это золото. Половина случаев тебе бы в голову не пришла — а именно на них код и падает у пользователей.
Шаг 3. Пусть ИИ напишет тест — но проверь ассерты
Теперь можно просить код. Отдай ИИ функцию и утверждённый список случаев:
Напиши тесты на [фреймворке — Vitest / Jest / pytest] для этой функции, по одному на каждый случай из списка выше. Названия тестов сделай понятными.
Ты получишь готовый файл с тестами. Каждый тест — это по сути «подготовил → вызвал → проверил»: собрал данные, вызвал функцию, сверил результат (assert).
Ключевой момент: проверь глазами, что ассерты правильные. ИИ иногда пишет тест, который просто повторяет поведение кода, даже если код неверный («ждём 79» на баге, который выдаёт 79 вместо 80). Ты — судья того, какой результат правильный. Сверяй ожидаемые числа со списком из шага 2, а не с тем, что выдаёт код.
Шаг 4. Запусти и почини
Тесты бесполезны, пока не запущены. Команда зависит от фреймворка:
- Установи фреймворк, если его нет:
npm i -D vitest(JS) илиpip install pytest(Python). - Запусти:
npx vitestилиpytest. - Смотри результат: зелёное — прошло, красное — упало.
И вот тут самое интересное: если тест красный — это не всегда «плохой тест». Возможно, он нашёл реальный баг. Открой, посмотри: результат неправильный, потому что тест кривой или потому что код кривой? Если код — ты только что поймал баг до пользователя, ради этого всё и затевалось. Красный тест, указавший на строку, — это соседний навык к чтению стек-трейса.
Что получится
В итоге рядом с функцией лежит файл тестов, а команда npx vitest за секунду говорит, всё ли цело. Поменял код — прогнал — увидел зелёное, спишь спокойно. Это та самая страховка, которая отделяет «вайб-кодю и молюсь» от «вайб-кодю и проверяю». Тот же приём хорошо ложится на отладку с ИИ: нашёл баг — сначала напиши на него падающий тест, потом чини.
С каких тестов начать новичку?
С «модульных» (unit) — маленьких, на одну функцию с чистым входом-выходом. Они пишутся быстрее всего и дают максимум пользы. Тесты на весь интерфейс и клики (e2e) сложнее — оставь на потом, когда почувствуешь вкус.
ИИ сам себя проверяет — это не жульничество?
Было бы, если бы ИИ и писал код, и молча писал тесты «под него». Поэтому и нужен шаг 2: список правильных ответов утверждаешь ты, до кода. Тогда тест проверяет намерение, а не просто повторяет то, что код случайно делает.
Нужно 100% покрытие?
Нет, для пет-проекта это перебор. Покрой самое ценное и хрупкое: логику с деньгами, датами, доступом — то, где ошибка дорого стоит. 5 тестов на важное полезнее 50 на очевидное.
Короткие уроки-истории, симулятор агента и ежедневная практика — в нашем мобильном приложении. Бесплатно.





