Teknik Pengujian (1) - Bahan Kuliah-STMIK Bandung | Bahan ... · Melakukan seluruh keputusan...
-
Upload
phungkhanh -
Category
Documents
-
view
225 -
download
0
Transcript of Teknik Pengujian (1) - Bahan Kuliah-STMIK Bandung | Bahan ... · Melakukan seluruh keputusan...
Pengujian
Ujicoba merupakan proses eksekusi program
dengan tujuan untuk menemukan kesalahan.
Sebuah ujicoba kasus yang baik adalah yang
memiliki probabilitas yang tinggi dalam menemukan
kesalahan-kesalahan yang belum terungkap.
Ujicoba yang berhasil adalah yang mengungkap
kesalahan yang belum ditemukan.
Tujuan
mendesain serangkaian tes yang secara sistematis
mengungkap beberapa jenis kesalahan yang
berbeda dan melakukannya dalam waktu dan usaha
yang minimum
Faktor
Dua kategori input yang disediakan untuk proses
ujicoba adalah :
Software configuration yang terdiri dari spesifikasi
kebutuhan software, spesifikasi desain dan kode
sumber.
Test configuration yang terdiri dari rencana dan
prosedur ujicoba, Tools ujicoba apapun yang dapat
digunakan
kasus ujicoba termasuk hasil yang diharapkan.
Pada kenyataannya, konfigurasi ujicoba merupakan
subset dari konfigurasi software.
Hasil Akhir
Faktor Reliability :
Kualitas dan reliabilitas software dapat diterima, atau
Ujicoba tidak cukup untuk menemukan kesalahan
yang fatal.
Jika Tidak Menemukan Kesalahan?
keraguan bahwa konfigurasi
ujicoba tersebut tidak berhasil dan
masih terjadi kesalahan dalam
software
User
Test Case Design
mendesain test :
tingkat kemungkinan penemuan kesalahan yang
tinggi
jumlah waktu dan usaha yang sedikit
Cara Test :
Mengetahui fungsi-fungsi yang dispesifikasikan pada
produk yang didesain
Mengetahui cara kerja internal dari produk
Pendekatan
• pemeriksaan detail prosedural
• Alur logikal suatu software diujicoba
• Status dari program dapat diperiksa pada beberapa titik yang bervariasi
White Box
• Dilakukan pada interface software
• Mendemonstrasikan fungsi software yang dioperasikan
• Apakah input diterima dengan benar, dan ouputyang dihasilkan benar
• apakah integritas informasi eksternal terpelihara
Black Box
White Box Testing
menggunakan struktur kontrol dari desain
prosedural untuk menghasilkan kasus-kasus uji
Kasus Uji yang dihasilkan :
Menjamin bahwa seluruh independent paths dalam
modul telah dilakukan sedikitnya satu kali,
Melakukan seluruh keputusan logikal baik dari sisi
benar maupun salah,
Melakukan seluruh perulangan sesuai batasannya
dan dalam batasan operasionalnya
Menguji struktur data internal untuk memastikan
validitasnya
Fungsi WhiteBox
Sifat kerusakan alami dari software, yaitu :
Kesalahan logika dan kesalahan asumsi secara
proposional terbalik dengan kemungkinan bahwa alur
program akan dieksekusi.
Sering percaya bahwa alur logikal tidak akan
dieksekusi ketika dikenyataannya, mungkin akan
dieksekusi dengan basis regular.
Kesalahan typographical (cetakan) bersifat random.
Ketika program diterjemahkan kedalam kode sumber
bahasa pemrograman, maka akan terjadi kesalahan
pengetikan.
Basis Path Testing
Diusulkan oleh Tom McCabe.
Metode berbasis alur memungkinkan perancang
kasus uji untuk menghasilkan ukuran kompleksitas
logikal dari desain prosedural dan menggunakan
ukuran ini untuk mendefinisikan himpunan basis dari
alur eksekusi
Notasi Graf Alur
Notasi sederhana untuk merepresentasikan alur
kontrol disebut graf alur (flow graph)
Notasi Graf Alur
edge harus berakhir pada sebuah node walaupun tidak semua node
merepresentasikan perintah prosedural. Area yang dibatasi oleh edge dan node
disebut region, area diluar graph juga dihitung sebagai region.
Cyclomatic Complexity
software metric yang menyediakan ukuran
kuantitatif dari komplesitas logikal suatu program
nilai yang dikomputasi untuk kompleksitas
cyclomatic mendefinisikan jumlah independent path
dalam himpunan basis suatu program
menyediakan batas atas untuk sejumlah ujicoba
yang harus dilakukan untuk memastikan bahwa
seluruh perintah telah dieksekusi sedikitnya satu kali
Independent path adalah alur manapun dalam
program yang memperkenalkan sedikitnya satu
kumpulan perintah pemrosesan atau kondisi baru
Cara menentukan Kompeksitas
Jumlah region dari graf alur mengacu kepada
komplesitas cyclomatic
Kompleksitas cyclomatic untuk graf alur G
didefinisikan :
V(G) = E – N + 2;
E = jumlah edge, dan N = jumlah node
Kompleksitas cyclomatic untuk graf alur G
didefinisikan :
V(G) = P + 1
P = jumlah predicates nodes
Contoh
Path 1 : 1 – 11
Path 2 : 1 – 2 – 3 – 4 – 5 – 10 – 1 – 11
Path 3 : 1 – 2 – 3 – 6 – 8 – 9 – 10 – 1 – 11
Path 4 : 1 – 2 – 3 – 6 – 7 – 9 – 10 – 1 – 11
1. Flow graph mempunyai 4 region
2. V(G) = 11 edges – 9 nodes + 2 = 4
3. V(G) = 3 predicates nodes + = 4
Deriving Test Case
Menyiapkan kasus uji yang akan mengeksekusi
setiap alur dalam himpunan basis
Data harus dipilih sehingga kondisi pada predicate
nodes dapat di uji dengan tepat
Graph Matrix
Prosedur untuk menghasilkan graf alur dan
menentukan himpunan alur basis dapat di
mekanisasi
Graph matrix merupakan matrik persegi yang jumlah
baris dan kolomnya sesuai dengan jumlah node
pada graf alur
Setiap baris dan kolom mengacu kepada sebuah
node dan isi dari matrix mengacu kepada edge
merupakan representasi tabular dari flow graph,
Graph Matrix (2)
Hal Yang Harus Diperhatikan :
Kemungkinan suatu link/ edge akan dieksekusi
Waktu proses yang dibutuhkan selama traversal
suatu link
Memori yang diperlukan selama traversal suatu link
Sumber daya yang diperlukan selama traversal
suatu link
Condition Test
rancangan metode ujicoba kasus yang menguji
kondisi logikal yang ada didalam modul program
E1 <operator relasional> E2
Jenis-jenis kesalahan dalam kondisi meliputi :
Kesalahan operator boolean ( keberadaan operator
boolean yang salah/berlebih/kurang)
Kesalahan variable Boolean
Kesalahan parantesis Boolean
Kesalahan operator relasional
Kesalahan ekspresi aritmatika
Data Flow Testing
memilih alur dari program berdasarkan lokasi
pendefinisian dan penggunaan variabel dalam
program
Untuk perintah dengan S sebagai nomor perintah : DEF (S) = {X| perintah S mengandung definisi X}
USE (S) = {X| Perintah S mengandung penggunaan X}
Jika perintah S merupakan perintah if atau loop,
himpunan DEF = kosong (empty)
himpunan USEberdasarkan pada kondisi perintah S
Definisi variable X pada perintah S akan ada pada
perintah S` jika ada alur(path) dari perintah S ke perintah
S` yang tidak mengandung pendefinisian lain dari
variable X.
Loop Testing
ujicoba whitebox yang memfokuskan secara khusus
pada validitas pembentukan loop
Jenis :
simple loop
concatenated loop
nested loop
unstructured loop
Simple Loop
serangkaian ujicoba harus diaplikasikan pada loop
sederhana, dimana n merupakan jumlah maksimum
yang diperbolehkan dalam loop
Teknik :
Lewati loop secara keseluruhan (skip the loop
entirely)
Hanya satu yang melalui loop (only one pass through
the loop)
2 melalui loop (two passes through the loop)
m melalui loop, jika m < n (m passes the loop where
m < n)
n – 1, n, n+1 passes the loop
Nested Loop
Pendekatan :
Mulai dari loop terdalam, Tetapkan loop lainnya pada
nilai minimum
Lakukan uji loop sederhana untuk loop terdalam dan
loop luar tetap pada parameter iterasi minimum.
Tambahkan ujicoba lainnya untuk out-of-range atau
nilai lainnya (exclude value)
Lakukan mengarah keluar, dan tetap
mempertahankan loop luarnya dalam nilai minimum
dan nested loop lainnya dengan nilai yang sesuai.
Lanjutkan sampai seluruh loop teruji.
Concatenated Loop
dapat diuji dengan menggunakan pendekatan yang
didefinisikan untuk loop sederhana jika setiap loop
saling independen
Jika loop digabungkan (concatenated) dan counter
untuk loop1 digunakan sebagai nilai awal dari loop2,
maka loop saling bergantung dan pendekatan untuk
nested loop direkomendasikan
Unstructured Loop
Jika mungkin sebaiknya loop jenis ini didesain ulang
untuk merefleksikan kegunaanpembentukan struktur
program.