Слогер Создать блог
Разработка

Почему зелёные тесты не означают, что код правильный

Дейкстра предупреждал ещё в 1970-м: тест, который прошёл, доказывает только то, что ошибку пока не нашли. Разбираем, как тестировать так, чтобы это действительно защищало код, особенно когда код и тесты генерирует ИИ.

Зелёный тест не доказывает, что код правильный. Он доказывает, что ошибку пока не нашли. Эту мысль точно сформулировал Эдсгер Дейкстра ещё в 1970 году: «Тестирование программы может показать наличие ошибок, но никогда не докажет их отсутствие». С тех пор ничего не изменилось, изменилась только цена вопроса.

Проваленный тест — это информация. Он показывает конкретное место, где что-то сломалось. Прошедший тест информации почти не даёт: он говорит лишь о том, что конкретный вход, на конкретном пути, в этот раз не упал. Между этим скромным фактом и «код работает» лежит пропасть, в которой живут продакшн-баги.

Зелёный — это отсутствие пойманной ошибки, а не присутствие правильности.

Самый опасный вид теста — тот, который проверяет ровно то, что и так работает. Он не врёт, но создаёт ощущение защищённости. А ощущение защищённости — худший враг ревью.

Почему сейчас это стало острее

ИИ-инструменты за секунды выдают функцию и набор тестов, которые вместе проходят. И вместе же могут быть неправильными: код обрабатывает те случаи, которые проверяют тесты, а тесты проверяют те случаи, которые умеет обрабатывать код. Ни тот, ни другой не касаются краевого случая, который развалится у пользователя. Всё выглядит готовым — и совершенно пустым.

Проблема не в том, что ИИ генерирует плохой код. Проблема в том, что он оптимизируется под зелёную галочку, а не под реальный мир. Код и тест могут идеально согласовываться друг с другом и при этом оба быть далеки от задачи, которую вы на самом деле решали.

Это делает привычку Дейкстры не просто хорошим тоном, а ключевым навыком инженера. Когда и код, и тесты стоят дёшево, единственное, что нельзя сгенерировать — желание искать, где ещё сломано. Это научная привычка: не пытаться подтвердить свою идею, а пытаться её опровергнуть. И доверять коду чуть больше только после того, как он пережил честную попытку быть сломанным.

Не пытайтесь подтвердить код. Пытайтесь его сломать.

Как тестировать со смыслом

Разница между тестом-подтверждением и тестом-попыткой сломать видна на уровне вопросов.

ПодходВопросЧто даёт зелёный результат
Подтверждающий тестРаботает ли на этом примере?Этот пример не упал. И всё.
Пытающийся сломатьКакое условие должно развалить код и почему оно этого не сделало?Код пережил попытку его развалить. Границы стали чуть понятнее.

Первая строчка — привычный режим. Вторая — то, что реально защищает от багов. Несколько конкретных привычек.

  • Для каждой функции спрашивайте: какой вход её сломает? Пишите этот тест первым. Если не можете придумать ни одного — вы ещё не поняли функцию.
  • Тестируйте края, а не середину: пустой вход, максимум, off-by-one, параллельный доступ, путь ошибки, который никто не запускает.
  • Сформулируйте инвариант, который код обязан соблюдать, и напишите тест, единственная задача которого — этот инвариант нарушить.
  • Когда ИИ отдаёт вам код с зелёными тестами, считайте это началом ревью, а не его концом. Добавьте тот случай, который модель не догадалась проверить.
  • Если баг дошёл до продакшена — сначала напишите тест, который его ловит, и только потом исправление. Этот тест ценнее самого фикса.

Всё это не значит, что тесты не нужны. Нужны. Они один из лучших инструментов в разработке. Но тестовый набор — это запись тех отказов, которые вы пошли искать, и он не шире вашего представления о том, что может пойти не так. Расширяете представление — тесты становятся сильнее. Пропускаете — зелёная галочка превращается в ложное спокойствие, пока баг не найдёт пользователь.

Смотрите внимательнее всего на тот код, в котором уверены больше всего. И относитесь к зелёному тесту как к вопросу, а не ответу.

По материалам: career. Текст переработан редакцией Слогера.

← На главную

Рекламное место — Конец поста
Реклама · Слогер

Комментарии (1)

Войдите, чтобы комментировать.

fuuki 30.08.2026 00:12 ▲ 0
тесты зеленые, прод упал, а ИИ уверенно заявляет, что всё работает по ТЗ 😄 Цитата Дейкстры из 1970 года сегодня звучит как главный предупредительный знак для всех, кто слепо доверяет автотестам.
Карьера

Что будет с медстраховкой после сокращения: разбор WARN, COBRA и страховой биржи

Уведомление по WARN сообщает, когда закончится работа, и молчит о том, когда закончится страховка. Разбираем, где искать дату окончания покрытия, чем COBRA отличается от плана на бирже ACA и какие дедлайны нельзя пропустить.

Слогер 01.11.2026 ▲ 0
Дизайн

Как разработчику-основателю поставить задачу моушн-дизайнеру: бриф, после которого не придётся переделывать

Полстраницы контекста вместо «сделайте чисто и современно»: что писать в брифе, какие материалы прикладывать и почему интерфейс нужно заморозить до первой секунды анимации.

Слогер 01.11.2026 ▲ 0
Карьера

Как читать WARN-уведомления о сокращениях: разбор на примере Haynes Furniture

Haynes Furniture подала уведомление в Вирджинии на 83 сотрудника. Дата уведомления и дата вступления в силу совпадают — 30 октября 2026 года. Что показывает эта запись и чего она не доказывает.

Слогер 31.10.2026 ▲ 0
Fluxs lenta
Реклама · fluxs.ru
Личный опыт

Исполнительная дисфункция или лень: как отличить и что отвечать на обвинения в безделье

Застревание перед простой задачей выглядит как лень только снаружи. Внутри — борьба, которая выматывает сильнее самой работы. Разбираем, чем это отличается и какие фразы помогают в разговоре.

Слогер 31.10.2026 ▲ 0
Карьера

Как читать WARN-уведомления о сокращениях: разбор записи Intel в Фолсоме

В калифорнийском реестре появилась запись о сокращении 67 сотрудников Intel с датой вступления в силу 31 октября 2026 года. На её примере видно, что такие документы говорят и чего не говорят никогда.

Слогер 31.10.2026 ▲ 0
Личный опыт

Как выбрать частного онлайн-психолога: 4 фильтра, которые отсеивают лишнее

Частные онлайн-консультации — это лицензированный специалист на видеосвязи или в чате и приватное пространство, чтобы думать спокойно. Разбираем, что спросить до первой встречи, чтобы не потратить месяцы и деньги зря.

Слогер 31.10.2026 ▲ 0
Fluxs lenta
Реклама · fluxs.ru
Карьера

Почему ваша работа кажется скучной и как рассказать о ней на собеседовании

Тикет «пофиксил таймаут экспорта» скрывает неделю расследований и выбор между двумя неидеальными вариантами. Разбираем, как восстановить эту историю и не придумывать проценты ради красивого слайда.

Слогер 30.10.2026 ▲ 0
Карьера

Что делать, если дата увольнения попала на праздничную неделю: разбор WARN-данных

Неделя с 26 ноября 2026 года собрала 5 819 запланированных сокращений — третье место среди предстоящих недель. Разбираю, как читать такие цифры и что успеть сделать, если дата вступления в силу выпала на праздники.

Слогер 30.10.2026 ▲ 0
AI

Автоматизация бизнеса с помощью ИИ: 5 примеров

А что, если просто рассказать ИИ о своём бизнесе, а он сам предложит, как его автоматизировать? 🤔 Мы добавили такую возможность в Fluxs и решили проверить, насколько хорошо она работает. Взяли пять разных бизнесов: от пекарни до юридической компании. ИИ самостоятельно подобрал инструменты и собрал схемы. Но без сюрпризов не обошлось. Например, для автосервиса он придумал блок «Запись на ремонт», которого у нас вообще нет. А салону красоты зачем-то предложил голосового бота. Зато с интернет-магазином справился почти идеально. Получился интересный эксперимент. Теперь мы не только проверили ИИ, но и поняли, каких функций не хватает в конструкторе. Подробности и все пять примеров — в статье. #ИскусственныйИнтеллект #АвтоматизацияБизнеса #Нейросети #Fluxs

Слогер 29.10.2026 ▲ 1
Стартапы

Как продать первую услугу, когда тебя никто не знает: 29 писем, 7 постов и два платежа по $5

ИИ-агент по имени Суки проверяет цифры и утверждения по первоисточникам за пять долларов и выложил полный отчёт о выручке, включая нули. Что в этих числах полезно каждому, кто запускает микро-услугу с нуля.

Слогер 29.10.2026 ▲ 1
Fluxs lenta
Реклама · fluxs.ru
Карьера

Разбор: WARN Act по-гавайски — 60 дней на уведомление, доплата к пособию и штраф $500 в день

На Гавайях действует своя версия закона о предупреждении массовых увольнений: порог ниже федерального, четыре конкретных триггера и доплата к пособию по безработице. Разбираем, кого это касается и чем грозит нарушение.

Слогер 29.10.2026 ▲ 1