Список инструментов для статического анализа кода
Это список известных инструментов для статического анализа программ (анализ программ — синоним анализа кода).
Инструменты статического анализа кода [ править ]
Инструмент | Последний выпуск | Бесплатное программное обеспечение | Поддерживаемые языки | Примечания | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Есть | C , C++ , C# , Objective-C | JVM | JavaScript , TypeScript | .NET , ВБ.НЕТ | Питон | Другие языки | ||||
АдаКонтроль | 21 сентября 2021 г. (1.22р15) | Да; лицензия GPLv2 | Есть | — | — | — | — | — | — | Инструмент для контроля появления различных объектов или шаблонов программирования в коде Ada, используемый для проверки стандартов кодирования, обеспечения соблюдения правил безопасности и поддержки различных ручных проверок. Возможно автоматическое исправление нарушений. |
Астрея | 2021-10 (21.10) | Нет; собственный | — | С, С++ | — | — | — | — | — | Находит все потенциальные ошибки времени выполнения и гонки данных посредством абстрактной интерпретации, может доказать их отсутствие и доказать функциональные утверждения; адаптированный для кода C/C++, критически важного для безопасности (например, авионики и автомобилестроения). Включает программу проверки MISRA . |
БЛАСТ (пенсионер) | 2015-10-30 (2.7.3) | Да; АСЛ 2 | — | С | — | — | — | — | — | Средство проверки моделей программного обеспечения с открытым исходным кодом для программ на языке C, основанное на ленивой абстракции (последующий проект — CPAchecker. [1] ). |
Кланг | 2024-06-19 (18.1.8) | Да; ASL 2 с исключениями LLVM | — | C, C++, Objective-C | — | — | — | — | — | Компилятор с открытым исходным кодом, включающий статический анализатор. Начиная с версии 3.2 этот анализатор включен в состав Xcode . [2] [3] |
Божья коровка | 2021-09-06 (1.1.1) | Да; лицензия GPLv2 | — | С | — | — | — | — | — | Сопоставление и преобразование шаблонов исходного кода с открытым исходным кодом. |
Код Дх | Нет; собственный | — | С, С++, С# | Ява, JSP , Скала | JavaScript | VB.NET | Питон | PHP, Rails, Ruby, XML [4] | Система корреляции и управления уязвимостями программных приложений, использующая несколько инструментов SAST и DAST , а также результаты ручных проверок кода. Может рассчитать цикломатическую сложность. | |
КодПир | 2021-05-07 (21) | Нет; собственный | Есть | — | — | — | — | — | — | Усовершенствованный инструмент статического анализа, который обнаруживает потенциальные логические ошибки во время выполнения в программах Ada. |
КодСцена | 2023-10-13 (6.3.5) | Нет; собственный | — | C, C++, C#, Objective-C | Java, Groovy , Скала | JavaScript, TypeScript | VB.NET | Питон | Swift, Го, PHP, Руби | Поведенческий анализ кода. Помогает выявлять, расставлять приоритеты и управлять техническим долгом. Измеряет организационные аспекты команд разработчиков. Автоматическая интеграция запросов на включение. |
КодQL | 07.02.2023 (CLI: 2.12.2) | Нет; собственный | — | С, С++, С# | Ява, Котлин | JavaScript, TypeScript | .СЕТЬ | Питон | Иди, Руби | Инструмент поиска кода с упором на поиск ошибок в программном обеспечении. Шаблоны поиска написаны на языке запросов, который может выполнять поиск в AST и графиках (CFG, DFG и т. д.) поддерживаемых языков. Доступен плагин для Visual Studio. |
ConQAT (в отставке) | 2015-02-01 | Да; АСЛ 2 | Есть | С#, С++ | Ява | JavaScript | — | — | АБАП | Набор инструментов непрерывной оценки качества, который позволяет гибко настраивать анализ качества (соответствие архитектуры, обнаружение клонов, показатели качества и т. д.) и информационные панели. |
Покрытие | 2023-04-29 (2022.12) [5] | Нет; собственный | — | C, C++, C#, Objective-C | Ява | JavaScript, TypeScript | — | Питон | Руби, PHP | Многоязычный инструмент для решения проблем безопасности и качества. Поддерживает стандарты соответствия ( MISRA , ISO 26262 и другие). Бесплатное использование для проектов с открытым исходным кодом. |
ВСПЫШКА | 2021-07-15 (3.11) [6] | Нет; собственный | — | С, С++ | — | — | — | — | — | Многоязычный инструмент для проверки программного обеспечения. Приложения варьируются от проверки правил кодирования до автоматического создания тестовых примеров, доказательства отсутствия ошибок во время выполнения или создания контрпримеров, а также до спецификации средств сопоставления и переписывания кода на основе как синтаксических, так и семантических условий. Поддерживает стандарты соответствия ( MISRA , Embedded C Coding Standard и другие). |
CPAchecker | 2022-01-24 (2.1.1) | Да; АСЛ 2 | — | С | — | — | — | — | — | Настраиваемый инструмент проверки программного обеспечения для проверки пути выполнения C. |
Cppcheck | 2023-09-10 (2.12) | Да; лицензия GPLv3 | — | С, С++ | — | — | — | — | — | Инструмент с открытым исходным кодом, который проверяет наличие нескольких типов ошибок, включая использование STL . Добавляется поддержка MISRA. |
Cppзависимость | 2023-03-01 (2023.1) [7] | Нет; собственный | — | С, С++ | — | — | — | — | — | Упрощает управление сложной базой кода C/C++ за счет анализа и визуализации зависимостей кода, определения правил проектирования, анализа воздействия и сравнения различных версий кода. |
Cpplint | 2020-07-29 | Да; CC-BY-3.0 [8] | — | С++ | — | — | — | — | — | Инструмент с открытым исходным кодом, который проверяет соответствие руководству по стилю Google для кодирования C++. |
Он колеблется | 2001 | Нет; собственный | Ада95 | С | — | — | — | — | — | Абстрактный интерпретатор для проверки числовых свойств программ. |
Фрама-С | 2022-06-21 | Да; LGPL v2.1 , BSD , QPL | — | С | — | — | — | — | — | Расширяемая среда анализа с открытым исходным кодом для C с несколькими анализаторами и общим для всех языком спецификаций. Включает анализ, основанный на абстрактной интерпретации , дедуктивной проверке и мониторинге времени выполнения. |
ГраммаТехСонар Код | 2020-06-01 (5.3) | Нет; собственный | — | C, C++, Objective-C | Ява | — | — | — | — | Обнаружение дефектов (переполнение буфера, утечки памяти и т. д.), проверки параллелизма и безопасности, визуализация архитектуры и метрики программного обеспечения. |
GCC | 2023-4-26 (13.1) | Да; GPLv3+ с исключением библиотеки времени выполнения GCC | — | С | — | — | — | — | — | Компиляция с флагом -fanalyzer (доступен в GCC 10) включает функции статического анализатора. [9] |
HCL Security AppScan Источник | 2020-12-01 (10.0.3) | Нет; собственный | — | С, С++ | Ява, JSP | JavaScript | .СЕТЬ | Питон | ColdFusion, ASP, PHP, Perl, Visual Basic 6, PL/SQL, T-SQL, COBOL | Анализирует исходный код для выявления уязвимостей безопасности при интеграции тестирования безопасности с процессами и системами разработки программного обеспечения. |
Хеликс QAC | 2023-04 (2023.1) | Нет; собственный | — | С, С++ | — | — | — | — | — | Ранее PRQA QA·C и QA·C++ — глубокий статический анализ C/C++ для обеспечения качества и соблюдения стандартов руководства/кодирования с поддержкой MISRA. |
Статический анализатор Infer | 2021-03-26 (1.1.0) | Да; С | — | C, C++, Objective-C | Ява | — | — | — | — | Устраняет проблемы нулевого указателя, утечки, проблемы параллелизма и использования API для мобильных приложений Facebook. Доступно с открытым исходным кодом на GitHub. Иногда его называют Facebook Infer. |
Имагикс 4D | 2020-10-01 (10.1.0) | Нет; собственный | — | С, С++ | Ява | — | — | — | — | Версии для Windows и Linux. |
Киуван | 2020-07-22 | Нет; собственный | — | C, C++, C#, Objective-C | Ява, JSP | JavaScript | VB.NET | — | ABAP, COBOL, PHP, PL/SQL , T-SQL , SQL, Visual Basic, Android | Комплексная платформа Software Analytics для статического анализа кода и автоматической проверки кода. Он охватывает обнаружение дефектов, безопасность приложений и управление ИТ-рисками, а также расширенные функции жизненного цикла и управления приложениями. Поддержка более 20 языков. |
Клокворк | 2023-04-04 (2023.1) | Нет; собственный | — | С, С++, С# | Ява | JavaScript | — | Питон | Котлин | Обеспечивает уязвимости безопасности, соответствие стандартам (MISRA, ISO 26262 и др.), обнаружение дефектов и анализ тенденций перестройки. |
Испытательный стенд ЛДРА | 07.05.2021 (v9.8.6) | Нет; собственный | Ада83, Ада95 | С, С++ | — | — | — | — | Ассемблер (Intel, Freescale, Texas Instruments) | Набор инструментов для анализа и тестирования программного обеспечения, который выполняет статический анализ, соблюдение стандартов (например, MISRA C/C++), динамический анализ, модульное тестирование и отслеживание требований. |
Ворс | 1978-07-26 | Да; разрешительный BSD-подобный [10] | — | С | — | — | — | — | — | Оригинальный статический анализатор кода для C 1978 года. |
МАЛЬПАС | Нет; собственный | Есть | С | — | — | — | — | Паскаль, ассемблер (Intel, PowerPC и Motorola) | Набор инструментов программного статического анализа для различных языков. Используется в основном для критически важных приложений в атомной и аэрокосмической промышленности. | |
Лось | 2021-01-21 (7.0.3) | Да; С | — | С, С++ | Ява | — | .СЕТЬ | — | Смолток | Moose начиналась как платформа для анализа программного обеспечения со множеством инструментов для манипулирования, оценки и визуализации программного обеспечения. Она может превратиться в более общую платформу для анализа данных. |
NDepend | 2022-03-16 (2022.1) [11] | Нет; собственный | — | — | — | — | C# VB.NET .NET | — | — | Упрощает управление сложной базой кода .NET за счет анализа и визуализации зависимостей кода, определения правил проектирования, анализа воздействия и сравнения различных версий. Интегрируется в Visual Studio . |
Платформа компилятора .NET ( Рослин ) | 2020-12-08 (3.8.0) | Да; С | — | С# | — | — | VB.NET | — | — | Платформа компилятора с открытым исходным кодом для C# и Visual Basic .NET, разработанная Microsoft .NET. Предоставляет API для анализа синтаксиса и управления им. Правила FxCop были реализованы в Roslyn. |
Тест Parasoft C/C++ | 2020-11-12 (2020.2) | Нет; собственный | — | С, С++ | — | — | — | — | — | Инструмент AC/C++, который выполняет статический анализ, модульное тестирование, проверку кода и обнаружение ошибок во время выполнения; плагины, доступные для Visual Studio и Eclipse IDE на основе . |
ПК-линт Плюс | 2 августа 2022 г. (2.0 Бета 2) | Нет; собственный | — | С, С++ | — | — | — | — | — | Инструмент статического анализа, используемый для обнаружения широкого спектра дефектов, выявления подозрительного кода, обеспечения соблюдения различных стандартов кодирования (MISRA/AUTOSAR/и т. д.), расчета и составления отчетов по сложным показателям, а также реализации пользовательских проверок. |
ПМД | 2023-2-25 (6.55.0) | Да; BSD-подобный | — | С, С++ | Ява, JSP | JavaScript | — | — | КолдФьюжн , PHP | обнаружение дубликатов кода (например) [12] код. |
Полиспейс | Нет; собственный | Есть | С, С++ | — | — | — | — | — | Использует абстрактную интерпретацию для обнаружения и доказательства отсутствия определенных ошибок времени выполнения и мертвого кода в исходном коде, а также используется для проверки всех правил MISRA (2004, 2012) (директив и недиректив). | |
Довольно разница | 2019-04-21 (101.0.0) | Да; CC0 | — | — | — | JavaScript, TypeScript | — | — | Языки разметки, сценариев и стилей (например, XML, CSS) | для конкретного языка Инструмент сравнения кода , который включает в себя отчеты об анализе для конкретного языка в дополнение к алгоритмам минимизации и улучшения для конкретного языка . |
PVS-Студия | 2021-10-07 (7.15) | Нет; собственный | — | C, С++, С++/CLI , С++/CX , С# | Ява | — | — | — | — | Инструмент программного анализа. |
И копать | 2023-07-23 (2023.2) | Нет; собственный | — | С# | Ява, Котлин | JavaScript, TypeScript | VB.NET | Питон | Go, HTML, PHP, CSS, Android, Vue.js | Инструмент анализа качества кода, использующий статический анализ кода. |
РИСЫ | 2020-02-17 (3.4) | Нет; собственный | — | — | Ява | — | — | — | PHP | Решение для статического анализа кода со множеством вариантов интеграции для автоматического обнаружения сложных уязвимостей безопасности. |
САСТ онлайн | 2022-03-07 (1.1.0) | Нет; собственный | — | — | Ява | — | — | — | Котлин , APK | Тщательно проверьте исходный код Android, чтобы выявить и устранить потенциальные проблемы безопасности и уязвимости. Инструмент статического тестирования безопасности приложений (статического анализа кода) онлайн |
Семгреп | 2024-05-23 (1.74.0) | Да; LGPL v2.1 | — | — | Ява | JavaScript, TypeScript | — | Питон | Go, JSON , PHP, Ruby, языково-независимый режим | Инструмент статического анализа, который помогает выражать стандарты кода и выявлять ошибки на ранней стадии. Он также имеет экспериментальную поддержку одиннадцати других языков. Также доступны служба CI и библиотека правил. |
Страницы | 2021-02-02 | Нет; собственный | — | — | — | JavaScript, Кофескрипт | — | Питон | Руби, PHP, Го | Инструмент автоматического анализа кода на основе статического анализа кода, работающий на GitHub и GitLab. Проверяет стиль, качество, зависимости, безопасность и ошибки. Он объединяет ряд инструментов статического анализа с открытым исходным кодом. |
проект SLAM | 2010-07-14 | Нет; собственный | — | С | — | — | — | — | — | Проект исследования Microsoft по проверке того, что программное обеспечение (драйверы) удовлетворяет критическим поведенческим свойствам используемых им интерфейсов. |
Инспектор SofCheck , Codepeer | 2020-08-24 (21.x) | Нет; собственный | Есть | — | Ява | — | — | — | — | Статическое обнаружение логических ошибок, состояний гонки и избыточного кода . автоматически извлекает пред - постусловия из кода. |
СонарКуб | 2024-02-05 (10.4) | Частично; Framework — LGPL v3.0 , но некоторые функции могут быть проприетарными. | — | C, C#, C++, Objective-C | Ява, Котлин , Скала | JavaScript, TypeScript | VB.NET | Питон | ABAP, Apex, CSS, COBOL, Flex, Go, HTML, PHP, PLI, PL/SQL, Ruby, Swift, TSQL, Visual Basic 6, XML | Механизм непрерывной проверки, который находит уязвимости, ошибки и запахи кода . Также отслеживает сложность кода, покрытие модульными тестами и дублирование. Предлагает анализ ветвей и поддержку C/C++/Objective-C посредством коммерческих лицензий. |
Источникметр | 2016-12-16 (8.2) | Нет; собственный | — | С, С++ | Ява | — | — | Питон | РПГ IV (AS/400) | Независимый от платформы статический анализатор исходного кода с командной строкой. Интегрируется с PMD и SpotBugs. |
Sourcetrail (в отставке) | 2021-04 (2021.4.19) | Да; лицензия GPL | — | С, С++ | Ява | — | — | Питон | Перл | Обозреватель исходного кода с открытым исходным кодом, который предоставляет интерактивные графики зависимостей и поддерживает несколько языков программирования. |
Редкий | 2021-09-06 (0.6.4) | Да; С | — | С | — | — | — | — | Расширения GCC | Инструмент с открытым исходным кодом, предназначенный для поиска ошибок в ядре Linux . |
шина | 2007-07-12 (3.1.2) | Да; лицензия GPLv2 | — | С | — | — | — | — | — | Инструмент с открытым исходным кодом, статически проверяющий программы на языке C на наличие уязвимостей безопасности и ошибок кодирования. |
СтильКоп | 2016-05-02 (2016.1.0) | Да; Мс-ПЛ | — | С# | — | — | .СЕТЬ | — | — | Анализирует исходный код C# для обеспечения соблюдения набора правил стиля и согласованности. Его можно запустить из Microsoft Visual Studio или интегрировать в проект MSBuild . |
Сквор | 2020-11-27 (20.1) | Нет; собственный | Есть | C, C++, C#, Objective-C | Ява | JavaScript, TypeScript | VB.NET | Питон | Фортран, PHP, PL/SQL, Swift, T-SQL, XAML | Многоцелевой и многоязычный инструмент мониторинга программных проектов. Он интегрируется с другими сканерами. |
Понимать | 2023-01-19 (6.3) | Нет; собственный | Есть | C, C++, C#, Objective-C | Ява | JavaScript | — | Питон | FORTRAN, Jovial, Паскаль, VHDL, HTML, PHP, XML | Многоплатформенный инструмент для анализа кода и понимания больших баз кода. Может распознавать несколько диалектов C, C++ и C#, таких как ANSI, K&R и Objective C++. |
Визуальный эксперт | 2021-09-10 | Нет; собственный | — | — | — | — | — | — | PowerBuilder, Oracle PL/SQL, SQL Server Transact-SQL (T-SQL) | Непрерывная проверка кода, отчеты о проблемах качества и безопасности, помогает понять сложный код (перекрестные ссылки, документация исходного кода, сравнение кода, анализ производительности кода). |
Визуальная Студия | 2021-10-12 (16.11) | Нет; собственный | — | С, С++, С# | — | — | — | — | VB.NET | IDE, обеспечивающая статический анализ кода C/C++ как в среде редактора, так и из командной строки компилятора. Также включает платформу компилятора .NET (Roslyn), которая обеспечивает анализ C# и VB.NET. |
Яска (пенсионер) | 2010-11-01 (2.21) | Да; несколько лицензий | — | С, С++ | Ява | JavaScript | — | — | ASP, PHP, HTML, CSS, ColdFusion, COBOL | Еще один анализатор исходного кода, платформа на основе плагинов для сканирования произвольных типов файлов с помощью плагинов. Он интегрируется с другими сканерами, включая FindBugs , PMD и Pixy. |
Инструмент | Выпускать | Бесплатное программное обеспечение | Поддерживаемые языки | Примечания |
Языки [ править ]
Есть [ править ]
- АдаКонтроль
- КодПир
- КонКАТ
- Он колеблется
- Испытательный стенд ЛДРА
- МАЛЬПАС
- Полиспейс
- СофЧек Инспектор
- Сквор
- Понимать
С , С++ [ править ]
- Астри
- ВЗРЫВ
- Кланг
- Божья коровка
- Покрытие
- CPAchecker
- Cppcheck
- Cppзависимость
- Cpplint
- ВСПЫШКА
- Затмение
- Он колеблется
- Фрама-С
- GCC
- Хеликс QAC
- Facebook вывод
- Клокворк
- Ворс
- Испытательный стенд ЛДРА
- Тест Parasoft C/C++
- ПК-линт Плюс
- Полиспейс
- PVS-Студия
- проект SLAM
- Редкий
- СонарКуб
- шина
- Понимать
- Визуальная Студия
С# [ править ]
- Код Дх
- КодСцена
- КодQL
- Покрытие
- Киуван
- Клокворк
- Платформа компилятора .NET
- PVS-Студия
- СонарКуб
- Сотоарк
- СтильКоп
- Сквор
- Понимать
- Визуальная Студия
МЭК 61131-3 [ править ]
- Статический анализ CODESYS – интегрированное дополнение для CODESYS (код приложения реализован, например, в ST, FBD, LD)
Ява [ править ]
Инструмент | Последний выпуск | Бесплатное программное обеспечение | Дублировать код | Примечания |
---|---|---|---|---|
Чекстиль | 2020-01-26 | Да; LGPL | Нет | Помимо некоторого статического анализа кода, его можно использовать для выявления нарушений настроенного стандарта кодирования. Обнаружение дубликатов кода удалено. [13] из Чекстиля. |
Затмение | 2017-06-28 | Да; АПЛ | Нет | Кроссплатформенная IDE с собственным набором из нескольких сотен проверок кода, доступных для оперативного анализа кода в редакторе и массового анализа всего проекта. Плагины для Checkstyle, FindBugs и PMD. |
Найти ошибки | 2015-03-06 | Да; LGPL | На основе Джакартского BCEL Университета Мэриленда. SpotBugs — духовный преемник FindBugs, продолжающий работу с того места, на котором остановился, при поддержке своего сообщества. | |
Я понимаю идею | 2021-04-06 | Да; АСЛ 2 | Да | Ведущая Java IDE со встроенной проверкой и анализом кода. Плагины для Checkstyle, FindBugs и PMD. |
JАрхитектор | 2017-06-11 | Нет; собственный | Упрощает управление сложной базой кода за счет анализа и визуализации зависимостей кода, определения правил проектирования, анализа воздействия и сравнения различных версий кода. | |
Jtest | 2019-05-21 | Нет; собственный | Да | Продукт для тестирования и статического анализа кода от Parasoft . |
Сажа | 2020-10-28 | Да; LGPL | Структура языкового манипулирования и оптимизации, состоящая из промежуточных языков. | |
ПМД | 2021-01-30 | Да; Лицензия БСД | Да | Статический анализатор кода с поддержкой плагинов, включая CPD . PMD поддерживает проверку нескольких языков. |
Акула | 2011-05-26 | Да; LGPL | Платформа для управления качеством программного обеспечения. | |
ThreadSafe | 2014-03-28 | Нет; собственный | Инструмент статического анализа, ориентированный на поиск ошибок параллелизма. |
JavaScript [ править ]
- ESLint JavaScript . синтаксиса — средство проверки и форматирования
- Компилятор Google Closure — оптимизатор JavaScript, который переписывает код, делая его более быстрым и компактным, а также проверяет использование собственных функций JavaScript.
- CodeScene – поведенческий анализ кода.
- JSHint — форк JSLint, управляемый сообществом.
- JSLint — средство проверки и проверки синтаксиса JavaScript.
- Клокворк
- Semgrep — инструмент статического анализа, который помогает выражать стандарты кода и выявлять ошибки на ранней стадии. Также доступны служба CI и библиотека правил.
- Понимать
Objective-C , Objective-C++ [ править ]
- Clang — бесплатный проект Clang включает статический анализатор. Начиная с версии 3.2 этот анализатор включен в состав Xcode . [14]
- Infer – разработан командой инженеров Facebook при участии участников с открытым исходным кодом. Предназначен для нулевых указателей, утечек, использования API и других проверок. Доступен как открытый исходный код на github.
- Понимать
Дедушка [ править ]
- Opa включает в себя собственный статический анализатор. Поскольку язык предназначен для разработки веб-приложений, строго статически типизированный компилятор проверяет допустимость типов высокого уровня для веб-данных и по умолчанию предотвращает многие уязвимости, такие как XSS- атаки и внедрение кода базы данных.
Упаковка [ править ]
- Lintian — проверяет пакеты программного обеспечения Debian на наличие распространенных несоответствий и ошибок.
- Rpmlint — проверяет распространенные проблемы в пакетах rpm.
Перл [ править ]
- Perl::Critic — инструмент, помогающий применять распространенные лучшие практики Perl. Большинство лучших практик основано на книге Дамиана Конвея « Лучшие практики Perl» .
- PerlTidy — программа, которая действует как проверка синтаксиса и тестер/контроллер практики кодирования на Perl.
- Padre — IDE для Perl, которая также обеспечивает статический анализ кода для проверки распространенных ошибок новичков.
PL/SQL [ править ]
- TOAD — среда разработки PL/SQL с компонентом Code xPert, который сообщает об общей эффективности кода, а также о конкретных проблемах программирования.
- Visual Expert PL/SQL. анализа кода — инструмент [15] который сообщает о проблемах программирования и помогает понимать и поддерживать сложный код ( анализ воздействия , документация по исходному коду , деревья вызовов , матрица CRUD и т. д.).
PowerBuilder , PowerScript [ править ]
- Visual Expert — инструмент, сканирующий библиотеки PowerBuilder (PBL) для проверки кода , анализа воздействия , документации исходного кода , деревьев вызовов , матрицы CRUD .
Питон [ править ]
- PyCharm — кроссплатформенная среда разработки Python с возможностью проверки кода для оперативного анализа кода в редакторе и массового анализа всего проекта.
- PyDev — среда разработки Python на основе Eclipse с анализом кода, доступным «на лету» в редакторе или в режиме экономии времени.
- Pylint — Статический анализатор кода. Довольно строгий; включает также множество стилистических предупреждений.
- Клокворк
- Semgrep — статический анализатор кода, который помогает выражать стандарты кода и обнаруживать ошибки на ранней стадии. Также доступны служба CI и библиотека правил.
- Понимать
Transact-SQL [ править ]
- Visual Expert — анализа кода SQLServer. инструмент [16] который сообщает о проблемах программирования и помогает понимать и поддерживать сложный код (анализ воздействия, документация исходного кода, деревья вызовов, матрица CRUD и т. д.).
Инструменты с обнаружением дубликатов кода [ править ]
Инструменты формальных методов [ править ]
Инструменты, использующие звук , т.е. чрезмерно аппроксимирующие строгую модель, формальные методы, подходят к статическому анализу (например, с использованием статических утверждений программы ). Рациональные методы не содержат ложноотрицательных результатов для безошибочных программ, по крайней мере, в отношении идеализированной математической модели, на которой они основаны (не существует «безусловной» правильности). Обратите внимание, что нет никакой гарантии, что они сообщат обо всех ошибках в программах с ошибками, они сообщат хотя бы об одной.
- Astrée — находит все потенциальные ошибки времени выполнения путем абстрактной интерпретации , может доказать отсутствие ошибок времени выполнения и доказать функциональные утверждения; адаптированный к критичному для безопасности коду C (например, авионика).
- CodePeer – статически определяет и документирует предварительные и постусловия для Ada подпрограмм ; статически проверяет предварительные условия на всех сайтах вызова.
- ECLAIR – использует методы статического анализа кода на основе формальных методов, такие как абстрактная интерпретация и проверка модели , в сочетании с методами удовлетворения ограничений для обнаружения или доказательства отсутствия определенных ошибок времени выполнения в исходном коде .
- ESC/Java и ESC/Java2 — на основе языка моделирования Java , расширенной версии Java.
- Frama-C — платформа анализа C с открытым исходным кодом, основанная на языке спецификации C ANSI/ISO (ACSL). Его основные методы включают абстрактную интерпретацию, дедуктивную проверку и мониторинг времени выполнения .
- KeY – платформа анализа для Java, основанная на доказательстве теорем со спецификациями языка моделирования Java; может генерировать тестовые примеры в качестве контрпримеров; автономный графический интерфейс или с Eclipse интеграция
- MALPAS – инструмент формальных методов, который использует ориентированные графы и обычную алгебру для доказательства того, что анализируемое программное обеспечение правильно соответствует своей математической спецификации.
- Polyspace – использует абстрактную интерпретацию, метод, основанный на формальных методах. [17] обнаружить и доказать отсутствие определенных ошибок времени выполнения в исходном коде C/C++ и Ada
- Набор инструментов SPARK , включая SPARK Examiner — на основе языка SPARK, подмножества Ada.
См. также [ править ]
- Автоматизированная проверка кода
- Лучшие практики кодирования
- Список философий разработки программного обеспечения
- Динамический анализ программы
- Метрики программного обеспечения
- Интегрированная среда разработки (IDE) и сравнение интегрированных сред разработки . IDE обычно имеют встроенную поддержку статического анализа программ или возможность интеграции такой поддержки. Eclipse предлагает такой механизм интеграции для большинства типов расширений (плагинов).
Ссылки [ править ]
- ^ «CPAchecker» . 08.02.2015.
- ^ «Статический анализ в Xcode» . Яблоко. Архивировано из оригинала 5 сентября 2009 г. Проверено 3 сентября 2009 г.
- ^ «Запуск анализатора в Xcode» . Архивировано из оригинала 5 декабря 2021 года . Проверено 14 января 2022 г.
- ^ «Поддерживаемые инструменты и языки тестирования безопасности приложений» . codex.com . Проверено 25 апреля 2017 г.
- ^ «Веб-сайт Coverity Scan» . Проверено 23 августа 2023 г.
- ^ «Сайт ЭКЛЕРА» . Проверено 7 октября 2021 г.
- ^ «CppDepend, что нового» . cppdependent.com . Проверено 1 марта 2023 г.
- ^ «Readme.md Руководств по стилю Google» . Гитхаб . Проверено 8 ноября 2021 г.
- ^ Малькольм, Дэвид (26 марта 2020 г.). «Статический анализ в GCC 10» . Разработчик Red Hat . Проверено 13 апреля 2022 г.
- ^ «UNIX бесплатен!» . lemis.com. 24 января 2002 г.
- ^ «Зависит от того, что нового» . ndependent.com . Проверено 15 июня 2022 г.
- ^ «PMD — просмотрите /pmd/5.0.0 на SourceForge.net» . Проверено 9 декабря 2012 г.
- ^ «Удалить StrictDuulateCodeCheck и весь пакет · Проблема № 523 · checkstyle/Checkstyle» . Гитхаб .
- ^ «Статический анализ в Xcode» . Яблоко . Проверено 3 сентября 2009 г.
- ^ «Визуальный эксперт для Oracle — анализатор кода PL/SQL» . www.visual-expert.com . 24 августа 2017 г.
- ^ «Визуальный эксперт для SQL Server — анализатор кода Transact SQL» . www.visual-expert.com . 24 августа 2017 г.
- ^ Кусо, Патрик (2007). «Роль абстрактной интерпретации в формальных методах». Пятая Международная конференция IEEE по программной инженерии и формальным методам (SEFM 2007) . Международная конференция IEEE по программной инженерии и формальным методам. стр. 135–140. дои : 10.1109/SEFM.2007.42 . ISBN 978-0-7695-2884-7 . S2CID 67212 .
Внешние ссылки [ править ]
- Список инструментов статического анализа кода Консорциума по безопасности веб-приложений
- Статические шашки Java в Curlie
- SAMATE-Анализаторы безопасности исходного кода
- SATE – Экспозиция инструмента статического анализа
- «Сравнение инструментов поиска ошибок для Java» , Ник Рутар, Кристиан Алмазан и Джефф Фостер, Университет Мэриленда . Сравнивает Bandera, ESC/Java 2, FindBugs , JLint и PMD.
- «Мини-обзор средств поиска ошибок в Java» , Рик Джеллифф, O'Reilly Media .