Pengujian perangkat lunak perlu dilakukan untuk mengevaluasi baik secara manual maupun otomatis untuk menguji apakah perangkat lunak sudah memenuhi persyaratan atau belum, dan untuk menentukan perbedaan antara hasil yang diharapkan dengan hasil sebenarnya.
Tujuan pengujian perangkat lunak adalah :
- Menilai apakah perangkat lunak yang dikembangkan telah memenuhi kebutuhan pemakai.
- Menilai apakah tahap pengembangan perangkat lunak telah sesuai dengan metodologi yang digunakan.
- Membuat dokumentasi hasil pengujian yang menginformasikan kesesuaian perangkat lunak yang diuji dengan spesifikasi yang telah ditentukan.
Teknik pengujian dapat dilakukan dengan menggunakan pengujian White-Box dan Black-Box
Berikut ini penjelasan tentang white box :
Pengujian white-box (glass box), adalah metode desain test case yang menggunakan struktur kontrol desain prosedural untuk memperoleh test case. Dengan menggunakan metode pengujian white-box, perekayasa sistem dapat melakukan test case untuk memberikan jaminan bahwa [19]:
- Semua jalur independen pada suatu modul ditelusuri minimal 1 kali
- Semua jalur keputusan logis True/False dilalui
- Semua loop dieksekusi pada batas yang tercantum dan batas operasionalnya
- Struktur data internal digunakan agar validitas terjamin
Pengujian white-box bisa dilakukan dengan pengujian basis path, metode ini merupakan salah satu teknik pengujian struktur kontrol untuk menjamin semua statemen dalam setiap jalur independen program dieksekusi minimal 1 kali. Perhitungan jalur independen dapat dilakukan melalui metrikCyclomatic Complexity. Sebelum menghitung nilai Cyclomatic Complexity, harus diterjemahkan desain prosuderal ke grafik alir, kemudian dibuat flow graphnya, seperti pada gambar di bawah ini.
Bagan Alir / Flowchart
Flow Graph
Dari gambar flowgraph di atas didapat :
Path 1 = 1 – 11
Path 2 = 1 – 2 – 3 – 4 – 5 – 10 – 1 – 11
Path 3 = 1 – 2 – 3 – 6 – 8 – 9 – 10 – 1 – 11
Path 4 = 1 – 2 – 3 – 6 – 7 – 9 – 10 – 1 – 11
Path 1,2,3,4 yang telah didefinisikan diatas merupakan basis set untuk diagram alir.
Cyclomatic complexity digunakan untuk mencari jumlah path dalam satu flowgraph. Dapat dipergunakan rumusan sebagai berikut :
1. Jumlah region grafik alir sesuai dengan cyclomatic complexity.
2. Cyclomatix complexity V(G) untuk grafik alir dihitung dengan rumus:
V(G) = E – N + 2 …………. (1)
Dimana:
E = jumlah edge pada grafik alir
N = jumlah node pada grafik alir
1. Cyclomatix complexity V(G) juga dapat dihitung dengan rumus:
V(G) = P + 1 ……….. (2)
Dimana P = jumlah predicate node pada grafik alir
Dari Gambar di atas dapat dihitung cyclomatic complexity:
1. Flowgraph mempunyai 4 region
2. V(G) = 11 edge – 9 node + 2 = 4
3. V(G) = 3 predicate node + 1 = 4
Jadi cyclomatic complexity untuk flowgraph adalah 4
Nilai Cyclomatic Complexity
Cyclomatic Complexity yang tinggi menunjukkan prosedur kompleks yang sulit untuk dipahami, diuji dan dipelihara. Ada hubungan antara Cyclomatic Complexity dan resiko dalam suatu prosedur.
Hubungan antara Cyclomatic Complexity dan Resiko
CC
|
Type of Procedure
|
Risk
|
1-4
|
A simple procedure
|
Low
|
5-10
|
A well structured and stable procedure
|
Low
|
11-20
|
A more complex procedure
|
Moderate
|
21-50
|
A complex procedure, alarming
|
High
|
>50
|
An error-prone, extremely troublesome, untestable procedure
|
Very high
|
Menurut Rich Sharpe, kami telah melakukan analisis historis puluhan ribu file kode sumber, menerapkan metrik individu kepada mereka, yang McCabe adalah salah satu. Untuk setiap file, kami menganalisis metrik, bersama dengan tingkat cacat untuk file itu, dan melakukan korelasi.
Grafik di bawah ini menunjukkan korelasi Cyclomatic Complexity (CC) nilai-nilai pada tingkat file (x-sumbu) terhadap kemungkinan kesalahan yang ditemukan dalam file-file (y-axis).
Hasil penelitian menunjukkan bahwa file yang memiliki nilai CC 11 memiliki probabilitas terendah rawan kesalahan (28%). File dengan nilai CC 38 memiliki probabilitas 50% menjadi rawan kesalahan. File yang mengandung nilai-nilai CC dari 74 dan naik sampai dengan 98% ditambah probabilitas rawan kesalahan.
No comments:
Post a Comment