Slide INF205 RPL Pertemuan 12

REKAYASA PERANGKAT
LUNAK
PERTEMUAN 12

TEKNIK PENGUJIAN
PERANGKAT LUNAK

KENAPA HARUS DIUJI ?
• Kita bukan seorang programmer yg cukup baik
• Kita mungkin tidak dapat cukup berkonsentrasi untuk
menghindari kesalahan
• Kita kadang2 lupa menggunakan pemrograman
terstruktur secara penuh, perancangan atas-bawah utk
mendapatkan solusi
• Kita kadang buruk dalam mengerjakan sesuatu
• Kita seharusnya dapat membedakan apa yg dikatakan
programmer lain atau pelanggan dan apa yg sebenarnya
mereka pikirkan
• Kita seharusnya merasa bersalah apabila seseorang harus
menguji koding kita
• Pengujian merupakan suatu perizinan terhadap kesalahan


Teknik Pengujian Per.Lunak@Berta

3

Latar Belakang
• Pengujian P/L adalah elemen kritis dari jaminan kualitas P/L dan
merupakan review puncak terhadap spesifikasi, desain dan
pembuatan program.
• Pengujian P/L menghabiskan upaya 30-40% dari total pekerjaan
proyek.
• Untuk proyek yang membahayakan nyawa manusia, biaya pengujian
bisa 3-5 X proyek biasa.

Tujuan Pengujian
1. Menjalankan program untuk menemukan error.
2. Test case yang bagus adalah yang memiliki kemungkinan terbesar
untuk menemukan error yang tersembunyi.
3. Pengujian yang sukses adalah yang berhasil menemukan error yang
tersembunyi.


DASAR2 PENGUJIAN PERANGKAT LUNAK
• Objektifitas Pengujian
• Test case yg baik adalah yg mempunyai
probabilitas yg tinggi untuk menemukan error
yg tak diketemukan
• Pengujian merupakan suatu proses eksekusi
program yang ditujukan untuk menemukan
error
• Uji yg sukses adalah yg dapat ‘membuka’ error
yang tak diketemukan
• Dua klas input yg disediakan untuk proses uji
1. konfigurasi software, termasuk Software
Requirement Specification, Design Specification
dan Source code
2. konfigurasi uji, termasuk Test Plan &
Procedure, perangkat testing yg akan
Pengujiandan
Per.Lunak@Berta
digunakan, testTeknik

case
hasil yg diharapkan

6

PERANCANGAN TEST CASE


Test case yg dirancang harus mempunyai
probabilitas yg tinggi untuk menemukan sebuah
error dalam waktu & effort yg minimum.



Dua metode pendekatan perancangan test case
1. White Box Testing (pada sesuatu yg kecil
(modul)) berfokus pada struktur kontrol
program.






Dijamin semua independent path (jalur bebas) telah
dijalankan setidaknya satu kali
Menjalankan semua keputusan logis pada sisi true &
false
Menjalankan semua looping
Melakukan struktur data internal untuk menjamin
validitas
Teknik Pengujian Per.Lunak@Berta

7

PERANCANGAN TEST CASE (lanj.)

2. Black Box Testing (yang besar) berfokus pada
kebutuhan fungsional software, memungkinkan
perancang untuk memperoleh kondisi2 input yg
secara penuh menguji semua kebutuhan

fungsional suatu program

Teknik Pengujian Per.Lunak@Berta

8

WHITE BOX TESTING : Basis Path Testing
• Metode pertama yg diusulkan oleh Tom McCabe
(1976). Metode ini memungkinkan perancangan
memperoleh pengukuran yang kompleksitas dari
perancangan prosedural dan menggunakan
pengukuran ini sebagai pedoman pendefinisian
sekumpulan basis dari jalur eksekusi
• Perangkat yang digunakan
1. Notasi Flow Graph atau Program Graph
Contoh :
- sequence
- if

- until


Teknik Pengujian Per.Lunak@Berta

9

BASIS PATH TESTING
2. Cyclomatic Complexity, merupakan
pengukuran per.lunak yang menyediakan
pengukuran kuantitatif dari kompleksitas logis
suatu program. Nilai cyclomatic complexity
mendefinisikan jumlah jalur bebas pada basis
program.
3. Independent path (jalur bebas) merupakan
jalur pada program yg menunjukkan
setidaknya satu kumpulan pernyataan
pemrosesan baru atau kondisi baru.
Langkah2 Basis Path Testing
- gunakan rancangan atau kode sebagai pondasi, lalu
gambarkan flow graph
- tentukan cyclomatic complexity, dinyatakan V(G) dari

flow graph
- tentukan sekumpulan basis secara linear jalur bebas
- persiapkan test case
yg akan
memperkuat eksekusi
Teknik Pengujian
Per.Lunak@Berta

10

BASIS PATH TESTING
3. Graph Matrix merupakan matriks persegi 4
dimana sisi2nya sama dengan jumlah node
pada flow graph

Teknik Pengujian Per.Lunak@Berta

11

BLACK BOX TESTING

• Merupakan metode pelengkap White Box Testing.
Berfokus pada kebutuhan fungsional dari
per.lunak.
• Memungkinkan perancang untuk memperoleh
sekumpulan kondisi2 input yg secara penuh
menguji semua kebutuhan fungsional suatu
program
• Metode ini berusaha menemukan kesalahan yg
termasuk kategori di bawah ini
- fungsi2 yg hilang atau tidak benar
- kesalahan pada antarmuka
- kesalahan pada struktur data atau pengaksesan
database ekternal
- kesalahan pada performance
- kesalahan pada inisialisasi dan terminasi
Teknik Pengujian Per.Lunak@Berta

12

Prinsip Pengujian

• Harus bisa dilacak hingga sampai ke kebutuhan customer.
• Harus direncanakan sejak model dibuat.
• Prinsip Pareto: 80% error uncovered.
• Dari lingkup kecil menuju yang besar.
• Tidak bisa semua kemungkinan diuji.
• Dilakukan oleh pihak ketiga yang independen.

Testablility
• Kemudahan untuk diuji.
• Karakteristiknya:








Operability: mudah digunakan.
Observability: mudah diamati.

Controlability: mudah dikendalikan.
Decomposability: mudah diuraikan.
Simplicity: lingkup kecil, semakin mudah diuji.
Stability: jarang berubah.
Understandability: mudah dipahami.

Desain Kasus Pengujian
• Black box testing
• Memastikan fungsional P/L berjalan.
• Kesesuaian input dengan output.
• Tidak memperhatikan proses logic internal.

• White box testing
• Pengamatan detail prosedur.
• Mengamati sampai level percabangan kondisi dan perulangan.

White Box Testing
• Metode: basis path testing.
• Memakai notasi flow graph.


Kompleksitas Cyclomatic
• Menunjukkan jumlah skenario pengujian yang harus dilakukan
untuk menjamin cakupan seluruh program.

Contoh White Box Testing
• Lihat buku
halaman 449 –
452.

Black Box Testing – Graph Based

Black Box Testing – Equivalence
Partitioning

• Contoh: Input NPM dalam SIAMIK
• Jika dikosongi?
• Jika diisi dengan format yang salah?
• Jika diisi dengan NPM yang benar?

Black Box Testing – Analisa Nilai Batas
1. Menguji untuk input di sekitar batas atas maupun bawah sebuah
range nilai yang valid.
2. Menguji nilai maksimal dan minimal.
3. Menerapkan (1 & 2) untuk output.
4. Menguji batas struktur data yang dipakai. Misal ukuran array.

Black Box Testing – Perbandingan
• Spesifikasi kebutuhan yang sama dimungkinkan menghasilkan
aplikasi/ perangkat lunak yang berbeda.
• Skenario pengujian pada aplikasi yang demikian bisa digunakan untuk
skenario pengujian aplikasi serupa yang lain.

Skenario Pengujian Khusus
• Pengujian GUI.
• Pengujian arsitektur client/ server.
• Pengujian dokumentasi dan fasilitas bantuan.
• Pengujian sistem waktu nyata.

CONTOH LAIN
• Contoh lain White Box Testing atau Control
Structure Testing adalah
1. Condition Testing, menjalankan kondisi logis
yang terdapat pada modul program
2. Data Flow Testing, metode yg menyeleksi
jalur test program menurut lokasi pendefinisian
& menggunakan variabel2 program
3. Loop Testing, berfokus pada validitas dari
bentuk loop (simple loop, concatenated loop,
nested loop, unstructured loop)

Teknik Pengujian Per.Lunak@Berta

24

CONTOH LAIN
• Contoh lain Black Box Testing adalah
1. Equivalence Partitioning, membagi domain
input dari program ke dalam klas2 data
2. Boundary Value Analysis (BVA) melengkapi
Equivalence Partitioning, dengan
melakukannya dari domain output
3. Cause-effect Graphing, memvalidasi aksi2 &
kondisi yg kompleks

Teknik Pengujian Per.Lunak@Berta

25