Список инструментов для статического анализа кода - List of tools for static code analysis

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

Язык

Многоязычный

ИнструментПоследний релизБесплатно программное обеспечениеЧисло цикломатической сложностиДубликат
код
Примечания
Апач ЙетусНабор инструментов для сборки и выпуска. Включен модуль «precommit», который используется для выполнения полных и частичных / исправных сборок CI, который обеспечивает статический анализ кода с помощью других инструментов с открытым исходным кодом как часть настраиваемого отчета. Встроенная поддержка C, C ++, Java, Perl, Python, Ruby, Shell и XML. Может быть расширен с помощью подключаемого модуля.
Люкс Axivion BauhausНабор инструментов статического анализа кода для кода Ada, C, C ++, C # и Java, который выполняет различные виды анализа, такие как проверка архитектуры, анализ интерфейсов, MISRA проверка и обнаружение клонов.
Код DxСистема корреляции и управления уязвимостями программных приложений, которая объединяет и нормализует уязвимости программного обеспечения, обнаруженные несколькими статический тестирование безопасности приложений (SAST) и динамичный инструменты тестирования безопасности приложений (DAST), а также результаты ручной проверки кода. Поддерживает C, C ++, C #, Java, JavaScript, JSP, PHP, Python, Rails, Ruby, Scala, VB.NET и XML / XSL.[1]
CodeSceneАнализ поведенческого кода на основе данных контроля версий. Может анализировать любую кодовую базу и поддерживает X-Ray (или анализ на уровне методов) для C, C ++, C #, Java, Groovy, JavaScript, TypeScript, Objective-C, Scala, Python, Swift, Go, Visual Basic .Net, PHP , и Руби.
ConQATНабор инструментов для непрерывной оценки качества, который позволяет гибко настраивать анализы качества (соответствие архитектуры, обнаружение клонов, показатели качества и т. Д.) И панели мониторинга. Поддерживает Java, C #, C ++, JavaScript, ABAP, Ada и многие другие языки.
ПокровительствоИнструмент статического анализа для C, C ++, C #, Objective-C, Java, Javascript, node.JS, Ruby, PHP и Python.
GrammaTech CodeSonarОбнаружение дефектов (переполнение буфера, утечка памяти и т. Д.), Проверка параллелизма и безопасности, визуализация архитектуры и программные метрики для исходного кода C, C ++, Objective-C и Java.
HCL Security AppScan
Исходное издание
(ранее известный как IBM Rational AppScan)
Анализирует исходный код для выявления уязвимостей безопасности при интеграции тестирования безопасности с процессами и системами разработки программного обеспечения. Поддерживает C, C ++, .NET, Java, JSP, JavaScript, ColdFusion, Classic ASP, PHP, Perl, Visual Basic 6, PL / SQL, Python, T-SQL и COBOL.
Facebook InferИнструмент для Java, C, C ++ и Objective-C. Нацелен на проблемы с нулевым указателем, утечки, проблемы параллелизма и использование API для мобильных приложений Facebook. Доступен как открытый исходный код на github.
Imagix 4DC, C ++ и Java. Версии для Windows и Linux.
KiuwanКомплексная платформа Software Analytics для статического анализа кода и автоматической проверки кода. Он охватывает обнаружение дефектов, безопасность приложений и управление ИТ-рисками с расширенными функциями управления жизненным циклом и приложениями. Поддержка более 20 языков, включая Цель-C, Ява, JSP, JavaScript, PHP, C, C ++, ABAP, КОБОЛ, JCL, C #, PL / SQL, Transact-SQL, SQL, Visual Basic, Visual Basic .NET, Android (операционная система).
KlocworkОбеспечивает уязвимость безопасности, соответствие стандартам (MISRA, ISO 26262 и другие), обнаружение дефектов и анализ тенденций построения над построением для C, C ++, C #, Java.
ЛинтВ комплекте с Android SDK.
Стенд LDRAНабор инструментов для анализа и тестирования программного обеспечения для C, C ++, Ada83, Ada95 и Assembler (Intel, Freescale, Texas Instruments).
МАЛЬПАСНабор программных инструментов статического анализа для различных языков, включая Ada, C, Pascal и Assembler (Intel, PowerPC и Motorola). Используется в основном для критических с точки зрения безопасности приложений в атомной и авиакосмической промышленности.
Микро ФокусEnterprise Analyzer и COBOL Analyzer. Инструменты статического анализа и визуализации кода для устаревших приложений и приложений для мэйнфреймов. Анализируйте код на разных языках, включая COBOL, PL / I, Natural, RPG, Java, Assembler, Easytrieve, VB, C / C ++, PL / SQL, C #, VB.NET, KornShell, планировщики заданий и другие.
лосьMoose начинался как платформа для анализа программного обеспечения со множеством инструментов для управления, оценки или визуализации программного обеспечения. Он может развиться до более общей платформы анализа данных. Поддерживаемые языки: C, C ++, Java, Smalltalk, .NET, могут быть добавлены другие языки.
PMD Детектор копирования / вставки (CPD)повторяющийся код обнаружение (например) Ява, JSP, C, C ++, Холодный синтез, PHP и JavaScript[2] код.
PolyspaceИспользует абстрактная интерпретация обнаружить и доказать отсутствие определенных ошибки времени выполнения в исходный код для C, C ++ и Ada
Pretty DiffЗависящий от языка сравнение кода инструмент, который включает отчеты об анализе для конкретного языка в дополнение к минификация и украшение алгоритмы.
PVS-StudioИнструмент программного анализа для C, C ++, C ++ / CLI, C ++ / CX (Component Extensions), C #, Java.
RIPSРешение для статического анализа кода для PHP, Java и Node.js с множеством вариантов интеграции для автоматического обнаружения сложных уязвимостей безопасности.
SideCIИнструмент автоматической проверки кода на основе статического анализа для Ruby, Python, PHP, JavaScript, CoffeeScript и Go. Проверяет стиль, качество, зависимости, безопасность и ошибки.
SofCheck InspectorСтатическое обнаружение логических ошибок, условия гонки, и избыточный код за Ада и Ява; автоматически извлекает предварительно -постусловия из кода.
SonarQubeМеханизм непрерывной проверки, который обнаруживает уязвимости, ошибки и запахи кода. Также отслеживает сложность кода, покрытие модульными тестами и дублирование. Поддерживаемые языки: ABAP, Apex, C, C #, C ++, CSS, COBOL, Flex, Go, HTML, Java, JavaScript, Kotlin, Objective-C, PHP, PLI, PL / SQL, Python, Ruby, Scala, Swift, TSQL , TypeScript, VB.net, Visual Basic 6, XML.
Sotoarc -СотографАрхитектура и качественный углубленный анализ и мониторинг для C, C ++, C #, Java, ABAP.
SourceMeterПроприетарный независимый от платформы анализатор статического исходного кода командной строки для Java, C, C ++, RPG IV (AS / 400) и Python.
SQuOREМногоцелевой и многоязычный инструмент мониторинга[3] для программных проектов.
ПониматьМультиплатформенный инструмент для анализа кода и понимания больших кодовых баз. Поддерживаемые языки включают Ada, Cobol, Ansi C, K&R C, Ansi C ++, C #, FORTRAN, Java, Jovial, Pascal, PL / M, Python, VHDL, Objective C, Objective C ++, HTML, PHP, JavaScript и XML.
ЯскаЕще один анализатор исходного кода, фреймворк на основе плагинов для сканирования файлов произвольных типов, с плагинами для C, C ++, Java, JavaScript, ASP, PHP, HTML-CSS, ColdFusion, КОБОЛ, и другие типы файлов. Он интегрируется с другими сканерами, включая FindBugs, PMD, и Pixy.

.СЕТЬ

ИнструментПоследний релизБесплатно программное обеспечениеЧисло цикломатической сложностиДубликат
код
Примечания
Платформа компилятора .NET
(Кодовое название Рослин)
Фреймворк компилятора с открытым исходным кодом для C # и Visual Basic .NET разработан Microsoft .СЕТЬ. Предоставляет API для анализа синтаксиса и управления им.
CodeIt.RightСочетает статический анализ кода и автоматический рефакторинг с лучшими практиками, что позволяет автоматически исправлять ошибки и нарушения кода; поддерживает C # и VB.NET.
CodeRushПлагин для Visual Studio который предупреждает пользователей о нарушениях передовых практик.
FxCopБесплатный статический анализ для программ Microsoft .NET, компилируемых в CIL. Автономный и интегрированный в некоторые Microsoft Visual Studio редакции; от Microsoft.
NDependУпрощает управление сложной базой кода .NET за счет анализа и визуализации зависимостей кода, определения правил проектирования, выполнения анализа влияния и сравнения различных версий кода. Интегрируется в Visual Studio.
StyleCopАнализирует исходный код C #, чтобы обеспечить соблюдение набора правил стиля и согласованности. Его можно запустить изнутри Microsoft Visual Studio или интегрированы в MSBuild проект.

Ада

ИнструментПоследний релизБесплатно программное обеспечениеЧисло цикломатической сложностиДубликат
код
Примечания
AdaControlИнструмент для контроля появления различных сущностей или шаблонов программирования в коде Ada, используемый для проверки стандартов кодирования, обеспечения соблюдения правил, связанных с безопасностью, и поддержки различных проверок вручную. Возможна автоматическая фиксация нарушений.
CodePeerУсовершенствованный инструмент статического анализа, который обнаруживает потенциальные логические ошибки времени выполнения в программах Ada.
FluctuatАбстрактный переводчик для проверки числовых свойств программ.
Стенд LDRAНабор инструментов для анализа и тестирования программного обеспечения для Ada83 / 95.
PolyspaceИспользует абстрактная интерпретация обнаружить и доказать отсутствие определенных ошибки времени выполнения в исходный код.
SofCheck Inspector

(Купил AdaCore )

Статическое обнаружение логических ошибок, условия гонки, и избыточный код для Ады; автоматически извлекает предварительно -постусловия из кода.
Набор инструментов SPARKИнструменты проверки для SPARK 2014 - подмножества Ada 2012, в котором используется поддержка контрактов Ada. Разработан для обеспечения надежности, глубины, модульности и эффективности проверки.

C, C ++

ИнструментПоследний релизБесплатно программное обеспечениеЧисло цикломатической сложностиДубликат
код
Примечания
AstréeНет; Проприетарныйнаходит весь потенциал ошибки времени выполнения и гонки данных абстрактная интерпретация, может доказать их отсутствие и может доказать функциональные утверждения; адаптирован к критически важному для безопасности коду C (например, для авионики и автомобилей). Включает программу проверки MISRA.
ВЗРЫВ - Инструмент проверки программного обеспечения Berkeley Lazy Abstraction (устарел)2.7.2даПрограмма проверки моделей программного обеспечения с открытым исходным кодом для программ на языке C, основанная на ленивой абстракции (последующий проект - CPAchecker.[4]).
Лязг10.0.0даКомпилятор с открытым исходным кодом, включающий статический анализатор.
Coccinelle1.0.7даСопоставление и преобразование шаблона исходного кода с открытым исходным кодом.
Покровительство2019.12[5]Нет; ПроприетарныйИнструмент статического анализа для C / C ++.
CPAcheckerДа; Лицензия Apache 2Инструмент для проверки пути выполнения C.
Cppcheck2.2Да;GPLНетНетИнструмент с открытым исходным кодом, который проверяет несколько типов ошибок, включая использование STL.
Cppdepend2019.1Нет; проприетарныйУпрощает управление сложной базой кода C / C ++ за счет анализа и визуализации зависимостей кода, определения правил проектирования, анализа воздействия и сравнения различных версий кода.
cpplintдаИнструмент с открытым исходным кодом, который проверяет соответствие руководству Google по стилю программирования на C ++.
ЭКЛЕРНет; ПроприетарныйПлатформа для автоматического анализа, проверки, тестирования и преобразования программ C и C ++.
ЗатмениедаIDE с открытым исходным кодом, включающая статический анализатор кода.
FluctuatНет; ПроприетарныйАбстрактный переводчик для проверки числовых свойств программ.
Фрама-СдаРасширяемый фреймворк анализа для C с открытым исходным кодом с несколькими анализаторами и общим для них языком спецификаций. Включает анализ, основанный на абстрактной интерпретации, дедуктивной проверке и мониторинге выполнения.
Helix QAC2020.1Ранее PRQA QA · C и QA · C ++, глубокий статический анализ C / C ++ для обеспечения качества и соблюдения стандартов кодирования с поддержкой MISRA.
Сделать выводдаРазработан командой инженеров Facebook при участии участников с открытым исходным кодом. Нацелен на нулевой указатель и другие проблемы с памятью. Доступен как открытый исходный код на github.
ЛинтОригинальный статический анализатор кода для C.
Стенд LDRAВерсия 9.8.1
(2019-07-30)
Набор инструментов для анализа и тестирования программного обеспечения для C / C ++, который выполняет статический анализ, соблюдение стандартов (например, MISRA C / C ++), динамический анализ, модульное тестирование и отслеживание требований.
Тест Parasoft C / C ++10.4.2Нет; ПроприетарныйИнструмент C / C ++, который выполняет статический анализ, модульное тестирование, проверку кода и обнаружение ошибок времени выполнения; плагины для Visual Studio и Затмение на базе IDE.
PC-LintНетИнструмент программного анализа для C с частичной поддержкой C ++ 2011.
PolyspaceНетИспользует абстрактная интерпретация обнаружить и доказать отсутствие ошибки времени выполнения, Мертвый код в исходный код а также используется для проверки всех правил MISRA (2004, 2012) (директивы, не директивы).
SLAM проектпроект Microsoft Research для проверки того, что программное обеспечение удовлетворяет критическим поведенческим свойствам используемых интерфейсов.
РазреженныйдаИнструмент с открытым исходным кодом, предназначенный для поиска неисправностей в Linux ядро.
SonarQube8.1НетдадаИнструмент с открытым исходным кодом, который предлагает поддержку C / C ++ через коммерческую лицензию.
Шина3.1.2даИнструмент с открытым исходным кодом, статически проверяющий программы на языке C на наличие уязвимостей и ошибок кода.
Visual StudioНетIDE, которая обеспечивает статический анализ кода для C / C ++ как в среде редактора, так и из командной строки компилятора.

Фортран

  • Фортран-Линт[6] (Методы обработки информации, Inc)

IEC 61131-3

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

Ява

ИнструментПоследний релизБесплатно программное обеспечениеДубликат
код
Примечания
Checkstyle2020-01-26Да;LGPLНетПомимо некоторого статического анализа кода, его можно использовать для выявления нарушений настроенного стандарта кодирования. Обнаружение повторяющегося кода было удалено[7] из Checkstyle.
Покровительство2017-01-19Нет; ПроприетарныйCoverity - это платформа статического анализа и статического тестирования безопасности приложений (SAST), которая обнаруживает критические дефекты и недостатки безопасности в написанном коде до того, как они станут уязвимостями, сбоями или проблемами при обслуживании.
Затмение2017-06-28Да; EPLНетКроссплатформенная IDE с собственным набором из нескольких сотен инспекций кода, доступных для анализа кода на лету в редакторе и массового анализа всего проекта. Плагины для Checkstyle, FindBugs и PMD.
FindBugs2015-03-06Да; LGPLНа основе Джакарта BCEL из Университета Мэриленда. SpotBugs является духовным преемником FindBugs, продолжающим с того момента, на котором он остановился, при поддержке своего сообщества.
Сделать вывод2017-10-19Да;BSD с добавлением-
последняя патентная оговорка
Разработан командой инженеров Facebook при участии участников с открытым исходным кодом. Нацелен на исключения нулевого указателя, утечки и проблемы безопасности потоков.
IntelliJ IDEA2017-11-30Да; ASL 2даВедущая Java IDE со встроенной проверкой и анализом кода. Плагины для Checkstyle, FindBugs и PMD.
JArchitect2017-06-11Нет; ПроприетарныйУпрощает управление сложной базой кода за счет анализа и визуализации зависимостей кода, определения правил проектирования, анализа воздействия и сравнения различных версий кода.
Jtest2019-05-21Нет; ПроприетарныйдаПродукт для тестирования и статического анализа кода от Parasoft.
Стенд LDRAНет; ПроприетарныйНабор инструментов для анализа и тестирования.
PMD2020-10-24Да;BSDASL 2LGPLдаАнализатор исходного кода на основе статического набора правил, который определяет потенциальные проблемы.
RIPS2019-01-07Нет; ПроприетарныйРешение для анализа исходного кода для конкретного языка с множеством вариантов интеграции для точного обнаружения сложных проблем с безопасностью и качеством.
SemmleCodeНет; ПроприетарныйЗапросы объектно-ориентированного кода для статического анализа программ.
Сажа2020-10-28Да; LGPLСреда управления языками и оптимизации, состоящая из промежуточных языков.
Squale2011-05-26Да; LGPLПлатформа для управления качеством программного обеспечения.
SourceMeter2016-02-01Нет; ПроприетарныйдаНе зависящий от платформы анализатор статического исходного кода командной строки.
ThreadSafe2014-03-28Нет; ПроприетарныйИнструмент статического анализа, ориентированный на поиск ошибок параллелизма.

JavaScript

Цель-C, Objective-C ++

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

Опа

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

Упаковка

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

Perl

PL / SQL

Python

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

Transact-SQL

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

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

Смотрите также

Рекомендации

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

внешняя ссылка