Kompleksitas Siklomatik dalam Pengujian Perangkat Lunak (Contoh)

Apa itu Kompleksitas Siklomatik McCabe?

Kompleksitas Siklomatik dalam Pengujian Perangkat Lunak adalah metrik pengujian yang digunakan untuk mengukur kompleksitas suatu program perangkat lunak. Ini adalah ukuran kuantitatif dari jalur independen dalam kode sumber suatu program perangkat lunak. Kompleksitas siklomatik dapat dihitung dengan menggunakan grafik aliran kontrol atau berkenaan dengan fungsi, modul, metode, atau kelas dalam suatu program perangkat lunak.

Jalur independen didefinisikan sebagai jalur yang memiliki setidaknya satu sisi yang belum pernah dilalui jalur lain sebelumnya.

Metrik ini dikembangkan oleh Thomas J. McCabe pada tahun 1976 dan didasarkan pada representasi aliran kendali program. Aliran kontrol menggambarkan suatu program sebagai grafik yang terdiri dari Node dan Edge.

Dalam grafik, Node mewakili tugas pemrosesan sementara tepi mewakili aliran kontrol antar node.

Kompleksitas Siklomatik McCabe

Notasi grafik alur untuk suatu program

Notasi Grafik Aliran untuk suatu program mendefinisikan beberapa node yang terhubung melalui tepinya. Di bawah ini adalah diagram alir untuk pernyataan seperti if-else, While, hingga dan urutan aliran normal.

Notasi grafik alur untuk suatu program

Cara Menghitung Kompleksitas Siklomatik

Representasi matematika:

Secara matematis, ini adalah serangkaian jalur independen melalui diagram grafik. Kompleksitas kode program dapat didefinisikan menggunakan rumus –

V(G) = E - N + 2

Dimana,

E – Jumlah tepi

N – Jumlah Node

V (G) = P + 1

Dimana P = Jumlah node predikat (node ​​yang berisi kondisi)

Contoh -

i = 0;
n=4; //N-Number of nodes present in the graph

while (i<n-1) do
j = i + 1;

while (j<n) do

if A[i]<A[j] then
swap(A[i], A[j]);

end do;
j=j+1;

end do;

Grafik alur untuk program ini adalah

Hitung Kompleksitas Siklomatik

Menghitung secara matematis,

  • V(G) = 9 – 7 + 2 = 4
  • V(G) = 3 + 1 = 4 (Kondisi node adalah 1,2 dan 3 node)
  • Basis Set – Satu set kemungkinan jalur eksekusi suatu program
  • 1, 7
  • 1, 2, 6, 1, 7
  • 1, 2, 3, 4, 5, 2, 6, 1, 7
  • 1, 2, 3, 5, 2, 6, 1, 7

Properti Kompleksitas Siklomatik

Berikut ini adalah sifat-sifat kompleksitas Siklomatik:

  1. V (G) adalah jumlah maksimum jalur independen dalam grafik
  2. V (G) >=1
  3. G akan memiliki satu jalur jika V (G) = 1
  4. Minimalkan kompleksitas menjadi 10

Bagaimana metrik ini berguna untuk pengujian perangkat lunak?

Pengujian Basis Path merupakan salah satu teknik White Box dan menjamin untuk mengeksekusi setidaknya satu pernyataan selama pengujian. Pengujian ini memeriksa setiap jalur yang bebas linear melalui program, yang berarti jumlah kasus uji akan setara dengan kompleksitas siklomatik program.

Metrik ini berguna karena sifat kompleksitas Siklomatik (M) –

  1. M dapat berupa jumlah kasus uji untuk mencapai cakupan cabang (Batas Atas)
  2. M dapat berupa jumlah jalur melalui grafik. (Batas bawah)

Pertimbangkan contoh ini –

If (Condition 1)
Statement 1

Else
Statement 2

If (Condition 2)
Statement 3

Else
Statement 4

Kompleksitas Siklomatik untuk program ini adalah 8-7+2=3.

Karena kompleksitas telah dihitung sebesar 3, tiga kasus uji diperlukan untuk cakupan jalur lengkap pada contoh di atas.

Langkah-langkah yang harus diikuti:

Langkah-langkah berikut harus diikuti untuk menghitung kompleksitas Siklomatis dan desain kasus uji.

Langkah 1 – Konstruksi grafik dengan node dan tepi dari kode

Langkah 2 – Identifikasi jalur independen

Langkah 3 – Perhitungan Kompleksitas Siklomatik

Langkah 4 – Desain Kasus Uji

Setelah himpunan dasar terbentuk, KASUS UJI harus ditulis untuk mengeksekusi semua jalur.

Lebih lanjut tentang V (G)

Kompleksitas siklomatik dapat dihitung secara manual jika programnya kecil. Alat otomatis perlu digunakan jika programnya sangat kompleks karena melibatkan lebih banyak grafik aliran. Berdasarkan angka kompleksitas, tim dapat menyimpulkan tindakan yang perlu diambil untuk pengukuran.

Tabel berikut memberikan gambaran umum tentang jumlah kompleksitas dan makna v (G):

Nomor Kompleksitas Arti
1-10 Kode terstruktur dan ditulis dengan baik

Kemampuan Pengujian Tinggi

Biaya dan Upaya lebih sedikit

10-20 Kode Kompleks

Testabilitas Sedang

Biaya dan usahanya Sedang

20-40 Kode yang sangat rumit

Testabilitas Rendah

Biaya dan Upaya tinggi

> 40 Sama sekali tidak dapat diuji

Biaya dan Usaha yang Sangat Tinggi

Alat untuk perhitungan Kompleksitas Siklomatik:

Banyak alat yang tersedia untuk menentukan kompleksitas aplikasi. Beberapa alat kalkulasi kompleksitas digunakan untuk teknologi tertentu. Kompleksitas dapat ditemukan berdasarkan jumlah titik keputusan dalam suatu program. Titik keputusan tersebut adalah pernyataan if, for, for-each, while, do, catch, case dalam kode sumber.

Contoh alatnya adalah

  • OCLint – Penganalisis kode statis untuk C dan Bahasa Terkait
  • Tambahan Reflektor – Metrik kode untuk rakitan .NET
  • GMetrik – Temukan metrik di Java aplikasi terkait

Penggunaan Kompleksitas Siklomatik:

Kompleksitas Siklomatik dapat terbukti sangat membantu dalam

  • Membantu pengembang dan penguji menentukan eksekusi jalur independen
  • Pengembang dapat memastikan bahwa semua jalur telah diuji setidaknya sekali
  • Membantu kita untuk lebih fokus pada jalur yang belum tercakup
  • Tingkatkan cakupan kode di Rekayasa Perangkat Lunak
  • Evaluasi risiko yang terkait dengan aplikasi atau program
  • Penggunaan metrik ini di awal siklus akan mengurangi risiko program

Kesimpulan

Kompleksitas Siklomatik adalah metrik perangkat lunak yang berguna untuk perangkat lunak terstruktur atau Putih Box pengujian. Hal ini terutama digunakan untuk mengevaluasi kompleksitas suatu program. Jika titik keputusan lebih banyak, maka kompleksitas program lebih tinggi. Jika program memiliki angka kompleksitas tinggi, maka kemungkinan kesalahan tinggi dengan peningkatan waktu untuk pemeliharaan dan pemecahan masalah.