Що таке цикломатична складність коду?

0 Comments

Цикломатична складність є метрика, яка вказує можливу кількість шляхів у артефакті коду, наприклад, функція, клас або ціла програма. Томас Дж. Маккейб старший розробив цей показник, вперше описавши його в статті 1976 року. 15 вересня 2021 р.

M (цикломатична складність) = E (кількість ребер) − N (кількість вузлів) + P (кількість зв’язаних компонентів). Чим менше шляхів у фрагменті коду і чим менш складні ці шляхи, тим нижча цикломатична складність коду.

Якщо метод має цикломатичну складність 10, це означає є 10 незалежних шляхів через метод. Це означає, що потрібно щонайменше 10 тестових випадків, щоб перевірити всі різні шляхи через код. Чим менше число, тим легше перевірити.

Програми з високою цикломатичною складністю, як правило, є більш схильні до помилок і важче тестувати та підтримувати. З іншого боку, нижче значення цикломатичної складності свідчить про те, що програму добре читати, її легше зрозуміти, перевірити та модифікувати.

Цикломатична складність відповідає кількості рішень, які містить блок коду плюс 1. Це число (також називається числом Маккейба) дорівнює кількості лінійно незалежних шляхів через код. Це число можна використовувати як орієнтир під час тестування умовної логіки в блоках. Інструкція if є одним рішенням.

Цикломатична складність відноситься до кількість можливих шляхів виконання всередині даного фрагмента коду— наприклад, функція. Чим більше структур рішень ви використовуєте, тим більше можливих гілок є для вашого коду. Цикломатична складність особливо важлива, коли мова йде про тестування.