Выступил на студенческой конференции по информационной безопасности ISCRA Talks. Рассказал о поддержке фаззинга со стороны языков программирования: какого рода поддержка в языках программирования нужна для эффективной работы фаззинга, а так же как и в каком объеме эта поддержка реализована в самых популярных ЯП. Доклад будет интересен, всем кто занимается фаззингом, чтобы понимать, что происходит после старта функции LLVMFuzzerTestOneInput(), а также тем, кто, возможно, захочет реализовать поддержку фаззинга для ЯП. Слайды: bronevichok.ru/...pdf
Протестировал
CirrusCI всё
: Cirrus CI will shut down effective Monday, June 1, 2026. Перейдут под крыло OpenAI. В прощальном тексте основатель перечисляет инновации: Over the last nine years, we were fortunate to innovate across continuous integration, build tools, and virtualization. In 2018, we introduced what we believe was the first SaaS CI/CD system to support Linux, Windows, and macOS while allowing teams to bring their own cloud. In 2022, we built...
Интересная статья про использование сравнительного тестирования для приложений с состоянием - "Vive la Différence: Practical Diff Testing of
Stateful Applications". При обновлении stateful-приложений работающих с БД часто возникают трудноуловимые ошибки и традиционные методы (канареечные релизы, роллинг-обновления, cине-зелёное развёртывание) плохо эти ошибки выявляют из-за разделяемого состояния. Стандартные тесты (юнит- и интеграционные) не проверяют взаимодействие разных версий во время обновления. В статье предлагается использование фреймворка для сравнительного тестирования двух версий приложения (v1 - текущая, v2 - новая) на идентичность поведения. Фреймворк работает поверх существующего Postgres без модификации кода СУБД,...
Раньше ведь как было: изучаешь теорию языков программирования и формальные методы, формальные грамматики, лексический и синтаксический
анализ, работу c AST (обход дерева, трансформация), атрибутные грамматики и синтезируемые/наследуемые атрибуты, изучаешь системы типов, семантику программ, чтобы понимать, что означает программа, изучаешь межпроцедурный анализ. Изучаешь алгоритмы статического анализа: анализ потоков данных и анализ потоков управления, абстрактную интерпретацию, ML для статического анализа, изучаешь реализации SOTA статических анализаторов с открытым исходным кодом (вроде ничего не забыл). И через несколько лет вы может быть разработаете статический анализатор, который будет находить проблемы в популярных проектах с высоким уровнем качества кода...
