Как статический анализ, так и рецензирование (или ревизия) кода являются методиками поиска ошибок и уязвимостей в исходном коде без непосредственного выполнения исследуемых программ.
При этом под рецензированием обычно понимают относительно регулярное совместное изучение участка исходного кода двумя или более разработчиками, которое может проходить как в полуформальной обстановке, так и в виде формальной сертификации. Подобные ревизии кода могут быть рассмотрены и как часть парного программирования.
Статический анализ кода в большинстве случаев подразумевает использование специальных инструментов, производящих автоматизированное сканирование исходного кода на наличие в нём ряда формально заданных подозрительных ситуаций. В отличие от рецензирования, статический анализ благодаря автоматизации фактически не ограничен объёмом исследуемого кода. Тем не менее, результаты работы статического анализа всё же требуют изучения разработчиками для отделения реальных ошибок от неизбежных при таком подходе ложных срабатываний.
Хотя понятия рецензирования и статического анализа обычно разделяют, иногда они могут пересекаться и даже рассматриваться как взаимно-производные методы, дополняющие работу друг друга. Например, совместная ревизия несколькими разработчиками отдельных фрагментов программы, на которые указали результаты ранее проведённого статического анализа всего исходного кода проекта.
0