REKAYASA PERANGKAT LUNAK : PENGUJIAN PERANGKAT LUNAK
Selamat siang, disini saya akan sedikit membahas mengenai “PENGUJIAN PERANGKAT LUNAK” pada mata kuliah REKAYASA PERANGKAT LUNAK pertemuan 12. Apa saja sih yang akan saya bahas pada pertemuan 12 kali ini?. Materi yang terdapat pada pertemuan 12 kali ini yaitu :
1.
Dasar-dasar pengujian perangkat
lunak
2. Pengujian
White Box
3. Pengujian
Black Box
4.
Pengujian Larik Ortogonal
Mari kita masuk
ke pembahasan dari materi materi di atas.
1.
Dasar-dasar
pengujian perangkat lunak
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. 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
1. Menilai
apakah perangkat lunak yang dikembangkan telah memenuhi kebutuhan pemakai.
2. Menilai
apakah tahap pengembangan perangkat lunak telah sesuai dengan metodologi yang
digunakan.
3. Membuat
dokumentasi hasil pengujian yang menginformasikan kesesuaian perangkat lunak
yang diuji dengan spesifikasi yang telah ditentukan.
B.
TESTABILITY
Testability adalah kemampuan perangkat
lunak untuk dapat diuji artinya seberapa mudah sebuah program komputer untuk
bisa diuji. Karakteristik testability Perangkat Lunak :
1. Kemampuan
untuk bisa dioperasikan (operability)
2. Kemampuan
untuk bisa diobservasi (observability)
3. Kemampuan
untuk dapat dikontrol (controllability)
4. Kemampuan
untuk dapat disusun (decomposability)
5. Kesederhanaan
(simplicity)
6. Stabilitas
(stability)
7. Kemampuan
untuk dapat dipahami (understandability)
C.
KARAKTERISTIK
PENGUJIAN
1. Pengujian
yang baik memiliki probabilitas tinggi untuk menemukan kesalahan
2. Pengujian
yang baik tidak berulang-ulang, waktu dan sumber daya pengujian terbatas
3. Pengujian
terbaik harus menjadi “bibit terbaik” yaitu pengujian yang memiliki kemungkinan
tertinggi dalam mengungkap seluruh kelas kesalahan
4. 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:
1. Menjamin
bahwa semua jalur independen di dalam modul telah dieksekusi sedikitnya satu
kali
2. Melaksanakan
semua keputusan logis pada sisi benar dan salah
3. Melaksanakan
semua perulangan (loop) yang memenuhi semua batas operasional
4. 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)
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:
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
B.
Jalur
Independen (Independent Path
Adalah setiap jalur yang melalui program
yang memperkenalkan setidaknya satu kumpulan pernyataan-pernyataan pemrosesan
atau kondisi baru.
Jalur independen :
·
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.
C.
KOMPLEKSITAS
SIKLOMATIK
Adalah metrik perangkat lunak 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.
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
4 →
else if record ke 2 = 0
5 →
then reset counter
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
CONTOH TESTING
CONTOH FLOWGRAPH
Flow Graph dari testing sebelumnya untuk
deteksi diabates
CONTOH KOMPLEKSITAS SIKLOMATIK
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:
1. Melewati
perulangan secara keseluruhan
2. Hanya
satu kali melalui perulangan
3. Dua
kali melalui perulangan
4. Melalui
perulangan sebanyak m dimana m < n 5. 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:
1. Mulai
dari perulangan terdalam dan atur semua perulangan ke nilai minimum
2. Lakukan
pengujian perulangan sederhana untuk perulangan terdalam, sambil menjaga
perulangan luar pada nilai minimum (misal counter perulangan)
3. Lanjutkan
pada perulangan ke luar dan lakukan pengujian pada perulangan berikutnya
4. 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
1.
METODE
PENGUJIAN BERBASIS GRAFIK
Langkah-langkah pengujian:
·
Memahami objek-objek yang
dimodelkan dalam Perangkat Lunak dan penghubung yang menghubungkan objek-objek
tersebut
·
Menentukan serangkaian pengujian
yang memastikan bahwa semua objek memiliki hubungan satu sama lain seperti yang
diharapkan
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 node-node 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.
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
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 batasbatas 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:
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 Perangkat Lunak
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
Komentar
Posting Komentar