Описание
SharpChecker – статический анализатор C# кода, разрабатываемый для автоматического поиска различных ошибок и уязвимостей в исходном коде программ. Инструмент предназначен для разработчиков программ на языке C# и их руководителей. С его помощью можно как обнаруживать ошибки, так и отслеживать изменение качества создаваемого продукта.
SharpChecker не заменяет, а дополняет другие методы тестирования ПО и поиска ошибок, позволяя их исправлять на самых ранних стадиях разработки, тем самым существенно снижая стоимость разработки.
Анализатор может быть внедрён в CI (непрерывная интеграция) и использоваться автономно на машине разработчика в виде расширения для Microsoft Visual Studio.
Анализатор обеспечивает обнаружение следующих основных типов ошибок:
- 1. Утечка ресурсов. Поиск утечек ведётся по всем возможным путям выполнения с учётом возможных исключений.
- 2. Поиск разыменования null.
- 3. Неправильное использование блокировок, поиск недостающих синхронизаций, поиск взаимных блокировок, некорректное использование атрибута ThreadStatic.
- 4. Поиск условий перехода и нетривиальных выражений, результат которых может быть вычислен на этапе компиляции и поиск недостижимого кода.
- 5. Проблемы приведения типов реализованы в нескольких группах предупреждений. Одни служат для обнаружения высоковероятных InvalidCastException во время выполнения, другие позволяют упростить или улучшить код.
- 6. Ошибки, возникшие в результате копирования куска кода, при котором были внесены не все необходимые изменения.
- 7. Ошибки, приводящие к проблемам с производительностью.
- 8. Ошибки использования функций проекта и стандартной библиотеки.
- 9. Поиск распространённых ошибок, например, виртуальных вызовов в конструкторах; поиск распространённых описок, например, оператора «;» между условием и телом цикла; бесконечных циклов, случаев плохого форматирования, приводящим к ошибочному пониманию.
Интеграция в инфраструктуру разработки
Анализатор состоит из трёх частей:
- 1. Консольное приложение, осуществляющее поиск ошибок;
- 2. Расширение для Microsoft Visual Studio, необходимое для интеграции анализатора со средой разработки;
- 3. Набор ПО, необходимый для внедрения в систему непрерывной интеграции пользователя, ответственный за перехват сборки, централизованное хранилище истории анализа, web-интерфейс для просмотра и анализа предупреждений.
Системные требования
Анализатор предназначен для работы на платформах Windows и Linux. Перехват сборки реализован для msbuild и xbuild. Расширение для среды разработки MS Visual Studio тестируется для версии Microsoft Visual Studio 2015.
Операционная система: Windows XP,7,8,10 32- и 64-битная (рекомендуется), Linux.
Для анализа крупных проектов рекомендуется максимальное количество оперативной памяти. SharpChecker поддерживает работу на нескольких ядрах, поэтому увеличение количества процессорных ядер существенно ускоряет работу.
Если вы обнаружили ошибку, пожалуйста, уведомите нас — выделите текст с ошибкой и нажмите клавиши Ctrl+Enter. Отключите блокировщик рекламы, если после нажатия комбинации кнопок не срабатывает всплывающее окно.