Покрыть legacy-код тестами
Добавить тесты в код, который писали без них, не сломав поведение.
Legacy без тестов страшно трогать. Сначала фиксируем текущее поведение тестами — и только потом спокойно рефакторим.
Перед стартом
Подготовьте 10 минут и рабочий материал
- 01Откройте нужный инструмент и войдите в аккаунт, если он нужен.
- 02Соберите исходные материалы: файл, заметки, ссылку или репозиторий.
- 03Сохраните копию того, что будете менять: ИИ ускоряет работу, но проверка остаётся за вами.
Можно начать с ИИ-ассистентом
Скопируйте стартовый запрос
Он задаст помощнику роль проводника: без прыжков через шаги и с проверкой результата.
Помоги мне пройти сценарий «Покрыть legacy-код тестами». Моя цель: Добавить тесты в код, который писали без них, не сломав поведение. Инструменты: Claude Code, Codex. Веди меня по шагам, по одному за сообщение. В начале каждого шага объясняй, что именно сделать и какой результат должен получиться. Не выдумывай данные и не пропускай проверку результата. Если для следующего шага не хватает вводных — сначала задай мне короткий вопрос.
Пройти по шагам
Делайте по одному пункту. Не переходите дальше, пока не сможете своими словами подтвердить, что результат шага получился.
- 1
Выберите модуль с высокой ценой ошибки
Начните с куска, где баг дороже всего (оплаты, расчёты). Тесты в первую очередь там, где они реально страхуют.
Контрольная точка: шаг 1 выполнен — только теперь идите дальше.
- 2
Опишите текущее поведение в кейсах
Попросите агента разобрать, что код делает сейчас, на конкретных входах и выходах. Это основа для характеризующих тестов.
Контрольная точка: шаг 2 выполнен — только теперь идите дальше.
- 3
Сгенерируйте характеризующие тесты
Зафиксируйте текущее поведение, даже если оно неидеально. Цель — поймать любое непреднамеренное изменение.
Контрольная точка: шаг 3 выполнен — только теперь идите дальше.
- 4
Зафиксируйте зелёный прогон
Убедитесь, что тесты проходят на текущем коде. Теперь рефакторинг безопасен: красный тест сразу покажет регресс.
Контрольная точка: шаг 4 выполнен — только теперь идите дальше.
Совет профи
Не пытайтесь покрыть всё сразу. Один критичный модуль с тестами ценнее, чем 20% покрытия по всему проекту.
Частые ошибки
- Сразу рефакторите без тестов — ломаете поведение незаметно.
- Пишете тесты на «как должно быть», а не «как есть» — они краснеют на старте.
- Гонитесь за процентом покрытия вместо защиты важных мест.
Если застряли
Необязательно разбираться в одиночку
Напишите, на каком шаге остановились и что уже пробовали. Подскажем направление — без навязывания разработки. А за контекстом и примерами можно сходить в разборы.