Идеи и инсайты

Исследуем AI-first разработку, кодовые ограждения и архитектуру одноразовости.

Ваша main ветка сломана. Вам нужно перебрать 200 коммитов.

Git bisect превращает ручной поиск коммитов в автоматизированный бинарный поиск. Вот как найти точный коммит, в котором появился баг, не переключаясь на каждый по отдельности.

Ваш CI красный на main, но вчера был зелёный. Где-то между тем и сейчас прокралась бага. Вы могли бы прокрутить 200 коммитов, читая диффы и угадывая. Вы могли…

Ваш трекер ошибок знает, где всё упало. Это не поможет вам воспроизвести баг.

Стектрейсы говорят, где произошёл краш, а не что его вызвало. Вот паттерн захвата и воспроизведения, который превращает продакшен-краши в локальные тест-кейсы, которые можно реально отладить.

Вы точно знаете, где упал продакшен. Стектрейс указывает на строку 147 в . Исключение — на . Вы вытягиваете код, запускаете тесты, всё проходит. Вы бьёте…

Символическое исполнение нашло целочисленное переполнение, которое пропустило моё покрытие тестами в 94%

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

У вашего набора тестов 94% покрытия и ноль падений. Движок символического исполнения находит краш в вашем коде менее чем за три секунды. Тесты не сломаны.…

Ваши логи утекают с PII, и grep вас не спасёт

Большинство команд находят утечки PII после жалобы клиента. Вот как отслеживать чувствительные данные от момента получения до вывода, с примерами кода, которые можно использовать уже сегодня.

Большинство команд обнаруживают утечки PII после жалобы клиента или аудита на соответствие требованиям. К тому времени данные уже прошли через ваш…

Ваш API сломался в продакшене, потому что CI тестировал код, а не contracts

Большинство CI pipelines находят синтаксические ошибки и логические баги. Они пропускают изменения, ломающие обратную совместимость API contracts, которые реально валят продакшен. Вот как это исправить.

Каждый раз, когда API ломался в продакшене у моей команды, он проходил CI. Все разы. Юнит-тесты были зелёными. Интеграционный набор тестов проходил. Деплой…

Корреляции крашей лгут. Вот как заставить их указывать на реальный баг.

Statistical debugging находит predicates, коррелированные с крашами, но корреляция — это не файл и номер строки. Вот как ранжировать, фильтровать и триангулировать свой путь от корреляционного score к реальному месту бага.

Statistical debugging даёт вам отсортированный список predicates, а не root cause. Вы инструментируете каждую ветку и null check, запускаете сто тысяч…

Seer от Sentry может читать ваши трейсы. Это не значит, что он всегда находит root cause.

Seer поглощает деревья трейсов, связанные ошибки и данные профилирования для диагностики распределённых проблем. Вот как он на самом деле работает, где блестит и где всё ещё нужна человеческая помощь.

Фронтенд выдаёт 500. Stack trace указывает на React-компонент. Реальная проблема в трёх сервисах отсюда, в пуле соединений с базой данных, исчерпанном…

Statistical debugging должен был покончить с отладкой через printf. Большинство команд так и не заставило его работать.

Statistical debugging обещал точно находить баги, коррелируя поведение программы с отказами. Вот почему эта идея так и не перешла из научных статей в продакшен-системы.

Statistical debugging должен был покончить с эпохой . Инструментируйте ваш код, собирайте трейсы из тысяч прогонов, запускайте корреляционный анализ и…

Ваши тесты прошли. Ваши данные всё равно неверны.

Statistical debugging рассматривает ваши продакшен-данные как сигнал, а баги — как аномалии в этом сигнале. Вот как находить повреждение данных, ошибки off-by-one и тихие отказы, не добавляя ни одного юнит-теста.

Ваш набор тестов зелёный. Ваши логи тихие. Ваши дашборды не показывают красных линий. И всё же 3% ваших пользователей получают счета с отрицательными итогами,…

Metamorphic testing нашёл 147 багов в компиляторах и дефект в системе самоуправляемого автомобиля. Вот как это работает.

Metamorphic testing выявил реальные баги в GCC, LLVM, компиляторах шейдеров Vulkan и симуляторах ADAS. В этом посте объясняется техника с рабочим кодом и показано, куда она вписывается в ваш набор тестов.

Metamorphic testing обнаружил 147 подтверждённых багов в GCC и LLVM, дефекты в коммерческих симуляторах ADAS, используемых автомобильными OEM, и критический…