Непсихологические тесты Крис Касперски ака мыщъх Спецвыпуск: Хакер, номер #053, стр. 053-060-7 Smatch C source checker представляет собой автоматический анализатор исходного кода для нахождения типовых ошибок (утечек памяти, переполнений буфера, паразитных NULL-указателей и т.д.), созданный в рамках проекта по выявлению ошибок в Linux-ядре. Распространяется в виде патчей к gcc-комилятору и набора perl-скриптов для анализа дампов. И снова это проект "кузницы": http://smatch.sourceforge.net. Совершенно иной подход исповедует MLC, он же Meta-Level Compilation (компилятор метауровня), транслирующий программу в промежуточный код и за счет доступа к абстрактному синтаксическому дереву, обнаруживающий трудноуловимые ошибки, пропущенные остальными верификаторами. Разработчики утверждают, что с помощью метакомпилятора им удалось выявить свыше 500 ошибок в реально существующих системах, таких как Linux, OpenBSD, Xok, Stanford FLASH и др. В настоящее время MLC распространяется в виде бесплатного компилятора xgcc, базирующегося на GNU C, и вспомогательного транслятора metal для создания расширений. Найдется тут: http://metacomp.stanford.edu. Столкнувшись с необъяснимой ошибкой, начинающие программисты обычно обвиняют компилятор, хотя в подавляющем большинстве случаев они виноваты сами. Невнимательное чтение документации и небрежный стиль кодирования - основные враги программиста. Тестируй программу только на гарантированно исправном оборудовании и ни в коем случае не разгоняй что бы там ни было: поиски черной кошки (которой нет) в черной комнате (которой никогда не было) отнимают много времени и сил. Как разобраться в файле дампа? Нужно знать язык ассемблера! Без этого никогда не стать настоящим профессионалом! www.testingcraft.com - проект умер, но все еще есть куча полезных ссылок по тестированию. |