Просмотр кода

редактировать
Деятельность, при которой один или несколько человек проверяют код программы

Проверка кода (иногда называемая экспертной проверкой ) - это действие по обеспечению качества программного обеспечения, в котором один или несколько человек проверяют программу в основном путем просмотра и чтения частей ее исходного кода, и они делают это после реализации или в качестве прерывания реализации. По крайней мере, одно из лиц не должно быть автором кода. Лица, выполняющие проверку, за исключением автора, называются «рецензентами».

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

  • Лучшее качество кода - улучшить качество внутреннего кода и ремонтопригодность (читаемость, единообразие, понятность,...)
  • Обнаружение дефектов - улучшить качество в отношении внешних аспектов, особенно правильности, но также можно найти проблемы с производительностью, уязвимости в системе безопасности, внедренное вредоносное ПО,...
  • Обучение / передача знаний - помощь в передаче знаний о кодовой базе, подходах к решениям, ожиданиях в отношении качества и т.д.; как для рецензентов, так и для автора
  • Повышение чувства взаимной ответственности - усиление чувства коллективной собственности кода и солидарности
  • Поиск лучших решений - генерирование идей для новые и лучшие решения и идеи, выходящие за рамки конкретного кода.
  • Соответствие руководящим принципам обеспечения качества - проверка кода является обязательной в некоторых контекстах, например, программное обеспечение для воздушного движения

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

Содержание

  • 1 Типы процессов проверки
    • 1.1 Официальная проверка
    • 1.2 Регулярная проверка кода на основе изменений
  • 2 Эффективность и результативность проверки ews
    • 2.1 Рекомендации
    • 2.2 Вспомогательные инструменты
  • 3 Ссылки
  • 4 Внешние ссылки

Типы процессов проверки

Существует множество вариантов процессов проверки кода, некоторые из которых будут подробно описано ниже.

Формальная проверка

Исторически первый процесс проверки кода, который был изучен и подробно описан, его изобретатель Майкл Фаган назвал «инспекцией». Эта проверка Фэгана представляет собой формальный процесс, который включает в себя тщательное и детальное выполнение с несколькими участниками и несколькими этапами. Формальная проверка кода - это традиционный метод проверки, при котором разработчики программного обеспечения посещают серию встреч и просматривают код построчно, обычно с использованием печатных копий материала. Формальные проверки являются чрезвычайно тщательными и доказали свою эффективность при обнаружении дефектов в проверяемом коде.

Регулярная проверка кода на основе изменений

В последние годы многие рабочие группы внедрили более легкие тип обзора кода. Его основная характеристика заключается в том, что объем каждого обзора основан на изменениях в кодовой базе, выполненных в заявке, пользовательской истории, фиксации или какой-либо другой единице работы. Кроме того, существуют правила или соглашения, которые включают задачу проверки в процесс разработки (например, «каждая заявка должна быть проверена») вместо явного планирования каждой проверки. Такой процесс проверки называется «регулярной проверкой кода на основе изменений». Есть много вариантов этого основного процесса. Опрос 240 команд разработчиков в 2017 году показал, что 90% команд используют процесс проверки, основанный на изменениях (если они вообще используют проверки), а 60% используют регулярную проверку кода на основе изменений. Кроме того, большинство крупных программных корпораций, таких как Microsoft, Google и Facebook, следуют процессу проверки кода на основе изменений.

Эффективность и результативность проверок

Текущий анализ более 12 000 проектов разработки программного обеспечения, проведенный Каперсом Джонсом, показал, что уровень обнаружения скрытых дефектов при формальной проверке находится в диапазоне 60-65%. Для неформального осмотра цифра меньше 50%. Уровень обнаружения скрытых дефектов для большинства форм тестирования составляет около 30%. Пример анализа кода, опубликованный в книге Best Kept Secrets of Peer Code Review, показал, что упрощенные обзоры могут выявить столько же ошибок, сколько и формальные обзоры, но были быстрее и более рентабельны в отличие от исследования, проведенного Каперсом Джонсом

Также были изучены типы дефектов, обнаруженных при проверке кода. Эмпирические исследования показали, что до 75% дефектов проверки кода влияют на эволюционируемость / ремонтопригодность программного обеспечения, а не на функциональность, что делает обзоры кода отличным инструментом для компаний-разработчиков программного обеспечения с длительными жизненными циклами продуктов или систем. 27>Было обнаружено, что эффективность проверки кода зависит от скорости проверки. Скорость проверки кода должна составлять от 200 до 400 строк кода в час. Проверка и анализ более нескольких сотен строк кода в час на предмет наличия критически важного программного обеспечения (например, критически важного для безопасности встроенного программного обеспечения ) может оказаться слишком быстрым для поиска ошибок.

Вспомогательные инструменты

Статический Программное обеспечение для анализа кода уменьшает задачу проверки больших фрагментов кода на разработчике, систематически проверяя исходный код на наличие известных уязвимостей и типов дефектов. Исследование, проведенное VDC Research в 2012 году, показывает, что 17,6% опрошенных инженеров по встроенному ПО в настоящее время используют автоматизированные инструменты для поддержки экспертной проверки кода, а 23,7% ожидают их использования в течение 2 лет.

Ссылки

Внешние ссылки

Последняя правка сделана 2021-05-15 13:41:23
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте