Jump to content

Целостность кода

Целостность кода — это показатель, используемый в жизненном цикле поставки программного обеспечения. Он измеряет, насколько высоким является качество исходного кода , когда он передается в отдел контроля качества , и зависит от того, насколько тщательно код был обработан процессами проверки правильности (ручными или автоматическими). Примерами таких процессов проверки правильности могут быть модульное тестирование и интеграционное тестирование , проверка кода, автоматизация тестирования, анализ кода на основе искусственного интеллекта и т. д. [1] Целостность кода — это комбинация применения процессов корректности кода (качества программного обеспечения) вместе с метриками, измеряющими полноту этих процессов проверки правильности, такими как, например, покрытие кода. Хотя целостность кода обычно достигается путем модульного тестирования исходного кода для достижения высокого покрытия кода, это определенно не единственный и не лучший способ достижения целостности кода. Фактически, известно, что покрытие кода, популярный показатель для измерения тщательности модульных тестов, имеет ограниченную корреляцию с показателем реальной целостности кода. [2]

Уверенность застройщика

[ редактировать ]

Целостность кода — это не только правильность кода, но и уверенность разработчиков в правильности своего кода. Благодаря целостности кода разработчик может быть уверен, что его/ее код написан правильно при передаче в отдел контроля качества. Это, по сути, ожидаемый уровень качества кода. Целостность кода помогает разработчикам и компаниям выпускать более качественные продукты с меньшим количеством ошибок и в более короткие сроки. [3]

Тестирование при сдвиге влево и целостность кода при сдвиге влево

[ редактировать ]

Компании, которые практикуют целостность кода, избегают классического сценария, когда этап разработки задерживается, этап контроля качества, этап выпуска задерживается. Продукты компаний, которые не поддерживают целостность кода, выпускаются с большим количеством ошибок (из-за нехватки времени), пользователи сообщают о множестве ошибок команде разработчиков и начинают работать над версией 1.1 вскоре после выпуска версии 1.0, просто чтобы исправить ошибки, которые можно было бы избежать. [ нужна ссылка ]

Тестирование со сдвигом влево — это метод выполнения связанного тестирования на начальных этапах разработки программного обеспечения, поскольку отдел контроля качества не может измерить целостность кода даже после запуска всех своих тестов. Тестирование со сдвигом влево и целостность кода тесно связаны, но целостность состоит не только из части тестирования, которая является подзадачой более крупного процесса обеспечения целостности кода со сдвигом влево. Этот процесс не только применяет больше модульных тестов вместе с более высоким покрытием кода, но также включает в себя различные другие процессы проверки правильности на основе соответствующих данных. [4] Вот несколько примеров:

  • Модульное тестирование кода
  • Интеграционное тестирование
  • Обзор кода
  • Анализ кода на основе искусственного интеллекта
  • Автоматическое тестирование
  • Назначение менеджера целостности кода
Примеры показателей полноты проверки правильности
  • Формулировка метрики чистой целостности кода следующая: 1 — (Непокрытые ошибки) / (Общее количество ошибок). Другими словами: идеальная целостность кода минус количество ошибок, которые не были покрыты модульным тестированием, разделенное на общее количество ошибок, обнаруженных в ходе модульного тестирования. Весь цикл продукта, включая разработку, представляет собой не целостный код.
  • Различные типы покрытия кода (покрытие строк, покрытие ветвей и т. д.)
  • Мутационное тестирование
Преимущества целостности кода со сдвигом влево
  • Сокращение времени разработки — ошибки, обнаруженные на этапе разработки, исправляются быстрее и проще, чем ошибки, обнаруженные на более поздних стадиях.
  • Снижение затрат на разработку. Исправлять ошибки, обнаруженные на этапе разработки, дешевле, чем на более поздних этапах.
  • Уверенность в качестве вашего кода. Выпуск продуктов с высокой целостностью кода означает получение более положительных отзывов от ваших клиентов.
  • Делает работу QA намного более эффективной. QA концентрируется на тестировании системы, не беспокоясь об ошибках, которые можно было бы легко обнаружить при правильном модульном тестировании.

Включение целостности кода с сдвигом влево

[ редактировать ]

Эта концепция основана на том факте, что разработчики смогут в полной мере использовать технологическое преимущество, если у них с самого начала будут доступны соответствующие инструменты тестирования. Поскольку новое программное обеспечение становится все более сложным и включает в себя больше зависимостей, включение правой части V-модели в роли разработчиков поможет им взять на себя контроль над процессами модульного тестирования и интеграции. [3] [5] Результат позволит разработчикам создавать полноценные среды во многих компаниях-разработчиках программного обеспечения. Ожидается, что эта тенденция сохранится, поскольку во многих случаях невозможно выполнить модульное/интеграционное тестирование без полного контекста системы. [6]

  1. ^ Шарма, Тушар; Кечагия, Мария; Георгиу, Стефанос; Тивари, Рохит; Ватс, Индира; Моазен, Хади; Сарро, Федерика (2021). «Обзор методов машинного обучения для анализа исходного кода». arXiv : 2110.09610 [ cs.SE ].
  2. ^ Хеммати, Хади (2015). «Насколько эффективны критерии покрытия кода?» . Международная конференция IEEE 2015 по качеству, надежности и безопасности программного обеспечения . стр. 151–156. дои : 10.1109/QRS.2015.30 . ISBN  978-1-4673-7989-2 . S2CID   7305779 . Проверено 15 марта 2023 г.
  3. ^ Jump up to: а б Гади Цимерман (11 ноября 2022 г.). «Тестов недостаточно. Почему важна целостность кода?» . Проверено 16 марта 2023 г.
  4. ^ Бьерке-Гульстуэн, Кристиан; Ларсен, Эмиль Вийк; Столхане, Тор; Дингсойр, Торгейр (2015). «Разработка через тестирование высокого уровня – сдвиг влево» . Гибкие процессы в программной инженерии и экстремальном программировании . Конспекты лекций по обработке деловой информации. Том. 212. С. 239–247. дои : 10.1007/978-3-319-18612-2_23 . ISBN  978-3-319-18611-5 . Проверено 15 марта 2023 г.
  5. ^ Рук, Пол, Э. Рук (1986). «Управление программными проектами» . Журнал программной инженерии . 1 (1): 7–16. дои : 10.1049/sej.1986.0003 . Проверено 15 марта 2023 г. {{cite journal}}: CS1 maint: несколько имен: список авторов ( ссылка )
  6. ^ Мовад, Абрар Мохаммад; Фаваре, Хамед; Хасан, Мохаммед А. (2022). «Эффект использования непрерывной интеграции (CI) и непрерывного развертывания (CD) в DevOps для сокращения разрыва между разработчиком и эксплуатацией» . Международная арабская конференция по информационным технологиям (ACIT) 2022 г. стр. 1–8. дои : 10.1109/ACIT57182.2022.9994139 . ISBN  979-8-3503-2024-4 . S2CID   255419041 . Проверено 15 марта 2023 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: c8d841b1d0006ffda4563de9beb01400__1698332340
URL1:https://arc.ask3.ru/arc/aa/c8/00/c8d841b1d0006ffda4563de9beb01400.html
Заголовок, (Title) документа по адресу, URL1:
Code integrity - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)