Dasar-Dasar Pengujian Perangkat...
Transcript of Dasar-Dasar Pengujian Perangkat...
Dasar-Dasar Pengujian
Perangkat Lunak
Fakultas Ilmu Komputer dan Teknologi Informasi
Jurusan Sistem Informasi
Univesitas Gunadarma
Materi Perkuliahan
Dasar-dasar pengujian perangkat lunak
Pengujian white box
Pengujian path basis
Pengujian struktur kendali
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.
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
Logika Gabungan
If a or b
Then procedure x
Else procedure y
Endif
If a and b
Then procedure x
Then procedure y
Endif
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
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?
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 Soal Graph Matrix
Pertanyaan :
1. Konversikan matriks grafik di atas menjadi flowgraph!
2. Buatlah Connection Matrix!
3. Berapa nilai dari Cyclomatic Complexity?
Node 1 2 3 4
1 a b
2 c d
3 e f
4 g
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.