pertemuan 4&5 - WordPress.com

Download Report

Transcript pertemuan 4&5 - WordPress.com

TESTING & IMPLEMENTASI SISTEM
“Teknik-teknik pengujian perangkat lunak
& Pengujian Beriontasi Obyek”
Diema HS,M. Kom
White Box Testing
 Macam tekniknya :
Cakupan pertanyaan, cabang, dan jalur
2. Basis path Testing
1.
Cakupan pernyataan, cabang dan jalur
 Cakupan pernyataan ditentukan dengan menilai proporsi
dari pernyataan-pernyataan yang ditinjau oleh
sekumpulan test cases yang ditentukan.
 Cakupan pernyataan 100 % adalah bila tiap pernyataan
pada program ditinjau setidaknya minimal sekali tes.
 Cakupan pernyataan berkaitan dengan tinjauan terhadap
titik (node) pada flow graph.
 Cakupan 100 % terjadi bilamana semua titik dikunjungi
oleh jalur-jalur yang dilalui oleh test cases
Cakupan pernyataan
Pada contoh gambar flow graph di atas terdapat 10 titik. Misal suatu jalur eksekusi program
melewati titik-titik A, B, D, H, K. Berarti ada 5 titik dari 10 titik yang dikunjungi, maka
cakupan pernyataan sebesar 50 %.
Karena satu titik pada flow graph dapat merupakan kelompok dari beberapa pernyataan,
oleh karena itu tingkat cakupan pernyataan yang sebenarnya berbeda dengan tingkat
cakupan titik (nodes), tergantung dari cara pendefinisian flow graph
Cakupan cabang (Cont.)
 Cakupan cabang ditentukan dengan menilai proporsi dari
cabang keputusan yang diuji oleh sekumpulan test cases
yang telah ditentukan.
 Cakupan cabang 100 % adalah bilamana tiap cabang
keputusan pada program ditinjau setidaknya minimal
sekali tes.
 Cakupan cabang berkaitan dengan peninjauan anak panah
cabang (branch edges) dari flow graph.
 Cakupan 100 % adalah bilamana semua anak panah
cabang ditinjau oleh jalur-jalur yang dilalui oleh test cases.
Cakupan cabang
Berdasarkan pada contoh gambar flow graph di atas, terdapat 6 anak panah cabang. Misal
suatu jalur eksekusi program melawati titik-titik A, B, D, H, K, maka jalur tersebut
meninjau 2 dari 6 anak panah cabang yang ada, jadi cakupannya sebesar 33 %.
Cakupan jalur (Cont.)
 Cakupan jalur ditentukan dengan menilai proporsi eksekusi
jalur program yang diuji oleh sekumpulan test cases yang telah
ditentukan.
 Cakupan jalur 100 % adalah bilamana tiap jalur pada program
dikunjungi setidaknya minimal sekali tes.
 Cakupan jalur berkaitan dengan peninjauan jalur sepanjang
flow graph.
 Cakupan 100 % adalah bilamana semua jalur dilalui oleh test
cases.
Cakupan jalur
Berdasarkan contoh flow graph di atas, terdapat 4 jalur. Bila suatu eksekusi jalur pada
program melalui titik-titik A, B, D, H, K, maka eksekusi tersebut meninjau 1 dari 4
jalur yang ada, jadi cakupannya sebesar 25 %.
Disain cakupan tes

Untuk mendisain cakupan dari tes, perlu diketahui
tahap-tahap sebagai berikut:
Menganalisa source code untuk membuat flow graph.
2. Mengidentifikasi jalur tes untuk mencapai pemenuhan tes
berdasarkan pada flow graph.
3. Mengevaluasi kondisi tes yang akan dicapai dalam tiap tes.
4. Memberikan nilai masukan dan keluaran berdasarkan pada
kondisi.
1.
2. Basis Path Testing
 Merupakan teknik white box testing yang dikenalkan oleh
Tom McCabe [MC76].
 Metode identifikasi yang berdasarkan pada jalur, struktur
atau koneksi yang ada dari suatu sistem ini biasa disebut
juga sebagai branch testing, karena cabang-cabang dari
kode atau fungsi logika diidentifikasi dan dites, atau
disebut juga sebagai control-flow testing .
Basis Path Testing
 Basis path hadir dalam 2 bentuk, yaitu:
 Zero Path: Jalur penghubung yang tidak penting atau jalur
pintas yang ada pada suatu sistem.
 One Path: Jalur penghubung yang penting atau berupa proses
pada suatu sistem.
 Konsep utama basis path:
 Tiap basis path harus diidentifikasi, tidak boleh ada yang
terabaikan (setidaknya dites 1 kali).
 Kombinasi dan permutasi dari suatu basis path tidak perlu dites.
Basis Path Testing
 Notasi Flow Graph
Perhitungan Cyclomatic Complexity
 Adalah
pengukuran software yang memberikan
pengukuran kuantitatif dari kompleksitas logika
program.
 Pada konteks metode basis path testing , nilai yang
dihitung bagi cyclomatic complexity menentukan jumlah
jalur-jalur yang independen dalam kumpulan basis suatu
program dan memberikan jumlah tes minimal yang harus
dilakukan untuk memastikan bahwa semua pernyataan
telah dieksekusi sekurangnya satu kali.
 Jalur independen adalah tiap jalur pada program yang
memperlihatkan 1 kelompok baru dari pernyataan proses
atau kondisi baru.
Rumus Cyclomatic Complexity
 [Region / Complexity]
V(G) = E (edges) – N (nodes) + 2
 V(G) = P (predicate node) + 1
Tahapan Cyclomatic Complexity
 Tahapan dalam membuat test cases dengan menggunakan
cyclomatic complexity:
 Gunakan disain atau kode sebagai dasar, gambarlah flow graph
 Berdasarkan flow graph, tentukan cyclomatic complexity
 Tentukan kelompok basis dari jalur independen secara linier
 Siapkan test cases yang akan melakukan eksekusi dari tiap jalur
dalam kelompok basis
Cyclomatic Complexity
 Catatan : Beberapa jalur mungkin hanya dapat dieksekusi
sebagai bagian dari tes yang lain.
 Direkomendasikan agar jangan sampai kompleksitas tiap unit
/ komponen terkecil sistem melebihi nilai 10 [V(G)].
Beberapa praktisi menggunakan nilai rata-rata V(G) dari tiap
unit / komponenn terkecil untuk memberikan penilaian
kompleksitas
Graph Matrix
 Adalah matrik berbentuk segi empat sama sisi, dimana jumlah
baris dan kolom sama dengan jumlah node, dan identifikasi baris
dan kolom sama dengan identifikasi node, serta isi data adalah
keberadaan penghubung antar node (edges).
 Beberapa properti yang dapat ditambahkan sebagai pembobotan
pada koneksi antar node di dalam graph matrix, sebagai berikut:
 Kemungkinan jalur (Edge) akan dilalui / dieksekusi.
 Waktu proses yang diharapkan pada jalur selama proses transfer dilakukan.
 Memori yang dibutuhkan selama proses transfer dilakukan pada jalur.
 Sumber daya (resources) yang dibutuhkan selama proses transfer dilakukan
pada jalur.
Graph Matrix
Contoh
1 Do while records remain read record;
2 Calculate proses;
3 If record field 1 = 0
4 Then process record;
5 Store in buffer;
Increment counter;
6 Else If record field 2 = 0
7Then reset counter;
8 Else process record;
Store in file;
9Endif
10 Endif
11 Enddo
End
Hitung V
 V(G) = E (edges) – N (nodes) + 2
= 11 – 9 + 2
=4
 V(G) = P (predicate node) + 1
Lihat Flow Graph (Contoh)
V(G) = 3 + 1 = 4
Jalur Tes




Jalur 1 : 1–11
Jalur 2 : 1-2-3-4-5-10-1-11
Jalur 3 : 1-2-3-6-7-9-10-1-11
Jalur 4 : 1-2-3-6-8-9-10-1-11
 Test case jalur (Path) 1
 Nilai(record.eof) = input valid, dimana record.eof = true
 Hasil yang diharapkan : Sistem keluar dari loop dan sub program.
 Test case jalur (Path) 2
 Nilai(field 1) = input valid, dimana field 1 = 0
 Nilai(record.eof) = input valid, dimana record.eof = false
 Nilai(counter) = Nilai(counter) + 1
 Hasil yang diharapkan : Sistem melakukan [process record], [store in buffer]
dan [increment counter].
 Test case jalur (Path) 3
 Nilai(field 2) = input valid, dimana field 2 = 0
 Nilai(record.eof) = input valid, dimana record.eof = false
 Nilai(counter) = 0
 Hasil yang diharapkan : Sistem melakukan [reset counter].
 Test case jalur (Path) 4
 Nilai(field 2) = input valid, dimana field 2 <> 0
 Nilai(record.eof) = input valid, dimana record.eof = false
 Hasil yang diharapkan : Sistem melakukan [process record] dan [store in
file].
 Bagaimana dengan matrix graph?
2.
BLACKBOX TESTING
Black-box testing
 Pendekatan pengujian dimana program dianggap sebagai
suatu ‘black-box’ (‘kotak hitam’)
 Program test case berbasiskan spesifikasi
 Test planning dapat dimulai sejak awal proses pengembangan
sistem
Black-box testing
Black-box testing
 Pengujian black box berusaha menemukan kesalahan dalam
kategori :
 Fungsi-fungsi yang tidak benar atau hilang
 Kesalahan interface
 Kesalahan dalam struktur data atau akses database eksternal
 Kesalahan kinerja
 Inisialisasi dan kesalahan terminasi
Contoh

Testinglah dengan menggunakan white box testing dengan menentukan CC !

Private Sub CmdInput_Click()

If CmdInput.Caption = "&Input" Then

CmdInput.Caption = "&Simpan"

CmdEdit.Enabled = False

CmdHapus.Enabled = False

CmdTutup.Caption = "&Batal"

Siapisi

DTPasien.Recordset.AddNew

KosongkanText

Text1.SetFocus

Else

If Text1 = "" Or Text2 = "" Or Text3 = ""

Or Text4 = "" Or Text5 = "" Or Text6 = ""

Or Text7 = "" Then


MsgBox "Data Belum Lengkap...!"
Else

DTPasien.Refresh

TidakSiapIsi

Semula

CmdInput.SetFocus


End If
End If
PENGUJIAN BERORIENTASI OBYEK
Aktifitas Pengujian
 Meninjau ulang model OOA dan OOD
 Ujicoba Class setelah penulisan program sumber
 Ujicoba Integrasi dalam subsistems
 Ujicoba Integrasi subsistem yang telah ditambahkan kedalam
sistem
 Ujicoba validasi berdasarkan OOA use-cases
STRATEGI PENGUJIAN
 Strategi pengujian untuk perangkat lunak beriorientasi objek
serupa dengan strategi pengujian yang telah dibahas sebelumnya.
Namun terdapat beberapa perbedaan dengan beberapa strategi
yang telah dibahas sebelumnya, yakni
1. Pada unit testing (dalam konteks berorientasi objek)



Bagian terkecil yang diuji pada unit testing adalah kelas atau objek,
tidak seperti unit testing konvensional yang fokus pada detail
algoritmik dari perangkat lunak
Tidak menguji operasi yang ada secara terpisah, seperti halnya unit
testing konvensional, karena operasi-operasi pada satu kelas diuji
bersamaan pada satu kelas
Setiap operasi yang diturunkan pada kelas turunan harus
diperiksa
Pada integration testing
Memiliki dua strategi yakni thread-based testing dan use-based testing
Thread-based testing :
2.





Use-based testing:


mengintegrasikan sekumpulan kelas yang dibutuhkan untuk merespon
suatu input atau event pada sistem.
Setiap thread diintegrasikan dan diuji secara individual,
pengujian regresi diterapkan untuk memastikan tidak ada efek samping
yang muncul

Pengujian terhadap setiap independent classes (kelas yang menggunakan
sangat sedikit kelas server)

Pengujian terhadap dependent classes sampai keseluruhan sistem
terbentuk (dibangun)
Tahapan cluster testing di mana sekumpulan kelas yang berkolaborasi
diuji untuk menemukan kesalahan pada saat berinteraksi
Pengujian Validasi dalam Konteks Berorientasi
Objek
 memusatkan pada aksi dari user dan keluaran dari sistem
yang dapat dikenali user
 Case
3.
 membantu untuk menemukan kesalahan pada kebutuhan
interaksi user
 Black Box
 mengatur pengujian validasi
Testing levels
Testing operations pada objects
Testing object classes
Testing clusters cooperating objects
Testing OO system secara lengkap
Pengujian Class
Menguji terhadap semua
operation yg ada dan
perubahan atributatributnya.
Cluster Testing
Gambaran UI Sistem Pendaftaran
Perijinan
<<Module>>
+UserAuthorization
Main_Mod
<<coclass>>
IUserAuthorization
(f rom UserServ ices)
<<Form>>
frmLogin
+mainForm
<<MDI Form >>
+f1
frmMain
+f2
<<Form>>
<<Form>>
frmIjinInvesDatasheet
frmIMBDatasheet
+f3
+f3
+f4
+f4
<<Form>>
frmPendaftaranIjinInvestasi
<<Form>>
frmPendaftaranIMB
Cluster testing digunakan untuk test integrasi terhadap kooperatif object.
Identifikasi clusters menggunakan knowledge operation objects dan system features yang
diimplementasikan oleh cluster tersebut.
Object-Interaction Testing
: Petugas
: Layar Utama Sistem
Loket
Pendaftaran
1: Pendaftaran Baru( )
: Membuat
Pendaftaran Baru
: Formulir Pendaftaran
2: Pendaftaran Baru( )
3: Jalankan Form ulir Pendaftaran( )
4: Tampilkan Form Pendaftaran( )
5: Masukan Pendaftaran( )
6: Buat Pendaftaran( )
7: Tambahkan Pendaftaran( )
: Pendaftaran
Baru
Object class testing
Complete test yang menguji class melibatkan



Testing semua operations suatu object
Setting dan interrogating semua attribute object
Menguji object untuk semua state(keadaan) yg mungkin
Inheritance akan mengakibatkan sulitnya perancangan
object class tests seperti information yg diuji sulit
dilokalisasi.
Contoh PERANCANGAN KASUS
PENGUJIAN
 Contoh perancangan pengujian scenario-based untuk text editor:
Use Case : Fix the Final Draft
 Background : Use case ini menggambarkan urutan event yang muncul
1. Cetak seluruh dokumen
2. Periksa dokumen, ubah halaman tertentu
3. Untuk setiap halaman yang diubah, cetak halaman tersebut
4. Kadang-kadang sederetan halaman dicetak
– Kebutuhan user :
 metoda untuk mencetak satu halaman
 metoda untuk mencetak beberapa halaman berurutan
–Yang diuji : pengeditan setelah pencetakan
– Penguji berharap untuk menemukan bahwa fungsi pencetakan menyebabkan
kesalahan dalam fungsi pengeditan