Materi 4OK1
Materi 4OK1
1
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
• Memahami langkah awal untuk melakukan
pengujian terhadap perangkat lunak.
2
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
• Dasar-dasar pengujian perangkat lunak
• Pengujian white box
• Pengujian path basis
• Pengujian struktur kendali
3
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
4
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
• 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.
5
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
Isu-Isu Seputar Testing
1. Sistem itu “Buggy“
2. Testing ditampilkan dengan gambaran yang menakutkan
3. Batas waktu menjadi hambatan bagi testing
4. Testing bukan organisasi dan ilmu
5. Manajemen pendukung untuk testing kurang dari ideal
6. Testing tidak ditampilkan sebagai suatu karir yang
menjanjikan
7. Teknologi baru ataupun lama menyulitkan situasi
7
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
• Semua pengujian harus dapat ditelusuri sampai ke
persyaratan pelanggan.
– cacat yang menyebabkan program gagal
memenuhi persyaratan
• Pengujian harus direncanakan lama sebelum
pengujian itu mulai.
– Perencanaan pengujian dapat dimulai segera
setelah model pernyaratan dilengkapi. Definisi
detail mengeani test case dapat dimulai segera
setelah model desain diteguhkan.
8
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
• Prinsip Pareto berlaku untuk pengujian perangkat lunak.
– Prinsip Pareto mengimplikasikan bahwa 80 persen dari semua
kesalahan yang ditemukan selama pengujian sepertinya akan
dapat ditelusuri sampai 20 persen dari semua modul program.
• Pengujian harus mulai “dari yang kecil” dan berkembang ke
pengujian “yang besar”.
– Pengujian pertama yang direncanakan dan dieksekusi biasanya
berfokus pada modul program individual. Selagi pengujian
berlangsung maju, pengujian mengubah fokus dalam usaha
menemukan kesalahan pada cluster modul yang terintegrasi
dan akhirnya pada sistem secara keseluruhan.
9
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
• Pengujian yang mendalam tidak mungkin.
– Jumlah jalur permutasi untuk program yang berukuran
menengah-pun sangat besar. Karena itulah tidak mungkin
untuk mengeksekusi setiap kombinasi jalus skema pengujian.
• Untuk menjadi paling efektif, pengujian harus dilakukan oleh
pihak ketiga yang independent.
– Pengujian yang memiliki probabilitas tertinggi di dalam
menemukan kesalahan (sasaran utama pengujian). Karena
perekayasa perangkat lunak yang membuat sistem tersebut
bukanlah orang yang paling tepat untuk melakukan semua
pengujian bagi perangkat lunak.
10
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
Shafira Adrizayani ST., MMSI - 11
Testing & Implementasi Sistem
• Testabilitas PL adalah seberapa mudah
program komputer dapat diuji.
• Karakteristik pengujian testabilitas PL :
1. Operabilitas / Operability
2. Observabilitas / Observability
3. Kontrolabilitas / Controlability
4. Dekomposabilitas / Decomposability
5. Kesederhanaan / Simplicity
6. Stabilitas / Stability
7. Kemampuan untuk dipahami / Understandbility
12
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
• Operabilitas. “Semakin baik dia bekerja, semakin efisien
dia dapat diuji”
– Sistem memiliki beberapa bug (bug menambah analisis dan
biaya pelaporan ke proses pengujian).
– Tidak ada bug yang memblok eksekusi pengujian
– Produk berkembang di dalam tahapan fungsional
(memungkinkan pengembangan dan pengujian secara
simultan)
13
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
• Observabilitas “Apa yang Anda lihat adalah apa yang
Anda uji”
– Output yang berbeda dikeluarkan oleh masing-masing input
– Tahap dan variabel sistem dapat dilihat atau diantrikan selama
eksekusi.
– Sistem dan variabel yang lalu dapat dilihat atau diantrikan (misal : log
transaksi)
– Semua faktor yang mempengaruhi output dapat dilihat
– Kesalahan internal dideteksi secara otomatis melalui mekanisme
selftesting
– Kesalahan internal dilaporkan secara otomatis
– Kode sumber (source code ) dapat diakses
14
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
• Kontrolabilitas. “Semakin baik kita dapat mengontrol
perangkat lunak, semakin banyak pengujian yang dapat
diotomatisasi dan dioptimalkan”
– Semua output yang mungkin dapat dimunculkan melalui beberapa
kombinasi input
– Semua kode dapat dieksekusi melalui berbagai kombinasi input
– Keadaan dan variable perangkat lunak dan perangkat keras dapat
dikontrol secara langsung oleh perekayasa pengujian
– Format input dan output konsisten dan terstruktur
– Pengujian dapat dispesifikasi, dioptimasi dan direproduksi dengan
baik
15
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
• Dekomposabilitas. “Dengan mengontrol ruang lingkup
pengujian, kita dapat dengan lebih cepat mengisolasi
masalah dan melakukan pengujian kembali secara lebih
halus”
– Sistem perangkat lunak dibangun dari modul-modul
independen
– Modul-modul perangkat lunak dapat diuji secara independen
16
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
• Kesederhanaan. “Semakin sedikit yang diuji, semakin cepat kita
dapat mengujinya”
– Kesederhanaan fungsional (seperti, kumpulan fitur adalah
kebutuhan minimum untuk memenuhi persyaratan).
– Kesederhanaan struktural (seperti, arsitektur dimodularisasi
untuk membatasi penyebaran kesalahan)
– Kesederhanaan kode (seperti, standar pengkodean diadopsi
demi kemudahan inspeksi dan pemeliharaan).
17
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
• Stabilitas. “Semakin sedikit perubahan, semakin sedikit gangguan dalam
pengujian”
– Perubahan ke perangkat lunak tidak sering
– Perubahan ke perangkat lunak terkontrol
– Perubahan ke perangkat lunak memvalidasi pengujian yang
sudah ada
– Kegagalan perangkat lunak dapat diperbaiki dengan baik
18
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
• Kemampuan untuk dapat dipahami. “Semakin banyak
informasi yang kita miliki, semakin halus pengujian yang akan dilakukan”
– Desain dipahami dengan baik
– Ketergantungan di antara komponen internal, eksternal dan
yang dipakai bersama, dipahami dengan baik.
– Perubahan ke desain dikomunikasikan
– Dokumentasi teknik dapat diakses dengan cepat
– Dokumentasi teknis diorganisasikan dengan baik
– Dokumentasi teknis spesifik dan detail
– Dokumentasi teknis akurat
19
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
1. Pengujian yang baik memiliki probabilitas yang tinggi
untuk menemukan kesalahan.
2. Pengujian yang baik tidak redudan. Waktu pengujian
dan sumber daya terbatas.
3. Pengujian yang baik seharusnya “jenis terbaik”.
4. Pengujian yang baik tidak boleh terlalu sederhana atau
terlalu kompleks.
20
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
Kemampuan Tester yang Diharapkan
• Kemampuan secara umum
– Mempunyai kemampuan analisa yang kuat dan terfokus
– Mempunyai kemampuan komunikasi yang baik
– Mempunyai latar belakang QA
• Pemahaman terhadap metodologi
– Pengembangan rencana tes
– Pembuatan dan perawatan lingkungan tes
– Standar tes
– Dokumentasi tes (seperti test cases dan procedure test)
• Unit testing
– Testing penulisan kode-kode program dalam satuan unit terkecil
secara individual.
• System Testing
– Proses testing pada sistem terintegrasi untuk melakukan verifikasi
bahwa sistem telah sesuai spesifikasi.
• Acceptance Testing
– Testing formal yang dilakukan untuk menentukan apakah sistem
telah memenuhi kriteria penerimaan dan memberdayakan
pelanggan untuk menentukan apakah sistem dapat diterima atau
tidak.
39
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
• 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.
40
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
• 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.
41
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
• 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
42
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
• 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.
43
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
Shafira Adrizayani ST., MMSI - 44
Testing & Implementasi Sistem
• 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 di ujicoba dengan menyediakan kasus
ujicoba dengan melakukan sekumpulan kondisi atau
perulangan.
45
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
Unit Module Sub-system System Acceptance
Testing Testing Testing Testing Testing
User
Component Testing Integration Testing Testing
Pelacakan Kebutuhan
n Semua kebutuhan user diuji secara individu
Item yg diuji
n Menspesifikasi komponen sistem yang diuji
Jadual Testing
Prosedur Pencatatan Hasil dan Prosedur
Kebutuhan akan Hardware dan Software
Kendala-kendala
n Mis: kekurangan staff, alat, waktu, biaya dll.
System
Acceptance Sub-System Module and
Integration
Test plan Integration Unit code and
Test plan
Test plan test
8: output X
• 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 ?
53
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
• Pengujian white box disebut pengujian glass box, structural, clear
box atau open box testing .
• 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 true atau false.
3. Melakukan seluruh pengulangan sesuai batasannya
4. Menguji struktur data internal untuk validasinya.
54
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
• White Box Testing menggunakan 3 macam
tahapan testing
1. Unit Testing
2. Integration testing
3. Regression Testing
Contoh program:
If A then B else C
If D then E else F
67
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
• Diagram alir
menggambarkan aliran
kontrol logika.
68
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
• Struktur kontrol program/Flowchart (Gambar 3)
69
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
Source Code dan FlowChart
• If a and b
Then procedure x
Then procedure y
Endif 74
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
• Simpul predikat (P) adalah simpul yang memiliki
lebih dari satu edges atau links (node yang memiliki
cabang)
75
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
• 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.
76
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
• 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 independen = 4
• Jalur 5 : 1-2-3-4-5-10-1-2-3-
6-8-9-10-1-11 (tidak
termasuk dalam
independent path karena
merupakan kombinasi dari
path di atas)
• Edge = 11 P = 3
Shafira Adrizayani ST., MMSI - 77
• Node = 9 R = 4 Testing & Implementasi Sistem
• Cara menghitung kompleksitas
– Jumlah region grafik alir sesuai dengan kompleksitas siklomatis.
– Kompleksitas siklomatis V(G) untuk grafik alir G ditentukan
sebagai V(G)= E-N+2
– Kompleksitas siklomatis V(G) untuk grafik alir G ditentukan
sebagai V(G)=P+1
• Dimana :
– E = Jumlah edge grafik alir
– N=Jumlah simpul (node) grafik alir
– P=Jumlah simpul predikat
• Simpul predikat adalah penggambaran suatu node yang memiliki satu
atau lebih inputan dan lebih dari satu output (node yang memiliki cabang)
78
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
Kompleksitas Siklomatis
81
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
• PDL for test design
82
Shafira Adrizayani ST., MMSI - 83
Testing & Implementasi Sistem
• Pertanyaan :
1. Region?
2. Edge dan node?
3. Simpul predikatnya?
4. Independent Path?
5. Cyclomatic
Complexity?
6. Matriks Graph?
84
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
Test Case untuk contoh di atas
Test case jalur 1 :
Harga (k)= input valid, dimana k< i yang dtetapkan di bawah
Harga (i) = -999 dimana 2 ≤ i ≤ 100
Hasil yang diharapkan : rata‐ rata yang benar berdasarkan nilai k dan total yang tepat.
Catatan : jalur 1 tidak dapat diuji sendirian karena harus diuji sebagai bagian dari pengujian jalur
4,5 dan 6
89
Shafira Adrizayani ST., MMSI -
Testing & Implementasi Sistem
• Nama file : Tugas K(n)(NamaKelompok)(Kelas).doc /.ppt
• Subjek email : Tugas K(n) (NamaKelompok)(Kelas)
• kirim : shafira_77@staff.gunadarma.ac.id
• Paling lambat : Jumat, 27 Oktober 2023 jam 24:00