Практика 3 из 8 · 18 мин
Лабораторная 3: новая функция через тесты вместе с ИИ-агентом
Опубликовано 01/10/2026 · Обновлено 01/10/2026
Шаг 1 из 8 · пройдено 0
Кратко
В практике вы попросите ИИ-помощника сначала написать тест, потом саму функцию, и проверите результат запуском. Так вы увидите, как заранее известный критерий делает работу с нейросетью надёжнее. Опыт программирования не нужен, все команды даны.
На какие вопросы отвечает эта страница 5
Шаг 1 из 8
Что вы поймёте
Шаг 2 из 8
Что такое тесты и зачем они нужны при работе с ИИ?
Тест это небольшая программа, которая проверяет, что код делает ожидаемое. Для работы с ИИ тесты особенно полезны: они без споров показывают, выполнена ли задача, и ловят случаи, когда агент написал красивый, но неверный код. Вам не нужно разбирать каждую строку, достаточно увидеть зелёный результат.

Сравните с приёмкой работы. Если вы заранее записали, что значит «готово», спорить не придётся: либо результат совпал, либо нет.
Агент здесь на вашей стороне, но проверка остаётся за вами. Тест это ваш независимый глаз на его работу.
Вы увидите: вам понятно, что красный тест сначала это не поломка, а часть плана.
Шаг 3 из 8
Подготовьте учебный проект: опыт не нужен
Учебная функция очень простая, а все команды даны в шагах. Цель не в написании кода, а в том, чтобы увидеть, как проверяемый критерий делает работу с ИИ надёжнее. Знать язык заранее не нужно: код напишет агент, а вы запустите проверку.
Функция называется to_mm_ss и переводит секунды в вид «минуты:секунды». Ожидания записаны заранее:
| Вход | Ожидаемый результат |
|---|---|
| 65 | 1:05 |
| 0 | 0:00 |
| 3600 | 60:00 |
| -1 | ошибка |
Создайте папку и сохраните её в git. Проверьте, что Python стоит:
mkdir demo-tdd
cd demo-tdd
git init
py -3 --versionmkdir demo-tdd
cd demo-tdd
git init
python3 --versionВы увидите: пустая папка demo-tdd и номер версии Python в ответ на последнюю команду.
Шаг 4 из 8
Попросите агента сначала написать только тест
Сформулируйте задачу в два захода: сначала «напиши тест для функции, которая делает X, и убедись, что он падает», затем «теперь напиши функцию, чтобы тест прошёл». Тест фиксирует ожидание до кода, и вы проверяете работу по понятному критерию, а не на глаз.
Создай файл test_timefmt.py со встроенным модулем unittest.
Он проверяет функцию to_mm_ss из файла timefmt.py:
65 даёт «1:05», 0 даёт «0:00», 3600 даёт «60:00», -1 вызывает ValueError.
Саму функцию НЕ пиши. Запусти тесты и покажи, что они падают.unittest встроен в Python, ничего ставить не нужно. Агент создаст файл с тестами и запустит их, возможно, чуть другой командой, суть та же. Не пугайтесь, если текст ошибки непонятен: вам нужно только слово FAILED внизу. В конце вы увидите примерно такое:
ModuleNotFoundError: No module named 'timefmt'
Ran 1 test in 0.000s
FAILED (errors=1)Сохраните тесты отдельным шагом: git add -A, затем git commit -m "tests".

Вы увидите: слово FAILED. Это правильный результат на этом шаге.
Шаг 5 из 8
Теперь попросите функцию, чтобы тест прошёл
Второй заход: пусть агент напишет саму функцию и не трогает тесты.
Теперь создай timefmt.py с функцией to_mm_ss так, чтобы тесты прошли.
Файл test_timefmt.py не меняй. Запусти тесты и покажи результат.Правило «тесты не меняй» важно. Иначе агент может подогнать тест под свой код, и проверка потеряет смысл. Если он вдруг предложил поправить тест, откажитесь и напомните правило. Саму функцию он может написать не так, как вы себе представляли: это нормально, пока тесты зелёные. Проверить, что тесты остались нетронутыми, легко: раз вы их сохранили, команда git diff test_timefmt.py должна ничего не показать. Если вывод не пустой, агент всё-таки полез в тест, и правку лучше отменить.
Каждая строка со словом ok это один пройденный тест, а слово OK в конце значит, что прошли все. Агент может пересказать результат своими словами, например «Все 4 теста прошли (Ran 4 tests ... OK)», и это тоже верно. Вот результат, который вы ожидаете:
test_negative ... ok
test_over_hour ... ok
test_simple ... ok
test_zero ... ok
Ran 4 tests in 0.000s
OK
Вы увидите: слово OK и сообщение, что прошли все четыре теста (в виде четырёх строк ok или пересказом агента).
Шаг 6 из 8
Как проверить функцию, которую написала нейросеть?
Запустите тесты командой проекта и убедитесь, что они проходят. Затем проверьте пару крайних случаев руками, например пустой ввод. Попросите агента объяснить логику простыми словами. Если объяснение вас не убеждает, упростите задачу и повторите. Понимание результата важнее скорости: лучше потратить лишние пять минут, чем принять непонятный код.
Запустите тесты сами, без агента:
python3 -m unittest -vpy -3 -m unittest -vПроверьте два значения руками, которых нет в тестах:
python3 -c "from timefmt import to_mm_ss; print(to_mm_ss(59), to_mm_ss(61))"Ожидаемый ответ: 0:59 1:01. Затем попросите объяснение: «Объясни простыми словами, как работает to_mm_ss».
Типичных сбоев здесь два. На Windows команда python3 может не находиться: используйте вариант с py -3 из блока выше. А если вместо 0:59 вы увидели 0:9 или 1:1, функция не дописывает ноль к секундам. Тесты этого не поймали, потому что такого значения в них нет. Скажите об этом агенту, попросите добавить тест для 59 секунд и только потом поправить функцию.
Вы увидите: тесты зелёные, ручная проверка совпала, а объяснение агента вам понятно.
Шаг 7 из 8
Что делать, если тест не проходит после правки агента?
Покажите агенту текст ошибки теста целиком и попросите объяснить причину до правки. Затем разрешите исправить один фрагмент и снова запустите тест. Не меняйте сам тест, чтобы он прошёл, если не уверены, что ожидание было записано неверно. Частая ловушка: тест подгоняют под код, а не наоборот.
Тест упал, вот полный текст ошибки: [вставьте сюда].
Сначала объясни причину простыми словами и ничего не меняй.
Потом предложи исправление одного фрагмента в timefmt.py.Если после двух кругов не получилось, вернитесь к последнему сохранению командой git restore . и попросите агента переписать функцию с нуля. Подробнее про откат в модуле про рабочий цикл.
Вы увидите: вы умеете разобрать красный тест, не подгоняя его под код.
Шаг 8 из 8
Готово, если
Частые вопросы
Что такое тесты и зачем они нужны при работе с ИИ?
Тест это небольшая программа, которая проверяет, что код делает ожидаемое. Для работы с ИИ тесты особенно полезны: они объективно показывают, выполнена ли задача, и ловят случаи, когда агент написал красивый, но неверный код. Вам не нужно разбирать каждую строку, достаточно увидеть зелёный результат.
Как попросить ИИ-агента сначала написать тест, а потом функцию?
Как проверить функцию, которую написала нейросеть?
Запустите тесты командой проекта и убедитесь, что они проходят. Затем проверьте пару крайних случаев руками, например пустой ввод. Попросите агента объяснить логику простыми словами. Если объяснение вас не убеждает, упростите задачу и повторите. Понимание результата важнее скорости: лучше потратить лишние пять минут, чем принять непонятный код.
Нужен ли для этой практики опыт в программировании?
Что делать, если тест не проходит после правки агента?
Если нужно глубже
Разобрать, где ИИ-помощник сэкономит время именно вам: бесплатный аудит, 30 минут.
Записаться →Если хочется пройти путь вместе, есть менторство 1-на-1: 72 000 ₽ в месяц.
Подробнее →