Какие инструменты статического анализа доступны для C#? [закрытый]



какие инструменты доступны для статического анализа кода на C#? Я знаю о FxCop и StyleCop. Есть ли другие? Я сталкивался с NStatic раньше, но он был в разработке для того, что кажется вечным - он выглядит довольно гладким от того, что я мало видел, поэтому было бы неплохо, если бы он когда-нибудь увидел свет дня.



вдоль этих же строк (это в первую очередь мой интерес для статического анализа), инструменты для тестирования кода для многопоточных проблем (тупики, условия гонки и т. д.) также кажутся немного скудными. Typemock Racer просто выскочил, поэтому я буду смотреть на это. Что-нибудь помимо этого?



реальные мнения об инструментах, которые вы использовали, ценятся.

915   9  

9 ответов:

инструменты обнаружения нарушений кода:

  • Fxcop, отличный инструмент от Microsoft. Проверить соблюдение .чистый рамках руководящих принципов.

    Редактировать Октябрь 2010: больше не доступен в качестве отдельного скачивания. Теперь он включен в Windows SDK а после установки можно найти в Program Files\Microsoft SDKs\Windows\ [v7.1] \Bin\FXCop\FxCopSetup.exe

    Редактировать Февраля 2018: эта функция теперь интегрирована в Visual Studio 2012 и позже как Анализ Кода

  • Clocksharp на основе анализа исходного кода (на C# 2.0)
  • моно.Жандарм, аналогично Fxcop, но с лицензией с открытым исходным кодом (на основе моно.Сесил)
  • Смоки, подобно Fxcop и Gendarme, на основе моно.Сесил. Больше не на развитие, основной разработчик сейчас работает с командой жандармов.
  • Coverity Prevent™ для C#, коммерческий продукт
  • PRQA QA * C#, коммерческий продукт
  • PVS-Studio, коммерческий продукт
  • CAT.NET, Visual studio addin, который помогает идентифицировать безопасность недостатки
  • CodeIt.Правильно
  • Spec#
  • Pex

Метрические Инструменты Качества:

  • вопросом, что происходит, отличный визуальный инструмент. Полезно для анализа метрик кода, правил, различий, связей и зависимостей.
  • Nitriq, бесплатно, можно легко написать свои собственные метрики/ограничения, хорошие визуализации. Редактировать Февраль 2018: ссылки для скачивания теперь мертвы.
  • RSM в квадрате на основе анализа исходного кода
  • Метрики C#, используя полный разбор C#
  • SourceMonitor старый инструмент, который периодически получает обновления
  • Метрики Кода, a отражатель добавить-в
  • Вольное, старый инструмент, который не поддерживает .NET 2.0. Редактировать Январь 2018: ссылка мертв

Проверка Инструментов Стиля:

  • StyleCop, Microsoft tool (запускается из Visual Studio или интегрируется в проект MSBuild). Также доступно расширения для Visual Studio 2015 и C#6.0
  • Агент Смит, плагин проверки стиля кода для для ReSharper

дублирование Обнаружение:

  • обезьяний, на основе исходного кода. Работает с большим количеством языков.
  • CloneDR, обнаруживает параметризованные клоны только на границах языка (также обрабатывает многие языки, кроме C#)
  • Детектив Клон плагин Visual Studio. (Он использует ConQAT внутренне)
  • Atomiq, основанный на исходном коде, множество языков, крутое " колесо" визуализация

общие инструменты рефакторинга

  • для ReSharper - в основном прохладный анализ кода C# и функции рефакторинга

инструмент вопросом, что происходит слова Метрические Инструменты Качества но это в значительной степени также обнаружение нарушения кода. отказ от ответственности: я один из разработчиков инструмента

с NDepend, можно написать правило кода над запросами LINQ (то, что мы называем CQLinq). Больше чем 200 правил кода CQLinq предлагается по умолчанию. Сила CQLinq заключается в том, что это просто написать правило кода, и сделать тут результаты. Предлагаются средства для просмотра совпадающих элементов кода. Например:

CQLinq code rule

кроме того, NDepend поставляется со многими другими статический анализ, как функции. К ним относятся:

  • жандарм это статический анализатор на основе правил с открытым исходным кодом (похож на FXCop, но находит много разных проблем).
  • Детектив Клон это хороший плагин для Visual Studio, который находит дубликат кода.
  • кроме того, говоря о Mono, я нахожу, что акт компиляции с компилятором Mono (если ваш код достаточно независим от платформы, чтобы сделать это, цель, к которой вы можете стремиться в любом случае) находит тонны неиспользуемых переменных и другие предупреждения, которые Visual Studio полностью пропускает (даже с уровнем предупреждения, установленным на 4).

вы видели CAT.NET?

из аннотации -

CAT.NET является инструментом анализа двоичного кода это помогает определить общие варианты некоторые преобладающие уязвимости что может привести к общей атаке векторы, такие как межсайтовые сценарии (XSS), впрыска SQL и XPath Инъекция.

Я использовал раннюю бета-версию, и это, похоже, оказалось несколько вещей, на которые стоит посмотреть.

помимо отличного списка от madgnome, я бы добавил детектор дубликатов кода, основанный на командной строке (но бесплатный):

http://sourceforge.net/projects/duplo/

Klocwork имеет инструмент статического анализа для C#:http://www.klocwork.com

найти Метрики Кода и Матрица Структуры Зависимостей надстройки для рефлектора очень полезно.

Optimyth Software только что запустила сервис статического анализа в облаке www.checkinginthecloud.com. просто надежно загрузите свой код запустите анализ и получите результаты. Никаких проблем.

Он поддерживает несколько языков, включая C# больше информации можно найти на wwww.optimyth.com

Axivion Bauhaus Suite - это инструмент статического анализа, который работает с C# (а также C, C++ и Java).

Он предоставляет следующие возможности:

  • визуализация архитектуры программного обеспечения (включая зависимости)
  • применение архитектурных правил, например, наслоение, подсистемы, правила вызова
  • обнаружение клонов-выделение копирования и вставки (и измененного кода)
  • Мертвый Код Обнаружение
  • Обнаружение Цикла
  • Метрики Программного Обеспечения
  • Проверка Стиля Кода

эти функции могут быть запущены на одноразовой основе или в рамках процесса непрерывной интеграции. Проблемы могут быть выделены на основе каждого проекта или на основе каждого разработчика, когда система интегрирована с системой управления исходным кодом.

Comments

    Ничего не найдено.