Искусство отладки: технологии будущего

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

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

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

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

Ссылка: http://alenacpp.blogspot.com/2009/12/blog-post_06.html

Ключевые слова: разработка программного обеспечения