Aplikasi Teori Graph Untuk Pengujian Perangkat Lunak: Jaidan Jauhari
Aplikasi Teori Graph Untuk Pengujian Perangkat Lunak: Jaidan Jauhari
Jaidan Jauhari
Abstrak
Proses pengembangan perangkat lunak terdiri dari tahapan analisis kebutuhan, perancangan,
implementasi dan pengujian. Pengujian perangkat lunak merupakan tahapan yang penting
sebelum perangkat lunak tersebut digunakan. Pengujian dilakukan dengan menguji jalur logika
dan dengan menggunakan kasus uji. Pengujian logika digunakan untuk menguji apakah jalur
logika yang ada pada perangkat lunak sudah benar, sedangkan pengujian dengan kasus uji adalah
pengujian yang dilakukan dengan menggunakan data-data yang sesuai sebagai masukan dari
perangkat lunak. Untuk memudahkan pengujian logika dapat dilakukan dengan terlebih dahulu
memodelkan ke dalam bentuk graph. Jalur-jalur yang terbentuk dari graph tersebutlah yang
kemudian diuji dengan menggunakan kasus uji.
PENDAHULUAN
1
menentukan jalur-jalur yang akan diuji dengan terlebih dahulu menentukan bilangan
siklomatiknya.
DASAR TEORI
Teori Graph
1 1 1
e 1 e 4 e e 4
1
e 3 e 3
e 2 e 2
2 3 2 3 2 e 8
e 6 e 6 3
e 5 e 5
e 7 e 7
4 4 4
2
Kesalahan antar muka
Kesalahan performasi.
Walaupun sulit untuk menelusuri kesalahan yang mungkin didapat, teknik pengujian black box
lebih sering dipilih untuk menguji perangkat lunak karena kemudahan dalam pelaksanaannya.
semua konstruksi pengulangan (loop) akan dieksekusi hingga batas akhir pengulangannya
PEMBAHASAN
Pengukuran Kompleksitas
Pengukuran kompleksitas program dapat digunakan untuk menetapkan jumlah jalur
pengujian (test path) yang perlu diuji dalam suatu program pada saat penulisan program
(coding). Jumlah jalur pengujian diusahakan seminimal mungkin namun tetap menjamin mampu
mewakili (cover) semua kasus yang perlu diuji. Penentuan jalur pengujian ini membuat aktifitas
3
pengujian mudah dikendalikan.Kompleksitas program dapat diukur dengan memodelkan struktur
kontrol program dalam suatu Graph yang disebut Graph kontrol atau Graph alir.
Definisi 1
Bilangan siklomatik dari Graph G, V(G) yang terdiri dari N simpul dan E busur, dan satu
komponen terhubung adalah:
V(G) = E – N + 1
Teorema 1
Dalam satu Graph G yang terhubung dengan kuat, bilangan siklomatik sama dengan jumlah
maksimum lintasan (path) yang independen.
Cara lain untuk menghitung bilangan siklomatik atau kompleksitas dari suatu Graph yaitu
V(G) = P + 1
Dimana P : jumlah predikat dari simpul-simpul predikat (simpul yang busur keluarnya lebih dari
satu) Jumlah predikat untuk simpul if – then – else adalah 1. Jumlah predikat untuk simpul case –
endcase dengan n kasus adalah n – 1. V(G) = jumlah bidang dalam Graph alir .
4
2. If :
3. While :
4. Repeat-until
5. Case
Contoh :
Procedure Average;
{Prosedur ini menghitung rata-rata 100 bilangan atau kurang,
yang berada dalam suatu rentang nilai tertentu; prosedur ini
juga menghitung jumlah dan banyaknya bilangan yang diproses}
{Deklarasi}
var
value : array [ 1..100] of real;
average,total.input,total.valid,minimum,maximum,sum : real;
i : integer;
{Deskripsi}
Begin
i := 1;
total.input := 0;
total.valid := 0;
sum := 0;
while (value [i] <> -999 and total.input < 100) do
Begin
Total.input := total.input + 1;
If(value [i] >= minimum and value [i] <= maximum) then
Begin
total.valid := total.valid + 1; Sum := sum + value [i];
End;
{Endif}
i := i + 1;
End;
{Endwhile}
5
If total.valid >0 then
average := sum/total.valid
else
average := -999;
{Endif}
End;
Berikut ini adalah tahap-tahap penentuan kasus-kasus uji untuk prosedur average di atas :
( “independent path” ) yang akan diuji. Pedomannya adalah jumlah lintasan yang harus
“baseline path” sebaiknya dipilih dari path yang berkaitan dengan fungsi utama program.
6
Sebagai pedoman, pilihlah baseline path yang melalui sebanyak mungkin titik-titik
keputusan (pemeriksaan fungsi) yang ada dalam program. Sebagai contoh, untuk prosedur
Langkah kedua adalah memilih lintasan uji berikutnya dengan mencari titik pemeriksaan
kondisi pertama yang ada dalam baseline path. Buatlah lintasan yang berbeda dari
baseline path dengan memilih arah yang berbeda mulai dari titik pemeriksaan kondisi
tersebut.
Dalam contoh diatas, titik keputusannya adalah simpul 2. Dan kita membuat lintasan baru
1-2-10-11-13. lakukan hal yang sama pada lintasan ini, maka kita mendapatkan lintasan
Langkah ketiga kembali ke baseline path dan lakukan langkah yang sama seperti langkah
Lakukan langkah-langkah diatas secara berulang hingga semua lintasan yang diperoleh
Lakukan langkah-langkah diatas secara berulang hingga semua lintasan yang diperoleh
Setiap hasil titik keputusan harus dieksekusi minimal satu kali dan jumlah lintasan
berbeda yang harus diuji minimal v. Maka, kita akan mendapatkan 6 lintasan uji seperti
berikut :
p1 : 1-2-10-11-13
p2 : 1-2-10-12-13
p3 : 1-2-3-10-11-13
p4 : 1-2-3-4-5-8-9-2-…
p5 : 1-2-3-4-5-6-8-9-2-…
7
p6 : 1-2-3-4-5-6-7-9-2-…
4. Siapkan data kasus uji yang akan memungkinkan eksekusi program ( pada saat pengujian)
KESIMPULAN
Perangkat lunak yang berkualitas adalah perangkat lunak yang memiliki bug yang minimal.
Untuk menghasilkan sebuah perangkat lunak yang berkualitas, perangkat lunak sebelum
digunakan harus dilakukan pengujian terlebih dahulu. Pengujian yang benar dengan mengikuti
prinsip-prinsip yang benar akan menghasilkan perangkat lunak yang memiliki tingkat kesalahan
yang minimal. Untuk melakukan pengujian dapat dilakukan dengan menguji jalur logika dari
8
program dengan terlebih dahulu menggambarkan dalam bentuk graph. Cara ini cukup efektif
untuk menentukan jalur yang akan diuji dengan menggunakan kasus uji.
DAFTAR PUSTAKA
Pressman, Roger S, 1997. Software Engineering A Practitioner’s Approach. Singapore :Mc Graw
Hill
Perry W, 1995. Effective Methods for Software Testing. New York : John Wiley and Sons
Roosen, K.H. 1991. Discrete Mathematics And Its Applications. New York : Mc Graw Hill
Santoso. Oerip S. 1999. Bahan-bahan Kuliah Uji Kualitas Perangkat Lunak. Bandung :
Magister Informatika ITB
Suharto, Toto. 2001. Diktat Kuliah Rekayasa Perangkat Lunak. Bandung : STT Telkom