Вступ до цикломатичної складності

Цикломатична складність розроблена Томасом Дж. Маккебі в 1976 р. Він рекомендував програмістам рахувати складність модулів, над якими вони працюють, і розділяти їх на більш дрібні модулі, щоб всякий раз, коли цикломатична складність модуля перевищувала 10. 10 максимальна цикломатична складність для однієї програми. Це вимірювання складності вихідного коду, пов'язане з низкою помилок кодування. Він визначає незалежні шляхи, що було б дуже корисно розробникам та тестерам.

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

Визначення

Цикломатична складність коду - це обчислюється кількість лінійно незалежних шляхів всередині нього.

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

Розрахувати цикломатичну складність програми дуже легко за наступною формулою.

Цикломатична складність = E - N + 2P

  • E => Ні. країв графіка
  • N => Кількість вузлів графіка
  • P => Кількість підключених компонентів

Існує альтернативна формула, якщо ми розглянемо точку виходу, яка повертається до точки входу. І ти створиш його як цикл.

Цикломатична складність = E - N + P

Цикломатична складність = E - N + 1

У нас є ще один спосіб розрахунку цього. Це більш простий спосіб.

  1. Намалюйте графік
  2. Потім підключіть точку виходу до точки входу
  3. А потім порахуйте дірки у графі

Подивіться на наступний малюнок:

Нижче наведено деякі позначення діаграми потоку:

Якщо-то-інше:

Поки:

До-час:

Для:

Якщо програма не має циклу, її складність нижча. Коли програма стикається з будь-яким циклом, складність збільшується.

Припустимо, у нас є такий, якщо умова визначена, тоді ми отримали складність як 2. Через умову є дві умови True та False.

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

У різних мовах є різні інструменти для вимірювання циклічної складності програми.

Кроки для обчислення цикломатичної складності наведені нижче

  1. Намалюйте з коду блок-схему або графічну схему.
  2. Тепер на другому кроці перевірте і визначте, скільки незалежних шляхів у нього є.
  3. Потім обчисліть цикломатичну складність за формулою, згаданою нижче:

M = E –N + 2P

  1. Відповідно до конструкції заходу тестові випадки.

Тепер у вас може виникнути запитання, яке, як воно може бути фактично обчислене. Давайте підемо вперед і зрозуміємо, як насправді ми будемо його обчислювати.

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

Ця програма обчислює серії фібонацій на зразок:

0 + 1 = 1

1 + 1 = 2

2 + 1 = 3

3 + 2 = 5

5 + 3 = 8

8 + 5 = 13

// Наступна програма - це просто надрукувати серію fibonacii

class Printno (
Public static void main(String() args)(
int max = 20 ;
int pre = 0;
int next = 1;
System.out.println(“The Fibonacii series is : ” +prev);
While(next<= max)(
System.out.println(next);
Sum = prev + next;
Prev = next;
Next =sum;
)
)
)

> javac Printno.java

> java Printno

O / p:

Серія фібонацій: 0

1

1

2

3

5

8

13

Детальніше ознайомтеся з вищевказаною програмою. Ви знайдете його під час циклу. Ця програма складається лише з одного циклу while.

Тепер час - намалювати для нього графік.

Графік потоку управління, як показано нижче:

Блок-схема

Тепер, щоб обчислити складність вищевказаної програми, спочатку нам потрібно обчислити загальну ні. ребер:

Всього немає. ребер: 6

Тепер обчисліть загальну кількість вузлів.

Загальна кількість вузлів: 5

Формула: M = EN + 2p

М = 6 -5 + 2

M = 1 + 2

M = 3

Отже, цикломатична складність цієї програми становить 3.

Складні коди важко підтримувати, оновлювати чи змінювати. Як ми всі знаємо, цикломатична складність не повинна перевищувати 10.

Види складності

Є два типи складності:

Основна складність :

Ця складність є типом коду, який ми не можемо ігнорувати.

Вих. Система управління польотами є більш складною.

Випадкова складність:

Як випливає з назви, тому що в системі трапилося щось, як виправлення помилок, виправлення, модифікація тощо. В основному ми працюємо лише над складністю випадкових випадків.

Переваги цикломатичної складності:

  • Оскільки проста логіка, якщо складність зменшується, нам зручніше розуміти.
  • Якщо там є більш складна програма, програмісту потрібно зменшити кількість можливостей.
  • Шляхи, підраховані за складністю, показують, що програма, написана програмою, є складною, або ми можемо йти вперед і зменшити складність.
  • Це зменшує зв’язок коду.
  • Припустимо, програма має цикломатичну складність 5. Що означає, що існує 5 різних незалежних шляхів через метод.
  • Це означає, що для впровадження цього коду для тестування необхідно зробити 5 тестових випадків.
  • Отже, завжди добре отримати меншу кількість для цикломатичної складності.
  • Цей процес необхідний, оскільки сильно пов'язаний код дуже важко змінити.
  • Чим вище складність, ні той код, який означає, що код також є складнішим.

Інструменти, що використовуються для обчислення цикломатичної складності, є

  • Цикло
  • CCCC
  • McQabe IQ
  • GCov
  • Покриття Bullseye
  • ПМД
  • LC2
  • Findbugs
  • Jarchitect

Висновок

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

Рекомендовані статті

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

  1. Вступ до Linux
  2. Вступ до C ++
  3. Що таке HTML5?
  4. Що таке сплячка?