Искусство отладки: технологии будущего
Итак, ближе к теме. Мне известны два прогрессивных метода, оба в целом не работают. Однако хорошо уже то, что есть люди, которые пытаются думать в этом направлении.
1. Формальное доказательство правильности программы. Идея далеко не новая, выглядит красиво. Давайте докажем, что программа работает верно. На ВМиК МГУ читается курс по этой теме. По свидетельствам очевидцев доказать правильность программы, которая сортирует пузырьком - весьма нетривиальное занятие. О реально работающем проекте, который размером сильно больше такой сортировки, говорить не приходится.
2. Статический анализ кода. Выглядит уже более реалистично. Натравливаем на проект программу, которая анализирует код и пытается найти ошибки. Я не видела, чтобы эта метода была официально одобрена и использовалась в каких-нибудь компаниях серьезно. Однако, существуют статические анализаторы, которые стоят хороших денег с большим количеством нулей. Наверное, их кто-то покупает. Я же встречала только ситуации, когда программисты из любопытства запускали какой-нибудь из таких анализаторов на своем проекте и просматривали результаты. Народ говорит, что такие анализаторы много шумят не по делу, какие-то ошибки пропускают, но в целом выглядят интересно.