Anda di halaman 1dari 47

Dasar-Dasar Pengujian

Perangkat Lunak

Fakultas Ilmu Komputer dan Teknologi Informasi


Jurusan Sistem Informasi
Univesitas Gunadarma
Tujuan Pembelajaran
 Memahami langkah awal untuk melakukan
pengujian terhadap perangkat lunak.
Materi Perkuliahan
 Dasar-dasar pengujian perangkat lunak
 Pengujian white box
 Pengujian path basis
 Pengujian struktur kendali
Kenapa Perangkat Lunak
Harus Diuji ?
Alasan Pengujian PL
 Bukan seorang programmer yg cukup baik.
 Lupa menggunakan pemrograman terstruktur secara
penuh, perancangan atas-bawah untuk mendapatkan
solusi.
 Seharusnya dapat membedakan apa yang dikatakan
programmer lain atau pelanggan dan apa yang
sebenarnya mereka pikirkan.
 Merasa bersalah apabila seseorang harus menguji
koding yang kita buat.
 Pengujian merupakan suatu perizinan terhadap
kesalahan.
Dasar Pengujian Perangkat Lunak
 Objektifitas Pengujian
1. Test case yang baik adalah yang mempunyai
probabilitas yg tinggi untuk menemukan error yang
tak ditemukan.
2. Pengujian merupakan suatu proses eksekusi program
yang ditujukan untuk menemukan error.
3. Uji yang sukses adalah yang dapat membuka error
yang tak ditemukan.
Dasar Pengujian Perangkat Lunak
 Dua kelas input yang disediakan untuk proses uji
perangkat lunak adalah :
1. Konfigurasi software, termasuk Software
Requirement Specification, Design Specification dan
Source code.
2. Konfigurasi uji, termasuk Test Plan & Procedure,
perangkat testing yang akan digunakan, test case dan
hasil yang diharapkan.
Perancangan Test Case
 Test case yang dirancang harus mempunyai
probabilitas yang tinggi untuk menemukan sebuah
error dalam waktu & effort yang minimum.

 Dua metode pendekatan perancangan test case :


1. White Box Testing, berfokus pada struktur kontrol
program. Semua independen path dijalankan satu kali,
melakukan semua loop, melakukan struktur data
internal untuk validitas.
2. Black Box Testing, berfokus pada kebutuhan fungsional
software dan memungkinkan perancang untuk
memperoleh kondisi input yang secara penuh
menguji semua kebutuhan fungsional suatu program.
Teknik Pengujian Perangkat Lunak
 Pengujian perangkat lunak adalah elemen kritis dari
jaminan kualitas perangkat lunak dan merepresentasikan
spesifikasi, desain dan pengkodean.
 Tujuan pengujian perangkat lunak adalah mendesain
serangkaian tes yang secara sistematis mengungkap
beberapa jenis kesalahan yang berbeda dan melakukannya
dalam waktu dan usaha yang minimum.
 Manfaat pengujian perangkat lunak adalah untuk
menunjukkan bahwa fungsi perangkat lunak bekerja sesuai
dengan spesifikasi dan kebutuhan fungsi tercapai.
1. Sasaran Pengujian Sistem
 Sasaran pengujian sistem :
1. Pengujian adalah proses eksekusi suatu program
dengan maksud menemukan kesalahan.
2. Test case yang baik adalah test case yang memiliki
probabilitas tinggi untuk menemukan kesalahan yang
belum pernah ditemukan sebelumnya.
3. Pengujian yang sukses adalah pengujian yang
mengungkapkan semua kesalahan yang belum pernah
ditemukan sebelumnya.
2. Prinsip Pengujian Sistem
 Semua pengujian harus dapat ditelusuri sampai ke
persyaratan pelanggan.
 Pengujian harus direncanakan lama sebelum pengujian
dimulai.
 Prinsip pareto berlaku untuk pengujian perangkat
lunak.
 Pengujian harus mulai “dari yang kecil” dan
berkembang ke pengujian “yang besar”.
 Pengujian yang mendalam tidak mungkin.
 Untuk menjadi paling efektif, pengujian harus
dilakukan oleh pihak ketiga yang independent.
3. Testabilitas
 Testabilitas PL adalah seberapa mudah program
komputer dapat diuji.
 Karakteristik pengujian PL :
1. Operabilitas
2. Observabilitas
3. Kontrolabilitas
4. Dekomposabilitas
5. Kesederhanaan
6. Stabilitas
7. Kemampuan untuk dipahami
3. Testabilitas
 Atribut pengujian yang baik :
1. Pengujian yang baik memiliki probabilitas yang tinggi
untuk menemukan kesalahan.
2. Pengujian yang baik tidak redudan.
3. Pengujian yang baik seharusnya jenis terbaik.
4. Pengujian yang baik tidak boleh terlalu sederhana
atau terlalu kompleks.
4. Desain Test Case
 Pendekatan pengujian blackbox dan whitebox.
 Pengujian Blackbox :
1. Berkaitan dengan pengujian pada interface PL.
2. Blackbox testing menyinggung ujicoba yang dilakukan
pada interface software.
3. Blackbox testing didesain untuk menemukan
kesalahan.
4. Blackbox testing digunakan untuk
mendemonstrasikan fungsi software yang
dioperasikan.
5. Blackbox testing sedikit memeriksa struktur logika
internal software
4. Desain Test Case
 Pengujian Whitebox :
1. Didasarkan pada pemeriksaan detail prosedural.
2. Whitebox testing akan menghasilkan program yang
100% benar.
3. Whitebox testing dilakukan pada alur logika yang
penting.
4. Alur logika software diujicoba dengan menyediakan
kasus ujicoba dengan melakukan sekumpulan kondisi
atau perulangan.
Proses Testing
Failures and Faults
 Failures adalah output yang tidak benar/tidak sesuai
ketika sistem dijalankan.
 Faults adalah kesalahan dalam source code yang
mungkin menimbulkan failure ketika code fault
dijalankan.
Pertimbangan Pembangunan Sistem
 Validasi (Product Oriented)
Apakah sistem yang dikembangkan sudah benar ?
Pengujian dimana sistem ketika diimplementasikan
sesuai dengan yang diharapkan atau tidak ?
 Verifikasi (Process Oriented)
Apakah sistem dikembangkan dengan cara yang benar
?
Pengujian apakah sistem sudah sesuai dengan
spesifikasi ?
Pengujian White Box
 Pengujian white box disebut pengujian glass box.
 Ujicoba whitebox adalah metode desain uji kasus
menggunakan struktur kontrol dari desain prosedural
untuk memperoleh test case.
 Kasus uji yang dihasilkan pengembangan PL dengan
menggunakan metode pengujian whitebox adalah :
1. Menjamin seluruh independen paths dalam modul
dilakukan sebanyak satu kali.
2. Melakukan seluruh keputusan logika baik dari sisi
benar atau salah.
3. Melakukan seluruh pengulangan sesuai batasannya
4. Menguji struktur data internal untuk validasinya.
Pengujian Basis Path
 Pengujian basis path adalah teknik pengujian whitebox
pertama yang diusulkan Tom McCabe (1976).
 Basis path memungkinkan desainer test case
mengukur kompleksitas logis dari desain prosedural
dan pengukuran ini dijadikan pedoman dalam
pendefinisian sekumpulan basis dari jalur eksekusi.
 Yang termasuk basis path test :
1. Notasi Diagram Alir (Path Graph Notation)
2. Kompleksitas Siklomatik
3. Test Case
4. Matriks Grafik (Graph Matrices)
Notasi Diagram Alir
 Diagram alir menggambarkan aliran kontrol logika.

 Edges atau links


 Simpul atau node
 Region
Desain Prosedural Bagan Alir
 Struktur kontrol program/Flowchart
Grafik Alir
 Flowgraph Node
Grafik Alir ke PDL (Program Design Language)
Logika Gabungan
 If a or b
Then procedure x
Else procedure y
Endif

 If a and b
Then procedure x
Then procedure y
Endif
Logika Gabungan
 Simpul predikat adalah simpul yang memiliki lebih dari
satu edges atau links.
Kompleksitas Siklomatis
 Kompleksitas siklomatis (Cyclomatic Complexity)
adalah metriks PL yang memberikan pengukuran
kuantitatif terhadap kompleksitas logis suatu program.
 Nilai cyclomatic complexity mendefinisikan jumlah
independen path pada basis program.
 Jalur independen adalah jalur yang melalui program
yang mengintroduksi sedikitnya satu rangkaian
statement proses baru atau suatu kondisi baru.
Jalur Independen
 Jalur 1 : 1-11
 Jalur 2 : 1-2-3-4-5-10-1-11
 Jalur 3 : 1-2-3-6-8-9-10-1-11
 Jalur 4 : 1-2-3-6-7-9-10-1-11
 Jalur 5 : 1-2-3-4-5-10-1-2-3-6-8-9-10-1-11 (tidak
termasuk dalam independent path)
Kompleksitas Siklomatis
 Cara menghitung kompleksitas :
1. Jumlah region grafik alir sesuai dengan kompleksitas
siklomatis.
2. Kompleksitas siklomatis V(G) untuk grafik alir G
ditentukan sebagai V(G)= E-N+2.
3. Kompleksitas siklomatis V(G) untuk grafik alir G
ditentukan sebagai V(G)=P+1.
Dimana : E=Jumlah edge grafik alir
N=Jumlah simpul grafik alir
P=Jumlah simpul predikat
Test Cases
 PDL for test design
Identifying Nodes
Flowgraph Procedure Average
Cuplikan Kode Program
Do while records remain read record;
Calculate process;
If record field 1 = 0
Then process record;
Store in buffer; Increment counter;
Else if record field 2 = 0
Then reset counter;
Else process record; Store in file;
End if;
End if;
End do;
End
Contoh Soal 1
 Pertanyaan :
1. Region?
2. Edge dan node?
3. Simpul predikatnya?
4. Independent Path?
5. Cyclomatic Complexity?
Contoh Soal 2
Contoh Soal 3
Pertanyaan :
1. Berapa jumlah cyclomatic complexity-nya ?
2. Jalur yang menyatakan bahwa properti
tersedia, calon pengguna memiliki cukup uang
dan bermaksud untuk membeli properti
tersebut, ditunjukkan pada independen path
yag mana ?
3. Jalur yang menyatakan bahwa properti
tersedia tetapi calon pengguna tidak memiliki
cukup uang, ditunjukkan pada independen path
yag mana ?
Matriks Grafik (Graph Matrices)
 Matriks grafik (Graph Matrix) adalah matriks bujur
sangkar yang ukurannya sama dengan jumlah
simpul/node pada grafik alir.
 Graph matrix otomatis menggenerasi flowgraph dan
mendeterminasi aliran dasar proses.
 Graph matrix :
1. Bujursangkar dengan sisi merepresentasikan simpul.
2. Baris dan kolom merepresentasikan simpul.
3. Nilai 1 merepresentasikan hubungan antar simpul.
Contoh Graph Matrix
 Flowgraph 1 Flowgraph 2
Flowgraph 1
 Graph Matrix
Flowgraph 2
 Graph Matrix
Flowgraph 1
 Connection Matrix
Contoh Soal Graph Matrix
Node 1 2 3 4

1 a b

2 c d

3 e f

4 g

 Pertanyaan :
1. Konversikan matriks grafik di atas menjadi
flowgraph!
2. Buatlah Connection Matrix!
3. Berapa nilai dari Cyclomatic Complexity?
Pengujian Struktur Kontrol
 Condition Testing bertujuan untuk mengeksekusi
semua kondisi logik dari sebuah modul program.
 Pengujian kondisi (Condition Testing) adalah sebuah
metode desain test case yang menggunakan kondisi
logis yang ada pada suatu modul program.
 Metode pengujian kondisi berfokus pada pengujian
setiap kondisi yang ada pada program.
 Keuntungan :
1. Memperkirakan pengujian berdasarkan kondisi
adalah hal yang simpel.
2. Cakupan pengujian dapat mengarahkan pada
penambahan kasus uji untuk semua program.
Condition Testing
 Mendefinisikan :
1. Relational Expression (E1 op E2) : E1 dan E2 adalah
arithmetic expression
2. Simple Condition : Variabel boolean atau relation
expression dan diawali dengan operator NOT
3. Compound Condition : Dua atau lebih simple conditions,
operator boolean dan tanda kurung
4. Boolean Expression : Kondisi tanpa relational expression
Condition Testing
 Strategi yang termasuk condition testing :
1. Branch Testing
2. Domain Testing
3. Branch dan Relational Operator Testing
 Kegunaan ujicoba kondisi adalah untuk mendeteksi,
baik kesalahan kondisi dalam suatu program tetapi
juga kesalahan lain dalam program.
 Tujuan pengujian kondisi adalah mendeteksi tidak
hanya kesalahan di dalam program tetapi juga
kesalahan lain dari program.
Pengujian Aliran Data
 Data Flow Testing adalah metode yang menyeleksi
jalur test program menurut lokasi pendefinisian dan
menggunakan variabel program.
 Data flow Testing, setiap statement dalam program
diasumsikan diisi dengan angka yang unik dan tidak
ada fungsi yang mengubahnya.
Pengujian Loop
 Loop adalah dasar dari banyak algoritma.
 Pengujian Loop merupakan teknik pengujian white
box yang secara ekslusif berfokus pada validitas
konstruksi loop.

Anda mungkin juga menyukai