Рубрика «статический анализ кода» - 21

Продолжаем нашу серию заметок по статическому анализатору кода Kiuwan.

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

Однако, не всегда этих шаблонов и правил хватает для оценки определенных качеств написанной программы. В каждом конкретном случае может понадобиться свой определяющий параметр. Например, нам важно убедиться, нет ли в написанной банковской программе скрытых транзакций копеечек на чей-нибудь счет. Или проверить, что не используются никакие недопустимые внешние библиотеки. В этом случае, нам просто необходимо иметь возможность заставить анализатор проверять не только штатные шаблоны, но и наши дополнительные правила.

Написание кастомных правил для анализатора кода Kiuwan - 1
Читать полностью »

Единорог в космосе: проверяем исходный код 'Space Engineers' - 1

Как вы уже поняли из заголовка, речь в статье будет идти о подозрительных местах, найденных в исходном коде 'Space Engineers'. Но формат статьи несколько отличается от остальных. Помимо информации о проекте, обзора некоторых найденных подозрительных мест и ошибок, а также способов их исправления, я включил в текст небольшой раздел о правильном сценарии использования статического анализатора. Настоятельно рекомендую ознакомиться с ним, так как многие разработчики не знают или просто не задумываются о том, как правильно использовать инструменты этого класса. В результате инструменты статического анализа используются на порядок менее эффективно, чем могли бы.
Читать полностью »

Проверяем исходный код WPF примеров от компании Infragistics - 1

Мы продолжаем проверять различные C#-проекты с целью демонстрации возможностей статического анализатора кода PVS-Studio. В этой статье мы рассмотрим результаты проверки WPF примеров от компании Infragistics. Сама компания Infragistics является глобальным поставщиком программного обеспечения, основанная в 1989 году. Компания сделала себе имя на разработке компонентов пользовательских интерфейсов для сторонних разработчиков на всех платформах, включая .NET.
Читать полностью »

C#, PVS-Studio, ReSharper - 1Нам постоянно задают вопрос: «Есть ли смысл использовать анализатор кода PVS-Studio, если уже используется ReSharper?». Подразумевается, что ответом должна стать статья, где будут приведено сравнение возможностей этих инструментов в выявлении ошибок в программах. Мы знаем, что это тупиковый путь, и такая статья ничего не даст. Однако вопрос задаётся столь часто, что на него все-таки надо иметь ответ. Ответ — да, смысл есть. Сразу предупреждаю, что в статье вы не найдете ожидаемого сравнения. Но если вы потратите всего 10 минут, чтобы полностью прочитать эту статью, то мы уверены вы согласитесь с нашим ответом и видением ситуации.

PVS-Studio — статический анализатор кода, выявляющий ошибки в коде программ на языке C, C++. Недавно анализатор освоил новое для себя поприще — C#. Исторически сложилось, что среди вспомогательных инструментов для C# царствует ReSharper. Этот инструмент относится к категории productivity tool и не является в классическом понимании статическим анализатором кода. Однако ReSharper умеет выполняет множество различных проверок и раскрашивает подозрительные участки кода. Поэтому у программистов неизбежно возникает вопрос: «есть ли смысл смотреть в сторону PVS-Studio, если уже есть ReSharper?».
Читать полностью »

«Почему ещё не изобрели искусственный интеллект?» или проверка инструментария CNTK от Microsoft Research - 1Microsoft выложила в открытый доступ исходный код инструментов, которые используются в компании для ускорения разработок в области искусственного интеллекта: набор Computational Network Toolkit теперь доступен на Github. Разработчикам пришлось создать собственное решение, так как имеющиеся инструменты работали слишком медленно. Давайте же взглянем на результаты проверки этого проекта статическим анализатором кода.
Читать полностью »

Проверяем исходный код набора C#-.NET компонентов от Sony - 1

Как некоторые из вас помнят — недавно мы выпустили версию анализатора, поддерживающую проверку C#-кода. С появлением возможности анализа проверки проектов, написанных на C#, открывается новый простор для творчества. Об анализе одного из таких проектов, разработанного компанией Sony Computer Entertainment (SCEI), и пойдёт речь в данной статье.
Читать полностью »

Анализируй это или о качестве программного обеспечения - 1 Почти всю свою сознательную карьеру разработчика, руководителя проектов, консультанта по процессам разработки я оставался в плену очень распространенного и простого заблуждения. Если программа выполняет требуемые функции, претензий к стабильности и производительности нет, то это «нормальная» программа. Прошу прощения за несколько утрированную формулировку, но так оно и есть, если разобраться.

За определениями термина «качество программного обеспечения» не грех обратиться к стандартам. Несколько определений из разных стандартов удобно приведены на одной странице wiki. И что же?! В фокусе способности программы удовлетворять потребностям Заказчика.
Читать полностью »

Выходу Dolphin Smalltalk 7 под Open Sourсe посвящается - 1На днях компания ObjectArts полностью открыла исходники и выпустила язык, и среду разработки Dolphin Smalltalk под открытой лицензией MIT! Я не смог пройти мимо, не попробовав проверить этот проект с помощью анализатора кода PVS-Studio. Могу поздравить разработчиков с тем, что у них получилось создать код высокого качества. Мне не удалось найти значимых ошибок. Однако как всегда есть некоторое количество багов и пахнущего кода. Надеюсь благодаря этой статье код станет чуть лучше.

О проекте

Dolphin Smalltalk — это среда разработки на собственном диалекте Smalltalk для Windows. Ключевыми особенностями является тесная интеграция с нативными виджетами и подсистемами операционной системы, включая COM и ActiveX, и приятный глазу графический дизайн.

Долгое время Dolphin Smalltalk был доступен в двух вариантах: условно-бесплатная ограниченная версия (community edition) и платный пакет для профессиональной разработки. Последний давал доступ ко всем функциям, включая продвинутые редакторы и публикацию приложений в standalone режиме, однако стоил около четырехсот долларов.

С помощью PVS-Studio 6.00 были проверены открытые исходники Dolphin Smalltalk Virtual Machine. Далее представлены результаты проверки статическим анализатором. Несмотря на то, что проект DolphinVM очень маленький, в его коде всё равно встречаются подозрительные места.
Читать полностью »

Совсем недавно мы выпустили новую версию нашего анализатора PVS-Studio с поддержкой проверки C# проектов. Пока на время релиза дальнейшая разработка продукта была приостановлена, я занимался тестированием анализатора. В качестве проектов для своих экспериментов я взял IronPython и IronRuby. А раз эти проекты были проверены, я решил написать небольшую статью-отчёт.

Проверяем IronPython и IronRuby с помощью PVS-Studio - 1

IronPython и IronRuby

IronPython и IronRuby представляют собой реализацию языков программирования Python и Ruby на платформе .NET. Исходный код этих проектов доступен на GitHub по этой ссылке. Также в комплекте идёт исходный код DLR. Начиная с .NET Framework 4.0 DLR является его частью, и IronPython и IronRuby используют её. Тем не менее я всё равно проверил старую версию DLR, раз уж она там оказалась.
Читать полностью »

С наступившим новым годом!

2015 год был очень насыщенным для мира PHP: это и долгожданный релиз 7-ой версии, и мажорное обновление многих фреймворков, и множество многообещающих RFC.

Для Php Inspections (EA Extended) прошедший год был тоже очень насыщенным: проект увидел свет, очень быстро повзрослел и смог сделать мир PHP чуточку лучше (symfony2, symfony 1.5, PHP CS Fixer).

Далее (под катом): несколько опросов и возможность повлиять на выбор стратегии на 2016 год.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js