Статический анализатор кода против разработчиков. Вот и снова

В середине мая этого года мы выпустили обновленную версию нашей викторины для C++ разработчиков. Прошло уже 2 месяца — продолжайте читать, чтобы узнать больше о результатах!

Вы наверняка слышали о нашей викторине и даже проходили ее. В любом случае, позвольте мне рассказать вам подробности.

Мы выбрали несколько участков кода из open-source проектов, в которых анализатор PVS-Studio обнаружил ошибки.

  • Участникам дается 10 случайно выбранных фрагментов кода. Каждый фрагмент содержит ошибку.

  • У вас есть 60 секунд, чтобы найти ошибку.

  • За каждый правильный ответ начисляется 1 балл. Максимально возможная оценка — 10 баллов.

  • Если вы ответили неправильно или время истекло, вы не получаете ни одного балла.

Механика викторины проста, так что если вы еще не прошли ее, попробуйте.

Что ж, перейдем к самой интересной части — результатам.

На момент написания статьи в викторине приняли участие 1970 человек.

Я намеренно написал «1970 человек» — в это число могут входить студенты или люди, которые не занимаются развитием, а прошли викторину ради интереса. Но все же большинство участников — разработчики на C++, и тем удивительнее средний балл правильных ответов — 3,53… из 10. Довольно неожиданный и немного разочаровывающий результат.

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

Для наглядности я сделал график, который показывает распределение участников по количеству набранных баллов. Как видите, самое сложное — дать 6 и более правильных ответов.

Кто-то может сказать, что мы выбрали сложные примеры и дали мало времени на поиск ошибки. Но дело не в этом.

Результаты теста ни в коем случае не означают, что разработчики, выполнившие его, некомпетентны или невнимательны. На мой взгляд, причина в другом. На самом деле, причин несколько:

  • люди могут быть не в курсе событий. Это те, кто не участвует в разработке и не может с одного взгляда определить, есть ли в коде ошибка.

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

  • Люди хотят знать, что они получат в конце. Им просто интересно, каким будет результат, если они будут кликать на ошибки наугад (лично я таким образом получил 3 правильных ответа, а я не разработчик).

  • люди отвлеклись от викторины.

Положа руку на сердце, скажу, что даже некоторые разработчики из нашей команды C++ не заметили всех ошибок (я не включил их результаты в сводные данные).

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

  • начинающие разработчики могут совершить «простую» ошибку в начале своей карьеры;

  • у человека может не быть желания искать ошибки в коде, особенно если это не его код;

  • интереснее сосредоточиться на новой функции, чем несколько раз перебирать уже написанный код;

  • всегда можно отвлечься и не заметить ошибку, от этого никто не застрахован.

Внедрение инструментов статического анализа в процесс разработки может помочь преодолеть эти проблемы.

Поэтому не бойтесь использовать статические анализаторы кода. Дайте разработчикам возможность исправлять ошибки, а не тратить время на их поиск. Почему бы вам не начать с бесплатной версии PVS-Studio? Кстати, те, кто прошел тест, получают промокод на 30-дневную лицензию вместо 7-дневной.

Мы постараемся придумать для вас новые развлечения, чтобы проверить ваши навыки программирования. В ближайшем будущем мы планируем запустить аналогичную викторину по C#. После этого мы обязательно сравним, кто лучше находит ошибки: C++ разработчики или C# разработчики?

Оцените статью
devanswers.ru
Добавить комментарий