Anda di halaman 1dari 9

Aplikasi Teori Graph Untuk Pengujian Perangkat Lunak

Jaidan Jauhari

Program Studi Pendidikan Matematika FKIP Unsri


Jl. Raya Palembang-Prabumulih KM 32 Indralaya Kabupaten Ogan Ilir 30662
Email : jaidan_j@ilkom.unsri.ac.id

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.

Kata Kunci : Perangkat Lunak, Graph, Kasus Uji, Pengujian Logika

PENDAHULUAN

Pengujian perangkat lunak adalah proses menjalankan dan mengevaluasi sebuah


perangkat lunak secara manual maupun otomatis untuk menguji apakah perangkat lunak sudah
memenuhi persyaratan atau belum, atau untuk menentukan perbedaan antara hasil yang
diharapkan dengan hasil sebenarnya. Pelaksanaan pengujian perangkat lunak biasanya
disesuaikan dengan metodologi pembangunan perangkat lunak yang digunakan. Tujuan dari
pengujian adalah untuk menemukan kemungkinan kesalahan dengan sejumlah usaha yang dapat
dikelola selama selang waktu yang realistik. Pengujian perangkat lunak dilakukan oleh pihak
pengembang (Programmer) dan pihak eksternal (Calon pemakai, atau pihak-pihak lain yang
berkepentingan). Pengujian dapat dilakukan dengan menggunakan 2 teknik, yaitu pengujian
Black Box dan Pengujian White Box. Dalam tulisan ini hanya akan dibahas pengujian white box
yang dilakukan oleh pengembang perangkat lunak. Pengujian ini untuk menguji kebenaran
program dalam alur logikanya yang digambarkan dalam bentuk Graph. Dari graph tersebut
kemudian ditentukan jalur-jalur yang akan diuji dengan menggunakan kasus uji. Untuk

1
menentukan jalur-jalur yang akan diuji dengan terlebih dahulu menentukan bilangan
siklomatiknya.
DASAR TEORI

Teori Graph

Graph G didefinisikan sebagai pasangan himpunan ( V, E ), yang dalam hal ini :


• V = himpunan berhingga dan tidak kosong dari simpul-simpul (vertices/ node)
= {v1, v2 , ..., vn } dan V ³ 1
• E = himpunan sisi (edges atau arcs) yang menghubungkan sepasang simpul
= {e1, e2, ... , en } dan E ³ 0
• Jika e adalah sisi yang menghubungkan vi dan vj, maka e dapat ditulis e = (vi ,vj )
• Jumlah simpul pada Graph disebut kardinalitas Graph dan dinyatakan dengan n=½V½,
dan jumlah sisi dinyatakan dengan m = ½E½.
• Graph yang hanya mempunyai satu buah simpul tanpa sebuah sisi, dinamakan Graph
trivial.

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

Gambar 1. Contoh Graph

Pengujian Black Box dan White Box


Ada dua teknik pengujian yang dapat digunakan untuk menguji perangkat lunak, yaitu
teknik black box dan white box testing.
1. Pengujian Black Box
Pengujian black box digunakan untuk menguji fungsi-fungsi khusus dari perangkat lunak
yang dirancang. Pada teknik ini, kebenaran perangkat lunak yang diuji hanya dilihat berdasarkan
keluaran yang dihasilkan dari data atau kondisi masukan yang diberikan untuk fungsi yang ada
tanpa melihat bagaimana proses untuk mendapatkan keluaran tersebut. Dari keluaran yang
dihasilkan, kemampuan program dalam memenuhi kebutuhan pemakai dapat diukur sekaligus
dapat diiketahui kesalahan-kesalahannya. Beberapa jenis kesalahan yang dapat diidentifikasi :
 Fungsi tidak benar atau hilang

2
 Kesalahan antar muka

 Kesalahan pada struktur data (pengaksesan basis data)

 Kesalahan inisialisasi dan akhir program

 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.

2. Pengujian White Box


Berbeda dengan teknik black box teknik ini digunakan untuk mengetahui cara kerja suatu
perangkat lunak secara internal. Pengujian dilakukan untuk menjamin operasi-operasi internal
sesuai dengan spesifikasi yang telah ditetapkan dengan menggunakan struktur kendali dari
prosedur yang dirancang. Kasus-kasus yang akan diujikan diturunkan berdasarkan struktur
kontrol dari rancangan program. Struktur kontrol program dapat dimodelkan dengan
menggunakan graf alir ..
Pelaksanaan pengujian white box :
 Menjamim seluruh independent path dieksekusi paling sedikit satu kali. Independent path
adalah jalur dalam program yang menunjukkan paling sedikit satu kumpulan proses
ataupun kondisi baru.
 semua titik keputusan akan teruji

 semua konstruksi pengulangan (loop) akan dieksekusi hingga batas akhir pengulangannya

 struktur data internal dapat diuji untuk menjamin validitasnya

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 .

Penggambaran Graph Alir


Sebuah simpul dalam Graph alir menyatakan statement atau satu blok statement dalam program,
sedangkan busur menyatakan aliran kendali dari satu statement (blok statement) ke statement
(blok statement) berikutnya. Dalam Graph alir ada sebuah simpul yang menyimbolkan titik
masuk dan simpul yang menyatakan titik keluar program.
Berikut adalah Graph alir dari beberapa pola struktur kendali yang mungkin terdapat dalam suatu
program :
1. Sequence :

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 :

1. Buatlah Graph alir berdasarkan rancangan atau listing program

2. Hitung kompleksitas siklomatik dari Graph alir yang diperoleh

3. Tentukan kumpulan lintasan berbeda

( “independent path” ) yang akan diuji. Pedomannya adalah jumlah lintasan yang harus

diuji minimal sama dengan kompleksitas siklomatis.

Langkah-langkah penentuan lintasan uji adalah sebagai berikut ( Perry 88) :

 Pilih sebuah “baseline path” .

“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

average andaikan baseline path yang dipilih adalah 1 -2 -3-4-5-6-7-8-9-10-11-12-13

 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

yang ketiga, yakni 1-2-10-12-13.

 Langkah ketiga kembali ke baseline path dan lakukan langkah yang sama seperti langkah

kedua untuk titik keputusan yang berikutnya.

 Lakukan langkah-langkah diatas secara berulang hingga semua lintasan yang diperoleh

sudah mencakup semua titik-titik keputusan yang ada dalam program.

 Lakukan langkah-langkah diatas secara berulang hingga semua lintasan yang diperoleh

sudah mencakup semua titik-titik keputusan yang ada dalam program.

 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)

melalui semua lintasan uji yang telah ditetapkan diatas.

Test Case jalur 1


Nilai(k)= input.valid, dimana k<i yang ditetapkan dibawah Nilai(i)=-999,dimana 2≤i≤100
Hasil yang diharapkan : Rata-rata yang benar berdasarkan nilai k dan total yang valid
Catatan : Jalur 1 tidak dapat diuji sendirian karena harus diuji sebagai bagian dari pengjian
jalur 4,5, dan 6
Test Case jalur 2
Nilai(i) = -999
Hasil yang diharapkan : Rata-rata = -999, total yang lain pada nilai awal
Test Case Jalur 3
Usahakan untuk memproses 101 nilai atau lebih, dengan 100 nilai pertama harus
valid.
Hasil yang diharapkan : sama seperti test case 1
Test Case Jalur 4
Nilai(i) = input valid, dimana i < 100
Nilai(k) < minimum, dimana k<i
Hasil yang diharapkan : Rata-rata yang benar berdasarkan nilai-nilai k dan total
yang valid
Test Case Jalur 5
Nilai(i) = input valid, dimana i < 100
Nilai(k) > maksimum, dimana k≤ i
Hasil yang diharapkan : Rata-rata yang benar berdasarkan nilai-nilai k dan total
yang valid
Test Case Jalur 6
Nilai(i) = input valid, dimana i < 100
Hasil yang diharapkan : Rata-rata yang benar berdasarkan nilai-nilai i dan total
yang valid

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

Munir, Rinaldi. 2004. Matematika Diskrit. Bandung : Informatika

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

Perry W. 1988. A Structured Approach To Systems Testing. Wellesley : QED Information


Science

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

Anda mungkin juga menyukai