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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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