Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

Это список инструментов для статического анализа кода .

Язык [ править ]

Многоязычный [ править ]

.NET [ править ]

Ада [ править ]

C , C ++ [ править ]

Фортран [ править ]

  • Фортран- Линт [7] (Information Processing Techniques, Inc)

IEC 61131-3 [ править ]

  • Статический анализ CODESYS - интегрированное дополнение для CODESYS (код приложения реализован, например, в ST, FBD, LD)

Java [ править ]

JavaScript [ править ]

  • ESLint  - средство проверки и форматирования синтаксиса JavaScript .
  • Google's Closure Compiler  - оптимизатор JavaScript, который переписывает код, делая его быстрее и меньше, и проверяет использование встроенных функций JavaScript.
  • JSHint  - форк JSLint, управляемый сообществом.
  • JSLint  - средство проверки и проверки синтаксиса JavaScript.
  • Semgrep  - инструмент статического анализа, помогающий определять стандарты кода и обнаруживать ошибки на ранней стадии. Также доступны служба CI и библиотека правил.

Objective-C , Objective-C ++ [ править ]

  • Clang  - бесплатный проект Clang включает статический анализатор. Начиная с версии 3.2 этот анализатор включен в Xcode . [9]
  • Infer  - разработан командой инженеров Facebook при участии участников с открытым исходным кодом. Нацелен на нулевые указатели, утечки, использование API и другие проверки линта. Доступен как открытый исходный код на github.

Опа [ править ]

  • Opa включает в себя собственный статический анализатор. Поскольку язык предназначен для разработки веб-приложений, компилятор со строгой статической типизацией проверяет допустимость высокоуровневых типов для веб-данных и по умолчанию предотвращает многие уязвимости, такие как XSS- атаки и инъекции кода базы данных.

Упаковка [ править ]

  • Lintian  - проверяет программные пакеты Debian на общие несоответствия и ошибки.
  • Rpmlint  - проверяет общие проблемы в пакетах rpm.

Perl [ править ]

  • Perl :: Critic  - инструмент, помогающий применять общие передовые практики Perl. Большинство лучших практик основано на книге Дэмиана Конвея « Лучшие практики Perl» .
  • PerlTidy  - Программа, которая действует как средство проверки синтаксиса и тестировщик / принудительное средство для практики кодирования на Perl.
  • Padre  - IDE для Perl, которая также обеспечивает статический анализ кода для проверки общих ошибок новичков.

PL / SQL [ править ]

  • TOAD  - среда разработки PL / SQL с компонентом Code xPert, который сообщает об общей эффективности кода, а также о конкретных проблемах программирования.
  • Visual Expert  - инструмент анализа кода PL / SQL [10], который сообщает о проблемах программирования и помогает понимать и поддерживать сложный код ( анализ воздействия , документация по исходному коду , деревья вызовов , матрица CRUD и т. Д.).

Python [ править ]

  • PyCharm  - кроссплатформенная среда разработки Python с инспекциями кода, доступными для анализа кода на лету в редакторе и массового анализа всего проекта.
  • PyDev  - IDE Python на основе Eclipse с анализом кода, доступным "на лету" в редакторе или в режиме экономии времени.
  • Pylint  - Статический анализатор кода. Довольно строгие; также содержит множество стилистических предупреждений.
  • Semgrep  - статический анализатор кода, помогающий определять стандарты кода и обнаруживать ошибки на ранней стадии. Также доступны служба CI и библиотека правил.

Transact-SQL [ править ]

  • Visual Expert  - инструмент анализа кода SQLServer [11], который сообщает о проблемах программирования и помогает понимать и поддерживать сложный код ( анализ воздействия , документация по исходному коду , деревья вызовов , матрица CRUD и т. Д.).

Инструменты формальных методов [ править ]

Инструменты, которые используют звук , то есть приближение к строгой модели, формальные методы подходят к статическому анализу (например, с использованием статических программных утверждений ). Звуковые методы не содержат ложных негативов для программ без ошибок, по крайней мере, в отношении идеализированной математической модели, на которой они основаны (нет «безусловной» надежности). Обратите внимание, что нет гарантии, что они сообщат обо всех ошибках в программах с ошибками, они сообщат хотя бы об одной.

  • Astrée  - находит все потенциальные ошибки времени выполнения путем абстрактной интерпретации , может доказать отсутствие ошибок времени выполнения и может подтвердить функциональные утверждения; адаптирован к критически важному для безопасности коду C (например, авионика).
  • CodePeer  - Статически определяет и документирует предварительные и последующие условия для подпрограмм Ada ; статически проверяет предварительные условия на всех участках вызова.
  • ECLAIR  - использует основанные на формальных методах методы статического анализа кода, такие как абстрактная интерпретация и проверка модели, в сочетании с методами удовлетворения ограничений для обнаружения или доказательства отсутствия определенных ошибок времени выполнения в исходном коде .
  • ESC / Java и ESC / Java2  - на основе языка моделирования Java , расширенная версия Java
  • Frama-C  - платформа анализа с открытым исходным кодом для C, основанная на языке спецификаций ANSI / ISO C (ACSL). Его основные методы включают абстрактную интерпретацию , дедуктивную проверку и мониторинг времени выполнения .
  • KeY  - платформа анализа для Java, основанная на доказательстве теорем со спецификациями на языке моделирования Java ; может генерировать контрольные примеры как контрпримеры; автономный графический интерфейс или интеграция с Eclipse
  • MALPAS  - инструмент формальных методов, который использует ориентированные графы и регулярную алгебру для доказательства того, что анализируемое программное обеспечение правильно соответствует его математической спецификации.
  • Polyspace  - использует абстрактную интерпретацию , технику, основанную на формальных методах, [12] для обнаружения и доказательства отсутствия определенных ошибок времени выполнения в исходном коде для C / C ++ и Ada.
  • Набор инструментов SPARK, включая SPARK Examiner  - основан на языке SPARK , подмножестве Ada .

См. Также [ править ]

  • Автоматическая проверка кода
  • Лучшие практики кодирования
  • Список философий разработки программного обеспечения
  • Динамический анализ кода
  • Показатели программного обеспечения
  • Интегрированная среда разработки (IDE) и сравнение интегрированных сред разработки . IDE обычно поставляются со встроенной поддержкой статического анализа кода или с возможностью интеграции такой поддержки. Eclipse предлагает такой механизм интеграции для большинства различных типов расширений (плагинов).

Ссылки [ править ]

  1. ^ «Поддерживаемые инструменты и языки тестирования безопасности приложений» . codedx.com . Проверено 25 апреля 2017 года .
  2. ^ "Сайт Coverity Scan" . Проверено 2 февраля 2021 .
  3. ^ «PMD - Просмотрите /pmd/5.0.0 на SourceForge.net» . Проверено 9 декабря 2012 года .
  4. ^ "CPAchecker" . 2015-02-08.
  5. ^ «Сообщество клиентов SIG» . community.synopsys.com . Проверено 2 февраля 2021 .
  6. ^ "UNIX свободен!" . lemis.com. 2002-01-24.
  7. Линт для Fortran Денис В. Хаскин (2 мая 1988 г.). «Откажитесь от ваших программ FORTRAN». Цифровой обзор . С. 41–47. аналогично Source Code Analyzer от DEC, .. вступает в игру гораздо раньше .. до того, как пользователи компилируют свои программы
  8. ^ https://github.com/checkstyle/checkstyle/issues/523
  9. ^ «Статический анализ в Xcode» . Apple . Проверено 3 сентября 2009 .
  10. ^ "Визуальный эксперт для Oracle - Анализатор кода PL / SQL" . www.visual-expert.com . 2017-08-24.
  11. ^ «Визуальный эксперт для SQL Server - анализатор кода Transact SQL» . www.visual-expert.com . 2017-08-24.
  12. ^ Cousot, Патрик (2007). «Роль абстрактной интерпретации в формальных методах». Пятая Международная конференция IEEE по программной инженерии и формальным методам (SEFM 2007) . Международная конференция IEEE по программной инженерии и формальным методам. С. 135–140. DOI : 10,1109 / SEFM.2007.42 . ISBN 978-0-7695-2884-7.

Внешние ссылки [ править ]

  • Список инструментов статического анализа кода Консорциума безопасности веб-приложений
  • Статические средства проверки Java в Curlie
  • SAMATE - анализаторы безопасности исходного кода
  • SATE - Экспозиция инструмента статического анализа
  • «Сравнение средств поиска ошибок для Java» , Ник Рутар, Кристиан Алмазан и Джефф Фостер, Университет Мэриленда . Сравнивает Bandera, ESC / Java 2, FindBugs , JLint и PMD.
  • «Мини-обзор средств поиска ошибок Java» , Рик Джеллифф, O'Reilly Media .