Tugas Pertemuan 12


PENGUJIAN PERANGKAT LUNAK

1. DASAR-DASAR PENGUJIAN PL

• Pengujian perangkat lunak adalah proses menjalankan 

dan mengevaluasi sebuah PL secara manual maupun 

otomatis untuk menguji apakah PL sudah memenuhi 

persyaratan atau belum, atau untuk menentukan 

perbedaan antara hasil yang diharapkan dengan hasil 

sebenarnya.

• Pengujian bertujuan untuk mencari kesalahan.

• Pengujian yang baik adalah pengujian yang memiliki 

kemungkinan besar dalam menemukan kesalahan 

sebanyak mungkin dengan usaha sekecil mungkin.

A. Tujuan Pengujian

a. Menilai apakah perangkat lunak yang dikembangkan 

telah memenuhi kebutuhan pemakai.

b. Menilai apakah tahap pengembangan perangkat lunak 

telah sesuai dengan metodologi yang digunakan.

c. Membuat dokumentasi hasil pengujian yang 

menginformasikan kesesuaian perangkat lunak yang 

diuji dengan spesifikasi yang telah ditentukan.

B. Testability

Testability adalah kemampuan PL untuk dapat diuji artinya 

seberapa mudah sebuah program komputer untuk bisa 

diuji.

Karakteristik testability PL:

a. Kemampuan untuk bisa dioperasikan (operability)

b. Kemampuan untuk bisa diobservasi (observability)

c. Kemampuan untuk dapat dikontrol (controllability)

d. Kemampuan untuk dapat disusun (decomposability)

e. Kesederhanaan (simplicity)

f. Stabilitas (stability)

g. Kemampuan untuk dapat dipahami (understandability)

C. Karakteristik Pengujian

a. Pengujian yang baik memiliki probabilitas tinggi untuk 

menemukan kesalahan

b. Pengujian yang baik tidak berulang-ulang, waktu dan 

sumber daya pengujian terbatas

c. Pengujian terbaik harus menjadi “bibit terbaik” yaitu 

pengujian yang memiliki kemungkinan tertinggi dalam 

mengungkap seluruh kelas kesalahan

d. Pengujian yang baik tidak terlalu sederhana atau tidak 

terlalu rumit

2. PENGUJIAN WHITE BOX

• Disebut juga pengujian kotak kaca (glass box testing).

• Merupakan sebuah filosofi perancangan test case yang

menggunakan struktur kontrol.

• Test case pada white box:

a. Menjamin bahwa semua jalur independen di dalam

modul telah dieksekusi sedikitnya satu kali

b. Melaksanakan semua keputusan logis pada sisi 

benar dan salah

c. Melaksanakan semua perulangan (loop) yang 

memenuhi semua batas operasional

d. Melakukan struktur data internal untuk memastikan 

kebenarannya

A. Pengujian Jalur Dasar 

(Basis Path Testing)

• Adalah teknik pengujian yang memungkinkan 

perancangan test case untuk menurunkan ukuran 

kompleksitas logis dari suatu rancangan prosedural dan 

menggunakan ukuran ini sebagai pedoman untuk 

menentukan rangkaian dasar jalur eksekusi.

• Test case diturunkan untuk menguji rangkaian dasar 

yang dijamin untuk mengeksekusi setiap pernyataan 

dalam program, setidaknya satu kali selama pengujian.

• Menggambarkan arus kontrol logis dengan 

menggunakan Notasi Grafik Alir (Flow Graph)

a. Notasi Grafik Alir (Flow Graph)

• Adalah notasi sederhana untuk merepresentasikan

aliran kontrol logis.

• Lingkaran mewakili pernyataan kode program

• Notasi flow graph seperti gambar di bawah ini:

Untuk menggambarkan flow graph, dengan merepresentasikan perancangan prosedural seperti gambar berikut:

Notasi Flowchart Flow Graph

b. Notasi Flow Graph (Lanjutan)

• Lingkaran menunjukkan simpul (node), merupakan satu

atau lebih pernyataan-pernyataan prosedural

• Panah menunjukkan edge atau link, merupakan aliran 

kendali

• Area yang dibatasi oleh edge dan node disebut region.

• Flow graph menjadi rumit ketika adanya kondisi 

gabungan pada saat satu atau operator boolean ada 

dalam pernyataan bersyarat.

• Node yang berisi kondisi disebut node predikat dan 

ditandai oleh dua atau lebih edge yang berasal dari node 

tersebut.

Logika gabungan

• Jalur Independen (Independent Path) adalah setiap jalur

yang melalui program yang memperkenalkan setidaknya

satu kumpulan pernyataan-pernyataan pemrosesan atau

kondisi baru.

Jalur independen gambar disamping:

• 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-5-10-1-2-3-6-8-9-10-1-11 tidak dianggap 

jalur independen karena tidak melintasi setiap edge baru

• Path 1 sampai 4 merupakan basis set.

B. Jalur Independen

C. Kompleksitas Siklomatik

• Adalah metrik PL yang menyediakan ukuran kuantitatif 

dari kompleksitas logis suatu program.

• Perhitungan Kompleksitas Siklomatik:

a. Jumlah daerah-daerah (region) flow graph yang 

berhubungan dengan Kompleksitas Siklomatik

b. Kompleksitas Siklomatik V (G) = E – N + 2 dimana 

E adalah jumlah edge, N adalah jumlah node.

c. Kompleksitas Siklomatik V (G) = P + 1 

dimana P adalah jumlah node predikat.

Kompleksitas Siklomatik (Lanjutan)

Dari kasus independent path:

• Jumlah region adalah 4

• V (G) = 11 edge – 9 node + 2 = 4

• V (G) = 3 node predikat + 1 = 4

• Jadi Kompleksitas Siklomatiknya 

adalah 4

D. Menghasilkan Test Case

Diberikan Pseudocode sbb:

1 → do while record masih ada

baca record

2 → if record ke 1 = 0

3 → then proses record 

simpan di buffer naikan

counter

else if record ke 2 = 0

then reset counter

4 →

5 →

6 → else proses record

simpan pada file

7a → endif

endif

7b → enddo

8 → end

Langkah-langkah untuk menurunkan basis set:

1. Buat flow graph

2. Menentukan independent path

3. Menentukan kompleksitas siklomatik

Catatan: Dosen menjelaskan langkah-langkah di atas

E. Pengujian Struktur Kontrol

a. Pengujian Kondisi

• Pengujian kondisi adalah metode perancangan test 

case yang menguji kondisi logis yang terdapat dalam 

modul program.

• Kondisi sederhana adalah variabel boolean atau 

ekspresi relasional, kemungkinan didahului oleh satu 

operator NOT

• Jenis kesalahan dalam kondisi meliputi kesalahan 

operator boolean, kesalahan variabel boolean, 

kesalahan kurung boolean, kesalahan operator 

relasional, dan kesalahan ekspresi aritmatika.

b. Pengujian Perulangan

Adalah teknik pengujian white box yang fokus pada 

validitas konstruksi perulangan.

(1) Perulangan Sederhana

Pengujian dilakukan dengan mudah, dimana n jumlah 

maksimum yang diijinkan melewati perulangan:

(a) Melewati perulangan secara keseluruhan

(b) Hanya satu kali melalui perulangan

(c) Dua kali melalui perulangan

(d) Melalui perulangan sebanyak m dimana m < n

(e) n – 1, n, n + 1 melalui perulangan

Contoh Perulangan Sederhana

Berikut diberikan pseudocode tentang 

perulangan sederhana, dan carilah 

hasilnya.

x : integer 

x = 1

WHILE (x < 5) DO

PRINT (x)

x = x + 1 

ENDWHILE

(2). Perulangan Bersarang

Menggunakan pendekatan perulangan sederhana, 

sehingga jumlah pengujian akan meningkat.

Petunjuk pengujian:

(a) Mulai dari perulangan terdalam dan atur semua 

perulangan ke nilai minimum

(b) Lakukan pengujian perulangan sederhana untuk 

perulangan terdalam, sambil menjaga perulangan luar 

pada nilai minimum (misal counter perulangan)

(c) Lanjutkan pada perulangan ke luar dan lakukan 

pengujian pada perulangan berikutnya

(d) Lakukan sampai semua perulangan telah diuji

Contoh Perulangan Bersarang

Berikut diberikan pseudocode tentang 

perulangan bersarang, dan carilah 

hasilnya.

i, j : integer

FOR i = 1 TO 4 DO

FOR j = 1 TO 3 DO

PRINT (i, j) 

ENDFOR 

ENDFOR

(3). Perulangan Terangkai

• Pengujian menggunakan pendekatan perulangan

sederhana bila masing-masing perulangan independen.

• Tetapi bila dua perulangan dirangkai dan counter 

perulangan 1 digunakan sebagai harga awal 

perulangan 2 maka perulangan tersebut menjadi tidak 

independen, dan direkomendasikan ke perulangan 

tersarang

Contoh Perulangan Terangkai

x, y : integer 

x = 0

y = 1

WHILE (x < 20) DO 

PRINT (x)

x = x + 2 

ENDWHILE

WHILE (y < 20) DO 

PRINT (y)

y = y + 2 

ENDWHILE

(4). Perulangan Tak Terstruktur

Kapan saja memungkinkan, perulangan 

didisain kembali agar mencerminkan 

penggunaan konstruksi pemrograman 

terstruktur.

3. PENGUJIAN BLACK BOX

• Disebut juga pengujian perilaku.

• Pengujian black box memungkinkan untuk membuat 

beberapa kumpulan kondisi input yang akan 

melakukan semua kebutuhan fungsional untuk program.

• Kategori kesalahan pada pengujian black box:

a. Fungsi yang salah atau hilang

b. Kesalahan antarmuka

c. Kesalahan struktur data atau akses basis data

eksternal

d. Kesalahan perilaku atau kinerja

e. Kesalahan inisialisasi dan penghentian

Langkah-langkah pengujian:

• Memahami objek-objek yang dimodelkan dalam PL dan

penghubung yang menghubungkan objek-objek tersebut

• Menentukan serangkaian pengujian yang memastikan

bahwa semua objek memiliki hubungan satu sama lain

seperti yang diharapkan

1. Metode Pengujian Berbasis Grafik

Metode Pengujian Berbasis Grafik (Lanjutan)

• Node direpresentasikan sebagai lingkaran.

• Hubungan direpresentasikan dengan anak panah

• Hubungan satu arah (directed link) bahwa hubungan

bergerak hanya satu arah.

• Hubungan dua arah atau hubungan simetris (bidirection 

link) bahwa hubungan berlaku dua arah.

• Hubungan paralel digunakan ketika ada sejumlah 

hubungan yang berbeda yang dibangun di antara nodenode grafik.

2. Partisi Kesetaraan 

(Equivalence Partitioning)

• Adalah metode pengujian black box yang membagi 

daerah input program ke dalam kelas-kelas data dari test 

case yang dapat diturunkan.

• Sebuah kelas kesetaraan merepresentasikan keadaan 

valid atau tidak valid dari kondisi input.

• Contoh: kesalahan terhadap semua data karakter yang 

mungkin mengharuskan banyak test case sebelum 

kesalahan umum teramati.

Partisi Kesetaraan (Lanjutan)

Kelas kesetaraan dapat didefinisikan:

• Jika kondisi input menspesifikasikan range, satu kelas

kesetaraan yang valid dan dua kelas kesetaraan yang

tidak valid didefinisikan

• Jika kondisi input membutuhkan nilai tertentu, satu kelas 

kesetaraan yang valid dan dua kelas kesetaraan yang 

tidak valid didefinisikan

• Jika kondisi input menspesifikasikan anggota dari 

himpunan, satu kelas kesetaraan yang valid dan dua 

kelas kesetaraan yang tidak valid didefinisikan

• Jika kondisi input adalah boolean, satu kelas kesetaraan 

yang valid dan dua kelas kesetaraan yang tidak valid 

ditentukan

Contoh Pengujian Equivalence Partitioning

Ketentuan diskon 20% untuk pembelian barang sejenis 

sebanyak 2, dan diskon 30% untuk pembelian barang 

sejenis sebanyak 3 atau lebih

No Test Case Hasil yang diharapkan Hasil yang diperoleh Ket

1. User mengisi

jumlah barang = 0

Sistem tidak memproses

transaksi dan menampilkan umpan balik

Sistem menampilkan

pesan bahwa jumlah

pembelian harus diisi

Berhasil

2. User mengisi 

jumlah barang = 1

Sistem akan menghitung 

diskon dan subtotal

Sistem menghitung 

diskon sebesar 0 dan 

menghitung subtotal

Berhasil

3. User mengisi 

jumlah barang = 2

Sistem akan menghitung 

diskon dan subtotal

Sistem menghitung 

diskon sebesar 20% dan 

menghitung subtotal

Berhasil

4. User mengisi

jumlah barang ≥ 3

Sistem akan menghitung

diskon dan subtotal

Sistem menghitung 

diskon sebesar 30% dan 

menghitung subtotal

Berhasil

3. Analisis Nilai Batas 

(Boundary Value Analysis)

• Merupakan teknik perancangan test case yang 

melengkapi partisi kesetaraan dengan fokus pada 

kondisi input, dan juga akan menghasilkan output.

• Banyak kesalahan terjadi pada kesalahan input.

• BVA mengijinkan untuk menyeleksi kasus uji yang 

menguji batasan nilai input.

• BVA merupakan komplemen dari equivalence 

partitioning, lebih memilih pada elemen-elemen di dalam 

kelas ekivalen pada bagian sisi batas dari kelas

Pedoman BVA

a. Jika kondisi input menspesifikasikan range yang 

dibatasi oleh nilai a dan b, test case harus dirancang 

dengan nilai a dan b dan hanya di atas dan di bawah 

nilai a dan b

b. Jika kondisi input menspesifikasikan sejumlah nilai, test

case harus dikembangkan untuk menguji jumlah-jumlah

minimum dan maksimum.

c. Terapkan pedoman 1 dan 2 untuk kondisi input.

d. Jika struktur data program internal memiliki batas-batas 

yang telah ditentukan, pastikan untuk merancang test 

case untuk menguji struktur data pada batasnya.

Contoh Pengujian BVA

Jika sistem menampilkan jumlah stok barang adalah n, maka:

Noc Test Case Hasil yang diharapkan Hasil yang diperoleh Ket

1. User mengisi 

stok = 0

Sistem tidak memproses 

transaksi dan 

memberikan umpan balik

Sistem menampilkan

pesan bahwa jumlah

pembelian harus diisi

Berhasil

2. User mengisi 

stok = 1 

sampai n

Sistem akan memproses 

transaksi dan mengurangi 

jumlah stok

Sistem menghitung 

subtotal dan mengurangi 

jumlah stok

Berhasil

3. User mengisi

stok > n

Sistem tidak memproses 

transaksi dan 

memberikan umpan balik

Sistem menampilkan 

pesan bahwa jumlah 

pembelian melebihi stok

Berhasil

Catatan: sebaiknya tidak menuliskan “sesuai harapan” 

pada kolom ini

4. Pengujian Larik Ortogonal

• Dapat diterapkan untuk masalah-masalah dimana input 

domain relatif kecil tapi terlalu besar untuk 

mengakomodasi pengujian yang lengkap.

• Bermanfaat dalam menemukan kesalahan yang terkait 

dengan logika yang salah dalam komponen PL

Contoh:

Jika rancangan aplikasi untuk login seperti gambar di 

atas, maka black box testing dapat dibuat berdasarkan 

beberapa kondisi input (5 kondisi)

Contoh pengujian keamanan pada User Login

No Test Case Hasil yang 

diharapkan

Hasil yang diperoleh Ket

1. User tidak 

mengisi username 

atau password 

atau keduanya

User tidak bisa masuk

ke dalam sistem

Sistem tetap pada form Login dan 

menampilkan pesan untuk 

mengisi username dan password

Berhasil

2. User mengisi 

username saja 

atau password 

saja

User tidak bisa masuk 

ke dalam sistem

Sistem akan menampilkan pesan 

untuk mengisi username atau 

password

Berhasil

3. User salah 

mengisi username

User tidak bisa masuk 

ke dalam sistem

Sistem akan menampilkan pesan 

jika username atau password 

salah

Berhasil

4. User salah 

mengisi password

User tidak bisa masuk 

ke dalam sistem

Sistem akan menampilkan pesan 

jika username atau password 

salah

Berhasil

5. User salah 

mengisi username 

dan password

User tidak bisa masuk 

ke dalam sistem

Sistem akan menampilkan pesan 

jika username atau password 

salah

Berhasil


Komentar

Postingan populer dari blog ini

tugas RPL Pertemuan 13

Tugas Pertemuan 11